mx = UO.GetX("self") my = UO.GetY("self") mz = UO.GetZ("self") UO.DeleteJournal() for i = mx-4 to mx+4 for j = my -4 to my+4 while not UO.Hidden() UO.Warmode("0") uo.print("Прячемся...") UO.UseSkill("Hiding") wait(4000) wend UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j)) while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore") UO.DeleteJournal() if uo.waiting() then uo.canceltarget() endif UO.Waittargettile("1341", str(i), str(j), str(mz)) UO.Useobject("Shovel") while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock") wait (500) if uo.injournal("heavy") or uo.dead() then pwav() endif for jor = 0 to 9 ser = uo.journalserial(jor) noto = uo.getnotoriety(ser) if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then if uo.waiting() then uo.canceltarget() endif pwavw() wait(180000) ; время в секундах при ожидании пока уйдет ПК loot() wait(3000) goto reccal endif next wend if uo.weight > 625 then ; Максимальный вес при котором домой с рудой goto end endif wend UO.DeleteJournal() next next goto na4alo end: if uo.waiting() then uo.canceltarget() endif uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 ) wait(10000) loot() wait(3000) reccal: uo.deletejournal() if uo.waiting() then uo.canceltarget() endif uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 ) mx = UO.GetX("self") my = UO.GetY("self") wait(10000) if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then goto reccal endif goto na4alo end sub
sub loot() ; перекладка руды в сундук if uo.waiting() then uo.canceltarget() endif VAR a,Exit while not UO.Hidden() UO.UseSkill("Stealth") wait(4000) wend VAR UnloadCont='0x403B3732' ; АЙДИ сундука для руды DIM Ore[5] Ore[0]=0x19B9 ; 4 and more ore Ore[1]=0x19B7 ; 1 ore Ore[2]=0x19BA ; 2 ore Ore[3]=0x19B8 ; 3 ore UO.SetReceivingContainer(UnloadCont) wait(500) For a=0 to 3 Exit=0 repeat UO.FindType(Ore[a]) if UO.GetQuantity('finditem')>0 then UO.Grab('0','finditem') wait(1500) Else Exit=1 endif until Exit==1 Next UO.UnSetReceivingContainer() end sub
sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги) var mx, my reccal: uo.deletejournal() if uo.waiting() then uo.canceltarget() endif mx = UO.GetX("self") my = UO.GetY("self") UO.DeleteJournal() UO.FindType('0x1F14',-1,'my') wait(200) UO.Cast('Recall','finditem') wait(4000) if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then goto reccal endif end sub
в общем вставил с грехом пополам питьё бутылки перед тем, как улететь. Сейчас можете подсказать пожалуйста, где именно вставлять питьё бутылки, как только он обратно в шахту возвращаетца?
спасиб Мираж! Пардон что докучаю, но дело в том, что перед полётом в шахту он пьёт инвиз, а в шахту прилетает не в инвизе (ну это везде так кажись). Можно ли сделать, что как только он в шахту обратно прилетает - пьёт инвиз! Тоесть полусаетца надо вставлять перед началом копки?
UO.DeleteJournal() for i = mx-4 to mx+4 for j = my -4 to my+4
попробуй. Там где я играл копание выводит из инвиза. Но это специфика сервера скорее чем общее правило. И он же все равно прятаться старается хайдингом. Зачем тратить вес и деньги на инвизки? ПК захочет поймать - поймает. Проще вписать оживление с креста.
sub ToHide() VAR LastTimer, n=0, HidFlag=1 if UO.Hidden() then HidFlag=0 else end if while HidFlag uo.DeleteJournal() LastTimer=UO.Timer() UO.Exec('warmode 0') UO.UseSkill('Hiding') repeat wait(100) until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer() if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then HidFlag=0 else n=n+1 if n>3 then UO.Set('quiet','0') UO.Print('Спрятаться не получается') UO.Set('quiet','1') MyTerminate() end if end if wend end sub
Вписываешь куда требуется ToHide() Пытается спрятаться 3 раза, если не получается - вырубает скрипт функцией MyTerminate() Сообщения возможно потребуется поменять под сервер.
na4alo: mx = UO.GetX("self") my = UO.GetY("self") mz = UO.GetZ("self") UO.DeleteJournal() for i = mx-4 to mx+4 for j = my -4 to my+4 ###while not UO.Hidden() ###UO.Warmode("0") ###uo.print("Прячемся...") ###UO.UseSkill("Hiding") ###wait(1000) ###wend ToHide() UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j)) while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore") UO.DeleteJournal() if uo.waiting() then uo.canceltarget() endif
Ток он как прилетит после выгрузки - немножко стоит секунды 2-3, а потом ток прячетца. Или так и надо?
until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer() if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then