Revision [83]
This is an old revision of AutomatikLoot made by WangChi on 2013-01-11 13:02:12.
AutomatikLoot(Ver1.2.9 ).txt
Das ist ein Beispiel.
set %TasteContLeeren F3 set %SkriptBeenden F12 set %Skriptpause F11 set %Skriptweiter F10 set %Lootcountdown 50 ;(sec) Ist die Zeit abgelaufen wird gelootet. ;Verschwindet eine Leiche bevor du gelootet hast verringere die zeit. ;Möchtest du das looten verspäten ? Erhöhe die zeit. ;Bug List ;Reichweite anpassen ;Dieses Automatische loot skript soll so funktionieren wie ein Player denkt. ;Es soll keine weitere interaktion mit dem Skritp ermöglichen. ;Es soll wie ein Setup am Anfang wirken. ;Eine Log soll im Jornall angezeigt werden. ;Jede funktion ist in Seperate Mödule gegliedert. ;Wenn möglich keine GOTOs verwenden nur gosubs. ;If anweißungen ordnungs gemäß ausführen. ;Nur dan nötigste der abfragen in der schleife haben!! Sonst Performenc einbuße. ;Vermeiden von Sinnlosen Abfragen! ;############################################################################ ;=======>FERTIG! Player waehlt aus mit wem er Spielen möchte. ;=======>FERTIG! Status gump da? Ja(Weiter im setup)/NO (gump öffnen) außer event property von #CHARID ;=======>FERTIG! Ist sein Backpack offen? yes / No (Öffnen an Pos unteren Bildschirmrand) ;=======>FERTIG! Ist es ein Magier oder ein Kriger oder ein Handwerker? Verhältniss HP zu Stärke, Mana zu int, stimana zu geschik ;=======>FERTIG! Besitzt er Heiler im Gepck? ;=======>FERTIG! Kann er Obduktion? Wenn gläser im gepack sind? Kann er es! ;=======>FERTIG! Kann er Häuten? Wenn ein Messer im Gepäck ist? Kann er es! Messer kaputt? Ist noch eines da? Nein? Funktion geht offline! ;=======>FERTIG! Gegenstände hinzugefügt erkennung! (Heiler, r- gläser, H-messer, S-messer) ;=======>FERTIG! Hat er einen Lootbeutel? Sind schon alle Beutel besetzt? Gibt es einen leeren beutel? Dann soll der zum Lootbeutel werden! ;=======>FERTIG! & + .grab cont ;=======>FERTIG! Schlachten ( GMH || INF = Type messers) vor Häuten (Nur eine Liste mit Tiren die geschlachtet werden gilt) ;=======>FERTIG! ;Reaktion ist zu langsam Fängt erst an zu looten wenn geschwindigkeit auf 0 ist. ;Looten (50%) ;Hatt er mehere Beutel? Leere? Def für Sortieren Skript! ; 1. Magie regs sort! Felle Sort! Samen Sort! Alchemistische regs! Zauberrollen Sort! Edelsteine sort! Ganzer rest sort! ;(Ganzer rest sort schreibt ein LOG SCHEMA: Name des Zeit....Items...TYP des ITEMS....) für später ;=======>FERTIG! ;Bodensuche und gegenstände anzeigen Es werden gegenstände nur angezeigt. Aber nix unternommen! ;=======>FERTIG! Container Looten ;Sortiren (eigene Wariante erfinden) Schon beim Looten Sortieren ;=======>FERTIG!;Ihr ereicht eine Stadt? Dann Script Sleep! Wider in der wildniss? Na dan los. ;Move ist schlecht wenn ein Zaun da steht. (Check ob Blitzwand da steht ;oder Parawand oder Normale wand Dann nicht laufen. ;=======>FERTIG!; Initzialisiere Setup.... ;=======>FERTIG!;Funktion .... wird geladen... ;=======>FERTIG! ;Funktion .... ist online. ;=======>FERTIG! ;Funktion ... geht offline. (ROT) ;=======>FERTIG!;usw. ;=======>FERTIG!; OH der gegenstand ist wider da!!! (Gruen) ;=======>FERTIG!;Funktion .... ist wider online. (Gruen) ;=======>FERTIG!;Funktion .... ist online. (Gruen) ;=======>FERTIG!;Initzialisierung beendet! ;=======>FERTIG!;Kann losgehen... ;####################################################################################################### ;Definiere Variablen ;####################################################################################################### ;set contpos x y (Status, Backpack) ;####################################################################################################### ;Inhaltsverzeichniss ;####################################################################################################### ; -> Basiselemente Laden ; -> Identifikation der Charackterklasse (K,M,H) ; -> Beutel Inventarisierung ; -> Skill on/off erkennung übergreifend in Hauptfunktion (Obduktion,Häuten,Heilen (Tränke)) unter Module ; -> Hauptfunktionen "A" Klasse ; ->Hauptfunktion "Scan" ; ->Hauptfunktion "Kampf" ; -> Module "E" Klasse (Werden von "A" aufgerufen. ; (Extra Inhaltsverzeichniss am Anfang der Module ;####################################################################################################### ;Basiselemente Laden um Player auszuwaehlen ;####################################################################################################### set %Lootcountdown %Lootcountdown - 1 ignoreItem reset set #SYSMSGCOL 1090 set %Clientanz #CLICNT For %Canz 1 %Clientanz { repeat { event Macro 8 2 } until ( status_gump in #CONTNAME && ( CBPC in #CONTKIND || OZIC in #CONTKIND ) && 432_183 in #CONTSIZE ) If ( #CHARNAME = N/A ) { repeat { } until ( #CHARNAME <> N/A ) } If ( #CHARNAME <> N/A ) { set %CHARNAME . %Canz #CHARNAME UOXL SWAP } } set #menubutton x menu Clear menu Window Title Auto Loot (Jeder) menu Window Color $f3f3f3 menu window transparent 100 menu Window Size 250 170 For %Canz 1 %Clientanz { set %R . %Canz %CHARNAME . %Canz } set %CHK_posx 20 set %CHK_posy 20 menu Text text_11 %CHK_posx %CHK_posy Wählt die Person: set %CHK_posy %CHK_posy + 30 menu Combo Create Combo1 %CHK_posx %CHK_posy 170 For %menuget 1 %Clientanz { menu Combo Add Combo1 %R . %menuget } menu Combo Select Combo1 %CombomenuLOOT set %Pwahl %CombomenuLOOT set %CHK_posy %CHK_posy + 50 menu Button B_01 %CHK_posx %CHK_posy 170 50 Start menu Show set %msg #false while ( %msg <> #true ) { if ( #menuButton <> x ) { menu get Combo1 set %ComboinhaltLoot %R . #menuRes set #menuButton x set %msg #true } } menu Hide while %ComboinhaltLoot <> #charname { If ( %ComboinhaltLoot = N/A ) { halt } uoxl swap } event Macro 8 7 repeat { } until ( container_gump in #CONTNAME && ( IWM in #CONTKIND || WXS in #CONTKIND ) && 230_204 in #CONTSIZE && #CONTID = #BACKPACKID ) ;contPos 550 550 set %Timestart #SCNT set %zeigetime #SCNT - %Timestart set %zeigetime %Lootcountdown - %zeigetime event sysMessage ##Programm wird geladen## ;####################################################################################################### ;Identifikation der Charackterklasse ;####################################################################################################### set #SYSMSGCOL 1091 set %STRERGEBNISS #MAXHITS / #STR If ( %STRERGEBNISS = 2 ) { ;Ich bin Kriger event sysMessage Der Krieger #CHARNAME ist online } If ( %STRERGEBNISS = 0 ) { ;Ich bin Magier event sysMessage Der Magier #CHARNAME ist online } If ( %STRERGEBNISS = 1 ) { ;Ich bin Handwerker event sysMessage Der Handwerker #CHARNAME ist online } set %Hitsdrittel #MAXHITS / 2 - 10 set %heilhitsbei #MAXHITS - %Hitsdrittel set %heilungabhp %heilhitsbei event sysMessage Heilung erfolgt bei %heilungabhp HP. event sysMessage ==> Bitte warten... setUOtitle Ultima , #SPC , Online , #SPC , - , #SPC , #CHARNAME (Pergon) ;####################################################################################################### ;Identifikation der Charackterklasse Ende ;####################################################################################################### ;####################################################################################################### ;Beutel Inventarisierung ;####################################################################################################### event sysMessage ==> Bitte warten... event sysMessage ==> Initzialisiere Inventar... If ( #CHARID in *NAMEundIDfromCONT && N/A notin *NAMEundIDfromCONT ) { event Property *IDfromCONT str Pos #Property $ set %temp #StrRes - 1 str Left #Property %temp set %temp1 #StrRes event sysMessage %temp1 [ *IDfromCONT ] set %LootBeutel *IDfromCONT } else { Display Lootbehälter jetzt wählen. event macro 1 0 .grab cont repeat { } until ( #TARGCURS = 1 ) repeat { } until ( #TARGCURS = 0 ) set %LootBeutel #LTARGETID set %NAMEundID #CHARID str Ins %NAMEundID %LootBeutel 6 set *NAMEundIDfromCONT #strRes set *IDfromCONT %LootBeutel } event sysMessage ==> Initzialisierung Beendet ;####################################################################################################### ;Beutel Inventarisierung Ende ;####################################################################################################### ;####################################################################################################### ;Skill on/off erkennung übergreifend in Hauptfunktion ;####################################################################################################### event sysMessage ==> Bitte warten... event sysMessage ==> Skills werden uberpruft... gosub ScanSkills ;Geschwindigkeits berechnung wenn der Player Laeuft. ;Soll dazu benutzt werden um Monster oder Gegenstände nicht zu verarbeiten wenn man zu schnell ist. 9m/s ist der Schwellwert ;vom Laufen zum Rennen bei mir. set %Geschwindigkeit 0 set %list 0 set %listmenge 1 set %Lastnot 0 set %Timestart #SCNT set %Nr2 0 set %Leichendaanz 0 set %jrnlastadt #JINDEX while #true { set %StartFeldx #CHARPOSX set %startFeldy #CHARPOSY set %StartTime #SCNT set %StartTime2 #SCNT2 repeat { gosub Scan gosub Heiler if #JINDEX > %jrnlastadt { set %jrnlastadt %jrnlastadt + 1 scanjournal %jrnlastadt if Ihr_betretet_das_Gebiet in #JOURNAL { set %stadtzu 0 set %jrnlastadt #JINDEX } If ( nicht_mehr_schuetzen in #JOURNAL || Ihr_verlasst in #JOURNAL ) { set %stadtzu 1 set %jrnlastadt #JINDEX } } if ( %stadtzu <> 0 ) { set %EndTime #SCNT set %EndTime2 #SCNT2 If ( %EndTime2 - %StartTime2 > 5 ) { ;Kräuter ;Nachtkraut (auch gräser) ID: MTE UXE ;Sumpfkraut ID: ZIJ ;Torf HUF ;FeuerkrautPflanzen ID: YWE ;Blutegel: EUF ;Schwarzer Lotus: GHN ;Leber OWK ;Same UPE ;steinkraut GAJ findItem ZIJ_HUF_YWE_EUF_MTE_GHN_OWK_UPE_GAJ G_22 set %sucheanz #FINDCNT set %entfernungkräuter #FINDDIST if ( #FINDKIND <> -1 ) { If ( #FINDDIST > 1 ) { If ( ( #FINDID = %FID . %sucheanz && ( %FIDzahler . %sucheanz < 5 || %FIDzahler . %sucheanz = N/A ) ) || #FINDTYPE in ZIJ_YWE_GHN_GAJ ) { event Property #FINDID event exmsg #FINDID 3 38 Distance: #FINDDIST => #property set %FIDzahler . %sucheanz %FIDzahler . %sucheanz + 1 If ( %entfernungkräuter < 2 ) { gosub Loot } } If ( #FINDID <> %FID ) { set %FID . %sucheanz #FINDID } } } ignoreitem #FINDID 5 If ( %sucheanz = 0 ) { ignoreitem reset 5 } set %StartTime2 #SCNT2 } } } until ( %EndTime - %StartTime > 1 ) set %Timestamp %EndTime - %StartTime set %EndFeldx %StartFeldx - #CHARPOSX set %EndFeldy %startFeldy - #CHARPOSY If ( %EndFeldx < 0 ) { set %EndFeldx %EndFeldx * -1 } If ( %EndFeldy < 0 ) { set %EndFeldy %EndFeldy * -1 } set %Feldergelaufen %EndFeldx + %EndFeldy ;1sec/Tackt ;V = Felder / Time set %Geschwindigkeit %Feldergelaufen / %Timestamp If ( %ComboinhaltLoot <> #charname ) { Display %ComboinhaltLoot ist nicht mehr da. halt } If ( %zeigetime <> 0 && %zeigetime <> %Lootcountdown ) { setUOtitle Ultima , #SPC , Online , #SPC , - , #SPC , #CHARNAME (Pergon) , #SPC , ( V: %Geschwindigkeit felder/s )#( Loote in %zeigetime sec ) set %nochaktiv 0 } If ( %zeigetime = %Lootcountdown || %zeigetime = N/A ) { setUOtitle Ultima , #SPC , Online , #SPC , - , #SPC , #CHARNAME (Pergon) , #SPC , ( V: %Geschwindigkeit felder/s ) If ( %nochaktiv = 0 ) { set #SYSMSGCOL 70 event sysMessage Es wird gelootet! (Last) gosub Loot set %Timestart #SCNT } set %nochaktiv 1 } } halt ;####################################################################################################### ;Hauptfunktionen "A" Klasse ;####################################################################################################### ;####################################################################################################### ;Hauptfunktion "Scan" ;####################################################################################################### Sub Scan ;----------------------------->Scan Leichen If ( %Nr2 <> 0 ) { for %ignoreNr2 1 %Nr2 { ignoreitem %MonsterLeicheIDignore . %ignoreNr2 } } If ( %Nr2 > 20 ) { set %Nr2 0 } finditem MYL_YFM G_15 set %Leichenda #FINDCNT If ( %Leichendaanz < %Leichenda ) { set %Leichendaanz %Leichenda } If ( %Leichenda <> 0 && #CHARGHOST <> yes ) { set #lpc 250 for %Nr 1 %Leichenda { finditem MYL_YFM G_15 set %Leichenda #FINDCNT set %MonsterLeicheID . %Nr #FINDID set %MonsterLeicheDIST . %Nr #FINDDIST event Property #FINDID str Pos #Property $ set %temp #StrRes - 1 str Left #Property %temp set %temp1 #StrRes str Del %temp1 1 11 set %MonsterLeicheName . %Nr #StrRes ignoreitem #FINDID } set #lpc 10 } ignoreitem reset ;----------------------------->ScanSkills (Kein Kampf und Keine Leichen) IF ( #ENEMYID = N/A && #FINDCNT = 0 ) { gosub ScanSkills } ;-------Timeloot If ( #ENEMYID = N/A && %Leichenda = 0 ) { set %Timestart #SCNT set %zeigetime #SCNT - %Timestart set %zeigetime %Lootcountdown - %zeigetime } If ( #ENEMYHITS <> N/A && #ENEMYID <> N/A ) { gosub Lootentscheidung set %zeigetime #SCNT - %Timestart set %zeigetime %Lootcountdown - %zeigetime If ( %zeigetime <> 0 ) { setUOtitle Ultima , #SPC , Online , #SPC , - , #SPC , #CHARNAME (Pergon) , #SPC , ( V: %Geschwindigkeit felder/s )#( Loote in %zeigetime sec ) } If ( %zeigetime = 0 ) { setUOtitle Ultima , #SPC , Online , #SPC , - , #SPC , #CHARNAME (Pergon) , #SPC , ( V: %Geschwindigkeit felder/s )#( Loote in 0 sec ) } gosub Heiler } ;----------------------------->KampfScan (Leichen wurden gefunden. Kampf ist im gange oder kein Kampf weil alles tot ist.) If ( %Leichenda <> 0 && #CHARGHOST <> yes ) { If ( %Geschwindigkeit = 0 || %Geschwindigkeit = 1 ) { set %Player #false for %Leichenanwesend 1 %Leichendaanz { If ( %MonsterLeicheDIST . %Leichenanwesend = 0 || %MonsterLeicheDIST . %Leichenanwesend = 1 || %MonsterLeicheDIST . %Leichenanwesend = 2 ) { set %Leiche %MonsterLeicheID . %Leichenanwesend repeat { event Property %Leiche str Pos #Property $ set %temp #StrRes - 1 str Left #Property %temp set %temp1 #StrRes } until ( Kadaver notin %temp1 ) If ( Leichnam in %temp1 ) { event exmsg %Leiche 3 48 <Player> ignoreitem %Leiche set %Player #true } If ( %Player = #false ) { gosub Kampf set %MonsterLeicheID . %Leichenanwesend XXXXX set %MonsterLeicheDIST . %Leichenanwesend 20 } } else { } } } } ;----------------------------->Hotkey onHotKey %TasteContLeeren { gosub LootCont } onHotKey %Skriptpause { event sysMessage Wird sofort gestopt!! set %spause 1 while ( %spause = 1 ) { onHotKey %Skriptweiter { event sysMessage Skript wird gestartet... set %spause 0 } } } onHotKey %SkriptBeenden { event sysMessage Wird sofort beendet!! halt } return ;####################################################################################################### ;Hauptfunktion "Scan" Ende ;####################################################################################################### ;####################################################################################################### ;Hauptfunktion "Kampf" ;####################################################################################################### Sub Kampf event Property %Leiche str Pos #Property $ set %temp #StrRes - 1 str Left #Property %temp set %temp1 #StrRes str Del %temp1 1 11 set #SYSMSGCOL 37 set %Monstergefunden #StrRes event sysMessage %Monstergefunden set #SYSMSGCOL 49 gosub Haeuten gosub Zapfen ;gosub Haeuten set %Nr2 %Nr2 + 1 set %MonsterLeicheIDignore . %Nr2 %Leiche return ;####################################################################################################### ;Hauptfunktion "Kampf" Ende ;####################################################################################################### ;####################################################################################################### ;Module "E" Klasse ;####################################################################################################### ;Ladevorgangg ;++++++++++++++++++++++++++++++ ; -> ScanSkills P(Permanden wenn kein Kampf ist) ; -> Regset P(Permanden wenn kein Kampf ist) ; -> Monsterlist E(Einmalig geladen) ; -> Haeuten ; -> Loot ; -> Zapfen ; -> Heiler ; -> LootCont ; -> MSGS (Verwendete Sätze für JornalScann die in mehreren Häutungsrutienen vorkommen) ;++++++++++++++++++++++++++++++ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->ScanSkills ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ Sub ScanSkills ;----------------------------->Scan Schlachten ;Liegt ein Schlachtmesser im Backpack So kann ich Schlachten. finditem GMH_INF C_ , #BACKPACKID If ( #FINDCNT <> 0 ) { If ( %Schlachten = #false || %Schlachten = N/A ) { set #SYSMSGCOL 70 event sysMessage "Schlachten" ist Online. } set %Schlachten #true set %SLMesser #FINDCNT set %Schlachtmesser #FINDID } else { If ( %Schlachten = #true || %Schlachten = N/A ) { set #SYSMSGCOL 37 event sysMessage Ich kann nicht Schlachten. } set %Schlachten #false } ;----------------------------->Scan Haeuten ;Liegt ein Haeutungsmesser im Backpack So kann ich Haeuten. finditem CNF C_ , #BACKPACKID If ( #FINDCNT <> 0 ) { If ( %Haeuten = #false || %Haeuten = N/A ) { set #SYSMSGCOL 70 event sysMessage "Haeuten" ist Online. } set %Haeuten #true set %HMesser #FINDCNT set %Haeutungsmesser #FINDID } else { If ( %Haeuten = #true || %Haeuten = N/A ) { set #SYSMSGCOL 37 event sysMessage Ich kann nicht Haeuten. } set %Haeuten #false } ;----------------------------->Scan Obduktion ;Liegen Reagenzglaeser im Backpack So kann ich Obduktion. finditem WLF C_ , #BACKPACKID If ( #FINDCNT <> 0 ) { If ( %Zapfen = #false || %Zapfen = N/A ) { set #SYSMSGCOL 70 event sysMessage "Obduktion" ist Online. } set %Zapfen #true set %ZReagenzglaeser #FINDSTACK If ( #FINDCNT <> %testreg || %testreg = N/A ) { ;Definition der Glaeser Qualität gosub Regset } } else { If ( %Zapfen = #true || %Zapfen = N/A ) { set #SYSMSGCOL 37 event sysMessage Ich kann nicht obduzieren. } set %Zapfen #false } ;----------------------------->Scan Heilung ;Liegen Heiltraenke im Backpack So kann ich Heilen. finditem WUF C_ , #BACKPACKID If ( #FINDCNT <> 0 && #FINDCOL = 1359 ) { If ( %Heilen = #false || %Heilen = N/A ) { set #SYSMSGCOL 70 event sysMessage "Heilen" ist Online. } set %Heilen #true set %HFlaschen #FINDSTACK } else { If ( %Heilen = #true || %Heilen = N/A ) { set #SYSMSGCOL 37 event sysMessage Keine Heiltraenke gefunden. } set %Heilen #false } ;----------------------------->Scan Monsterliste laden einmalig If ( %startschuss = N/A ) { set #SYSMSGCOL 1091 event sysMessage ==> Skills uberpruft. set #SYSMSGCOL 1090 gosub Monsterlist event sysMessage ##Kann losgehen... set %startschuss #true } return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->ScanSkills Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Regset ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ Sub Regset set %Klasse1 N/A set %Klasse2 N/A set %Klasse3 N/A set %Klasse4 N/A set %Klasse5 N/A set %Klasse6 N/A ;Klasse 1 = Stärksten Monster bis Klasse 6 Normale Monster ;1 Drachen ;2 Dämonen ;Sollten nur noch normale Gläser Klasse6 da sein, so werden die auch für Klasse1 Monster genommen. set %Klassename1 N/A set %Klassename2 N/A set %Klassename3 N/A set %Klassename4 N/A set %Klassename5 N/A set %Klassename6 N/A ;Hier finden wir die Anzahl Reagenzglaeser im Backpack finditem WLF C_ , #BACKPACKID set %testreg #FINDCNT For %setregid 1 #FINDCNT { ;Hier finden wir die Reagenzglaeser im Backpack und sie werden einem Qualitätsstandard zugeordnet. finditem WLF C_ , #BACKPACKID Set %Phiolen #FindID event Property %Phiolen str Pos #Property $ set %tempd #StrRes set %temp #StrRes - 1 str Left #Property %temp set %Phiolengefunden #StrRes str Del #Property 1 %tempd set %tempsatz #strRes str Pos %tempsatz $ set %tempsatzpos #strRes - 1 str Left %tempsatz %tempsatzpos set %Phiolenqualitaet #strRes ;Beste Qualität If ( Except in %Phiolengefunden ) { If ( Titan in %Phiolenqualitaet || Obsidian in %Phiolenqualitaet ) { set %Klasse1 #FINDID set %Klassename1 #Property } If ( Glas in %Phiolenqualitaet ) { set %Klasse3 #FINDID set %Klassename3 #Property } } ;Ende ;Mittlere Qualität If ( Meister in %Phiolengefunden ) { If ( Titan in %Phiolenqualitaet || Obsidian in %Phiolenqualitaet ) { set %Klasse2 #FINDID set %Klassename2 #Property } If ( Glas in %Phiolenqualitaet ) { set %Klasse4 #FINDID } } else { ;Normale Qualität If ( Titan in %Phiolenqualitaet && Except notin %Phiolengefunden && Meister notin %Phiolengefunden ) { set %Klasse5 #FINDID set %Klassename5 #Property } If ( Glas in %Phiolenqualitaet || Obsidian in %Phiolenqualitaet && Titan notin %Phiolenqualitaet && Except notin %Phiolengefunden && Meister notin %Phiolengefunden ) { set %Klasse6 #FINDID set %Klassename6 #Property } } ignoreItem #FINDID 1 } ignoreItem reset 1 return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Regset Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Monsterlist ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ Sub Monsterlist ;Obduktion Klassendefinition set %ExcMeistObsidanTitan1 drache set %ExcMeistObsidanTitananz 1 set %MeistNormalObsidanTitan1 monen set %MeistNormalObsidanTitananz 1 ;************************* ;*** Monsterbibliothek *** ;************************* ;Diese Monster sollen ignoriert werden.: set %monsteranzahli 21 set %monstertypi1 Skelett set %monstertypi2 orc set %monstertypi3 Zombie set %monstertypi4 Geist set %monstertypi5 Ork set %monstertypi6 Beholder set %monstertypi7 Untoter set %monstertypi8 Liche set %monstertypi9 Sarlacc set %monstertypi10 Gespenst set %monstertypi11 Terathen set %monstertypi12 glotz set %monstertypi13 ratte set %monstertypi14 baer set %monstertypi15 scorpion set %monstertypi16 schatten set %monstertypi17 schleim set %monstertypi18 Kobold set %monstertypi19 grizzly set %monstertypi20 hund set %monstertypi21 Surat ;Ein Monster mit keiner Antwort soll aber gehautet werden.: set %monsteranzahlkA 10 set %monstertypkA1 engel set %monstertypkA2 Silberdrache set %monstertypkA3 gargoyle set %monstertypkA4 naga set %monstertypkA5 koenig set %monstertypkA6 golem set %monstertypkA7 fee set %monstertypkA8 koenigin set %monstertypkA9 Hordendaemon set %monstertypkA10 Frostlord ;Ein Monster mit 2 Anworten.: set %monsteranzahl2A 7 set %monstertyp2A1 wolf set %monstertyp2A2 schlange set %monstertyp2A3 Woelfin set %monstertyp2A4 Zentauren set %monstertyp2A5 Ridgeback set %monstertyp2A6 Python set %monstertyp2A7 drache ;Zapfen Ignorire monster set %ZapfMonsterIanz 6 set %ZapfMonsterI1 Skelett set %ZapfMonsterI2 Zombie set %ZapfMonsterI3 Liche set %ZapfMonsterI4 Gespenst set %ZapfMonsterI5 schatten set %ZapfMonsterI5 Sarlacc ;Monster für Schlachten set %Schlachtmonsteranz 13 set %Schlachtemonster1 echse set %Schlachtemonster2 woelf set %Schlachtemonster3 baer set %Schlachtemonster4 grizzly set %Schlachtemonster5 hund set %Schlachtemonster6 wolf set %Schlachtemonster7 ostard set %Schlachtemonster8 Lama set %Schlachtemonster9 kuh set %Schlachtemonster10 Wahlross set %Schlachtemonster11 Haesin ;set %Schlachtemonster12 Hase Phasenspinne = hase set %Schlachtemonster12 Bulle set %Schlachtemonster13 Hirsch ;************************* ;* Ende Monsterbibliotek * ;************************* return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Monsterlist Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Haeuten ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ sub Haeuten ;NZG Blut ;KCL__Blutlache$ ;WWK__Blutlache$ ;UWK__Blutlache$ ;EDL__Blutlache$ ;AXK__Blutlache$ finditem NZG_KCL_WWK_UWK_EDL_AXK G_12 set %anz #FINDCNT For %1 1 %anz { finditem NZG_KCL_WWK_UWK_EDL_AXK G_12 ignoreitem #FINDID } set %MmtwoAnsers #false set %monsternoAnswer #false set %monsterallother #false set %ignorezeuch 0 set %gefunden 0 If ( %Haeuten = #true || %Schlachten = #true ) { ;Diese Monster sollen geschlachtet werden---- set %SLSchlachten 1 If ( %Schlachten = #true ) { for %i 1 %Schlachtmonsteranz { If ( %Schlachtemonster . %i in %Monstergefunden ) { event sysMessage %Monstergefunden wird geschlachtet und nicht gehaeutet! set #LTARGETID %Leiche set #LOBJECTID %Schlachtmesser set #LTARGETKIND 1 set %jrnla #JINDEX event macro 17 0 target event macro 22 0 set %SLSchlachten 1 while ( %SLSchlachten = 1 ) { if #JINDEX > %jrnla { set %jrnla %jrnla + 1 scanjournal %jrnla if Ihr_seid_zu_weit_weg in #JOURNAL { event sysMessage Schlachten wurde Abgebrochen! return } if ( Ihr_wart in #JOURNAL && Rippchen in #JOURNAL ) { set %SLSchlachten 0 } if ( An_dieser_Leiche_ist_nichts in #JOURNAL ) { set %SLSchlachten 0 } } } set %gefunden 1 } } } ;Diese Monster sollen ignoriert werden---- for %i 1 %monsteranzahli { If %monstertypi . %i in %Monstergefunden { set %ignorezeuch 1 set %gefunden 1 } } set #LTARGETID %Leiche set #LOBJECTID %Haeutungsmesser ;Ende wait 1 ;Diese Monster sollen ignoriert werden-----^ ;Ein Monster mit keiner Antwort soll aber gehautet werden.: if ( %gefunden <> 1 ) { set %gefunden 0 set %monsternoAnswer #true for %i 1 %monsteranzahlkA { If %monstertypkA . %i in %Monstergefunden { set %gefunden 1 set #LTARGETKIND 1 set #LOBJECTID %Haeutungsmesser event macro 17 0 target event macro 22 0 } } } ;Ende wait 1 ;Ein Monster mit keiner Antwort soll aber gehautet werden.:-----^ ;Ein Monster mit 2 Anworten.:------------------------------------ if ( %gefunden <> 1 ) { set %gefunden 0 for %i 1 %monsteranzahl2A { If %monstertyp2A . %i in %Monstergefunden { set %gefunden 1 set %MmtwoAnsers #true set #LTARGETKIND 1 set #LOBJECTID %Haeutungsmesser set %jrnlg #JINDEX event macro 17 0 target event macro 22 0 set %exitwhile1 #false while ( %exitwhile1 = #false ) { if #JINDEX > %jrnlg { set %jrnlg %jrnlg + 1 scanjournal %jrnlg if Ihr_konntet_ein_Fell_von_der_Leiche_schneiden. IN #JOURNAL { set %Test #JOURNAL } set %ein Ihr_konntet_ein_Fell_von_der_Leiche_schneiden. if ( %Test = %ein ) { set %exitwhile1 #true } For %zahl 1 50 { set %temp Ihr_konntet_ , %zahl , _Felle if %temp in #Journal { set %exitwhile1 #true } } gosub MSGS } } } } } ;Ende wait 1 if ( %gefunden <> 1 ) { ;event sysMessage (Rubrik rest) Das ist der Rest undgelistet! set %monsterallother #true set #LTARGETKIND 1 set #LOBJECTID %Haeutungsmesser set %jrnlg #JINDEX event macro 17 0 target event macro 22 0 set %exitwhile2 #false while ( %exitwhile2 = #false ) { finditem NZG G_12 If ( #FINDCNT <> 0 ) { set %exitwhile2 #true } if #JINDEX > %jrnlg { set %jrnlg %jrnlg + 1 scanjournal %jrnlg finditem NZG G_12 If ( #FINDCNT <> 0 ) { set %exitwhile2 #true } if Ihr_legt_einen_Gegenstand_bei_der in #JOURNAL { set %exitwhile2 #true } if Ihr_wisst_nicht in #JOURNAL { set %exitwhile2 #true } gosub MSGS } } } ;Ende ;Ein Monster mit 2 Anworten.:------------------------------------^ If ( %ignorezeuch = 0 ) { If ( %SLSchlachten = 0 ) { event sysMessage Geschlachtet! } If ( %SLSchlachten = 1 ) { event sysMessage Gehaeutet! } } else { event sysMessage Ignoriert! } } return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Haeuten Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Loot ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ sub Lootentscheidung If ( %Timestart <> N/A ) { If ( ( #SCNT - %Timestart ) > %Lootcountdown && ( %Geschwindigkeit = 0 || %Geschwindigkeit = 1 ) ) { set %testtime #SCNT - %Timestart set #SYSMSGCOL 70 event sysMessage Es wird gelootet! ( %testtime sec ) gosub Loot set %Timestart #SCNT } } return sub Loot ;Problem return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Loot Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Zapfen ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ sub Zapfen If ( %Zapfen = #true ) { set %ignorezeuchZ 0 set %gefundenZ 0 ;Diese Monster sollen ignoriert werden---- for %iZ 1 %ZapfMonsterIanz { If %ZapfMonsterI . %iZ in %Monstergefunden { set %ignorezeuchZ 1 set %gefundenZ 1 } } If ( %gefundenZ = 0 ) { set %R1 #false set %R2 #false set #SYSMSGCOL 49 event Property %Leiche str Pos #Property $ set %temp #StrRes - 1 str Left #Property %temp set %temp1 #StrRes str Del %temp1 1 11 set %Monstergefunden #StrRes For %Monsteridentify 1 %ExcMeistObsidanTitananz { If ( %ExcMeistObsidanTitan . %Monsteridentify in %Monstergefunden ) { set %R1 #true set %abKlasse 1 } } ;Ende For %Monsteridentify 1 %MeistNormalObsidanTitananz { If ( %MeistNormalObsidanTitan . %Monsteridentify in %Monstergefunden ) { set %R2 #true set %abKlasse 2 } } ;Ende If ( %R1 = #false && %R2 = #false ) { set %abKlasse 4 } ;Ende set %Klassenanz 6 set %gemacht 0 For %dlKlassen %abKlasse %Klassenanz { If ( %Klasse . %dlKlassen <> N/A ) { event sysMessage GK %dlKlassen bei %Monstergefunden set %gemacht 1 Set #LOBJECTID %Klasse . %dlKlassen Event macro 17 Target Set #LTargetID %Leiche Set #LTargetKind 1 Event macro 22 set %dll 3 goto rausaus } } ;Ende rausaus: } If ( %ignorezeuchZ = 0 && %gemacht = 1 ) { event sysMessage Gezapft! } else { event sysMessage Ignoriert! } } return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Zapfen Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Heiler ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ sub Heiler If ( %Heilen = #true ) { set #SYSMSGCOL 49 if ( #HITS < %heilungabhp ) { Finditem WUF C_ , #BackpackID for #FindIndex #FindCNT 1 { If ( #FindCol = 1359 ) { set #LobjectID #FindID set %jrnla #JINDEX event macro 17 } } ;Ende while #true { if #JINDEX > %jrnla { set %jrnla %jrnla + 1 scanjournal %jrnla if Ihr_müsst_warten in #JOURNAL { event sysMessage Ihr wartet 3s. wait 3 return } if #HITS > 71 { event sysMessage Ihr wurdet geheilt! goto weiter } } } ;Ende weiter: } } If ( %STRERGEBNISS = 0 ) { set %HPwerthalb #MAXHITS / 2 If ( #HITS < %HPwerthalb ) { set #SYSMSGCOL 48 event sysMessage Ihr solltet euch Heilen!!! while ( #HITS < %HPwerthalb ) { } } } return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->Heiler Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->LootCont ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ sub LootCont set #SYSMSGCOL 300 set %findenTypen %FindTypen set %Ziel_Container %LootBeutel event macro 17 0 #CONTTYPE set %Container #CONTID finditem %Ziel_Container nochmal_suchen: finditem * C_ , %Container if #findkind <> 0 { goto suche_beenden } if ( #FINDCNT > 0 ) { event Property #FINDID str Pos #Property $ set %temp #StrRes - 1 str Left #Property %temp event sysMessage #StrRes event macro 1 0 .movetype set #LTARGETKIND 1 set #LTARGETID #FINDID set %jrnlc #JINDEX event macro 17 0 target event macro 22 while #true { if #JINDEX > %jrnlc { set %jrnlc %jrnlc + 1 scanjournal %jrnlc if Abbruch in #JOURNAL { goto suche_beenden } if Zielbehaelter in #JOURNAL { finditem %Ziel_Container C_ , #BACKPACKID set #LTARGETKIND 1 set #LTARGETID %Ziel_Container set %jrnld #JINDEX event macro 17 0 target 1s event macro 22 while #true { if #JINDEX > %jrnld { set %jrnld %jrnld + 1 scanjournal %jrnld if Abbruch in #JOURNAL { goto suche_beenden } if Fertig in #JOURNAL { ignoreItem #FINDID goto nochmal_suchen } } } } } } } suche_beenden: event sysMessage Der Container ist geleert! return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->LootCont Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->MSGS ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ Sub MSGS If Ihr_seid_in_den_Spinnenweben in #JOURNAL || I_am_frozen in #JOURNAL { event sysMessage mist wait 15s set %exitwhile1 #true set %exitwhile2 #true } if An_dieser_Leiche_ist_nichts IN #JOURNAL { set %exitwhile1 #true set %exitwhile2 #true } if Ihr_kommt_dort_nicht_ran IN #JOURNAL { set %exitwhile1 #true set %exitwhile2 #true } if Ihr_habt_kein_freies IN #JOURNAL { set %exitwhile1 #true set %exitwhile2 #true } if Abbruch IN #JOURNAL { ignoreItem %Leiche 1 set %exitwhile1 #true set %exitwhile2 #true } if Euer_Messer_ist_zerbrochen IN #JOURNAL { set #SYSMSGCOL 49 DISPLAY Euer Messer ist zerbrochen! Ihr müsst ein Neues eintragen und verwenden! set %exitwhile1 #true set %exitwhile2 #true } if $ in #JOURNAL { set %exitwhile1 #true set %exitwhile2 #true } return ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ ;------->MSGS Ende ;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§