rendered paste body; 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