Wiki source for AutomatikLoot
======""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
;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§
%%
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
;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§
%%