;====================================================== 
; Script Name: JEBBITS Do All For The Hard Core Miner 
; Author: Jebbit 
; Version: 1.4 
; Client Tested with: 4.0.0q 
; EUO version tested with: 1.4 (005b) 
; Shard OSI / FS: 
; Revision Date: 
; Public Release:11-30-03 
; Purpose:Commodity deed filler/organizer/counter/smithbod filler/Runemaker 
;Deed bag transfer/Mining script set up helpper 
;====================================================== 
;Mega thanks to «§»Dalcon«§» for allowing me to incorperate his modifyed bod filler into this script. 
initevents
key p alt
set %delay 20
set %bank n/a
set %mark 0

Event macro 8 1
      wait 1s
      contpos 650 0
      event macro 8 7
      wait 1s
set %backpackid #contid

event macro 8 2
     wait %pause1
      contpos 200 200
     wait 1S
     CLICK 596 358

event macro 8 7
    wait 20
      contpos 615 330
      wait 10

restart:
menu clear
set #menubutton N/A
    menu Clear
	menu Window Title Jebbits Multi Tool
	menu Window Color InfoBk
	menu Window Size 490 330
	menu Font Transparent #true
	menu Font Align Right
	menu Font Name MS Sans Serif
	menu Font Size 12
	menu Font Style b
	menu Font Color Green
	menu Font Transparent #false
	menu Font Align Left
	menu Font BGColor InfoBk
	menu Text EUOLabel1 124 0 Jebbits Multi Tool For Miners
	menu Font Size 8
	menu Font Style
	menu Font Color Background
	menu Text EUOLabel2 80 28 This tool is for filling commodity deeds. Used from bank ensure you have a chest full of
	menu Text EUOLabel3 76 44 ingots you need. Make sure deed bag is a PACK and in your back pack
	menu Text EUOLabel4 76 68 Nice pack or bag organizer, this will seperate all ore color commodity dees into their
	menu Text EUOLabel5 76 84 own spot and give a final count of how many of each deed.
	menu Text EUOLabel6 72 112 Same as above but for counting only
	menu Text EUOLabel7 76 160 Need to transfer deeds from one container to another use this handy tool.
	menu Text EUOLabel8 76 208 Where would a good vendor miner be with out plenty of marked runes to pass out
	menu Text EUOLabel9 76 224 This will mark runes inside or outside the house while moveing to mark several locations
	menu Text EUOLabel10 76 252 Making your own script or need some basic info from the game, this tool will give you
	menu Text EUOLabel11 76 268 most of the basic information on a front end menu for easy access.
	menu Text EUOLabel10 76 294 Dalcons awesome bod filler. Does not work with SE however, is clearly one of the best
	menu Text EUOLabel11 76 310 bod fillers around. Have a secure with ingots and tools, bods in your back pack.
menu Font Color WindowText
	menu Font BGColor BtnFace
	menu Button filldeeds 0 24 75 25 Fill Deeds
	menu Button organize 0 68 75 25 Organize
	menu Button Count -4 112 75 25 Count Deeds
	menu Button Transfer 0 160 75 25 Transfer Deeds
	menu Button Mark 0 208 75 25 Mark Runes
	menu Button menu 0 252 75 25 Script Tool
	menu Button fillbods 0 295 75 25 Bods
	menu Show 150 130

round:
if #menubutton = count 3
    set %mark 1
     KEY P ALT
     GOSUB SETUP2
if #menubutton = mark 2
     KEY P ALT
     GOSUB MARKRUNES
if #menubutton = transfer 3
     set %mark 4
     KEY P ALT
     goSUB IDD
if #menubutton = fillbods 2
     KEY P ALT
     gosub bodfiller
if #menubutton = filldeeds 2
     KEY P ALT
     goTO START
if #menubutton = organize 3
     set %mark 2
     KEY P ALT
     gosub setup2
if #menubutton = menu 2
     KEY P ALT
     goSUB mining
if %mark <> 0
set %mark 0
     goto round

start:
GOSUB SETUP
GOSUB SETUP2
STARTT:
gosub ingot
gosub deed
gosub combine
gosub bagit
goto startT


SUB setup
menu hide
menu clear
      menu button n/a
      menu window size 240 85
      menu window color BLACK
      menu font bgcolor BLACK
menu window title Bod counter
     menu font align center
     menu font style
   menu font color red
   menu font size 11
menu edit amount 95 5 50 100
     menu font style
   menu font color red
   menu font size 11
menu text msg 15 35 Enter amount of ingots per deed
     menu font color red
   menu font size 9
menu button enter 95 55 50 25 OK
menu show 555 0

looppp:
if #menubutton <> enter
goto looppp
menu hide
MENU GET amount
wait 5
set %amount #menures
RETURN

SUB SETUP2
menu hide
if %mark = 1
goto ID
if %mark = 2
goto id
key p alt
msg bank $
WAIT 20
SET %BANK #CONTID
display msg Click ok and open and close your pack with ingots. This must be in the bank...you have 5 seconds.
     wait 5s
     set %bankPACK #lobjectid
     wait 20
ID:
if %mark = 1 || %mark = 2 3
display msg Click ok then open and close the pack you have your bods to count in. You have 5 seconds.
     wait 5s
     goto setpack
display msg Click ok and open and close the pack you wish to put filled deeds into. This must be in your main pack...you have 5 seconds
     wait 5s
setpack:
      SET %DEEDPACK #lobjectid
if %mark = 0
     gosub continue
if %mark = 2
    gosub ORGANIZE
if %mark = 1
    gosub countonly
RETURN

sub continue

     WAIT 20
msg bank $
wait 10
set #LOBJECTID %bank
      WAIT 10
      CONTPOS 32 48
FINDITEM %BANKPACK C_ , %bank
wait 10
     set #LOBJECTID %bankpack
      set #findmod 0_0
      set #NEXTCPOSX 10
      set #NEXTCPOSY 300
      event macro 17 0
wait 10
contpos 10 300
wait 20
return

sub ingot
menu hide
ingot:
finditem enk c_ , %BANKPACK
if #FINDSTACK < %AMOUNT || #FINDID = X
{
     display yesno Out of ingots would you like to organize your filled deeds now?
if #dispres = yes
     gosub organize
if #dispres = no
     halt
}
     event drag #findID
     wait 10
     msg %amount $
     WAIT 20
     CLICK 141 123 P
     WAIT 30
     finditem enk c_ , %BANK
IF #FINDID = X
     GOTO INGOT
SET %ORE #FINDID
return

sub deed
menu hide
DEED:
; find an unused commodity deed 
     findItem EWH C_ , %backpackID
if #findKind = -1
     findItem EWH C_ , %BANKPACK
if #findcol <> 71 && #findid <> x
{
ignoreitem #findid
goto deed
}
      if #findKind = -1
       {
      DISPLAY YESNO Out of deeds would you like to organize your filled deeds now?
       if #dispres = yes
     gosub organize
    if #dispres = no
  halt
}
     WAIT 20
     set %deed #findID
     event drag %deed
     wait 20
     click 106 129 P
     WAIT 20
     finditem EWH c_ , %BANK
IF #FINDID = X
     GOTO DEED
     return


sub combine
COMBINE:
        findItem %DEED C_ , %BANK
     set #lOBJECTID #findID
     event Macro 17
     WAIT 30
     SET #LTARGETID %ORE
SET #LTARGETKIND 1
     event Macro 22
     wait 30
     FINDITEM %ore c_ , %BANK
     WAIT 10
IF #FINDID <> X
     GOTO COMBINE
return

sub bagit
bagit:
if #findKind = 0
{
   event drag %deed
    wait 20
      finditem %DEEDPACK
        set #findmod 20_10
           click #findx #findy
            WAIT 20
              FINDITEM %DEED C_ , %BANK
IF #FINDID <> X
goto bagit
return

sub organize
MENU HIDE
set %i 0
set %d 0
set %s 0
set %c 0
set %b 0
set %g 0
set %a 0
set %ve 0
set %va 0
MOVEDAMIT:
     set #LOBJECTID %deedpack
event macro 17 0
wait 35
SET #NEXTCPOSX 600
SET #NEXTCPOSY 323
set #lobjectid #findid
wait 10
contpos #NEXTCPOSX #NEXTCPOSY
     WAIT 20
FINDITEM %DEEDPACK
IF #contposx <> 600 && #contposy <> 323
GOTO MOVEDAMIT
     IGNOREITEM #LOBJECTID
MORE:
set %wsw %sss
SET %SSS %D + %S + %C + %B + %G + %A + %VE + %VA + %I
menu clear
      menu window size 150 50
      menu window color BLACK
      menu font bgcolor BLACK
menu window title Bod counter
menu font align center
      menu font style
   menu font color red
   menu font size 8
menu text stat 20 0 PLEASE WAIT... %SSS
menu show 640 296
     FINDITEM EWH C_ , %DEEDPACK
IF #FINDID = X
     gosub menu
if #findcol <> 71
goto more
      set #lobjectid #findid
       IGNOREITEM #LOBJECTID
        EVENT PROPERTY #findid
       EVENT DRAG #LOBJECTID
WAIT %delay
if DULL IN #PROPERTY 3  ;Dull Copper 
     click 652 380 p
     set %d %d + 1
GOTO MORE
if SHADOW IN #PROPERTY 3  ;Shadow 
     click 702 386 p
     set %s %s + 1
GOTO MORE
if COPPER IN #PROPERTY 3  ;Copper 
     click 732 360 p
     set %c %c + 1
GOTO MORE
if BRONZE IN #PROPERTY 3   ;Bronze 
     click 770 371 p
     set %b %b + 1
GOTO MORE
if GOLD IN #PROPERTY 3  ;Golden 
     click 656 466 p
     set %g %g + 1
GOTO MORE
if AGAPITE IN #PROPERTY 3  ;Agapite 
     click 702 470 p
     set %a %a + 1
GOTO MORE
if VERITE IN #PROPERTY 3  ;Verite 
     click 735 471  p
     set %ve %ve + 1
GOTO MORE
if VALORITE IN #PROPERTY 3   ;Valorite 
     click 777 469 p
     set %va %va + 1
GOTO MORE
if iron IN #PROPERTY 3   ;regular 
     click 650 430 p
     set %i %i + 1
GOTO MORE
if unfilled IN #PROPERTY 2   ;none 
     click 718 436 p
goto more
 if #findid = x
return
click 718 436 p
goto more
return

sub menu
menu clear
      menu window size 100 243
      menu window color BLACK
      menu font bgcolor BLACK
menu window title Bod counter
menu font align center
      menu font style
   menu font color red
   menu font size 11
menu text stat 0 0 Total Deeds
menu font style
   menu font color yellow
   menu font size 11
menu text stat 85 0 %sss
      menu font align center
      menu font style
   menu font color green
   menu font size 11
menu text stat 5 25 Iron
   menu font size 11
   menu font style
   menu font color green
menu text stat 5 50  Dull
   menu font style
   menu font color green
   menu font size 11
menu text stat 5 75 Shadow
   menu font style
   menu font color green
   menu font size 11
menu text stat 5 100 Copper
   menu font style
   menu font color green
   menu font size 11
menu text stat 5 125 Bronze
   menu font style
   menu font color green
   menu font size 11
menu text stat 5 150 Gold
   menu font style
   menu font color green
   menu font size 11
menu text stat 5 175 Agapite
   menu font style
   menu font color green
   menu font size 11
menu text stat 5 200 Vetite
menu font style
   menu font color green
   menu font size 11
menu text stat 5 225 Valorite
menu font align center
      menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 25 %i
   menu font size 11
   menu font style B
   menu font color RED
menu text stat 70 50 %d
   menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 75 %s
   menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 100 %c
   menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 125 %b
   menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 150 %g
   menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 175 %a
   menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 200 %ve
menu font style B
   menu font color RED
   menu font size 11
menu text stat 70 225 %va
set #menubutton N/A
   menu show
halt
return

sub COUNTONLY
menu hide
set #LOBJECTID %deedpack
event macro 17 0
wait 35
SET #NEXTCPOSX 600
SET #NEXTCPOSY 323
set #lobjectid #findid
contpos #NEXTCPOSX #NEXTCPOSY
mor:
SET %SSS %D + %S + %C + %B + %G + %A + %VE + %VA + %I
menu clear
      menu window size 150 50
      menu window color BLACK
      menu font bgcolor BLACK
menu window title Bod counter
menu font align center
      menu font style
   menu font color red
   menu font size 8
menu text stat 20 0 PLEASE WAIT... %SSS
menu show 640 296
FINDITEM EWH C_ , %DEEDPACK
IF #FINDID = X 2
MENU HIDE
     gosub menu
      set #lobjectid #findid
       IGNOREITEM #LOBJECTID
        EVENT PROPERTY #findid
WAIT 5
if DULL IN #PROPERTY 2  ;Dull Copper 
     set %d %d + 1
     GOTO MOR
if SHADOW IN #PROPERTY 2  ;Shadow 
     set %s %s + 1
     GOTO MOR
if COPPER IN #PROPERTY 2  ;Copper 
     set %c %c + 1
     GOTO MOR
if BRONZE IN #PROPERTY 2   ;Bronze 
     set %b %b + 1
     GOTO MOR
if GOLD IN #PROPERTY 2  ;Golden 
     set %g %g + 1
     GOTO MOR
if AGAPITE IN #PROPERTY 2  ;Agapite 
     set %a %a + 1
     GOTO MOR
if VERITE IN #PROPERTY 2  ;Verite 
     set %ve %ve + 1
     GOTO MOR
if VALORITE IN #PROPERTY 2   ;Valorite 
     set %va %va + 1
     GOTO MOR
if dull notIN #PROPERTY && shadow notIN #PROPERTY && copper notIN #PROPERTY &&
+ bronze notIN #PROPERTY && gold notIN #PROPERTY && agapite notIN #PROPERTY &&
+ verite notIN #PROPERTY && valorite notIN #PROPERTY 3   ;regular  
     set %i %i + 1
GOTO MOR
return

SUB IDD
menu hide
display msg Click ok and open your pack the item to move. You have 5 seconds
     wait 5s
     set %bankPACK #lobjectid
display msg Click ok and target the item you want to transfer.
     set #targcurs 1
set #ltargetid NULL
bagloop:
if #ltargetid = NULL
goto bagloop
WAIT 5
FINDITEM #LTARGETID
WAIT 10
set %item #findtype
display msg Click ok and target the pack you wish to transfer into.
     set #targcurs 1
set #ltargetid NULL
bagloopP:
if #ltargetid = NULL
   goto bagloopP
     SET %DEEDPACK #ltargetid
     FINDITEM %bankPACK C_ , %BACKPACKID
     wait 20
      set #LOBJECTID %bankPACK
      set #findmod 0_0
      set #NEXTCPOSX 50
      set #NEXTCPOSY 50
      event macro 17 0
     wait 20
loopit:
      finditem %item c_ , %bankPACK
     ignoreitem #findid
IF #FINDID = X 4
     DISPLAY YESNO Do you wish to organize your deeds now?
if #dispres = yes 2
     set %mark 2
     gosub setup2
if #dispres = no
      halt
if #findKind = 0
{
   event drag #findid
if #findstack > 0
{
wait 5
msg $
wait 5
}
    wait 10
      finditem %DEEDPACK
        set #findmod 20_10
           click #findx #findy
            WAIT 5
goto loopit
return

SUB MARKRUNES
set #menubutton n/a
menu HIDE
menu clear
display yesno Are you marking runes inside a house?
if #dispres = yes 2
SET %NAME #false       ;<-- set to #true only if outside house 
goto movedown
menu button n/a
menu window size 355 85
      menu window color BLACK
      menu font bgcolor BLACK
menu window title Rune Marker
menu font align center
      menu font style
   menu font color red
   menu font size 8
menu edit message 5 5 340 enter_what_you_want_to_say
menu font style
   menu font color red
   menu font size 10
menu text msg 10 35 Enter what you want your rune to say above then hit OK
menu font color red
   menu font size 9
menu button enter 0 60 355 25 OK
menu show
here:
if #menubutton <> enter
goto here
menu hide
MENU GET message
wait 5
set %amoun #menures
KEY P ALT
SET %NAME #true       ;<-- set to #true only if outside house 
movedown:
set %rune qwl
loopp:
if #mana < 20
gosub med
finditem %rune C_
  If #Findkind <> 0 2
DISPLAY MSG YOU HAVE NO MORE RUNES
    halt
  event macro 15 44
  target 5s
SCANJOURNAL
IF YOU_DO_NOT_HAVE IN #JOURNAL 2
DISPLAY MSG YOU DONT HAVE THIS SPELL
HALT
SET #FINDMOD 21_6
set %markx #findx
set %marky #findy
click %markx %marky
wait 20
  event macro 22 0
  wait 2s
if %name = #TRUE
gosub name
  ignoreitem #findid
goto loopp

SUB NAME
click %markx %marky d
wait 20
msg %amoun $
wait 20
return

sub med
if #mana < 100
{
event macro 13 46
wait 10s
gosub med
}
return

;========================================================= 

SUB mining
set %y 0
set %mark 1
set %CT 0
menu Clear
set #menubutton n/a
      menu window size 210 140
      menu window color dblue
      menu font bgcolor dblue
menu window title Dig Locator
menu font align center
      menu font style b
    menu font color green
    menu font size 11
menu text stat 25 5 Your Dig location is at
menu font align center
      menu font style b
    menu font color green
    menu font size 11
menu text stat 5 22 Digspotx
menu font align center
      menu font style b
    menu font color green
    menu font size 11
menu text stat 110 22 Digspoty
menu font style
   menu font color green
   menu font size 12
menu text stat 37 60 Your current position
menu font style
   menu font color green
   menu font size 12
menu text stat 5 143 Drag any health bar for
menu font style
   menu font color green
   menu font size 12
menu text stat 5 162 Animal/Monster ID
menu font style
    menu font color blue
    menu font size 12
menu text stat 3 195 Target an Item
menu font style
    menu font color blue
    menu font size 12
menu text stat 5 180 Findmod adjustment
menu font style
    menu font color green
    menu font size 12
menu text stat 5 215 ID number of
       menu font style
    menu font color green
    menu font size 12
menu text stat 5 230 Targeted Item
        menu font style
    menu font color blue
    menu font size 12
menu text stat 5 248 Item Type
menu font style
    menu font color green
    menu font size 11
menu text stat 5 268 Ore/Rock/Iron/Cloth
menu font style
    menu font color green
    menu font size 12
menu text stat 5 283 Color Id
menu font size 9
      menu text property 150 270 Properties
menu font style
    menu font color yellow
    menu font size 12
menu text stat 50 310 Item Properties
top:
if %cx <> #charposx || %cy <> #charposy 3
     set %CX #charposx
     set %CY #charposy
     set %y %y + 1

menu font align center
      menu font style b
menu font color BLACK
menu text stat 75 23 | | | | | | | |
    menu font color yellow
    menu font size 10
menu text stat 75 23 %s
menu font align center
      menu font style b
menu font color BLACK
menu text stat 178 23 | | | | | | | |
    menu font color yellow
    menu font size 10
menu text stat 178 23 %t
      menu font style
    menu font color red
    menu font size 12
menu text stat 56 40 For Dig Spot %y

    menu show 585 0

wait:
if %CT <> #conttype && #conttype <> zjf && #conttype <> N/A 9
set %CT #conttype
str left %CT 2
set %CT #strres
set #conttype #strres
menu font size 10
menu font color black
menu text stat 135 163 | | | |
menu font color yellow
menu text stat 135 163 %ct
if #menubutton = property && %mark < 3 4
menu window size 210 570
set %mark 3
key p alt
set #menubutton n/a
if #menubutton = property && %mark = 3 4
menu window size 210 305
set %mark 2
key p alt
set #menubutton n/a
if #menubutton = open && %mark = 1 4
menu window size 210 305
set %mark 2
key p alt
set #menubutton n/a
if #menubutton = open && %mark = 2 4
menu window size 210 140
set %mark 1
key p alt
set #menubutton n/a
if %px <> #charposx || %py <> #charposy 7
     set %px #charposx
     set %py #charposy
      menu font style
   menu font color yellow
   menu font size 12
     clear menu text
     menu text stat 47 80 x = %px y = %py
if %xxx <> #cursorx || %yyy <> #cursory 7
set %xxx #cursorx
set %yyy #cursory
     menu font style
   menu font color green
   menu font size 12
      menu text stat 27 100 findx = %xxx findy = %yyy
      menu button Open 0 120 210 20 Click here for targeted ID's
      menu button property 170 285 20 20 v
     if #targcurs <> 1
     goto wait
     gosub set
     goto top

sub set
waithere:
if #targcurs = 1
     goto waithere
menu font color BLACK
    menu font size 10
menu text stat 30 330 #property
finditem #ltargetid
event property #ltargetid
menu font color green
    menu font size 10
menu text stat 30 330 #property
WAIT 5
      set %color #findcol
     set %target #ltargetid
     set %object #findtype
     set %s #cursorx
     set %t #cursory
set #FindMod  0_0
Finditem #LtargetID
set %xmd %s - #FindX
set %ymd %t - #FindY
      menu font style
      menu font color BLACK
menu text stat 115 196 | | | | | | | | | | | |
    menu font color yellow
    menu font size 12
menu text stat 115 196 %xmd _ %ymd
menu font style
menu font color black
menu text stat 115 230 | | | | | | | | | | |
    menu font color yellow
    menu font size 9
menu text stat 115 231 %target
menu font style
menu font color black
menu text stat 115 249 | | | | | | |
    menu font color yellow
    menu font size 10
menu text stat 115 249 %object
menu font color BLACK
        menu text stat 80 283 | | | | | | | | | | | |
    menu font color yellow
    menu font size 11
menu text stat 115 284 %color

return
;============================================================== 
sub bodfiller
menu hide
KEK P ALT
set %delay 40
set %timeOut 40
set %retries 3
set %skipColor X
set %skipClass X
set %useExist 0
set %tinker 2
set %tinkerQty 3
set %smithTools FBG_TBG_OBG_TLH
set %tinkerTools GTL_JTL
set %stackable_items ENK ; Ingots 
; initialize smith item type 
; ringmail 
set %bsItem BMH_XLH_IMH_WLH_
; chainmail 
set %bsItem DPH_APH_ZOH_ , %bsItem
; platemail 
set %bsItem MSH_ISH_NSH_LSH_HSH_MSK_ , %bsItem
; helm 
set %bsItem ASH_ESH_GSH_CSH_OSH_ , %bsItem
; shield 
set %bsItem FIK_GIK_CIK_NIK_AIK_MIK_HLK_CLK_ , %bsItem
; blade 
set %bsItem FUO_ATF_NPO_JPH_TSF_NMH_VRH_JTF_SOH_BPH_ , %bsItem
; axe 
set %bsItem LSF_BSF_NSF_ZRF_RMH_LPH_UOH_ , %bsItem
; pole 
set %bsItem HSF_ZTO_BUO_XTH_OPO_CUO_XRH_GUO_MTF_RRH_ , %bsItem
; mace 
set %bsItem VTH_YSF_BUH_AUO_TRH_ZTH_ , %bsItem

; initialize timeout settings 
set %timeOutRaw %timeOut * 20
set %outerTimeOut %timeOut * %retries

; check tinkering skill 
if %tinker = 2
{
set %tinker 0
chooseSkill tink real
if #skill >= 350
set %tinker 1
}

; initialize gump layout 
gosub initInterface
set %bag %BACKPACKID
wait %delay

Display OK Click ok. Then TARGET the chest with your ingots in it.
set #targcurs 1
set #ltargetid NULL
ingotbagloopP:
if #ltargetid = NULL
   goto ingotbagloopP
set %Ingot_Secure #ltargetid
set %secureX #cursorx
set %secureY #cursory

Display OK Click ok. Then TARGET the bag to put your completed deeds in.
set #targcurs 1
set #ltargetid NULL
bagloopPP:
if #ltargetid = NULL
   goto bagloopPP
set %Donebag #ltargetid
set %bagX #cursorx
set %bagY #cursory

; initialize built item list 
initItem:
findItem %bsItem
if #findKind = -1
goto doneInitItem
if #findBagID = %bag
{
if %useExist = 0
ignoreItem #findID 1
if %useExist = 1
ignoreItem #findID 2
}
if #findBagID <> %bag
ignoreItem #findID 1
goto initItem
doneInitItem:

; initialize statistics 
set %deedCompleted 0
set %deedTotal 0
set %deedShortage X

findDeed:
findItem EYM
if #findKind = -1
{
Display OK Completed: %deedCompleted / %deedTotal
if %deedShortage <> X
Display OK Short of ingots: %deedShortage
goto terminate
}

set %deed #findID
if #findBagID <> %bag
goto nextDeed

set %deedTotal %deedTotal +
set %deedType X
set %deedTypeOk -1

; drag deed to top left corner of backpack 
gosub drag %deed 845 345

loop:
set #property N/A
; get deed descriptions 
scanJournal 1
deleteJournal
set %oTimeOut #scnt + %outerTimeout
getDeedDesc:
event property %deed
gosub PropertyParse
set %i 1
set %iTimeOut #scnt + %timeOut
scanDeedDesc:
if #scnt > %oTimeOut
goto nextDeed
if LARGE in %Prop3
{
gosub drag %deed 845 435
goto nextDeed
}
if SMALL in %Prop3
goto doneDeedDesc
set %i %i +
goto scanDeedDesc
doneDeedDesc:

; get outstanding qty 
gosub getDeedQty #journal
if %deedQty = 0
goto doneDeed

; obtain item type 
if %deedType = X
{
gosub initDeedInfo #Property
if %idiOK = -1
{
;event sysMessage Skip deed 
goto nextDeed
}
if %idiOK = 0
{
Display OK Failed: Unknown deed type
goto nextDeed
}
}

; initialize "make last" 
if %deedTypeOk < 0
{
initBSMenu:
gosub buildItem %smithTools 0 %deedColorItem 0
gosub buildItem %smithTools %deedClass %deedItem 0
if %biOK = 0
{
gosub initInterface
wait %delay
goto initBSMenu
}
if %biOK = -1
{
gosub buildTools
if %btOK = 0
{
Display OK Failed: Out of tools
goto terminate
}
goto initBSMenu
}
set %deedTypeOk 0
goto doneBuild
}

; only build 1 item a time until a successful combine 
if %deedTypeOk = 0
set %deedQty 1

; build item loop 
set %q 1
buildDeed:
; check ingots availablity 
gosub checkIngot %deedColor %deedIngotQty
if %ciOK = 0
{
Display OK Failed: Out of ingots
if %deedShortage = X
set %deedShortage %deedColorText
if %deedColorText notin %deedShortage
{
set %deedShortage / , %deedShortage
set %deedShortage %deedColorText , %deedShortage
}

if %q = 1
goto nextDeed
goto doneBuild
}

; build item 
gosub buildItem %smithTools -1 0 0
if %biOK = 0
{
gosub initInterface
goto buildDeed
}
if %biOK = -1
{
gosub buildTools
if %btOK = 0
{
Display OK Failed: Out of tools
goto terminate
}
goto buildDeed
}

; check for overweight 
set %maxWeight #str * 7
set %maxWeight %maxWeight / 2
set %maxWeight %maxWeight + 30
if #weight >= %maxWeight
goto doneBuild

set %q %q +
if %q <= %deedQty
goto buildDeed

doneBuild:
; close blacksmith menu 
gosub buildItem %smithTools -3 0 1

; check if the correct item built 
set %builtItem X
checkItem:
findItem %bsItem
if #findKind = -1
goto doneCheckItem
if #findBagID = %bag
{
if #findType <> %deedType
set %deedTypeOK -2
set %builtItem _ , %builtItem
set %builtItem #findID , %builtItem
ignoreItem #findID 2
}
if #findBagID <> %bag
ignoreItem #findID 1
goto checkItem
doneCheckItem:

ignoreItem reset 2

combineItem:
; find item to combine 
findItem %deedType
if #findKind = -1
{
set %combineResult 1
goto doneCombine
}
if #findBagID <> %bag
{
ignoreItem #findID 1
goto combineItem
}
set %lastItem #findID

; clear up system message 
;event sysMessage _ 

; cancel target cursor 
if #targCurs = 1
{
key esc
wait 10
}

openDeedInit:
set %oTimeOut #scnt + %outerTimeOut
openDeed:
if #scnt > %oTimeOut
goto openDeedDone
; check for existing deed menu 
gosub checkGump N/A N/A
if %cgOK = 1
goto openDeedDone
; open deed 
set #lObjectID %deed
event macro 17 0
gosub waitGump N/A N/A 1
if %wgOK = 1
goto openDeedDone
if %wgOK = -1
{
; clear up system message 
;event sysMessage _ 
wait %delay
}
goto openDeed
openDeedDone:

; click combine button 
click 165 %deedYCombine
target %timeOutRaw

if #targCurs <> 1
{
gosub initInterface
wait %delay
goto openDeedInit
}

; target item 
set #lTargetKind 1
set #lTargetID %lastItem
event macro 22 0
wait 2

; check for combine result 
set %iTimeOut #scnt + %timeOut
checkCombine:
if #scnt > %iTimeOut
goto combineItem
if HAS_BEEN_COMBINED in #sysMsg
{
if %deedTypeOK <> -2
set %deedTypeOK 1
; wait for deed menu to reappear 
gosub waitGump N/A N/A 1
goto combineItem
}
if THE_MAXIMUM_AMOUNT in #sysMsg
{
set %combineResult 0
goto doneCombine
}
if FROM_THE_REQUESTED_ORE in #sysMsg
{
ignoreItem %lastItem 1
goto combineItem
}
if NOT_IN_THE_REQUEST in #sysMsg
{
ignoreItem %lastItem 2
set %combineResult -1
goto doneCombine
}
if MUST_BE_EXCEPTIONAL in #sysMsg
{
ignoreItem %lastItem 2
goto combineItem
}
goto checkCombine

doneCombine:
; close deed gump 
gosub checkGump N/A N/A
if %cgOK = 1
{
click 165 %deedYClose
gosub waitGump N/A N/A 0
}

ignoreItem reset 2
set %lastItem X

smeltExcess:
; find item to smelt 
findItem %bsItem
if #findKind = -1
goto doneSmelt
if #findBagID <> %bag
{
ignoreItem #findID 1
goto smeltExcess
}
if #findID notin %builtItem
{
ignoreItem #findID 2
goto smeltExcess
}
set %lastItem #findID
; smelt item 
gosub buildItem %smithTools -2 %lastItem 0
if %biOK = 0
{
gosub initInterface
wait %delay
goto smeltExcess
}
if %biOK = -1
{
gosub buildTools
if %btOK = 0
{
Display OK Failed: Out of tools
goto terminate
}
goto smeltExcess
}
if %biOK = 1
{
ignoreItem %lastItem 2
goto smeltExcess
}
goto smeltExcess

doneSmelt:
; close smith menu 
if %lastItem <> X
gosub buildItem %smithTools -3 0 1

if %combineResult = 0
goto doneDeed
if %combineResult = -1
{
if %deedClass2 = -1
goto nextDeed

; switch to alternate type 
set %deedTypeOk -1
set %deedClass %deedClass2
set %deedClass2 -1
set %deedItem %deedItem2
gosub getDeedItemInfo
}

goto loop

doneDeed:
; drag completed deed to bottom left 
;gosub drag %deed 10 150 
event drag %deed
wait 20 10
click %bagX %bagY p
wait 20 10
set %deedCompleted %deedCompleted +

nextDeed:
ignoreItem %deed 1

moveingot:
; Move ingots back to secure 
finditem ENK C_ , %bag
if #findkind = -1
   goto ingotdone
event drag #findid
wait 1s
msg $
wait 1s
click %secureX %secureY p
wait 1s
goto moveingot

ingotdone:
goto findDeed

terminate:
halt

; *********************************************************** 

sub drag
set %dID %1
set %dTargetX %2
set %dTargetY %3

event drag %dID
set %diTimeOut #scnt + %timeOut
dWaitLifted:
if #lLiftedID <> %dID
{
if #scnt <= %diTimeOut
goto dWaitLifted
}

click 668 221 p
set %diTimeOut #scnt + %timeOut
dWaitDropped:
findItem %dID
if #findBagID <> %bag
{
if #scnt <= %diTimeOut
goto dWaitDropped
}
wait %delay

return

; *********************************************************** 

sub waitGump
set %wgID %1
set %wgType %2
set %wgOnOff %3

set %wgOK 0

set %wgTimeOut #scnt + %timeOut
wgLoop:
gosub checkGump %wgID %wgType
if %cgOK = %wgOnOff
{
set %wgOK 1
goto wgDone
}
if YOU_MUST_WAIT in #sysMsg
{
set %wgOK -1
goto wgDone
}
if #scnt <= %wgTimeOut
goto wgLoop

wgDone:
return

; *********************************************************** 

sub checkGump
set %cgID %1
set %cgType %2

set %cgOK 1

if %cgID <> X
{
if #contID <> %cgID
set %cgOK 0
}
if %cgType <> X
{
if #contType <> %cgType
set %cgOK 0
}

return

; *********************************************************** 

sub initInterface
return

; *********************************************************** 

sub checkIngot
set %ciColor %1
set %ciQty %2

set %ciOK 0
set %i 1

ciSearch:
findItem ENK %i
if #findKind = -1
goto ciDone
if #findBagID <> %bag
ignoreItem #findID 1
if #findBagID = %bag
{
if #findCol = %ciColor
{
if #findStack >= %ciQty
{
set %ciOK 1
goto ciDone
}
}
set %i %i +
}
goto ciSearch

ciDone:

if %ciOK = 0
{
   gosub getresource %ingot_Secure ENK %bag 139_217 250 %deedColor
   set %ciOK 1
}

return

; *********************************************************** 

sub buildItem
set %biTools %1
set %biClass %2
set %biItem %3
set %biCloseMenu %4

set %biOK 1

if %biClass = -3
goto biClose

set %bioTimeOut #scnt + %outerTimeOut
biLoop:
if #scnt > %bioTimeOut
{
set %biOK 0
goto biDone
}

; check for existing craftsman menu 
gosub checkGump N/A N/A
if %cgOK = 1
goto biUseToolsDone

biFindTools:
findItem %biTools
if #findKind = -1
{
set %biOK -1
goto biDone
}
if #findBagID <> %bag
{
ignoreItem #findID 1
goto biFindTools
}

; use tools 
set #lObjectID #findID
event macro 17 0
; wait for craftsman menu 
gosub waitGump N/A N/A 1
if %wgOK = -1
{
; clear up system message 
;event sysMessage _ 
wait %delay
goto biLoop
}
if %wgOK = 0
goto biLoop

biUseToolsDone:

; select craftsman menu 
if %biClass = -2
{
; recycle item 
click 75 405
target %timeOutRaw
if #targCurs <> 1
goto biLoop
set #lTargetKind 1
set #lTargetID %biItem
event macro 22 0
wait 2
}
if %biClass = -1
{
; make last 
click 335 465
gosub waitGump N/A N/A 0
if %wgOK <> 1
goto biLoop
}
if %biClass = 0
{
; choose ingots type 
click 80 425
wait 10
set %biY %biItem - 1
set %biY %biY * 20
set %biY %biY + 120
click 285 %biY
gosub waitGump N/A N/A 0
if %wgOK <> 1
goto biLoop
}
if %biClass > 0
{
; choose item class 
set %biY %biClass - 1
set %biY %biY * 20
set %biY %biY + 140
click 80 %biY
gosub waitGump N/A N/A 0
gosub waitGump N/A N/A 1

biChoosePage:
if %biItem > 10
{
set %biItem %biItem - 10
; next page 
click 435 320
wait 10
goto biChoosePage
}

; choose item 
set %biY %biItem - 1
set %biY %biY * 20
set %biY %biY + 120
click 285 %biY

gosub waitGump N/A N/A 0
if %wgOK <> 1
goto biLoop
}

biClose:
if %biCloseMenu = 1
{
set %biiTimeOut #scnt + %timeOut
biCloseLoop:
if #scnt > %biiTimeOut
{
set %biOK 0
goto biDoneClose
}
if WORN_OUT in #sysMsg
goto biDoneClose
; wait for craftsman menu 
gosub checkGump N/A N/A
if %cgOK = 0
goto biCloseLoop
; close craftsman menu 
click 75 460
gosub waitGump N/A N/A 0
biDoneClose:
}

biDone:
return

; *********************************************************** 

sub buildTools
set %btOK 0
if %tinker = 0
goto btDone
gosub getresource %ingot_Secure ENK %bag 139_217 250 0
if %tinker = 1
{
; check tinker tools qty 
btCountInit:
set %btQty 0
set %i 1
btCount:
findItem %tinkerTools %i
if #findKind = -1
goto btDoneCount
if #findBagID <> %bag
ignoreItem #findID 1
if #findBagID = %bag
{
set %btQty %btQty +
set %i %i +
}
goto btCount
btDoneCount:

; check if out of tinker tools 
if %btQty = 0
goto btDone

; build tinker tools 
if %btQty < %tinkerQty
{
gosub checkIngot 0 2
if %ciOK = 0
goto btDone
gosub buildItem %tinkerTools 0 1 0
gosub buildItem %tinkerTools 2 4 1
if %biOK = 0
{
gosub initInterface
wait %delay
}
goto btCountInit
}

; build tongs 
gosub checkIngot 0 1
if %ciOK = 0
goto btDone
gosub buildItem %tinkerTools 0 1 0
gosub buildItem %tinkerTools 2 13 1
if %biOK = 0
{
gosub initInterface
wait %delay
goto btCountTools
}
set %btOK 1
}

btDone:
return

; *********************************************************** 

sub initDeedInfo
set %idiDesc %1
set %idiOK 1

; get deed ingots color 
gosub getDeedColor %idiDesc
if %deedColor = -1
{
set %idiOK 0
goto idiDone
}

; get deed item type 
gosub getDeedItem %idiDesc
if %deedClass = -1
{
gosub promptUser %idiDesc
if %deedClass = -1
{
set %idiOK 0
goto idiDone
}
}
gosub getDeedItemInfo

; check whether to skip deed 
if %deedColorItem in %skipColor
{
set %idiOK -1
goto idiDone
}
if %deedClass in %skipClass
{
set %idiOK -1
goto idiDone
}

; determine combine button location 
set %deedYCombine 180

if ( %deedColor = 0 ) && ( EXCEPTIONAL in %Prop5 )
{
set %deedYCombine 230
goto idiDone
}

if ( %deedColor <> 0 ) && ( EXCEPTIONAL notin %Prop5 )
{
set %deedYCombine 230
goto idiDone
}

if ( %deedColor <> 0 ) && ( EXCEPTIONAL in %Prop5 )
{
set %deedYCombine 255
goto idiDone
}

idiDone:
set %deedYClose %deedYCombine + 25
return

; *********************************************************** 

sub promptUser
Display OK Not used anymore
halt
return

; *********************************************************** 

sub getDeedQty

gosub Amount
set %gdqDesc %convert
; requested qty 
set %gdqMaxQty 0
if /10) in %gdqDesc
set %gdqMaxQty 10
if /15) in %gdqDesc
set %gdqMaxQty 15
if /20) in %gdqDesc
set %gdqMaxQty 20
; filled qty 
set %gdqFillQty 0
if (0/ in %gdqDesc
set %gdqFillQty 0
if (1/ in %gdqDesc
set %gdqFillQty 1
if (2/ in %gdqDesc
set %gdqFillQty 2
if (3/ in %gdqDesc
set %gdqFillQty 3
if (4/ in %gdqDesc
set %gdqFillQty 4
if (5/ in %gdqDesc
set %gdqFillQty 5
if (6/ in %gdqDesc
set %gdqFillQty 6
if (7/ in %gdqDesc
set %gdqFillQty 7
if (8/ in %gdqDesc
set %gdqFillQty 8
if (9/ in %gdqDesc
set %gdqFillQty 9
if (10/ in %gdqDesc
set %gdqFillQty 10
if (11/ in %gdqDesc
set %gdqFillQty 11
if (12/ in %gdqDesc
set %gdqFillQty 12
if (13/ in %gdqDesc
set %gdqFillQty 13
if (14/ in %gdqDesc
set %gdqFillQty 14
if (15/ in %gdqDesc
set %gdqFillQty 15
if (16/ in %gdqDesc
set %gdqFillQty 16
if (17/ in %gdqDesc
set %gdqFillQty 17
if (18/ in %gdqDesc
set %gdqFillQty 18
if (19/ in %gdqDesc
set %gdqFillQty 19
if (20/ in %gdqDesc
set %gdqFillQty 20
; outstanding qty 
set %deedQty %gdqMaxQty - %gdqFillQty
return

; *********************************************************** 

sub getDeedColor
set %gdcDesc %Prop4
set %deedColor -1

if VALORITE in %gdcDesc
{
set %deedColorText valorite
set %deedColor 2219
set %deedColorItem 9
return
}
if VERITE in %gdcDesc
{
set %deedColorText verite
set %deedColor 2207
set %deedColorItem 8
return
}
if AGAPITE in %gdcDesc
{
set %deedColorText agapite
set %deedColor 2425
set %deedColorItem 7
return
}
if GOLD in %gdcDesc
{
set %deedColorText gold
set %deedColor 2213
set %deedColorItem 6
return
}
if BRONZE in %gdcDesc
{
set %deedColorText bronze
set %deedColor 2418
set %deedColorItem 5
return
}
if DULL in %gdcDesc
{
set %deedColorText dullCopper
set %deedColor 2419
set %deedColorItem 2
return
}
if COPPER in %gdcDesc
{
set %deedColorText copper
set %deedColor 2413
set %deedColorItem 4
return
}
if SHADOW in %gdcDesc
{
set %deedColorText shadow
set %deedColor 2406
set %deedColorItem 3
return
}
if IRON in %gdcDesc
{
set %deedColorText iron
set %deedColor 0
set %deedColorItem 1
return
}

; *********************************************************** 

sub getDeedItemInfo
set %deedType X
set %deedIngotQty 999

;====================================================================== 
; deedClass 1 

if %deedClass = 1
{
; ringmail glove 
if %deedItem = 1
{
set %deedType BMH
set %deedIngotQty 10
}
; ringmail legging 
if %deedItem = 2
{
set %deedType IMH
set %deedIngotQty 16
}
; ringmail sleeve 
if %deedItem = 3
{
set %deedType XLH
set %deedIngotQty 14
}
; ringmail tunic 
if %deedItem = 4
{
set %deedType WLH
set %deedIngotQty 18
}
}
;====================================================================== 
; deedClass 2 

if %deedClass = 2
{
; chainmail coif 
if %deedItem = 1
{
set %deedType DPH
set %deedIngotQty 10
}
; chainmail legging 
if %deedItem = 2
{
set %deedType APH
set %deedIngotQty 18
}
; chainmail tunic 
if %deedItem = 3
{
set %deedType ZOH
set %deedIngotQty 20
}
}
;====================================================================== 
; deedClass 3 

if %deedClass = 3
{
; platemail arm 
if %deedItem = 1
{
set %deedType MSH
set %deedIngotQty 18
}
; platemail glove 
if %deedItem = 2
{
set %deedType ISH
set %deedIngotQty 12
}
; platemail gorget 

if %deedItem = 3
{
set %deedType NSH
set %deedIngotQty 10
}
; platemail leg 
if %deedItem = 4
{
set %deedType LSH
set %deedIngotQty 20
}
; platemail tunics 
if %deedItem = 5
{
set %deedType HSH
set %deedIngotQty 25
}
; female plate 
if %deedItem = 6
{
set %deedType MSK
set %deedIngotQty 20
}
}
;====================================================================== 
; deedClass 4 

if %deedClass = 4
{
; bascinet 
if %deedItem = 1
{
set %deedType ASH
set %deedIngotQty 15
}
; close helm 
if %deedItem = 2
{
set %deedType ESH
set %deedIngotQty 15
}
; helmet 
if %deedItem = 3
{
set %deedType GSH
set %deedIngotQty 15
}
; norse helm 
if %deedItem = 4
{
set %deedType CSH
set %deedIngotQty 15
}
; plate helm 
if %deedItem = 5
{
set %deedType OSH
set %deedIngotQty 15
}
}
;====================================================================== 
; deedClass 5 

if %deedClass = 5
{
; buckler 
if %deedItem = 1
{
set %deedType FIK
set %deedIngotQty 10
}
; bronze shield 
if %deedItem = 2
{
set %deedType GIK
set %deedIngotQty 12
}
; heater shield 
if %deedItem = 3
{
set %deedType CIK
set %deedIngotQty 18
}
; metal shield 
if %deedItem = 4
{
set %deedType NIK
set %deedIngotQty 14
}
; metal kite shield 
if %deedItem = 5
{
set %deedType AIK
set %deedIngotQty 16
}
; tear kite shield 
if %deedItem = 6
{
set %deedType MIK
set %deedIngotQty 8
}
; chaos shield 
if %deedItem = 7
{
set %deedType HLK
set %deedIngotQty 16
}
; order shield 
if %deedItem = 8
{
set %deedType CLK
set %deedIngotQty 16
}
}
;====================================================================== 
; deedClass 6 

if %deedClass = 6
{
; bone harvester 
if %deedItem = 1
{
set %deedType FUO
set %deedIngotQty 10
}
; broadsword 
if %deedItem = 2
{
set %deedType ATF
set %deedIngotQty 10
}
; crescent blade 
if %deedItem = 3
{
set %deedType NPO
set %deedIngotQty 14
}
; cutlass 
if %deedItem = 4
{
set %deedType JPH
set %deedIngotQty 8
}
; dagger 
if %deedItem = 5
{
set %deedType TSF
set %deedIngotQty 3
}
; katana 
if %deedItem = 6
{
set %deedType NMH
set %deedIngotQty 8
}
; kryss 
if %deedItem = 7
{
set %deedType VRH
set %deedIngotQty 8
}
; longsword 
if %deedItem = 8
{
set %deedType JTF
set %deedIngotQty 12
}
; scimitar 
if %deedItem = 9
{
set %deedType SOH
set %deedIngotQty 10
}
; viking sword 
if %deedItem = 10
{
set %deedType BPH
set %deedIngotQty 14
}
}
;====================================================================== 
; deedClass 7 

if %deedClass = 7
{
; axe 
if %deedItem = 1
{
set %deedType LSF
set %deedIngotQty 14
}
; battle axe 
if %deedItem = 2
{
set %deedType BSF
set %deedIngotQty 14
}
; double axe 
if %deedItem = 3
{
set %deedType NSF
set %deedIngotQty 12
}
; executioner's axe 
if %deedItem = 4
{
set %deedType ZRF
set %deedIngotQty 14
}
; large battle axe 
if %deedItem = 5
{
set %deedType RMH
set %deedIngotQty 12
}
; two handed axe 
if %deedItem = 6
{
set %deedType LPH
set %deedIngotQty 16
}
; war axe 
if %deedItem = 7
{
set %deedType UOH
set %deedIngotQty 16
}
}
;====================================================================== 
if %deedClass = 8
{
; bardiche 
if %deedItem = 1
{
set %deedType HSF
set %deedIngotQty 18
}
; Bladed Staff 
if %deedItem = 2
{
set %deedType ZTO
set %deedIngotQty 12
}
; Double Bladed Staff 
if %deedItem = 3
{
set %deedType BUO
set %deedIngotQty 16
}
; halberd 
if %deedItem = 4
{
set %deedType XTH
set %deedIngotQty 20
}
; lance 
if %deedItem = 5
{
set %deedType OPO
set %deedIngotQty 20
}
; pike 
if %deedItem = 6
{
set %deedType CUO
set %deedIngotQty 12
}
; short spear 
if %deedItem = 7
{
set %deedType XRH
set %deedIngotQty 6
}
; scythe 
if %deedItem = 8
{
set %deedType GUO
set %deedIngotQty 14
}
; spear 
if %deedItem = 9
{
set %deedType MTF
set %deedIngotQty 12
}
; war fork 
if %deedItem = 10
{
set %deedType RRH
set %deedIngotQty 12
}
}
;====================================================================== 
; deedClass 9 
if %deedClass = 9
{
; hammer pick 
if %deedItem = 1
{
set %deedType VTH
set %deedIngotQty 16
}
; mace 
if %deedItem = 2
{
set %deedType YSF
set %deedIngotQty 6
}
; maul 
if %deedItem = 3
{
set %deedType BUH
set %deedIngotQty 10
}
; scepter 
if %deedItem = 4
{
set %deedType AUO
set %deedIngotQty 10
}
; war mace 
if %deedItem = 5
{
set %deedType TRH
set %deedIngotQty 14
}
; war hammer 
if %deedItem = 6
{
set %deedType ZTH
set %deedIngotQty 16
}
}

return

; *********************************************************** 

sub getDeedItem
set %gdiDesc %Prop7
set %deedClass -1
set %deedClass2 -1

if RINGMAIL , #SPC , GLOVE in %gdiDesc
{
set %deedClass 1
set %deedItem 1
}
if RINGMAIL , #SPC , LEGGING in %gdiDesc
{
set %deedClass 1
set %deedItem 2
}
if RINGMAIL , #SPC , SLEEVE in %gdiDesc
{
set %deedClass 1
set %deedItem 3
}
if RINGMAIL , #SPC , TUNIC in %gdiDesc
{
set %deedClass 1
set %deedItem 4
}
if COIF in %gdiDesc
{
set %deedClass 2
set %deedItem 1
}
if CHAINMAIL , #SPC , LEGGING in %gdiDesc
{
set %deedClass 2
set %deedItem 2
}
if CHAINMAIL , #SPC , TUNIC in %gdiDesc
{
set %deedClass 2
set %deedItem 3
}
if PLATEMAIL , #SPC , ARM in %gdiDesc
{
set %deedClass 3
set %deedItem 1
}
if PLATEMAIL , #SPC , GLOVE in %gdiDesc
{
set %deedClass 3
set %deedItem 2
}
if PLATEMAIL , #SPC , GORGET in %gdiDesc
{
set %deedClass 3
set %deedItem 3
}
if PLATEMAIL , #SPC , LEG in %gdiDesc
{
set %deedClass 3
set %deedItem 4
}
if PLATEMAIL , #SPC , TUNIC in %gdiDesc
{
set %deedClass 3
set %deedItem 5
}
if FEMALE , #SPC , PLATE in %gdiDesc
{
set %deedClass 3
set %deedItem 6
}
if HELMET in %gdiDesc
{
set %deedClass 4
set %deedItem 3
}
if BASCINET in %gdiDesc
{
set %deedClass 4
set %deedItem 1
}
if CLOSE , #SPC , HELM in %gdiDesc
{
set %deedClass 4
set %deedItem 2
}
if NORSE , #SPC , HELM in %gdiDesc
{
set %deedClass 4
set %deedItem 4
}
if PLATE , #SPC , HELM in %gdiDesc
{
set %deedClass 4
set %deedItem 5
}
if BUCKLER in %gdiDesc
{
set %deedClass 5
set %deedItem 1
}
if BRONZE , #SPC , SHIELD in %gdiDesc
{
set %deedClass 5
set %deedItem 2
}
if HEATER in %gdiDesc
{
set %deedClass 5
set %deedItem 3
}
if METAL , #SPC , SHIELD in %gdiDesc
{
set %deedClass 5
set %deedItem 4
}
if METAL , #SPC , KITE in %gdiDesc
{
set %deedClass 5
set %deedItem 5
}
if TEAR , #SPC , KITE in %gdiDesc
{
set %deedClass 5
set %deedItem 6
}
if CHAOS in %gdiDesc
{
set %deedClass 5
set %deedItem 7
}
if ORDER in %gdiDesc
{
set %deedClass 5
set %deedItem 8
}
if BONE , #SPC , HARVESTER in %gdiDesc
{
set %deedClass 6
set %deedItem 1
}
if BROADSWORD in %gdiDesc
{
set %deedClass 6
set %deedItem 2
}
if CRESCENT , #SPC , BLADE in %gdiDesc
{
set %deedClass 6
set %deedItem 3
}
if CUTLASS in %gdiDesc
{
set %deedClass 6
set %deedItem 4
}
if DAGGER in %gdiDesc
{
set %deedClass 6
set %deedItem 5
}
if KATANA in %gdiDesc
{
set %deedClass 6
set %deedItem 6
}
if KRYSS in %gdiDesc
{
set %deedClass 6
set %deedItem 7
}
if LONGSWORD in %gdiDesc
{
set %deedClass 6
set %deedItem 8
}
if SCIMITAR in %gdiDesc
{
set %deedClass 6
set %deedItem 9
}
if VIKING , #SPC , SWORD in %gdiDesc
{
set %deedClass 6
set %deedItem 10
}
;====================================================================== 
; deedClass 7 

if AXE in %gdiDesc
{
set %deedClass 7
set %deedItem 1
}
if BATTLE , #SPC , AXE in %gdiDesc
{
set %deedClass 7
set %deedItem 2
}
if DOUBLE , #SPC , AXE in %gdiDesc
{
set %deedClass 7
set %deedItem 3
}
if EXECUTIONER in %gdiDesc
{
set %deedClass 7
set %deedItem 4
}
if LARGE , #SPC , BATTLE , #SPC , AXE in %gdiDesc
{
set %deedClass 7
set %deedItem 5
}
if TWO , #SPC , HANDED , #SPC , AXE in %gdiDesc
{
set %deedClass 7
set %deedItem 6
}
if WAR , #SPC , AXE in %gdiDesc
{
set %deedClass 7
set %deedItem 7
}


;====================================================================== 
; deedClass 8 
if BARDICHE in %gdiDesc
{
set %deedClass 8
set %deedItem 1
}
if BLADED , #SPC , STAFF in %gdiDesc
{
set %deedClass 8
set %deedItem 2
}
if DOUBLE , #SPC , BLADED , #SPC , STAFF in %gdiDesc
{
set %deedClass 8
set %deedItem 3
}
if HALBERD in %gdiDesc
{
set %deedClass 8
set %deedItem 4
}
if LANCE in %gdiDesc
{
set %deedClass 8
set %deedItem 5
}
if PIKE in %gdiDesc
{
set %deedClass 8
set %deedItem 6
}
if SHORT , #SPC , SPEAR in %gdiDesc
{
set %deedClass 8
set %deedItem 7
return
}
if SHORTSPEAR in %gdiDesc
{
set %deedClass 8
set %deedItem 7
return
}
if SCYTHE in %gdiDesc
{
set %deedClass 8
set %deedItem 8
}
if SPEAR in %gdiDesc
{
set %deedClass 8
set %deedItem 9
}
if FORK in %gdiDesc
{
set %deedClass 8
set %deedItem 10
}
;====================================================================== 
; deedClass 9 
if HAMMER , #SPC , PICK in %gdiDesc
{
set %deedClass 9
set %deedItem 1
}
if MACE in %gdiDesc
{
set %deedClass 9
set %deedItem 2
}
if MAUL in %gdiDesc
{
set %deedClass 9
set %deedItem 3
}
if SCEPTER in %gdiDesc
{
set %deedClass 9
set %deedItem 4
}
if WAR , #SPC , MACE in %gdiDesc
{
set %deedClass 9
set %deedItem 5
}
if WAR , #SPC , HAMMER in %gdiDesc
{
set %deedClass 9
set %deedItem 6
}
return

; ===================================================================== 
; Name: PropteryParse 
; Version: 1.0.0 
; By: Minoc Miner Murderer (tcb's algorithym) 
; Purpose: Breaks the #property variable into individual vars 
; Returns: %TotalProps , %prop1 , %prop2 , %prop3 , %prop4 , etc. 
;---------------------------------------------------------------------- 
SUB PropertyParse
        SET %subject #PROPERTY
        SET %temp 0
        PropLoop:
        SET %temp %temp + 1
        STR POS %subject $
        IF #STRRES = 0
        {
                SET %prop . %temp %subject
                GOTO ExitProp
        }
        SET %area #STRRES - 1
        STR LEFT %subject %area
        SET %prop . %temp #STRRES
        SET %area %area + 1
        STR DEL %subject 1 %area
        SET %subject #STRRES
        GOTO PropLoop
        ExitProp:
        SET %TotalProps %temp - 1
RETURN

; ===================================================================== 
; Name: Amount 
; Version: 1.0.0 
; By: Dalcon 
; Purpose: Converts new type properties to old style deed props 
; Returns: %convert 
;---------------------------------------------------------------------- 
SUB Amount
   gosub PropertyParse
   str right %Prop6 2
   set %Amounttomake #strRes
   str right %prop7 2
   set %Amountmade #strRes
   set %convert ( , %Amountmade , / , %Amounttomake , )
RETURN

;*********************************************************************** 
;The Following Subs are from the Alexia Project standard subs. 
; 
; 
;============================================================================ 
sub checkResource
;%1 - Container 
;%2 - Resource type/ID 
;%3 - Operand for true evaluation (<, >, =, >=, <=) 
;%4 - Number required for #true return 
   set %counter 0
   finditem %2 C_ , %1
   set %counter #findstack
   set %return #false
   if %counter %3 %4
      set %return #true
return

; Minor edit to add ore type selection to sub 
sub getResource
;%1 - Container ID 
;%2 - resource/ID 
;%3 - drop container ID 
;%4 - findmod for drop container 
%5 50 ; - amount [optional - not specified will get whole stack/one item] 
;%6 - Ingot Color to get 
   set %_gR_parms %0
   set %_gR_cid %1
   set %_gR_type %2
   set %_gR_drop %3
   set %_gR_mod %4
   set %_gR_amt 50
   set %_gR_col %6
   set %dragcounter 0
   finditem %_gR_drop
   if #findkind 2
      set %return #false
      return
   set %temp #findmod
   _getRes_openCont:
   gosub openCont %_gR_cid 0 0
   if ! %return
      goto _getRes_openCont
   _getitem:
   finditem %_gR_type C_ , %_gR_cid
If #findid = x || #findstack < 30 2
display msg Out of Ingots or Low on ingots
halt
   if #findcol <> %_gR_col
   {
      ignoreitem #findid
      wait 20
      goto _getitem
   }
   if #findkind 2
      set %return #false
      return
   event drag #findid
   wait 1s
   if %_gR_type in %stackable_items
   {
      if %_gR_parms > 4 && %_gR_amt > 0 && #findstack > 1
         msg %_gR_amt $
      if %_gR_parms = 4
         msg $
   }
   set #findmod %_gR_mod
   finditem %_gR_drop
   click #findx #findy p
   wait 1s
   if %_gR_type notin %stackable_items && %_gR_parms = 5
   {
      set %dragcounter %dragcounter + 1
      if %dragcounter < %_gR_amt
      goto _getitem
   }
   click 85 40 r
   set #findmod %temp
   set %return #true
   ignoreitem reset
return

sub useItem
;%1 container 
;%2 item type/id 
   finditem %2 C_ , %1
   if ! #findkind
   {
      set #lobjectid #findid
      event macro 17
   }
   set %return ! #findkind
return

sub sysVarWait
   if ( %0 < 2 ) || ( %0 > 3 )
   {
      display ok Invalid Use of SysVarWait
      set %return #false
      return
   }
   if %0 = 3
      set %_SVtimeout #scnt2 + 100
   else
      set %_SVtimeout #scnt2 + %3
   _waitSV:
      if #scnt2 >= %_SVtimeout 2
         set %return #false
         return
      if # . %1 <> %2
         goto _waitSV
   set %return #true
return

sub openCont
;%1 - ContainerID 
;%2 - Xcoord to move container to 
;%3 - Ycoord to move container to 
   set %_oC_ID %1
   set %_oC_X %2
   set %_oC_Y %3
   _oC:
   set #lobjectid %_oC_ID
   event macro 17
   gosub SysVarWait contid %_oC_ID 50
   if %return
      contpos %_oC_X %_oC_Y
return