Lumberjackingscript von Bonbori: Unterschied zwischen den Versionen

Aus UO-Sigena Wiki
Wechseln zu: Navigation, Suche
K
(Verbesserungen am Script)
Zeile 25: Zeile 25:
 
set %msg6 Baumschlange
 
set %msg6 Baumschlange
 
set %wegpunkt 0
 
set %wegpunkt 0
 +
set %packy BO_WN ;Packpferd
 +
set %food QQD_UWI_TWI ; Äpfel, Birnen und Pfirsiche
 +
set %last_feeding 0;#sCnt
  
; =========== Benutzereingaben ============== ;
+
; ========= Benutzereingaben =================== ;
set %werkzeug XXX ; Hier muss man den Typ der Äxte eintragen, die man nutzen will.
+
set %werkzeug FSF ; ID des Werkzeugs
set %maxwegpunkte 0 ; Muss der Anzahl der Wegpunkte entsprechen.
+
set %maxwegpunkte 0 ; Anzahl der Wegpunkte
; =========================================== ;
+
set %fressinterval 45 ;Zeit in Minuten, nach der das Packi gefüttert wird
 +
; ============================================== ;
  
 +
gosub feedpacki
 
start:
 
start:
 
gosub search
 
gosub search
Zeile 39: Zeile 44:
  
  
 +
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
 
sub search
Zeile 101: Zeile 136:
  
 
sub movenext
 
sub movenext
 +
gosub feedpacki
 
goto %wegpunkt
 
goto %wegpunkt
  
Zeile 113: Zeile 149:
  
 
sub umpacken
 
sub umpacken
    set %packy BO
 
 
     set #nextcposx 0
 
     set #nextcposx 0
 
     set #nextcposy 0
 
     set #nextcposy 0
      tryagain:
+
    gosub findpacki
       finditem %packy G_1
+
       set #lobjectid #findid
      if #findkind = -1
+
      event macro 17 0
        {
+
      wait 1s
        msg all come $
+
      finditem ZLK C_ , #backpackid
        wait 1s
+
        if #findkind = -1
        goto tryagain:
+
        }
+
      if #findkind <> -1
+
        {
+
        set #lobjectid #findid
+
        event macro 17 0
+
        wait 1s
+
        finditem ZLK C_ , #backpackid
+
            if #findkind = -1
+
 
             return
 
             return
        set %_contid #contid
+
      set %_contid #contid
        exevent drag #findid #findstack
+
      exevent drag #findid #findstack
        wait 10
+
      wait 10
        exevent dropc %_contid
+
      exevent dropc %_contid
        }
+
 
  
 
return
 
return

Version vom 9. Juli 2013, 17:44 Uhr

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