Lumberjackingscript von Bonbori
Aus UO-Sigena Wiki
Version vom 12. Februar 2012, 18:20 Uhr von Bonbori (Diskussion | Beiträge)
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 ; =========== Benutzereingaben ============== ; set %werkzeug XXX ; Hier muss man den Typ der Äxte eintragen, die man nutzen will. set %maxwegpunkte 0 ; Muss der Anzahl der Wegpunkte entsprechen. ; =========================================== ; start: gosub search if ( %wegpunkt >= %maxwegpunkte + 1 ) halt gosub movenext goto start 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 goto %wegpunkt ; ==================== ; ; == Wegpunkte hier == ; ; ==================== ; ; ==================== ; inc: set %wegpunkt %wegpunkt + 1 return sub umpacken set %packy BO set #nextcposx 0 set #nextcposy 0 tryagain: finditem %packy G_1 if #findkind = -1 { msg all come $ wait 1s goto tryagain: } if #findkind <> -1 { 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