UO Sigena

Willkommen im Forum von Sigena!

EasyUO - Scriptsorgen - Lumberscripte

Ihr habt Fragen zum Spiel oder benötigt die Hilfe von der Gemeinschaft? Dann seid ihr hier genau richtig!

EasyUO - Scriptsorgen - Lumberscripte

Beitragvon TarTheCat » Mi 27. Aug 2014, 17:06

Hab mir nach 2 Wochen dann auch mal EUO geladen und war vom Miningscript quasi begeistert.

Nur beim Holzfällen leider nicht so.

Prinzipiell hab ich in Forum und Wiki 2 Holzscripte gefunden - die hier im Forum (NeulingsFAQ) arbeitet mit GOSUB LJING, hackt aber nach Koordinaten (genauer, hackt immer in Richtung X=+1). Unnötig zu sagen, dass diese präzisen Tiles selten getroffen werden beim laufen, jedenfalls bei mir.

Spoiler: Zeigen
Code: Alles auswählen
initevents

set %ljtool FSF ; set your ljtool here
set %counter 0
finditem ZJF ; sucht eigenen Rucksack
set %1 C_
set %2 #findid
set %ownpack %1 , %2
msg all follow me $

;here goes the route... (Koordinaten einfügen)





halt
sub ljing

set %counter %counter + 1
set %counter_2 0

;===================================
; überprüfen ob zu voll... Holz ins Packi legen
;===================================

if #maxweight < #weight
{
event sysmessage Holz ins Packi lagern

msg all come $

; %pferd auf Pack-Backpack-ID setzen (nachschaun obs richtige id is)
finditem WN
if #findid = X
{
finditem BO
}
set %pferd #findid


;die coords für den nächsten gump setzen
set #nextCPosX 10
set #nextCPosY 10
event sysmessage Coords set to #nextCPosX and #nextCPosY
wait 2s

;die tasche des Packis öffnen
event sysmessage Trying to open packis backpack...
; click #lTargetX #lTargetY d
set #LObjectID %pferd
event macro 17 0
; event sysmessage is it open now?
wait 2s

;das ganze holz in die hand nehmen
;suchen nach holz im backpack

finditem ZLK %ownpack
event sysmessage Found #findstack logs...

;das gefundene holz "draggen"
event Drag #findID
;kurz warten
wait 2
;einmal ENTER drücken um den kompletten Stapel auszuwählen
msg $
event sysmessage Holding the logs???
wait 3s

;auf die coords klicken
click 100 150 p

msg all follow me $
}

;================================
; zu baum gehen, axt in die hand nehmen
;================================
;move %1 %2 1 20s
;wait 1s
;click 500 250 r
;click 500 250 r
;wait 1s
;move %1 %2 1 20s
;wait 1s
;click 300 350 r
;click 300 350 r
;wait 1s
move %1 %2 1

finditem %ljtool
set #lobjectid #findid
event macro 17 0
target 13s

set #ltargetx %1
set #ltargety %2
set #ltargetz 15
set #ltargetkind 3
set #ltargettile %3

;=======================
; ab hier wird der baum gefällt
;=======================

faellen:
set %counter_2 %counter_2 + 1
event sysmessage Baum Nummer %counter zum %counter_2
event macro 22 0
wait 3s

; checken ob baum leer geLJINGt...
for %i 1 10
{
scanjournal %i
if Hier_gibt_es_kein_verwertbares_Holz in #journal
{
deletejournal
return
}
wait 1
}

wait 5s

if %counter_2 >= 6
{
return
}


finditem %ljtool
set #lobjectid #findid
event macro 17 0
target 10s
goto faellen

;=======================


Das zweite Script hab ich im Wiki gefunden, das gefiel mir schon besser, da es die Bäume nach Tileinfos erkannte und egal wo man nun genau stehenblieb (hier wurden Wegpunkte benutzt, kein LJING, sondern "move"), der Baum wurde gehackt. Problem hier? Das Script "übersprang ganz einfach mal Bäume, und ich kann nur raten, dass es an der Maske zum Erkennen lag.

Spoiler: Zeigen
Code: Alles auswählen
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


Meine Frage also - kann man das irgendwie fixen/kombinieren? Ich selbst hab zu wenig Ahnung von EUO-Scripting, und brauch eigentlich auch nicht viele, da ich weitestgehend selbst spielen will, aber grade das Ressourcenbeschaffen (und insbesondere Mining) geht einem tierisch auf die Nüsse :D

Am liebsten wäre mir ja eine Routen ala LJING (weniger Tipparbeit) verbunden mit der Tileerkennung von BonBori, nur eben für ALLE Bäume, und nich nur für gefühlt die Hälfte. Nur dafür fehlt mir nach einem ganzen Nachmittag rumbasteln einfach das KnowHow :(

Kann mir da jemand helfen? :?
Benutzeravatar
TarTheCat
Offline
 
Alter: 39
Beiträge: 109
Registriert: Do 7. Aug 2014, 10:43

Re: EasyUO - Scriptsorgen

Beitragvon Perricum » Do 28. Aug 2014, 15:06

Hallo TarTheCat,

ich habe im letzten Jahr selbst mal angefangen ein etwas anderes Lumberjacking-Script zu basteln und schiebe vorweg, dass das Script nicht fertig und nicht Holzhackfähig ist. Aber vielleicht hilft es dir trotzdem und verwirrt dich nicht noch mehr.

In dieser Version hat es am Anfang eine recht lange Ladezeit, stell dich einfach mal in den Wald und drück auf Start.
Es entsteht ein Radar (was hier sehr groß egwählt ist und sicher kleiner geht), was zumindest alle Bäume anzeigen sollte und hat theoretisch Move-Funktionen.
Vielleicht ist das ja ein Anhaltspunkt für dich.

Spoiler: Zeigen
tile init
display yesno Das erste mal heute unterwegs?
if #dispRes = yes
set *chopped_today _

gosub initmenu

Main:
if #menubutton = SCAN
{
set #menubutton n/a
gosub DrawGrid
}
if #menubutton = CLOSED
{
set #menubutton n/a
halt
}
if #menubutton = SEARCH
{
set #menubutton n/a
gosub searchTree
}
if #menubutton = MOVETO
{
set #menubutton n/a
gosub moveTo
}
if #menubutton = CHOPIT
{
set #menubutton n/a
gosub chopIt
}
goto Main

sub chopIt
event sysmessage Ich hacke...
menu Delete %zielName
set *chopped_today *chopped_today , _ , %zielName
menu Shape %zielName %zielRX %zielRY 15 15 3 7 1 yellow 7 yellow
event sysmessage Fertig gehackt...
return

sub moveTo
event sysmessage Ich bin auf dem Weg zum Ziel...

move %zielX %zielY 1 5s

if %zielX > #charposx
set %tempX ( %zielX - #charposx )
else
set %tempX ( #charposx - %zielX )

if %zielY > #charposy
set %tempY ( %zielY - #charposy )
else
set %tempY ( #charposy - %zielY )

set %tempDist ( %tempX + %tempY )

if %tempDist > 2
gosub moveTo
else
{
menu Button chopit 1050 70 100 20 Abholzen
event sysmessage Bin da, auf geht die Hackerei.
}

return

sub moveTo2

event PathFind %zielX %zielY
scanJournal 1
if can't_get_there in #journal
{
event PathFind ( %zielX + 1 ) %zielY
scanJournal 1
if can't_get_there in #journal
{
event PathFind ( %zielX - 1 ) %zielY
scanJournal 1
if can't_get_there in #journal
{
event PathFind %zielX ( %zielY + 1 )
scanJournal 1
if can't_get_there in #journal
{
event PathFind %zielX ( %zielY - 1 )
scanJournal 1
if can't_get_there in #journal
{
event PathFind ( %zielX + 1 ) ( %zielY + 1 )
}
}
}
}
}

return


sub searchTree
event sysmessage Suche naechsten Baum...
set %zielDist 10000

for %i 1 %treecounter
{
set %tempX 0
set %tempY 0

if %treeX . %i > #charposx
set %tempX ( %treeX . %i - #charposx )
else
set %tempX ( #charposx - %treeX . %i )

if %treeY . %i > #charposy
set %tempY ( %treeY . %i - #charposy )
else
set %tempY ( #charposy - %treeY . %i )

set %tempDist ( %tempX + %tempY )
if ( %tempDist <= %zielDist && ( %treeName . %i notin *chopped_today ) )
{
set %zielDist %tempDist
set %zielName %treeName . %i
set %zielX %treeX . %i
set %zielY %treeY . %i
set %zielRX %treeRX . %i
set %zielRY %treeRY . %i
}
}
event sysmessage Das Ziel steht fest...
menu Delete zielName
menu text zielName 1050 250 Ziel: , #spc , %zielName
menu text zielName 1050 265 Distanz: , #spc , %zielDist , #spc , Felder
menu Button moveto 1050 50 100 20 Zum Baum

return

sub initmenu

event sysmessage Initialisiere...

menu window title Perricum-Radar
set #menubutton n/a
menu clear
menu window size 1200 795
menu window color btnface
menu font bgcolor btnface
menu font transparent #true
menu font color black
menu font size 8
menu text legend 1050 130 Legende
menu Shape legendStart 1050 150 15 15 3 7 1 red 7 red
menu text legendTextStart 1070 150 Start , #spc , ( , #charposx , : , #charposy , )
menu Shape legendTree 1050 170 15 15 3 7 1 green 7 green
menu text legendTextTree 1070 170 Baum
menu Shape legendChopped 1050 190 15 15 3 7 1 yellow 7 yellow
menu text legendTextChopped 1070 190 Abgeholzt
menu Shape legendOther 1050 210 15 15 3 7 1 gray 2 gray
menu text legendTextOther 1070 210 Sonstiges

menu Button scan 1050 10 100 20 Scan



menu shape line 1005 0 2 795 3 7 5 black 7 black
menu show

event sysmessage Initialisierung abgeschlossen...

return

sub DrawGrid

event sysmessage Untersuche die Umgebung....

set %difx -33
set %x 0
set %treecounter 0
while %x < 1005
{
set %y 0
set %dify -26
while %y < 795
{
if ( %x = 495 && %y = 390 )
{
menu Shape start %x %y 15 15 3 7 1 red 7 red
}
else
{
set %tempx #charposx + %difx
set %tempy #charposy + %dify

tile cnt %tempx %tempy #cursKind
set %foundtree #FALSE
for %z 1 #tilecnt
{
tile get %tempx %tempy %z #cursKind
set %temp %tempx , _ , %tempy , _ , %z
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 ) ) ) && %temp notin %chopped )
{
set %chopped %chopped , _ , %temp
set %foundtree #TRUE
}
else
{

}
}
if %foundtree = #TRUE
{
set %treecounter %treecounter + 1

set %treeName . %treecounter %tempx , _ , %tempy
set %treeX . %treecounter %tempx
set %treeY . %treecounter %tempy
set %treeRX . %treecounter %x
set %treeRY . %treecounter %y

if ( %tempx , _ , %tempy in *chopped_today )
{
menu Delete %tempx , _ , %tempy
menu Shape %tempx , _ , %tempy %x %y 15 15 3 7 1 yellow 7 yellow
}
else
{
menu Delete %tempx , _ , %tempy
menu Shape %tempx , _ , %tempy %x %y 15 15 3 7 1 green 7 green
}
}
else
{
menu Delete %tempx , _ , %tempy
menu Shape %tempx , _ , %tempy %x %y 15 15 3 7 1 gray 2 gray
}
}
set %y %y + 15
set %dify %dify + 1
}
set %x %x + 15
set %difx %difx + 1
}

event sysmessage Untersuchung abgeschlossen...
menu Button search 1050 30 100 20 Baum suchen

return


Ich habe damals die Programmierung abgebrochen, weil EUO sehr langsam arbeitet, erst recht mit größeren Datenstrukturen, bzw. mit den Schleifen.

...Und mich dann in der LUA-Programmierung für OpenEUO verstrickt. Das ist neuer und kommt einer objektorientierten, schnellen und mächtigen Programmiersprache zumindest näher. Wenn du dich eh irgendwo komplett neu einarbeiten willst, könntest du überlegen, dich da einzuarbeiten. Mit dem Nachteil die hier schon existenten Scripte evtl. nur über Umwege nutzen zu können.

Perricum
Offline
 
Beiträge: 1
Registriert: Di 19. Okt 2010, 15:29

Re: EasyUO - Scriptsorgen

Beitragvon TarTheCat » Do 28. Aug 2014, 15:10

Wie gesagt, ich will eigentlich nur zwei Scripte - eins für Holz, eins für Mining. Das für Mining hab ich mir schon zurechtgestutzt, aber beim Holz komm ich auf keinen grünen Zweig :(
Benutzeravatar
TarTheCat
Offline
 
Alter: 39
Beiträge: 109
Registriert: Do 7. Aug 2014, 10:43

Re: EasyUO - Scriptsorgen

Beitragvon Bonbori » Do 28. Aug 2014, 20:05

Mein Script lief für die Gegenden, wo ich gelumbert habe. Höchstwahrscheinlich sind da entweder ein paar Namen von Bäumen nicht drin oder irgendwas hat sich dahingehend geändert. Ich update das Script aber eher nicht mehr. Wenn, dann bastel ich was deutlich stärker automatisiertes in OpenEUO und dann ist noch die Frage, ob ich das dann überhaupt freigebe, da in das Script dann deutlich mehr Arbeit reinfließen würde.
Benutzeravatar
Bonbori
Offline
 
Beiträge: 693
Registriert: Di 28. Dez 2010, 01:41

Re: EasyUO - Scriptsorgen

Beitragvon Admin Gymir » Fr 29. Aug 2014, 07:02

versuch mal die version
KLICK
Benutzeravatar
Admin Gymir
Staff
Offline
 
Alter: 44
Beiträge: 785
Registriert: Mo 4. Okt 2010, 18:25

Re: EasyUO - Scriptsorgen

Beitragvon TarTheCat » Fr 29. Aug 2014, 09:34

Geladen und ausprobiert, aber das "fixt" die alten Scripte auch nicht wirklich ^^''

Egal, hab jetzt das Multihandwerkerscript. Missfällt mir zwar insofern, als dass es vorgefertigte Routen hat (gerade fürs Lumbern), aber das is LJING, soviel kann ich ;)

Danke an den Sender an dieser Stelle :)
Benutzeravatar
TarTheCat
Offline
 
Alter: 39
Beiträge: 109
Registriert: Do 7. Aug 2014, 10:43

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Admin Valletto » Mo 1. Sep 2014, 15:17

Welche Anforderungen werden denn an ein wirklich gutes Lumberscript gestellt?

Anforderungen Lumberscript
- Axt finden und in die Hand nehmen
- Bäume suchen
- zu Bäumen gehen
- Bäumen abholzen bis sie leer sind
- Holz in Bretter sägen
- Holz in Packtier legen
- Packtier füttern
- Holz zählen

Noch irgendwas?

Und wo wir dabei sind... Welche Anforderungen muss ein gutes Miningscript erfüllen?

Anforderungen Miningscript
...
Freiheit ist, das zu tun was man möchte, solange man dabei nicht die Freiheit eines anderen beschneidet.

Je detaillierter die Bug-Beschreibung, desto einfacher die Problemlösung!
Benutzeravatar
Admin Valletto
Staff
Offline
 
Beiträge: 529
Registriert: Fr 21. Aug 2009, 15:15

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Kradorus » Mo 1. Sep 2014, 17:27

Weitere Anforderungen:^^
-Holz pro Stunde anzeigen
-Kräuter ernten
-Holz stappeln
-Reags ernten, die neben den Bäumen sind
(-feste Routen um monster zu meiden)

Kradorus
Offline
 
Beiträge: 31
Registriert: Mo 26. Aug 2013, 16:37

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Angerania » Sa 20. Sep 2014, 06:57

Holz pro stunde als GM ca 1800.
Kräuter sammeln geht erst bei 100 und man braucht ein Werkzeug.
Stapeln könnt buggy werden.
Monster spawnen und werden unter umständen auch gezogen dagegen kannst bis auf vorher säubern nix machen.
So fehlt noch was? :P

Angerania
Offline
 
Beiträge: 27
Registriert: Do 7. Nov 2013, 10:48

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Tontaube » Sa 20. Sep 2014, 07:54

stapeln direkt ins packi geht. mein script kann das. fragt mich aber net wies geht

was die monster angeht:
wenn du gut bist, kannst du bei sichtung einer schlange:
-deine position speichern
-stab, streithammer oder so zur hand nehmen
-"all guard me" schreien
-die schlange attakieren und per "follow" folgen
-(wenn die schlange tot ist)axt wieder in die hand nehmen
-zurück zur gespeicherten position laufen
-weiterlumbern

ist aber halt viel arbeit.
alternativ könntest du bei schlangensichtung einfach das script pausieren (vielleicht einmal ".where" schreiben) und nen warnton abspielen
dann kann man sich wenigstens selbst helfen.

die selbe "position speichern" funktion könntest du auch für die wildkräuter und die wilden reags nutzen

ausserdem lügt angerania -mal wieder- wie gedruckt :P die alte lügensau :lol:
wildkräuter ernten geht ab dem moment wo sie beim holzfällen auch spawnen, 80% mein ich. benötigt wird eine kräutersichel.
wilde reagenzien gehen ab 70 oder 80 Lumbern. ab 100% gibt es allerdings eine chance auf samen
Diese Signatur ist in ihrem Land leider nicht verfügbar, da die GEMA noch nicht reich genug ist.

Helft im Sigena Wiki mit!
Benutzeravatar
Tontaube
Offline
 
Beiträge: 251
Registriert: Fr 23. Nov 2012, 07:43

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Stebo » Sa 20. Sep 2014, 13:55

Wilde Reags gingen bei mir mir nem Startskill von 50 % Holzfällen.

Gruß VanCanto
Vendor Canto sitzt im weisen Zelt östlich vom Teleport *Magierlehranstalt*

Stebo
Offline
 
Beiträge: 94
Registriert: Sa 20. Okt 2012, 13:51

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Bonbori » Sa 20. Sep 2014, 15:32

Ernten kann man die immer. Aber je kleiner der Lumberskill, desto öfter failt man halt beim Ernten.
Benutzeravatar
Bonbori
Offline
 
Beiträge: 693
Registriert: Di 28. Dez 2010, 01:41

Re: EasyUO - Scriptsorgen - Lumberscripte

Beitragvon Domo » Sa 20. Sep 2014, 16:35

Ich würde sowas in der Art gut finden;


Bild
Benutzeravatar
Domo
Offline
 
Beiträge: 295
Registriert: Fr 17. Apr 2009, 21:08


Zurück zu Fragen, Hilfe, Probleme - Das Forum für Neulinge

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste