Альтернатива для пинжекта (шард - ZHResurrection [не ZH5] )
Code: ###(c) Der###
# Скрипт для крафта бутылок в кег. # Пустые кеги хранятся в некотором контейнере (внимание: в скрипте нет проверки на содержимае кега, поэтому # необходимо чтобы содержимое кега совпадало тем что производите). В процессе производства бутылки должны # падать именно в БекПак! Как только кег переполняется, скрипт откладывает его в другой контейнер. Скрипт # выполняется до тех пор пока имеются незаполненные кеги либо кончится рег. В настройках необходимо прописать # типы, названия менюшек и сообщения вашего шарда. Кол-во строк массива @alch не ограничено. # Настройка производится переменной $i.
sub main_alc() {
$keg_type=0x1940; #Тип кега $mortar=0x0E9B; #Тип мортиры $mess1='You stop'; #Сообщение о результате алхимии (такое чтоб учитывало все варианты) $mess2='is already full'; #Сообщение о том, что кег переполнен
##################################################################################### #######[qw(Название бутылки в меню алхимии|Тип рега|Тип бутылки)], ################## @alch=( ###### ###### [qw(Greater_Explosion 0x0F8C 0x0F0D) ], ###### $i=0 ###### [qw(Greater_Heal 0x0F85 0x0F0C) ], ###### $i=1 ###### ); ##### и т.д. ##### ##################################################################################### # Тут установите продукт:
$i=1;
# Настройка закончена =) ####################################################################################
&wait(1000);
uo::print("Сегодня мы будем делать:"); for($j=0;$j<3;$j++) {uo::print($alch[$i][$j]);}
uo::canceltarget(); &wait(1000);
uo::print("Выберите контейнер с пустыми кегами..."); uo::addobject("kegcont"); &wait(500); while(uo::targeting()) {&wait(250);}
uo::useobject(kegcont); &wait(1000);
uo::print("Выберите контейнер для складирования наполненных кегов..."); uo::addobject("receive_cont"); &wait(500); while(uo::targeting()) {&wait(250);}
uo::findtype($keg_type,-1,kegcont); if(uo::findcount()){ do{ uo::findtype($keg_type,-1,kegcont); uo::grab(0,finditem); $keg_cur=uo::getserial(finditem); uo::deletejournal();
until(uo::injournal($mess2)) { uo::deletejournal(); uo::waitmenu('make',$alch[$i][0]); uo::waittargettype($alch[$i][1]); uo::usetype($mortar); until(uo::injournal($mess1)) {&wait(250);} uo::findtype($alch[$i][2],-1,-1);
if(uo::findcount()) { $tmp=uo::findcount(); uo::waittargetobject(finditem); uo::useobject($keg_cur); while(uo::findcount()==$tmp && !uo::injournal($mess2)) {&wait(1000); uo::findtype($alch[$i][2],-1,-1);} }
}
uo::canceltarget(); uo::moveitem($keg_cur,0,receive_cont); &wait(1000);
}while(uo::findcount()); } uo::print("Кеги кончились либо контейнер с кегами задан неверно..."); }
|