Cool. Things are coming together, very close to being done.
Here's what I have so far if anyone's interested in peeking/commenting:
set %rbDepot TLIMJOD
set %rbDestination1 MYIMJOD
set %rbDestination2 ZKJMJOD
set %loopscript #true
set %baseLocation escortDepot12
while %loopScript = #true
{
repeat
gosub checkStatus
until %statusOK = #true
gosub recallAround
;gosub watchedCheck
gosub getEscort
}
sub watchedCheck
{
return
}
sub checkStatus
{
set %statusOK none
;gosub watchedCheck
if #charghost = yes
{
display ok This character died!$
halt
}
if #gold > 3000 || #weight > 300
{
gosub bankGold
}
if #charghost = no && #gold < 3000 && #weight <= 300
{
set %statusOK #true
return
}
}
sub bankGold
{
return
}
sub recallAround
{
if %baseLocation = escortDepot1
{
gosub useRunebook recall 1 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot2
{
gosub useRunebook recall 2 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot3
{
gosub useRunebook recall 3 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot4
{
gosub useRunebook recall 4 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot5
{
gosub useRunebook recall 5 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot6
{
gosub useRunebook recall 6 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot7
{
gosub useRunebook recall 7 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot8
{
gosub useRunebook recall 8 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot9
{
gosub useRunebook recall 9 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot10
{
gosub useRunebook recall 10 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot11
{
gosub useRunebook recall 11 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot12
{
gosub useRunebook recall 12 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot13
{
gosub useRunebook recall 13 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot14
{
gosub useRunebook recall 14 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot15
{
gosub useRunebook recall 15 %rbDepot dangerNo
wait 20
return
}
if %baseLocation = escortDepot16
{
gosub useRunebook recall 16 %rbDepot dangerNo
wait 20
return
}
}
sub getEscort
{
finditem HS G_4
if #findkind <> -1 && #findkind <> #charid
{
set %npcID #findid
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
wait 40
event pathfind %npcPosX %npcPosY
wait 60
set %escortFound #true
}
if #findkind = -1 || #findkind = #charid
set %escortFound #false
if %escortFound = #true
{
set %destination none
set %jStart #jindex + 1
event macro 1 0 What is your destination?
wait 20
set %jTimeout #scnt2 + 20
set %jEnd #jindex
while #scnt2 < %jTimeout
{
for %ji %jStart %jEnd
{
scanjournal %ji
if i_am_looking_to_go_to_britain in #journal
{
set %destination britain
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_cove in #journal
{
set %destination cove
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_covetous in #journal
{
set %destination covetous
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_deceit in #journal
{
set %destination deceit
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_despise in #journal
{
set %destination despise
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_destard in #journal
{
set %destination destard
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_hythloth in #journal
{
set %destination hythloth
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_jhelom in #journal
{
set %destination jhelom
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_magincia in #journal
{
set %destination magincia
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_minoc in #journal
{
set %destination minoc
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_moonglow in #journal
{
set %destination moonglow
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_nujel'm in #journal
{
set %destination nujelm
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_ocllo in #journal
{
set %destination ocllo
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_serpent's_hold in #journal
{
set %destination serpentshold
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_shame in #journal
{
set %destination shame
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_skara_brae in #journal
{
set %destination skarabrae
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_trinsic in #journal
{
set %destination trinsic
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_vesper in #journal
{
set %destination vesper
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_wrong in #journal
{
set %destination wrong
set %jTimeout #scnt2
}
if i_am_looking_to_go_to_yew in #journal
{
set %destination yew
set %jTimeout #scnt2
}
if %destination = none
{
ignoreitem %npcID
set %escortFound #false
}
}
}
if %destination = britain
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 1 %rbDestination1 dangerNo
}
if %destination = cove
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 2 %rbDestination1 dangerNo
}
if %destination = covetous
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 3 %rbDestination1 dangerYes
}
if %destination = deceit
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 4 %rbDestination1 dangerYes
}
if %destination = despise
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 5 %rbDestination1 dangerYes
}
if %destination = destard
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 6 %rbDestination1 dangerYes
}
if %destination = hythloth
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 7 %rbDestination1 dangerYes
}
if %destination = jhelom
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 8 %rbDestination1 dangerNo
}
if %destination = magincia
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 9 %rbDestination1 dangerNo
}
if %destination = minoc
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 10 %rbDestination1 dangerNo
}
if %destination = moonglow
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 11 %rbDestination1 dangerNo
}
if %destination = nujelm
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 12 %rbDestination1 dangerNo
}
if %destination = ocllo
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 13 %rbDestination1 dangerYes
}
if %destination = serpentshold
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 14 %rbDestination1 dangerNo
}
if %destination = shame
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 15 %rbDestination1 dangerYes
}
if %destination = skarabrae
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 16 %rbDestination1 dangerNo
}
if %destination = trinsic
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 1 %rbDestination2 dangerNo
}
if %destination = vesper
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 2 %rbDestination2 dangerNo
}
if %destination = wrong
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 3 %rbDestination2 dangerYes
}
if %destination = yew
{
finditem %npcID G_6
set %npcPosX #findx
set %npcPosY #findy
event pathfind %npcPosX %npcPosY
wait 40
event macro 1 0 I will take thee.
;gosub stealGold %npcID
gosub useRunebook gate 4 %rbDestination2 dangerNo
}
}
if %escortFound = #false
{
if %baseLocation = escortDepot1
{
set %baseLocation escortDepot2
return %baseLocation
}
if %baseLocation = escortDepot2
{
set %baseLocation escortDepot3
return %baseLocation
}
if %baseLocation = escortDepot3
{
set %baseLocation escortDepot4
return %baseLocation
}
if %baseLocation = escortDepot4
{
set %baseLocation escortDepot5
return %baseLocation
}
if %baseLocation = escortDepot5
{
set %baseLocation escortDepot6
return %baseLocation
}
if %baseLocation = escortDepot6
{
set %baseLocation escortDepot7
return %baseLocation
}
if %baseLocation = escortDepot7
{
set %baseLocation escortDepot8
return %baseLocation
}
if %baseLocation = escortDepot8
{
set %baseLocation escortDepot9
return %baseLocation
}
if %baseLocation = escortDepot9
{
set %baseLocation escortDepot10
return %baseLocation
}
if %baseLocation = escortDepot10
{
set %baseLocation escortDepot11
return %baseLocation
}
if %baseLocation = escortDepot11
{
set %baseLocation escortDepot12
return %baseLocation
}
if %baseLocation = escortDepot12
{
set %baseLocation escortDepot13
return %baseLocation
}
if %baseLocation = escortDepot13
{
set %baseLocation escortDepot14
return %baseLocation
}
if %baseLocation = escortDepot14
{
set %baseLocation escortDepot15
return %baseLocation
}
if %baseLocation = escortDepot15
{
set %baseLocation escortDepot16
return %baseLocation
}
if %baseLocation = escortDepot16
{
set %baseLocation escortDepot1
return %baseLocation
}
}
set %escortFound none
return
}
sub stealGold
{
return
}
sub useRunebook
{
set %rbAction %1
set %rbRune %2 - 1
set %rb %3
set %dangerousLocation %4
set %reGate none
reGate:
if %reGate = #true
wait 60
finditem %rb C_ , #backpackid
set #lobjectid #findid
event macro 17
wait 20
set %rbPage ( %rbRune / 2 ) + 1
if %rbPage < 5
set %rbPage %rbPage - 1
set %rbX #contposx + 140 + ( 35 * %rbPage )
set %rbY #contposy + 200
wait 20
click %rbX %rbY dmc
wait 20
if %rbAction = recall
{
set %rbX #contposx + 140 + ( 160 * ( %rbRune % 2 ) )
set %rbY #contposy + 145
click %rbX %rbY dmc
wait 20
}
if %rbAction = gate
{
if %dangerousLocation = dangerNo
{
set %rbX #contposx + 205 + ( 160 * ( %rbRune % 2 ) )
set %rbY #contposy + 145
set %jStart #jindex + 1
click %rbX %rbY dmc
wait 50
set %jTimeout #scnt2 + 20
set %jEnd #jindex
while #scnt2 < %jTimeout
{
for %ji %jStart %jEnd
{
scanjournal %ji
if spell_fizzles in #journal || location_is_blocked in #journal
{
set %jTimeout #scnt2
set %reGate #true
goto reGate
}
}
}
finditem OTF G_1
set %gateID #findid
set #lobjectid %gateID
event macro 17
wait 40
finditem OTF G_1
set %gateID #findid
set #lobjectid %gateID
event macro 17
wait 40
event macro 13 21
wait 6000
}
if %dangerousLocation = dangerYes
{
set %rbX #contposx + 205 + ( 160 * ( %rbRune % 2 ) )
set %rbY #contposy + 145
set %jStart #jindex + 1
click %rbX %rbY dmc
wait 50
set %jTimeout #scnt2 + 20
set %jEnd #jindex
while #scnt2 < %jTimeout
{
for %ji %jStart %jEnd
{
scanjournal %ji
if spell_fizzles in #journal || location_is_blocked in #journal
{
set %jTimeout #scnt2
set %reGate #true
goto reGate
}
}
}
click %rbX %rbY dmc
wait 50
finditem OTF G_1
set %gateID #findid
set #lobjectid %gateID
event macro 17
wait 40
;confirm dangerous location gump
wait 40
finditem OTF G_1
set %gateID #findid
set #lobjectid %gateID
event macro 17
wait 40
event macro 13 21
wait 6000
}
}
return
}