от меня легкое исправление на скорую руку.
пока только БС ИРОНА работает, и то примитивно.
но кует горжетки, и переплавляет их.
на днях доделаю для бронзы и меди.
при старте выбирайте молоток.
в коде пока много мусора и двойных проверок, повторяю, на скорую руку в 4 утра дорисовал
) но на ироне БС работает 100%
Code:
Enable Event Sysmessage
set #sysmsgcol 1359
event SysMessage ###Script Crafted by Gign###
event SysMessage ###updated by meidan###
gosub start
move 2556 498 0
gosub wait
move 2559 498 0
gosub wait
move 2559 495 0
gosub wait
move 2559 492 0
gosub wait
move 2559 489 0
gosub wait
move 2562 485 0
gosub wait
move 2562 488 0
gosub wait
move 2562 491 0
gosub wait
move 2562 494 0
gosub wait
move 2565 490 0
gosub wait
move 2565 487 0
gosub wait
move 2565 484 0
gosub wait
move 2565 481 0
gosub wait
move 2567 485 0
gosub wait
move 2567 488 0
gosub wait
move 2570 488 0
gosub wait
move 2570 485 0
gosub wait
move 2573 485 0
gosub wait
move 2574 474 1
gosub smeltall
repeat
{
gosub goiron
move 2574 474 1
gosub smelt
}
finditem RMK C
until #FINDSTACK < 30
move 2568 476 0
gosub wait
move 2570 477 0
gosub wait
move 2576 477 0
gosub wait
move 2579 480 0
gosub wait
move 2576 480 0
gosub wait
move 2573 480 0
gosub wait
move 2570 480 0
gosub wait
move 2567 480 0
gosub wait
move 2574 474 1
gosub smeltall
gosub goiron
gosub smelt
move 2564 484 0
sub smelt
{
wait 1s
set %mytimer #SCNT
while %mytimer > #SCNT - 2
{
finditem %smeltitemtype C
while #FINDCNT > 0
{
finditem JBG
set #LOBJECTID #FINDID
event macro 17
finditem %smeltitemtype C
set #LTARGETID #FINDID
event macro 22
wait 2s
finditem %smeltitemtype C
set %mytimer #SCNT
}
wait 2s
}
return
}
sub smeltall
{
wait 1s
finditem DWJ C
wait 1s
while #FINDCNT > 0
{
set #LOBJECTID #FINDID
event macro 17
finditem DWJ C
wait 1s
}
return
}
sub wait
{
set #LTargetKind 2
for %x -1 1
{
if #MAXWEIGHT < #WEIGHT + 101
{
return
}
for %y -1 1
{
repeat
{
set #lTargetX #CHARPOSX + %x
set #lTargetY #CHARPOSY + %y
set #lTargetZ #CHARPOSZ
gosub usepick
target
event Macro 22 0
set %weigh #WEIGHT
set %timer2 #SCNT
repeat
{
wait 1
}
until %weigh < #WEIGHT || nothing in #sysMsg || Try in #sysMsg || put in #sysMsg || close in #sysMsg || see in #sysMsg || destroyed in #sysMsg || line in #sysMsg || loosen in #sysMsg || %timer2 < #SCNT - 12
}
until nothing in #sysMsg || line in #sysMsg || decide in #sysMsg || Try in #sysMsg || close in #sysMsg || see in #sysMsg || line in #sysMsg
}
}
return
}
sub usepick
{
finditem NPF C
while #FINDCNT < 1
{
event SysMessage No Pickaxes
wait 2s
finditem NPF C
}
set #lObjectID #FINDID
event macro 17
return
}
sub goiron
{
finditem RMK C
repeat
{
set #LTargetKind 1
finditem %tooltype C
while #FINDCNT < 1
{
event SysMessage No %toolname
wait 2s
finditem %tooltype C
}
set #LOBJECTID #FINDID
event macro 17
ignoreitem reset 1
finditem RMK C
while #FINDCOL <> 0 && #FINDCNT > 0
{
ignoreitem #FINDID 1
finditem RMK C
}
set %timer3 #SCNT
ignoreitem reset 1
target
set #LTARGETID #FINDID
event Macro 22 0
wait 1s
click 68 170 f
wait 1s
click 275 148 f
repeat
{
wait 1
}
until put in #sysMsg || Your in #sysMsg || fail in #sysMsg || %timer3 < #SCNT - 30
}
finditem RMK C
until #FINDSTACK < 20
return
}
sub start
{
if %setup <> 1
{
set #LOBJECTID #BACKPACKID
event macro 17
finditem TLH C
set %hammercount #FINDCNT
finditem GTL C
set %tinkercount #FINDCNT
if %hammercount > 0 && %tinkercount < 1
{
finditem TLH C
set #LOBJECTID #FINDID
event macro 17
}
if %hammercount < 1 && %tinkercount > 0
{
finditem GTL C
set #LOBJECTID #FINDID
event macro 17
}
while #LOBJECTTYPE <> TLH && #LOBJECTTYPE <> GTL
{
event SysMessage DoubleClick On Hammer For Blacksmiting or DoubleClick On Tinker Tools for Tinkering!
event SysMessage ========================================
wait 2s
}
if #LOBJECTTYPE = TLH
{
set %tooltype TLH
set %countx 249
set %county 454
set %itemx 458
set %itemy 253
set %smeltitemtype NSH
set %offx -5
set %offy 73
set %toolname Hammer
}
else
{
set %tooltype GTL
set %countx 210
set %county 436
set %itemx 535
set %itemy 300
set %smeltitemtype PBG
set %offx -30
set %offy 75
set %toolname TinkerTools
}
set %setup 1
}
return
}