agem wrote:Как всегда, самую простую ошибку в исходном скрипте никто не обнаружил
while работает, пока выражение, указанное в нем истинно. Так что условие должно было выглядеть так
Code: Select all
while (not uo.InJournal("You put the bloody bandagess in your pack")) and (not uo.InJournal("You apply the bandages, but they barely help"))
но красивее использовать конструкцию
Code: Select all
repeat
wait(2000)
until uo.InJournal("You put the bloody bandagess in your pack") or uo.InJournal("You apply the bandages, but they barely help")
это, конечно, все хорошо, но, это не главная ошибка автора темы. лордтом верно сказал - если на шарде при лечении оружие выпадает из рук, да еще и действует система, при которой всякое новое действие рождает прерывание предыдущего, то никогда мы не сможем лечиться с одеванием оружия обратно всего через 0.2 секунды после применения бинтов.
автору: вообще, когда при такой стстеме что-то тратится столь странным образом, имеет смысл скрипты сервера внести проверку на то, закончено ли действие. то есть, если хилинг сперва убирает бинт, ждет, потом прибавляет хп, то гораздо логичнее убирать бинт перед прибавлением хп, тогда хоть тратиться они не будут... вобщем, нужно, чтобы скриптер поправил скрипты на сервере.