# Скрипты на поисонинг, версия 0.1
# © ZD aka [BaD]SensaDue)
# P.S. Некоторые скрипты используют особенность шарда DreamWorld (POL)
# и должны быть адаптированы для исопльзования на других шардах
# ------------ НАСТРОЙКИ СКРИПТА
var zd_poison_kegs_container="0x65FB269C";
var zd_empty_kegs_container="0x670F6EDF";
var zd_poison_object="0x67AB163A";
# ---------- ОБЪЯВЛЕНИЕ ТИПОВ
var food=0x097B;
var keg=0x1940;
var deadly_poison_potion=0x0F0A;
var empty_bottle=0x0F0E;
# ---------- ОБЪЯВЛЕНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ
# Режим отладки: inject/client/off
var zd_debug_mode="inject";
# Время таймаута в 1/10 с
var zd_timeout_delay=100;
var zd_stuck_timer=0;
# Интервал между какими-либо вспомогательными действиями,
# совершаемыми клиентом. Например при кликах мышкой и т.п.
# Обычно нужен, что дождаться ответа от сервера. Рекомендуемое значение
1000-1500
# Устанавливается в миллисекундах, т.е. 1000=1 сек
var zd_pause_delay=1000;
var zd_skill_delay=11000;
UO.Set("finddistance","2");
# ---------- ОБЪЯВЛЕНИЕ ВСПОМОГАТЕЛЬНЫХ Ф-ЦИЙ
# Вывод необязательных вспомогательных сообщений, обычно в клиент, но можно
# их и "произносить" и писать в файл, например.
sub zd_debug(s)
if (zd_debug_mode=="inject") then
UO.Print(s);
endif
if (zd_debug_mode=="client") then
UO.ServerPrint(s);
endif
endsub
sub zd_detect_worldsave()
var i=UO.InJournal("Saving World State");
if i then
zd_debug("Сохранение мира ...");
wait(25000);
UO.DeleteJournal();
return 1;
endif
return 0;
endsub
# Если не найден - то будет пытаться поднять qty его с пола.
sub zd_has_type(type,name,min_qty,max_qty)
var tmp_count;
tmp_count=UO.Count(type);# Ф-ция проверяет, есть ли нужный тип в бэкпаке.
if tmp_count>=min_qty then
return 1;
endif
#ищем в сундуке
UO.FindType(type,-1,zd_poison_kegs_container);
if UO.FindCount()>0 then
zd_debug("Возьмём из сундука "+str(max_qty-tmp_count)+" "+name+", чтобы стало
"+str(max_qty)+" ...");
UO.Grab(str(max_qty-tmp_count),"finditem");
wait(zd_pause_delay);
else
zd_debug(name+" в сундуке не обнаружено !");
#ищем на земле
UO.FindType(type,-1,"ground");
if UO.FindCount()>0 then
zd_debug("Возьмём с пола "+str(max_qty-tmp_count)+" "+name+", чтобы стало
"+str(max_qty)+" ...");
UO.Grab(str(max_qty-tmp_count),"finditem");
wait(zd_pause_delay);
else
zd_debug(name+" в пределах досягаемости не обнаружено !");
endif
endif
tmp_count=UO.Count(type);
if tmp_count>=min_qty then
return 1;
endif
return 0;
endsub
# Ф-ция выкидывает type в container/"ground", возможно указать цвет
sub zd_drop_type(type,name,container,color)
var my_serial=0;
var my_color=-1;
UO.IgnoreReset();
if color==0 then
color="-1";
endif
while UO.Count(type)>0
UO.FindType(type,color,"backpack");
my_serial=UO.GetSerial("finditem");
my_color=UO.GetColor(my_serial);
if container=="ground" then
UO.FindType(type,my_color,"ground");
if UO.FindCount()>0 then
UO.MoveItem(my_serial,"0","finditem","0","0","0");
else
UO.DropHere(my_serial);
endif
else
UO.MoveItem(my_serial,"0",container);
endif
UO.Ignore(my_serial);
zd_debug("Скидываю "+name+" в сундук.");
wait(zd_pause_delay);
wend
endsub
# Независимая ф-ция, которая постоянно подкармливает персонаж, если он голоден.
sub zd_hungry()
var hungry=1;
while hungry==1
UO.DeleteJournal();
UO.ServerPrint(".hungry");
while not UO.InJournal("You")
wait(50);
wend
if not UO.InJournal("stuffed") then
if (zd_has_type(food,"Еды",1,20)) then
zd_debug("Кушаю ...");
UO.UseType(food);
wait(zd_pause_delay);
else
zd_debug("Я голоден, но у меня нет еды !!!");
hungry=0;
endif
else
hungry=0;
endif
wend
endsub
sub zd_action_failed()
if (UO.InJournal("already") or UO.InJournal("must wait") or
UO.InJournal("cancelled")) then
return 1;
endif
return 0;
endsub
sub zd_swap_kegs()
UO.FindType(keg,"-1","backpack");
if UO.FindCount()>0 then
# if UO.GetName("finditem")<>
else
zd_exchange_kegs();
endif
endsub
# ------------------------------------------------
sub zd_poisoning()
UO.AddType("poison",deadly_poison_potion);
zd_hungry();
start_poisoning:
UO.DeleteJournal();
zd_hungry()
UO.Poison(zd_poison_object);
wait(zd_skill_delay/2);
UO.UseType(keg);
wait(zd_skill_delay/2);
#проверяем, нужен ли новый кег
if UO.InJournal("is empty") or UO.InJournal("no item found") then
zd_hungry();
zd_drop_type(keg,"пустой кег",zd_empty_kegs_container,"0");
zd_has_type(keg,"кег пойсона",1,1);
endif
goto start_poisoning;
endsub
Помогите разобраться мне дали скрипт а я не шарю в инжэкте да такой степени что это все понять сделайте чтоб просто Инды и Тупы вставить и все ок
Поесонинг
Moderators: Murderator+, Murderator