Поесонинг

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Gerrduke
Posts: 8
Joined: 2004-08-23 22:00:18
Contact:

Поесонинг

Post by Gerrduke »

# Скрипты на поисонинг, версия 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

Помогите разобраться мне дали скрипт а я не шарю в инжэкте да такой степени что это все понять сделайте чтоб просто Инды и Тупы вставить и все ок
Post Reply