Цитата(nykep @ 8.3.2019, 2:20)

у меня скрипт 0 передвигается и убивает монстров на ходу, другой скрипт в это время смотрит за лутом и останавливает скрипт 0 сразу как только видит лут, и третий смотрит не появился ли город на горизонте, если их совместить то он будет пробегать мимо половины лута и если не заметит город вовремя будет провал (IMG:
style_emoticons/default/smile.gif) это уже проверено, и еще один скрипт следит за долгим застреванием
(IMG:
style_emoticons/default/smile.gif)
Пришло время открыть вам одну тайну!
"Провалиться" гораздо больше шансов в "многопоточности", чем в последовательных действиях.
И вот одна из сотен проблем с которой вы столкнулись.
А в рамках одно скрипта вот вам алгоритм, при котором ничего не "провалиться":
Код
while 1 = 1
wait 250 + 211(random)
gosub mob
gosub loot
findimage $checkLoot (ищем какой-нибудь элемент, подтверждающий, что здесь уже лута быть не может или наоборот, подтверждающий, что он ещё есть и двигаться нельзя)
findimage $checkCity (ищем город, который вам там надо обязательно искать)
if $checkLoot > 0 and $checkCity < 1
gosub move // Если лута точно нету здесь и города нету, то двигаемся дальше
end_if
gosub checkSystem
end_while
:mob
gosub checkSystem
//ищем мобов, нападаем если нужно, если драка не супер сложная, то можно прям здесь же и драться
return
:loot
gosub checkSystem
//проверяем лут, подбираем если есть
return
:move
gosub checkSystem
//двигаемся вперед
return
:checkSystem
//проверяем систему, если сбой то идем чиниться
if fail = 1
gosub f5
set #fail 0
end_if
return
:f5
//пробуем восстановиться, убеждаемся что элементы после обновления или перезахода в порядке, и тогда возвращаемся
return
Не знаю какая игра у вас, точнее какой режим у неё - пошаговая или как, но алгоритм по-сути универсальный.