Добрый день знатоки кликермана!
Сразу к делу:
Я написал бота под игру,он прекрасно работает и выполняет все что мне от него нужно.Время от времени я стараюсь его улучшить,чтобы он работал точнее и быстрее.Сейчас при запуске бот около 30 секунд гетскринит,считывает существующие координаты всех нужных в игре окон(через IF_PICTURES_IN) и запоминает координаты и в дальнейшем ему не приходится при обращении к ним искать их заново по всему экрану,он уже имеет их координаты.Захотел я сделать это считывание координат более быстрым и интереесным.
Я решил переделать скрипт,чтобы он прежде чем искать картинку по всему экрану обращался в config.ini для поиска координаты этого окна с предыдущего прогона.Тоесть например кликер ищет окно склада,обращается к INI файлу,находит там $xsklad и $ysklad(стартовые координаты картинки) ,проверяет условие IF_PICTURE_IN ($xsklad, $ysklad, $x_max,$y_max, "img/sklad.bmp", -1, 90) .Если скрипт срабатывает - бот переходит к поиску следующей картинки,если не срабатывает,то $xsklad и $ysklad делает равным 0,ищет еще раз и ,обнаружив,перезаписывает координаты в INI файл.Все это я сделал,все это легко
Код имеет примерно такой вид
//----------------SKLAD---------------------------//
$analiz="0"
WHILE($analiz < 1)
$xsklad=INIREAD("config.ini", "$xsklad","Analizsystem")
$ysklad=INIREAD("config.ini", "$ysklad","Analizsystem")
IF_PICTURE_IN ($xsklad, $ysklad, $x_max,$y_max, "img/sklad.bmp", -1, 90)
print("SKLAD..ОК")
$xsklad=$_return1
$ysklad=$_return2
$analiz="1"
print("Перезаписываю координаты")
INIWRITE("config.ini", "$xsklad", $xsklad ,"Analizsystem")
INIWRITE("config.ini", "$ysklad", $ysklad ,"Analizsystem")
ELSE
$xsklad="0"
$ysklad="0"
$record="1"
END_IF
END_CYC
//=======================================================//
Так вот,перед тем как основной скрипт приступит к работе ему надо найти около 30 таких картинок на экране.Я как нубас могу написать просто 30 раз кусок этого кода каждый раз меняя переменные $xsklad и $ysklad на другие,но я хочу сделать это красиво через WHILE чтобы при каждом новом цикле этого оператора у меня из INI файла брались значения трех переменных (картинка,х,у),подставлялись в cкрипт и отрабатывали ,после чего по новой до тех пор пока while не закроется.Но я столкнулся с проблемой,что я не могу заменить одну переменную на другую.Например у нас есть кусочек кода
$xnn=INIREAD("config.ini", "$xnn","Analizsystem")
В нем я хочу заменить $xnn на $xdps.Я пробовал через все что нашел в справке,особенно близок был STRREPLACE,но все мои усилия привели лишь к тому,что $xdps воспринимался программой не как переменная при подобного рода замене,а как просто текст.По сути мне нужно понять как именно заменить одну переменную на другую,не приравнять их ,а именно заменить.
Я очень надеюсь что решение очень простое,но я по неопытности и невнимательности его каким-то образом обошел.