; by B.G. Bosma www.redbox13.com ; ##################################### ; SETTINGS ; ##################################### ; NOTE: WHEN USING ALCHEMY AND APPLY POISON TO WEAP, DCLICK YOUR WEAPON BEFORE RUNNING THIS SCRIPT ; Please make sure when training poison, to also not carry mana potions, and vice versa. set %drop_to_bank_type GYL_GUL_NUL_VTL ; SET TO SCROLL TYPE OF ITEMS YOU MAKE (put it in razor sell agent) set %blanks DPF ; this the tool resource type ;STACKABLE ; put in razor buy agent ;set %reg1 WZF ; nightshade ;set %reg2 KUF ; black pearl ;set %reg3 JUF ; bloodmoss set %reg4 SZF ; sulfurous ash set %reg5 RZF ; spider silk ;set %reg6 JZF ; ginseng ;set %reg7 KZF ; garlic set %reg8 MZF ; mandrake roots set %playsoundondmg 1 set %soundmg D:\home\bart\My Music\make\DoZ\wav\drum.wav ; sound to play on damage,mustb wav set %bandys ZLF set %bandytimer 40 set %hide 1 set %hidetimer 45 set %msgguards 1 set %sell 0 set %sell_crafted_at_this_count 25 ;# items must be in possession before we say vendor sell ; also set to 0 to disable scribing (or disable below (recommended)) set %sell_crafted_at_this_count 1 ; if ur doing make pot - apply poison non stop set %poisontimer 1 ; same as above set %scribe 1 set %craft_potions 1 ; keep this lower as sell_crafted and u still make some profit (set to 0 to disable alchemy or use setting below (recommended)) set %alchemy 1 ; craft poison set %alchytimer 40 set %craft_pot_in_razor F5 set %usepot 1 ; 1 = enable nything else = disable set %usepotspeed 1 ; 1 = slow 2 = fast set %dowithpot 1 ; 1 = applypoison_to_weap - 2 = drink set %pois_pot_type AVF ; poison set %drink_pot_type ; mana pots (i don't know type yet) set %poisonthis_id #lobjectid set %poisontimer 12 set %poisontimer 1 ; dont know set %buy 1 set %amount 1 ; min count of stacks before sending vendor buy msg set %buy_spamdelay 10s ; for when stuff not available on vendor yet ;set %vendorname Audrianna set %killgump 1 ; 1 = at meditate, 2 = after crafting set %vendorname Mortimer set %vendorname2 Duncan set %vendorname3 Crandall set %vendorname4 Chad set %vendorname5 Landon ;set %vendorname vendor ;set %vendorname2 X ; CRAFT SETTINGS set %mortar RQF ; set %scribepen PBG ; this is the tooltype you want to use set %rzrselect_circle F8 ; RAZOR select craft circle set %razorbutton F7 ; RAZOR CRAFT DESIRED SCROL BUTTON set %craftdelay 100 ;set %craftdelay 5s set %manarequired 40 ;amount of current mana when we gonna medit back to full mana ;set %meditimer 57 ; when %killgump = 1 set %meditimer 59 ; when %killgump = 2 & 1 ;interval between meditate skill execution ;STOP READING ; STACKS SETTINGS (when %sell and/or %buy = 0) %razorrestock ; fill in key for get regs from container %razororganizer ; fill in key for dump scrolls to container ; ##################################### ; PRE INIT preinit: initevents set %blabla 0 ; ##################################### ; ##################################### ; ##################################### loop: ; ##################################### ; SELL SCROLS gosub sellcheck ; ##################################### ; BUY SCROLS gosub buycheck ; ##################################### gosub hide ; ##################################### set %tinyloop 0 ;if %scribe = 0 ;gosub alchemy if %alchemy = 1 && %scribe = 0 { findidinbp %drink_pot_type , _ , %pois_pot_type if #findid in X gosub alchemy } tinyloop: ; ##################################### ; ##################################### ; ##################################### ;MEDITATE gosub meditcheck ; ##################################### gosub healcheck 0 if G in #charstatus event macro 6 0 ; ##################################### ; CRAFT if %scribe = 1 { gosub useiteminbp %scribepen wait 5 ;gosub selectcircle key %rzrselect_circle wait 5 ;gosub craft key %razorbutton wait 5 ;scanjournal ;wait 1 if not_have_enough in #sysmsg goto loop ; ##################################### gosub healcheck %craftdelay ; ##################################### } ; ##################################### if %killgump = 2 || %scribe = 0 && %alchemy = 1 gosub killgumps if %tinyloop < %sell_crafted_at_this_count { set %tinyloop %tinyloop + 1 ; usepot every 2 scribe attempts findidinbp %drink_pot_type , _ , %pois_pot_type if %blabla = 0 && #findid notin X || %usepotspeed = 2 && #findid notin X { if %usepot = 1 gosub dowithpot set %blabla 1 } else { set %blabla 0 } goto tinyloop } ; ##################################### goto loop ; ##################################### ; ##################################### sub dowithpot if %dowithpot = 1 && %alchemy = 1 { gosub findidinbp %pois_pot_type wait 2 if #findid notin X { ; apply poison to %poisonthis_id event macro 13 30 ; poison target set #ltargetid #findid event macro 22 0 target set #ltargetid %poisonthis_id event macro 22 0 wait 2 scanjournal if not_a_poison notin #journal gosub healcheck %poisontimer else gosub healcheck 0 } } if %dowithpot = 2 && %alchemy = 1 useiteminbp %drink_pot_type return ; ##################################### ; ##################################### sub alchemy if %alchemy = 1 { set %tinyloop2 0 alchyloop: gosub useiteminbp %mortar set %tinyloop2 %tinyloop2 + 1 key %craft_pot_in_razor wait 5 ;scanjournal if not_have_enough notin #sysmsg && empty_bottle notin #sysmsg { gosub healcheck %alchytimer if %craft_potions > %tinyloop2 goto alchyloop } set %tinyloop2 0 } return ; ##################################### ; ##################################### sub meditcheck if #mana < %manarequired { if %scribe = 1 gosub alchemy gosub meditownage gosub hide } return ; ##################################### sub buycheck if %buy = 1 { gosub checkitems 313243 212 169 gosub hide gosub healcheck 0 } gosub healcheck 1s gosub closegump bill 313243 212 169 gosub healcheck 1s return ; ##################################### sub sellcheck if %sell = 1 { gosub sellitems %drop_to_bank_type 313243 212 169 gosub healcheck 1s gosub closegump bill 313243 212 169 gosub healcheck 1s } return ; ##################################### sub findidinbp finditem %1 C_ , #backpackid wait 5 return sub useiteminbp gosub findidinbp %1 wait 2 if #findid notin X { set #lobjectid #findid event macro 17 0 } return ; ##################################### sub hide if %hide = 1 { loophide: if G in #charstatus event macro 6 0 if H notin #charstatus { event macro 13 21 gosub healcheck %hidetimer goto loophide } } return ; ##################################### sub meditownage meditownage: event macro 13 46 if %killgump = 1 gosub killgumps gosub healcheck %meditimer if #mana < #maxmana goto meditownage } return ; ##################################### sub killgumps closethem: if objpicker in #contname { gosub closegump objpicker 313243 450 325 gosub closegump objpicker 313243 450 325 ;goto closethem } return ; ##################################### sub healcheck if #hits < #maxhits { if %playsoundondmg = 1 sound %soundmg gosub heal %1 } else { wait %1 } return ; ##################################### sub heal gosub findidinbp %bandys wait 2 if #findid notin X { set #lobjectid #findid if %msgguards = 1 msg $ guards $ event macro 17 0 target event macro 23 0 wait %bandytimer set %waitemp %bandytimer - %1 gosub healcheck %waitemp } return ; ##################################### ; CLOSE GUMPS WITH EASY FUNC CALL ; U BET sub closegump if %1 in #contname { if #contposX , #contposy notin %2 { set #contposX 313 set #CONTPOSY 243 } click %3 %4 r } return ; ##################################### sub sellitems gosub findidinbp %1 wait 2 if #findid notin X { if %sell = 1 { msg $ %vendorname sell $ ;if %vendorname2 notin X ;msg %vendorname2 sell $ ;if %vendorname3 notin X ;msg %vendorname3 sell $ ;if %vendorname4 notin X ;msg %vendorname4 sell $ ;if %vendorname5 notin X ;msg %vendorname5 sell $ } else { key %razororganizer } } return ; ##################################### sub checkitems set %ok 0 gosub required_item %blanks gosub required_item %blanks if %reg1 notin N/A { set %ok 0 gosub required_item %reg1 gosub required_item %reg1 } if %reg2 notin N/A { set %ok 0 gosub required_item %reg2 gosub required_item %reg2 } if %reg3 notin N/A { set %ok 0 gosub required_item %reg3 gosub required_item %reg3 } if %reg4 notin N/A { set %ok 0 gosub required_item %reg4 gosub required_item %reg4 } if %reg5 notin N/A { set %ok 0 gosub required_item %reg5 gosub required_item %reg5 } if %reg6 notin N/A { set %ok 0 gosub required_item %reg6 gosub required_item %reg6 } if %reg7 notin N/A { set %ok 0 gosub required_item %reg7 gosub required_item %reg7 } if %reg8 notin N/A { set %ok 0 gosub required_item %reg8 gosub required_item %reg8 } return ; ##################################### sub required_item gosub findidinbp %1 wait 2 if #findstack < %amount && #findcnt < 3 || #findid in X { if %buy = 1 && %ok = 0 { msg $ %vendorname buy $ if %vendorname2 notin X msg %vendorname2 buy $ if %vendorname3 notin X msg %vendorname3 buy $ if %vendorname4 notin X msg %vendorname4 buy $ if %vendorname5 notin X msg %vendorname5 buy $ if %ok = 0 { wait %buy_spamdelay gosub required_item %1 } } else { key %razorrestock set %ok 1 } } else { set %ok 1 } return