Lumberjackingscript von Bonbori
Aus UO-Sigena Wiki
Dieses Script arbeitet vollautomatisch. Es läuft von Baum zu Baum auf einer vordefinierten Route, hackt holz und packt es in ein Packpferd, das man dabei haben muss. Sind alle Wegpunkte abgearbeitet, beendet sich das Script.
Die Wegpunkte haben folgendes Format und müssen einmalig an der markierten Stelle im Script eingefügt werden:
; [Wegpunktnummer]: (Beginnend mit 0) ; move [X] [Y] 0 30s ; goto inc ; Beispiel: 0: move 1000 2000 0 30s goto inc
Script:
set #lpc 100 tile init noOverrides set %msg1 Stämme_in_Euren_Rucksack. set %msg2 Es_gelingt_euch_nicht set %msg3 kein_verwertbares_Holz set %msg4 zu_weit_entfernt. set %msg5 Ihr_unterbrecht set %msg6 Baumschlange set %wegpunkt 0 set %packy BO_WN ;Packpferd set %food QQD_UWI_TWI ; Äpfel, Birnen und Pfirsiche set %last_feeding 0;#sCnt ; ========= Benutzereingaben =================== ; set %werkzeug FSF ; ID des Werkzeugs set %maxwegpunkte 0 ; Anzahl der Wegpunkte set %fressinterval 45 ;Zeit in Minuten, nach der das Packi gefüttert wird ; ============================================== ; gosub feedpacki start: gosub search if ( %wegpunkt >= %maxwegpunkte + 1 ) halt gosub movenext goto start sub findpacki tryagain: finditem %packy G_1 if #findkind = -1 { msg all come $ wait 1s goto tryagain: } return sub feedpacki if ( #sCnt > ( %last_feeding + %fressinterval * 60 ) ) { gosub findpacki set %packy_cont #findid finditem %food C if #findkind <> -1 { exevent drag #findid 1 wait 10 exevent dropc %packy_cont wait 10 } else { event sysmessage KEIN FUTTER MEHR:::!!! } set %last_feeding #sCnt } return sub search for %i 0 2 { for %j 0 2 { set %x ( #charposx - 1 + %i ) set %y ( #charposy - 1 + %j ) tile cnt %x %y #cursKind for %z 1 #tilecnt { tile get %x %y %z #cursKind if ( ( baum in #tilename ) || ( ( Zeder in #tilename ) && ( Zedern notin #tilename ) ) || ( ( Eiche in #tilename ) && ( Eichen notin #tilename ) ) || ( ( Walnuss in #tilename ) && ( Walnussl notin #tilename ) ) || ( ( Weide in #tilename ) && ( Weiden notin #tilename ) ) ) gosub lumber } } } return sub lumber startlumber: finditem %werkzeug C if #findkind <> -1 { set #lObjectID #findID event macro 17 target set #ltargetx %x set #ltargety %y set #ltargetz %z set #ltargettile #tiletype set #ltargetkind 3 set %js #jindex event macro 22 } warten: wait 1 set %je #jindex for %i2 %js %je { scanjournal %i2 if ( %msg1 in #journal ) || ( %msg2 in #journal ) || ( %msg5 in #journal ) || %msg6 in #journal { goto startlumber ;event sysmessage Fertig und nochmal } if ( %msg3 in #journal ) || ( %msg4 in #journal ) { ;event sysmessage Fertig, Baum leer oder zu Weit weg. goto endlumber } } goto warten endlumber: if ( #weight >= ( #maxweight - 15 ) ) gosub umpacken } return sub movenext gosub feedpacki goto %wegpunkt ; ==================== ; ; == Wegpunkte hier == ; ; ==================== ; ; ==================== ; inc: set %wegpunkt %wegpunkt + 1 return sub umpacken set #nextcposx 0 set #nextcposy 0 gosub findpacki set #lobjectid #findid event macro 17 0 wait 1s finditem ZLK C_ , #backpackid if #findkind = -1 return set %_contid #contid exevent drag #findid #findstack wait 10 exevent dropc %_contid return