Версия кликера какая? Почему начальные значения не задаются в самом FOR?
 версия 4.12 
начальные значения 

 осознал исправляюсь
По первому вопросу.
Если всё написано так как в посте, то должно работать. Такой результат как есть вижу только в двух случаях.
1. Если в скрипте по невнимательности строка IF_PICTURE_IN была повреждена (лишний параметр, не хватает или лишняя скобка), то условие IF не будет выполнятся совсем и тело условия будет работать всегда.
Как раз получим все последние значения.
в пост копировал все с файлов полностью код файла созданного что бы проверить работоспособность этой конструкции и привязку тут не делал, она есть только в основном файле но он пока не тревожит
Ну проверь логами что находит, а что нет
GETSCREEN (12,151,530,225)//выбираем область для анализа экрана
FOR($a=0, $a < 5) //цикл на номер врага с лева на право от 1 до 5
    $p[$a]=0
    FOR($b=1, $b < 6)
        IF_PICTURE_IN (12+$a*103, 151, 12+($a+1)*103, 225, STRCONCAT("variant\",$b, ".bmp"), 16777215, 100)  // "
            print("нашли ", $b, "  в позиции ", $a)
            $p[$a]=$b
        ELSE
            print("НЕ нашли ", $b, "  в позиции ", $a)
        END_IF
    END_CYC
    print("враг №"$a," получает ", $p[$a]," мечей" )
END_CYC
haltлоги
[spoiler]
16:20:15 нашли 1  в позиции 0
16:20:15 нашли 2  в позиции 0
16:20:16 нашли 3  в позиции 0
16:20:16 нашли 4  в позиции 0
16:20:16 нашли 5  в позиции 0
16:20:16 враг №0 получает 5 мечей
16:20:17 нашли 1  в позиции 1
16:20:17 нашли 2  в позиции 1
16:20:18 нашли 3  в позиции 1
16:20:18 нашли 4  в позиции 1
16:20:18 нашли 5  в позиции 1
16:20:18 враг №1 получает 5 мечей
16:20:19 нашли 1  в позиции 2
16:20:19 нашли 2  в позиции 2
16:20:19 нашли 3  в позиции 2
16:20:20 нашли 4  в позиции 2
16:20:20 нашли 5  в позиции 2
16:20:20 враг №2 получает 5 мечей
16:20:21 нашли 1  в позиции 3
16:20:21 нашли 2  в позиции 3
16:20:21 нашли 3  в позиции 3
16:20:22 нашли 4  в позиции 3
16:20:22 нашли 5  в позиции 3
16:20:22 враг №3 получает 5 мечей
16:20:22 нашли 1  в позиции 4
16:20:22 нашли 2  в позиции 4
16:20:22 нашли 3  в позиции 4
16:20:22 нашли 4  в позиции 4
16:20:22 нашли 5  в позиции 4
16:20:22 враг №4 получает 5 мечей
[/spoiler]
GETSCREEN (12,151,530,225)//выбираем область для анализа экрана
FOR($a=0, $a < 5) //цикл на номер врага с лева на право от 1 до 5
    $p[$a]=0
    FOR($b=1, $b < 6)
        IF_PICTURE_IN (12+$a*103, 151, 12+($a+1)*103, 225, STRCONCAT("variant\",$b, ".bmp"), -1, 100)  // "
            print("нашли ", $b, "  в позиции ", $a)
            $p[$a]=$b
        ELSE
            print("НЕ нашли ", $b, "  в позиции ", $a)
        END_IF
    END_CYC
    print("враг №"$a," получает ", $p[$a]," мечей" )
END_CYC
haltлоги
[spoiler]16:21:39 НЕ нашли 1  в позиции 0
16:21:39 НЕ нашли 2  в позиции 0
16:21:39 нашли 3  в позиции 0
16:21:39 НЕ нашли 4  в позиции 0
16:21:39 НЕ нашли 5  в позиции 0
16:21:39 враг №0 получает 3 мечей
16:21:39 НЕ нашли 1  в позиции 1
16:21:39 нашли 2  в позиции 1
16:21:39 НЕ нашли 3  в позиции 1
16:21:39 НЕ нашли 4  в позиции 1
16:21:40 НЕ нашли 5  в позиции 1
16:21:40 враг №1 получает 2 мечей
16:21:40 НЕ нашли 1  в позиции 2
16:21:40 НЕ нашли 2  в позиции 2
16:21:40 НЕ нашли 3  в позиции 2
16:21:40 НЕ нашли 4  в позиции 2
16:21:40 нашли 5  в позиции 2
16:21:40 враг №2 получает 5 мечей
16:21:40 НЕ нашли 1  в позиции 3
16:21:40 нашли 2  в позиции 3
16:21:40 НЕ нашли 3  в позиции 3
16:21:40 НЕ нашли 4  в позиции 3
16:21:40 НЕ нашли 5  в позиции 3
16:21:40 враг №3 получает 2 мечей
16:21:41 НЕ нашли 1  в позиции 4
16:21:41 НЕ нашли 2  в позиции 4
16:21:41 НЕ нашли 3  в позиции 4
16:21:41 НЕ нашли 4  в позиции 4
16:21:41 НЕ нашли 5  в позиции 4
16:21:41 враг №4 получает 0 мечей
[/spoiler]
коды скопированы полностью без редактирования, логи разумеется тоже.  похоже проблема связана какраз с изображениями, но в чем именно понять не могу. после смены черного на синий цвет оба кода выдают одинаково верные логи
[spoiler]16:27:14 НЕ нашли 1  в позиции 0
16:27:15 НЕ нашли 2  в позиции 0
16:27:15 нашли 3  в позиции 0
16:27:15 НЕ нашли 4  в позиции 0
16:27:15 НЕ нашли 5  в позиции 0
16:27:15 враг №0 получает 3 мечей
16:27:16 НЕ нашли 1  в позиции 1
16:27:16 нашли 2  в позиции 1
16:27:16 НЕ нашли 3  в позиции 1
16:27:16 НЕ нашли 4  в позиции 1
16:27:17 НЕ нашли 5  в позиции 1
16:27:17 враг №1 получает 2 мечей
16:27:17 НЕ нашли 1  в позиции 2
16:27:17 НЕ нашли 2  в позиции 2
16:27:18 НЕ нашли 3  в позиции 2
16:27:18 НЕ нашли 4  в позиции 2
16:27:18 нашли 5  в позиции 2
16:27:18 враг №2 получает 5 мечей
16:27:18 НЕ нашли 1  в позиции 3
16:27:18 нашли 2  в позиции 3
16:27:19 НЕ нашли 3  в позиции 3
16:27:19 НЕ нашли 4  в позиции 3
16:27:19 НЕ нашли 5  в позиции 3
16:27:19 враг №3 получает 2 мечей
16:27:20 НЕ нашли 1  в позиции 4
16:27:20 НЕ нашли 2  в позиции 4
16:27:21 НЕ нашли 3  в позиции 4
16:27:21 НЕ нашли 4  в позиции 4
16:27:21 НЕ нашли 5  в позиции 4
16:27:21 враг №4 получает 0 мечей
[/spoiler]
 ...Зависит от того как рендерится.
Даже на одном типе OC может быть включен разный режим сглаживания экранных шрифтов, что влияет, например на текст в Win и FLASH.
  такого кода может хватить  для браузерной игрушки в неполноэкранном режиме при условии что диоганали разрешение и даже отношение сторон мониторов разное или я тут утопией занимаюсь и надо искать другой монитор?
#name "gneci"
#include "loka.cms"   //подгружаю файл подпрограммы, файл ф той же папке что и скрипт имя -loka для определения целевой локации
//тут я переменные всовываю 
$HWnd = 0 // Дескриптор окна(указатель на окно)
DEFINE($xn , 0) // размер окна по горизонтали
DEFINE($yn , 0) //размер окна по вертикали
DEFINE($xmax , 1250) // размер окна по горизонтали
DEFINE($ymax , 920) //размер окна по вертикали
$HWnd = WNDFIND ("RPG TCG Жнецы душ") // ищем игру жнецы душь открытую в браузере  вкладка должна быть активной
wait(1)    // Ждем 1 сек.
//тут подготовка к запуску
 
if ($HWnd > 0)  // Проверяем нашлось ли окно
   WNDSTATE($HWnd, 1)  // разворачиваем окно
      WndPos ($HWnd,$xn,$yn) // Двигаем окно
   WaitMS(500)
 
   WndSize ($HWnd, $xmax, $ymax)   // Меняем его размер
	 WAITMS(300)
   
   
   MOVE($xmax-30,$yn+300)//ставлю курсор на пустое место
	 WAITMS(300)
   
   WHEELUP(10)   // колесиком прокручиваю полосу прокрутки вверх
	 WAITMS(300)
   
	 WHEELDOWN (1)// чуть прокручиваем вниз 3 строки текста)
   
         
   WaitMS(500)
   print("нашел окно") // в логах пишет если нашел нужное окно
   
   loka() // запускаю подпрограмму loka переменные в нее не передаются 
   print("локация врага(осн)",$lokx,"; ",$loky)
   
ELSE
	 print("фигня с окном")  // не нашел окно
   WaitMS(500)
	    
end_if
halt
Про 3 вопрос совсем не понятно. Что не работает? В "той" теме обсуждается не один вопрос и код не один. К тому же она очень... нет, ОЧЕНЬ старая и под старые версии.
http://crapware.aidf.org/forum/index.php?topic=33.msg708#msg708 вот точная ссылка на пост.
именно не понимаю  команды "GOSUB(UPDATE_DATE)" у меня с такой командой не работает код и даже полностью скопированый код приводимый в посте как пример у меня дает сомнительный результат(вернее отсутствие такового)
но судя по другим темам
http://crapware.aidf.org/forum/index.php?topic=2886.msg18843#msg18843это и правда проблема версий программы