UOGamers Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • To obtain new Razor updates, please reinstall Razor from our new website.

Anti-Townkill Macro

Vizeroth

Sorceror
I've created an anti-townkill macro that will allow banksitters to safely AFK at Brit and gate their vendors. You'll need to read the comments at the top to set it up properly, but it's very straightforward. Made for UOSteam.

*Updated 6/22/2015 to accept resurrection attempts if dead.
*Updated 7/8/2015 to prevent empty bottles from overburdening user and increase resilience.
*Updated 7/24/2015 to accept a customizable base str for macro user. Previously, only characters with base str of 100 would function properly.
Link: Town Sit v1.22
 
Last edited:

gimp

Sorceror
I've created an anti-townkill macro that will allow banksitters to safely AFK at Brit and gate their vendors. You'll need to read the comments at the top to set it up properly, but it's very straightforward. Made for UOSteam.

*Updated 6/22/2015 to accept resurrection attempts if dead.
Link: Town Sit v1.11

Very nice. This is some next level shit that I can use to stay alive. Can't imagine you don't work in the IT Field.

:Slow golf clap:

I bet @MelodyTFA will love this shit. Thanks for the contribution Viz
 

El Ugly 707

Traveler
Have to say that the script works .. Viz was afk pwning 3 gating explo reds with this script the other day. I left but doubt that they killed him . Anyone see? On another note, I too wonder what type of scripts he and the rest of the kids on this shard use to pvp
 

Pat McGroin

Sorceror
Conjectures about things for which he has no evidence..


///////////////////////////////////////////////////////////////////////////////
//Town Sit v1.11
//This macro will keep an AFK user alive at the bank and periodically gate to a series of runes.
//
//Requirements:
//1. Cure, heal, and strength potions in the main storage area of the bank box.
//2. Black pearl, garlic, ginseng, mandrake root, spiders' silk, and sulfurous ash in main storage area of the bank box.
//3. Disable the trade window in General > Filter Options. If this is not done, trade windows can prevent the macro from restocking.
//
//Notes:
//1. Though you will be prompted to set a gate rune when starting the macro, it is not necessary to do so if you are simply banksitting.
//2. You can set any number of runes to gate from. Press 'Escape' when finished setting runes.
//3. If you wish to display a periodic message while AFK or a message when gating, edit the empty space between the apostrophes on lines 25 and 26. The text color can be changed on line 27.
///////////////////////////////////////////////////////////////////////////////
@clearignorelist
@clearjournal
@unsetalias 'gateRune'
@createlist 'gateMessage'
@clearlist 'gateMessage'
@createlist 'afkMessage'
@clearlist 'afkMessage'
@createlist 'messageColor'
@clearlist 'messageColor'
//Edit these lines to add or change your gate/AFK message and color.
pushlist 'gateMessage' ''
pushlist 'afkMessage' ''
pushlist 'messageColor' '96'
////////////////////////////////////////////////////////////////////
@createlist 'runeList'
@clearlist 'runeList'
@createtimer 'gateTimer'
settimer 'gateTimer' 35000
@createtimer 'reflectTimer'
settimer 'reflectTimer' 35000
@createlist 'redCount'
@clearlist 'redCount'
msg 'bank' 60
headmsg 'Note: Setting a gate rune is not necessary.' 70
promptalias 'gateRune'
if @findobject 'gateRune'
pushlist 'runeList' 'gateRune'
endif
while @findobject 'gateRune'
@unsetalias 'gateRune'
promptalias 'gateRune'
if @findobject 'gateRune'
pushlist 'runeList' 'gateRune'
endif
endwhile
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
cast 'magic reflection'
pause 2500
while not @findobject 'Infinite Loop'
for 0 to 'runeList'
if @gumpexists 0xb04c9a31
replygump 0xb04c9a31 1
msg 'bank' 60
endif
if str < 100
usetype 0xf09 'any' 'bank'
pause 600
endif
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
@getenemy 'murderer'
if murderer 'last' or criminal 'last'
if not dead 'last'
@pushlist! 'redCount' 'last'
endif
endif
if list 'redCount' >= 1
for 0 to 'redCount'
if not murderer redCount[] and not criminal redCount[]
@poplist 'redCount' redCount[]
endif
endfor
for 0 to 'redCount'
if not @findobject redCount[]
@poplist 'redCount' redCount[]
endif
endfor
endif
if list 'redCount' >= 3
cast 'greater heal'
usetype '0xf09' 'any' 'bank'
pause 600
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if hits < maxhits
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
cast 'greater heal'
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 1500
endif
while targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if diffhits > 35
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
if targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
endif
endif
endwhile
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if hits < maxhits
msg 'guards' 50
usetype '0xf0c' 'any' 'bank'
pause 100
if mana >= 11 and hits < maxhits
cast 'Greater Heal'
pause 500
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
endif
endif
if mana <= 70 and not dead
useskill 'meditation'
while mana != maxmana
if dead
break
endif
if str < 100
usetype 0xf09 'any' 'bank'
pause 600
endif
@getenemy 'murderer'
if murderer 'last' or criminal 'last'
if not dead 'last'
@pushlist! 'redCount' 'last'
endif
endif
if list 'redCount' >= 1
for 0 to 'redCount'
if not murderer redCount[] and not criminal redCount[]
@poplist 'redCount' redCount[]
endif
endfor
for 0 to 'redCount'
if not @findobject redCount[]
@poplist 'redCount' redCount[]
endif
endfor
endif
if list 'redCount' >= 3
cast 'greater heal'
usetype '0xf09' 'any' 'bank'
pause 600
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if hits < maxhits
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
cast 'greater heal'
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 1500
endif
while targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if diffhits > 35
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
if targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
endif
endif
endwhile
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if hits < maxhits
msg 'guards' 50
usetype '0xf0c' 'any' 'bank'
pause 100
if mana >= 11 and hits < maxhits
cast 'Greater Heal'
pause 500
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
waitfortarget 900
if @targetexists
@Target 'self'
pause 1400
endif
endif
endif
if @injournal 'you stop meditating' 'system'
@clearjournal
useskill 'meditation'
endif
pause 100
if @injournal 'you must wait a few moments' 'system'
@clearjournal
pause 100
useskill 'meditation'
endif
endwhile
endif
if timer 'gateTimer' > 35000 and @findobject 'runeList[]'
settimer 'gateTimer' 0
// Gate to rune
cast 'gate travel'
waitfortarget 2500
@clearjournal
if @targetexists
@Target 'runeList[]'
pause 1400
endif
waitforjournal 'the spell fizzles' 100
while @injournal 'the spell fizzles'
@clearjournal
cast 'gate travel'
waitfortarget 2500
if @targetexists
@Target 'runeList[]'
pause 1400
endif
waitforjournal 'the spell fizzles' 100
endwhile
for 0 to gateMessage
for 0 to messageColor
msg gateMessage[] messageColor[]
endfor
endfor
if mana != maxmana
useskill 'meditation'
while mana != maxmana
if dead
break
endif
if str < 100
usetype 0xf09 'any' 'bank'
pause 600
endif
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
@getenemy 'murderer'
if murderer 'last' or criminal 'last'
if not dead 'last'
@pushlist! 'redCount' 'last'
endif
endif
if list 'redCount' >= 1
for 0 to 'redCount'
if not murderer redCount[] and not criminal redCount[]
@poplist 'redCount' redCount[]
endif
endfor
for 0 to 'redCount'
if not @findobject redCount[]
@poplist 'redCount' redCount[]
endif
endfor
endif
if list 'redCount' >= 3
cast 'greater heal'
usetype '0xf09' 'any' 'bank'
pause 600
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if hits < maxhits
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
cast 'greater heal'
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 1500
endif
while targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if diffhits > 35
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
if targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
endif
endif
endwhile
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if hits < maxhits
msg 'guards' 50
usetype '0xf0c' 'any' 'bank'
pause 100
if mana >= 11 and hits < maxhits
cast 'Greater Heal'
pause 500
msg 'guards' 50
if poisoned
usetype '0xf07' 'any' 'bank'
pause 600
endif
waitfortarget 900
if @targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
@Target 'self'
pause 1400
endif
endif
endif
if @injournal 'you stop meditating' 'system'
@clearjournal
useskill 'meditation'
endif
pause 100
if @injournal 'you must wait a few moments' 'system'
@clearjournal
pause 100
useskill 'meditation'
endif
endwhile
endif
endif
if timer 'reflectTimer' > 32175
cast 'magic reflection'
for 0 to afkMessage
for 0 to messageColor
msg afkMessage[] messageColor[]
endfor
endfor
settimer 'reflectTimer' 0
endif
pause 50
endfor
endwhile
 

susejmaster

Traveler
///////////////////////////////////////////////////////////////////////////////
//Town Sit v1.11
//This macro will keep an AFK user alive at the bank and periodically gate to a series of runes.
//
//Requirements:
//1. Cure, heal, and strength potions in the main storage area of the bank box.
//2. Black pearl, garlic, ginseng, mandrake root, spiders' silk, and sulfurous ash in main storage area of the bank box.
//3. Disable the trade window in General > Filter Options. If this is not done, trade windows can prevent the macro from restocking.
//
//Notes:
//1. Though you will be prompted to set a gate rune when starting the macro, it is not necessary to do so if you are simply banksitting.
//2. You can set any number of runes to gate from. Press 'Escape' when finished setting runes.
//3. If you wish to display a periodic message while AFK or a message when gating, edit the empty space between the apostrophes on lines 25 and 26. The text color can be changed on line 27.
///////////////////////////////////////////////////////////////////////////////
@clearignorelist
@clearjournal
@unsetalias 'gateRune'
@createlist 'gateMessage'
@clearlist 'gateMessage'
@createlist 'afkMessage'
@clearlist 'afkMessage'
@createlist 'messageColor'
@clearlist 'messageColor'
//Edit these lines to add or change your gate/AFK message and color.
pushlist 'gateMessage' ''
pushlist 'afkMessage' ''
pushlist 'messageColor' '96'
////////////////////////////////////////////////////////////////////
@createlist 'runeList'
@clearlist 'runeList'
@createtimer 'gateTimer'
settimer 'gateTimer' 35000
@createtimer 'reflectTimer'
settimer 'reflectTimer' 35000
@createlist 'redCount'
@clearlist 'redCount'
msg 'bank' 60
headmsg 'Note: Setting a gate rune is not necessary.' 70
promptalias 'gateRune'
if @findobject 'gateRune'
pushlist 'runeList' 'gateRune'
endif
while @findobject 'gateRune'
@unsetalias 'gateRune'
promptalias 'gateRune'
if @findobject 'gateRune'
pushlist 'runeList' 'gateRune'
endif
endwhile
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
cast 'magic reflection'
pause 2500
while not @findobject 'Infinite Loop'
for 0 to 'runeList'
if @gumpexists 0xb04c9a31
replygump 0xb04c9a31 1
msg 'bank' 60
endif
if str < 100
usetype 0xf09 'any' 'bank'
pause 600
endif
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
@getenemy 'murderer'
if murderer 'last' or criminal 'last'
if not dead 'last'
@pushlist! 'redCount' 'last'
endif
endif
if list 'redCount' >= 1
for 0 to 'redCount'
if not murderer redCount[] and not criminal redCount[]
@poplist 'redCount' redCount[]
endif
endfor
for 0 to 'redCount'
if not @findobject redCount[]
@poplist 'redCount' redCount[]
endif
endfor
endif
if list 'redCount' >= 3
cast 'greater heal'
usetype '0xf09' 'any' 'bank'
pause 600
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if hits < maxhits
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
cast 'greater heal'
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 1500
endif
while targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if diffhits > 35
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
if targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
endif
endif
endwhile
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if hits < maxhits
msg 'guards' 50
usetype '0xf0c' 'any' 'bank'
pause 100
if mana >= 11 and hits < maxhits
cast 'Greater Heal'
pause 500
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
endif
endif
if mana <= 70 and not dead
useskill 'meditation'
while mana != maxmana
if dead
break
endif
if str < 100
usetype 0xf09 'any' 'bank'
pause 600
endif
@getenemy 'murderer'
if murderer 'last' or criminal 'last'
if not dead 'last'
@pushlist! 'redCount' 'last'
endif
endif
if list 'redCount' >= 1
for 0 to 'redCount'
if not murderer redCount[] and not criminal redCount[]
@poplist 'redCount' redCount[]
endif
endfor
for 0 to 'redCount'
if not @findobject redCount[]
@poplist 'redCount' redCount[]
endif
endfor
endif
if list 'redCount' >= 3
cast 'greater heal'
usetype '0xf09' 'any' 'bank'
pause 600
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if hits < maxhits
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
cast 'greater heal'
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 1500
endif
while targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if diffhits > 35
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
if targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
endif
endif
endwhile
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if hits < maxhits
msg 'guards' 50
usetype '0xf0c' 'any' 'bank'
pause 100
if mana >= 11 and hits < maxhits
cast 'Greater Heal'
pause 500
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
waitfortarget 900
if @targetexists
@Target 'self'
pause 1400
endif
endif
endif
if @injournal 'you stop meditating' 'system'
@clearjournal
useskill 'meditation'
endif
pause 100
if @injournal 'you must wait a few moments' 'system'
@clearjournal
pause 100
useskill 'meditation'
endif
endwhile
endif
if timer 'gateTimer' > 35000 and @findobject 'runeList[]'
settimer 'gateTimer' 0
// Gate to rune
cast 'gate travel'
waitfortarget 2500
@clearjournal
if @targetexists
@Target 'runeList[]'
pause 1400
endif
waitforjournal 'the spell fizzles' 100
while @injournal 'the spell fizzles'
@clearjournal
cast 'gate travel'
waitfortarget 2500
if @targetexists
@Target 'runeList[]'
pause 1400
endif
waitforjournal 'the spell fizzles' 100
endwhile
for 0 to gateMessage
for 0 to messageColor
msg gateMessage[] messageColor[]
endfor
endfor
if mana != maxmana
useskill 'meditation'
while mana != maxmana
if dead
break
endif
if str < 100
usetype 0xf09 'any' 'bank'
pause 600
endif
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
@getenemy 'murderer'
if murderer 'last' or criminal 'last'
if not dead 'last'
@pushlist! 'redCount' 'last'
endif
endif
if list 'redCount' >= 1
for 0 to 'redCount'
if not murderer redCount[] and not criminal redCount[]
@poplist 'redCount' redCount[]
endif
endfor
for 0 to 'redCount'
if not @findobject redCount[]
@poplist 'redCount' redCount[]
endif
endfor
endif
if list 'redCount' >= 3
cast 'greater heal'
usetype '0xf09' 'any' 'bank'
pause 600
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 900
if hits < maxhits
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
pause 850
cast 'greater heal'
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
waitfortarget 1500
endif
while targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if diffhits > 35
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
600
endif
if targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
target 'self'
endif
endif
endwhile
endif
if poisoned
msg 'guards' 50
usetype '0xf07' 'any' 'bank'
pause 600
endif
if hits < maxhits
msg 'guards' 50
usetype '0xf0c' 'any' 'bank'
pause 100
if mana >= 11 and hits < maxhits
cast 'Greater Heal'
pause 500
msg 'guards' 50
if poisoned
usetype '0xf07' 'any' 'bank'
pause 600
endif
waitfortarget 900
if @targetexists
if counttype '0xf7a' 'any' 'backpack' < 6
@movetype '0xf7a' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf84' 'any' 'backpack' < 1
@movetype '0xf84' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf85' 'any' 'backpack' < 2
@movetype '0xf85' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf86' 'any' 'backpack' < 3
@movetype '0xf86' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8d' 'any' 'backpack' < 4
@movetype '0xf8d' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
if counttype '0xf8c' 'any' 'backpack' < 5
@movetype '0xf8c' 'bank' 'self' 0 0 0 'any' 15
pause 600
endif
@Target 'self'
pause 1400
endif
endif
endif
if @injournal 'you stop meditating' 'system'
@clearjournal
useskill 'meditation'
endif
pause 100
if @injournal 'you must wait a few moments' 'system'
@clearjournal
pause 100
useskill 'meditation'
endif
endwhile
endif
endif
if timer 'reflectTimer' > 32175
cast 'magic reflection'
for 0 to afkMessage
for 0 to messageColor
msg afkMessage[] messageColor[]
endfor
endfor
settimer 'reflectTimer' 0
endif
pause 50
endfor
endwhile



all that just to afk at a bank? doubt it.
 

TheHawks

Sorceror
So Genocide makes a bank sitter macro for the benefit of our server and you shit heads have nothing better to do than bad mouth him? Mickey you are a massive pile of shit. I have never heard anything other than verbal diarrhea come out of your mouth. El Ugly and Susejmaster why hide on unknown forum accounts and constantly shit talk a server you obviously play?Especially susejmaster, you always have to put down the shard every time you post. "all that just to afk at a bank? doubt it." Are you a fucking moron. You think you would need a 800 line macro to auto heal? This man put his time, effort and skill into this macro. What the fuck have any of you cunts ever done to help this shard? The guy plays a solo dexxer and has trashed so many of you in the field fighting out numbered that you have no recourse other than to try and put him down on the forums.
 
Last edited:

El Ugly 707

Traveler
So Genocide makes a bank sitter macro for the benefit of our server and you shit heads have nothing better to do than bad mouth him? Mickey you are a massive pile of shit. I have never heard anything other than verbal diarrhea come out of your mouth. El Ugly and Susejmaster why hide on unknown forum accounts and constantly shit talk a server you obviously play. Especially susejmaster, you always have to put down the shard every time you post. "all that just to afk at a bank? doubt it." Are you a fucking moron. You think you would need a 800 line macro to auto heal? This man put his time, effort and skill into this macro. What the fuck have any of you cunts ever done to help this shard. The guy plays a solo dexxer and has trashed so many of you in the field fighting out numbered that you have no recourse other than to try and put him down on the forums.
Stop it ! You're hurting my feelings!
 

Anti.Christ

Sorceror
When i skimmed over your script its a good one and in theory works (Im sure you have tested it tremendously).

I just see how you could alter your original script which looks to be 709 Lines long to i estimate about 200-300 lines.....

I was taught by the best.... Before i quit for the last year + i was just making scripts for fun (all i did in uo). I see how it could be more efficient and less redundant. Don't take this as me talking shit because i am not. Im sure it works and works good.

people were trying to insinuate shit.. I was just trying to defend you in a weird way. I will admit though your better than the average person and i find your feat impressive. I just wouldnt say your an uber scripter.. When i was active id say i knew 2 or 3 who i would consider uber.... In reality it was 1 or 2 because one was the UOS creator.... Well one of the two creators
 
Last edited:

Vizeroth

Sorceror
When i skimmed over your script its a good one and in theory works (Im sure you have tested it tremendously).

I just see how you could alter your original script which looks to be 709 Lines long to i estimate about 200-300 lines.....

I was taught by the best.... Before i quit for the last year + i was just making scripts for fun (all i did in uo). I see how it could be more efficient and less redundant. Don't take this as me talking shit because i am not. Im sure it works and works good.

people were trying to insinuate shit.. I was just trying to defend you in a weird way. I will admit though your better than the average person and i find your feat impressive. I just wouldnt say your an uber scripter.. When i was active id say i knew 2 or 3 who i would consider uber.... In reality it was 1 or 2 because one was the UOS creator.... Well one of the two creators
Nah, I don't claim to be an amazing scripter, I'm just wondering how you'd make the script more efficient without sacrificing functionality. I considered the possibility of using other macros as pseudo-methods and keeping track of macro state by using lists as boolean variables, but that would have broken the multiple gate rune functionality. I probably could have solved that issue with lists as well, but by the time it occurred to me, the macro was already complete. Is this what you were referring to, or do you simply think that superfluous code exists in the macro?
 
Last edited:

Anti.Christ

Sorceror
Nah, I don't claim to be an amazing scripter, I'm just wondering how you'd make the script more efficient without sacrificing functionality. I considered the possibility of using other macros as pseudo-methods and keeping track of macro state by using lists as boolean variables, but that would have broken the multiple gate rune functionality. I probably could have solved that issue with lists as well, but by the time it occurred to me, the macro was already complete. Is this what you were referring to, or do you simply think that superfluous code exists in the macro?

Well... I cant make any promises because i dont play anymore, but if i get a wild hair i will half ass alter your script and let you see vs telling you Then you can compare/see what im talking about.

first off is there a reason your checking for different regs in odd numbers at the start. 6,1,2,3,4,5 Then towards the end 15,15,15,15,15,15?


its small things...... yes i would use lists, I would use your timers to control more of what im doing when im doing it, Use my Whiles to control what im checking for and when, and alot of smaller tweaks to make it more quick and efficient.... like this for example.


This is a random small snip i made from yours.
Code:
getenemy 'murderer'
/////why check if last target is crim or murderer.
if murderer 'last' or criminal 'last'
    if not dead 'last'
        @pushlist! 'redCount' 'last'
    endif
endif
/////why check if list is more than 1 or = to 1?
if list 'redCount' >= 1
///// Two For 0 to redCount when one is needed.
    for 0 to 'redCount'
///// It is better to check for the object before you check its noto.
/////Combine them into one list call.
        if not murderer redCount[] and not criminal redCount[]
            @poplist 'redCount' redCount[]
        endif
    endfor
    for 0 to 'redCount'
        if not @findobject redCount[]
            @poplist 'redCount' redCount[]
        endif
    endfor
endif


This is my version
Code:
////only check if ghost when a criminal/murderer enemy is found.
if getenemy 'criminal' 'murderer' and @findobject 'enemy'
    if not dead 'enemy'
        @pushlist! 'redCount' 'enemy'
    endif
endif
/////you dont need that extra if list 'redcount' >= 1
////for 0 to 'redcount' will only iterate only if there is something on list
/////One single For 0 to 'redCount' instead of 2
for 0 to 'redCount'
////First search for the object because if it is not found it pops list. and goes to next
    if not findobject redCount[]
        @poplist! 'redCount' redCount[0]
////It wont check the noto of a object that is not there. Only if it is found...
    elseif not murderer redCount[] and not criminal redCount[]
        @poplist! 'redCount' redCount[0]
    endif
endfor

Cut and paste them into UOS to read better..... i made that small 18 line snippet into 12 lines, and thats only an example.

I used to be an admin back when UOS had its forums up. TBH with you im still not a professional myself and make mistakes, but i can run with the best still atleast i think.. Im sure there are people better than me.... Especially now that i retired.
PS: glad to see your open minded enough to ask me the questions you did rather reply defensively.
 
Last edited:

Vizeroth

Sorceror
Seems like a good change. Does the [0] when popping items serve a purpose in Steam, or was that unintentional?

The reason I gave different restock thresholds to each reagent is to lessen the likelihood of restocking multiple reagents at one time, increasing readiness against attack. I initially had it restock 50 of each reagent, but ended up changing it to 15 to deter no-lifers like Spade from sitting around for hours stealing large amounts of reagents.

I'm curious where you think additional while loops and timers would be appropriate. The issue with most loops that don't finish instantly is that they require all of the defensive functionality of the main loops, otherwise the user becomes vulnerable.

Now that I'm looking at this macro again, I can't actually think of a reason why the gate meditation loop needs to exist at all. I made the main loop meditation much smaller as well, and changed a couple of other things. I'll post the new version after I test it.
 
Last edited:

Anti.Christ

Sorceror
the [0] is the first thing in the list.

you can call on certain things in a list by using the numbers.
[0] [1] and so on... im in a hurry but i will reply when i get some time im headed into town right now.
 
Top