Start in bank or in mine

gotoifcoordsin(@bank,286,573,280,564)
@main:
wait(500)
gotoifcoordsin(@inmine,264,3400,277,3386)

@inmine:
gotoifbagfull(@upladder)
goto(@minerock)

@minerock:
setvarfatigue(%f)
gotoifnum1abovenum2(@sleep,%f,92)
setvarsnearestobjects(%x,%y,110,111) //since there used to be hard and soft
objcmd1(%x,%y)
waitforminingmessage(3000)
resetlastservermessage()
goto(@main)

@upladder:
objcmd1(274,3398)
wait(2000)
gotoifcoordsin(@upladder,264,3400,277,3386)
goto(@nearbank)

@nearbank:
opendoorifclosed(274,563)
walkwait(287,569)
openbigdoorifclosed(287,571)
wait(500)
walkwait(282,571)
goto(@bank)

@bank:
repeatnextcommanduntilquestmenu(4000)
talktonearestnpc(95)
answer(0)
waitforbank(8000)
wait(1000)
@coal:
wait(100)
deposit(155,5)
wait(100)
deposit(155,1)
gotoifininventory(@coal,155)
@gem1:
wait(100)
deposit(157,1)
gotoifininventory(@gem1,157)
@gem2:
wait(100)
deposit(158,1)
gotoifininventory(@gem2,158)
@gem3:
wait(100)
deposit(159,1)
gotoifininventory(@gem3,159)
@gem4:
wait(100)
deposit(160,1)
gotoifininventory(@gem4,160)
debug(done depositing :P )
goto(@walkback)

@walkback:
openbigdoorifclosed(287,571)
walkwait(275,562)
opendoorifclosed(274,563)
@downladder:
objcmd1(274,566)
wait(2000)
gotoifcoordsin(@main,264,3400,277,3386)
goto(@downladder)

@sleep:
wait(2000)
useitembyid(1263)
wait(2000)
waitforwakeup(28000)
gotoifsleeping(@sleep)
goto(@main)

@wait:
wait(500)
gotoifsleeping(@wait)
goto(@main)