Извините за вц, но сцук, неужели это так сложно проследить ход своих мыслей и выложить их в форме скрипта?
Достало, пишу чуть ли не учебник.
Написали тело скрипта.
Цикл должен работать пока чар не умрет, добавим:
Code: Select all
sub STUPIDHealing()
repeat #повторять тело цикла
until UO.Dead(); # пока не подохнем
end sub
Теперь надо бы написать идеологию бинтования. Варианта 2: если стамина больше 50 то бинтуемся, а если нет, то пьем банку.
Code: Select all
sub STUPIDHealing()
repeat; #повторять тело цикла
if UO.Stamina()>50 then #если стамы больше 50, то:
*;бинтуемся, допишем потом, но отступ не забываем уже сейчас;
else #ИНАЧЕ
*;тут будет питье банок, отступ сделали;
end if; #а это КОНЕЦ проверки;
until UO.Dead(); # пока не подохнем
end sub
И вписываем бинты и стамину, заодно ожидания:
Code: Select all
sub STUPIDHealing()
repeat #повторять тело цикла
if UO.Stamina()>50 then #если стамы больше 50, то:
UO.Bandageself();бинтуемся, отступ не забываем;
wait(3000)
else #ИНАЧЕ
UO.UseType('0x0f0b');банки, отступ сделали;
wait(100)
end if; #а это КОНЕЦ проверки;
until UO.Dead(); # пока не подохнем
end sub
Вроде и пашет, да криво. Почему? да просто ожидание на бинты 3500, если в это время пройдет сейв, скрипт его не заметит, и будет пытаться что-то делать. Поправить надобно. Как человек различает время на бинт? Не по секундам, а смотрит пока не будет надписи на экране. Ну вот скажем скрипту смотреть журнал, туда это записывается.
Code: Select all
sub STUPIDHealing()
repeat #повторять тело цикла
if UO.Stamina()>50 then #если стамы больше 50, то:
UO.Bandageself();бинтуемся, отступ не забываем;
##################################### вот она, динамическая пауза бинтов
UO.DeleteJournal('barely|bloody'); #удалим из журнала строки, в которых упоминаются слова barely и bloody. Чтоб потом отреагировать на их появление.
repeat ##################повторяем
wait(500);###############ожидание по 500 мс
until UO.InJournal('barely|bloody');# до тех пор, пока в журнале не появятся пресловутые слова.
##################################### а вот ее конец
else #ИНАЧЕ
UO.UseType('0x0f0b');питье банок, отступ сделали;
wait(100)
end if; #а это КОНЕЦ проверки;
until UO.Dead(); # пока не подохнем
end sub
Вот оно, на палке в шоколаде:
Code: Select all
sub STUPIDHealing()
repeat
if UO.Stamina()>50 then
UO.Bandageself();
UO.DeleteJournal('barely|bloody');
repeat
wait(500);
until UO.InJournal('barely|bloody');
else
UO.UseType('0x0f0b');
wait(100)
end if;
until UO.Dead();
end sub