Einschmelzscript von Bonbori
Aus UO-Sigena Wiki
Dieses EasyUO-Script schmilzt automatisiert Sondererz in kleinen Schritten (einstellbar, Standard ist 2 Erz) ein, um den Erzverlust zu minimieren. Das zu schmelzende Sondererz, Kohle und eine kleine Esse müssen in der Nähe der Spielfigur auf dem Boden liegen (maximal 2 Felder entfernt). Das Script eignet sich also nur zur Benutzung in einem Haus.
; Kohle, Erz und Esse müssen innerhalb von 2 Feldern vom Char sein und dürfen nicht befestigt sein!
set %ore Kupfererz ;Name des Erzes
set %getStackSize 2 ;Menge, die jeweils auf einmal geschmolzen wird
; Ab hier nix mehr anfassen! ;
set #lpc 100
set %coal Kohle
set %oreTyp DWJ
set %stackId XXXXXX
set %esse XXXXXX
gosub getStackId %coal
set %coalStack %stackId
while #true
{
gosub getStackId %ore
gosub melt %stackId %stackSize
}
; Erwartet einen Erznamen als Parameter
sub getStackId
set %find %1
repeat
finditem %oreTyp G_2
if ( #findcnt = 0 )
{
halt
}
event Property #findid
if ( %find notin #property )
{
ignoreitem #findid 9
}
until ( %find in #property )
set %stackId #findid
set %stackSize #findstack
ignoreitem reset 9
return
; %1 = Stack ID
; %2 = Stack Size
sub putStackToBackpack
if ( %getStackSize > %2 )
set %getStackSize %2
exevent drag %1 %getStackSize
wait 10
exevent dropc #backpackid
wait 10
return
; %1 = Stack ID
; %2 = Stack Size
sub melt
gosub putStackToBackpack %1 %2
finditem JBG G_2
if ( #findcnt = 0 )
{
halt
}
set %esse #findid
repeat
set %jrnl #jindex
set #lobjectid %1
event macro 17 0
gosub waitJournalForge
set %jrnl #jindex
set #ltargetkind 1
set #ltargetid %esse
target 10s
event macro 22 0
gosub waitJournalForge
; Prüfe, ob der Stack noch im Backpack ist
finditem %1 C_ , #backpackid
until ( #findcnt = 0 )
return
sub waitJournalForge
while #true
{
wait 1
if ( #jindex > %jrnl )
{
set %jrnl %jrnl + 1
scanjournal %jrnl
if ( etwas_Kohle_schueren. in #journal )
{
gosub coal2Forge
return
}
if ( In_welcher_Esse_wollt_ihr in #journal ||
+ gewinnt_einige_Barren_und_legt in #journal ||
+ gelingt_euch_nicht,_das_Erz in #journal ||
+ Explosion_aus! in #journal )
{
return
}
}
}
return
sub coal2Forge
set #ltargetkind 1 ;ein Objekt wird getargeted
set #ltargetid %coalStack
target 10s
event macro 22
wait 1s
return