AutoProvoker

eppy

Grandmaster
//Clear Mobs
unsetalias 'provoke1'
unsetalias 'provoke2'
//Get first mob
if getenemy 'gray' 'criminal' 'enemy' 'nearest'
@setalias 'provoke1' 'enemy'
else
sysmsg 'No Mobs within range to provoke'
stop
endif
//Get Second mob - because 'nearest' is used, it will not select the same mob as above as nearest cycles through the two closest mobs
if getenemy 'gray' 'criminal' 'enemy' 'nearest'
@setalias 'provoke2' 'enemy'
else
sysmsg 'No Mobs within range to provoke'
stop
endif
if getenemy 'murderer' 'humanoid'
setalias 'asshat' 'enemy'
headmsg 'Found Murderer'
endif
useskill 'Provocation'
pause 600
waitfortarget 1500
target! 'provoke1'
waitfortarget 1500
if findalias 'asshat'
target! 'asshat'
pause 600
msg 'all kill'
waitfortarget 1500
target! 'asshat'
unsetalias 'asshat'
else
target! 'provoke2'
endif
 

[Legato]

Master
//Clear Mobs
unsetalias 'provoke1'
unsetalias 'provoke2'
//Get first mob
if getenemy 'gray' 'criminal' 'enemy' 'nearest'
@setalias 'provoke1' 'enemy'
else
sysmsg 'No Mobs within range to provoke'
stop
endif
//Get Second mob - because 'nearest' is used, it will not select the same mob as above as nearest cycles through the two closest mobs
if getenemy 'gray' 'criminal' 'enemy' 'nearest'
@setalias 'provoke2' 'enemy'
else
sysmsg 'No Mobs within range to provoke'
stop
endif
if getenemy 'murderer' 'humanoid'
setalias 'asshat' 'enemy'
headmsg 'Found Murderer'
endif
useskill 'Provocation'
pause 600
waitfortarget 1500
target! 'provoke1'
waitfortarget 1500
if findalias 'asshat'
target! 'asshat'
pause 600
msg 'all kill'
waitfortarget 1500
target! 'asshat'
unsetalias 'asshat'
else
target! 'provoke2'
endif

Do you just keep this on loop while you run around a dungeon? or do you press once each time?
 

halygon

Grandmaster
Here is mine that I posted on the forums a while back, (I think it disappeared with the Carl incident). For some reason it looks very similar to @eppy 's - I know I didn't copy his... :)

Code:
//Name: Halygon's Dual Mob Provoke Macro
//Description: This macro selects the two nearest mobs and provokes them upon one another.  No selection is required, only set this macro to a hotkey.  Be aware that you do not have control over who it targets if multiple mobs are equally in range.
//Create Instrument List if it does not exist
if not listexists 'instrumentlist'
  @createlist 'instrumentlist'
endif
//Clear list -- in case you have added additional instrument types
@clearlist 'instrumentlist'
//Add below different types of instruments to use -- Common Ones are Added already
//Standing Harp
@pushlist 'instrumentlist' 0xeb1
//Lap Harp
@pushlist 'instrumentlist' 0xeb2
//Lute
@pushlist 'instrumentlist' 0xeb3
//Drum
@pushlist 'instrumentlist' 0xe9c
//Tambourine
@pushlist 'instrumentlist' 0xe9d
//Tambourine with red tassle
@pushlist 'instrumentlist' 0xe9e
//Select an instrument automatically to use
for 0 to 'instrumentlist'
  @findtype instrumentlist[]
  @setalias 'instrument' 'found'
endfor
//Clear Mobs
unsetalias 'provoke1'
unsetalias 'provoke2'
//Get first mob
if getenemy 'gray' 'enemy' 'nearest'
  @setalias 'provoke1' 'enemy'
else
  sysmsg 'No Mobs within range to provoke'
endif
//Get Second mob - because 'nearest' is used, it will not select the same mob as above as nearest cycles through the two closest mobs
if getenemy 'gray' 'enemy' 'nearest'
  @setalias 'provoke2' 'enemy'
else
  sysmsg 'No Mobs within range to provoke'
endif
//Clear journal to prepare for instrument check
clearjournal
useskill 'Provocation'
pause 1000
//If instrument has not been used since login, this will find the message asking to select an instrument and target the pre-selected instrument from above
if @injournal 'What instrument shall' 'system'
  target! 'instrument'
endif
waitfortarget 1500
target! 'provoke1'
waitfortarget 1500
target! 'provoke2'
 

Lightfoot

Expert
So the biggest problem with UOF is the automation, why would you even share this? Provoke is already the easiest skill in the world, why make it even easier? Do we even want people to play, or just macro through a dungeon haha seems wrong on a few fronts.
 

eppy

Grandmaster
You don't loop it. It's just a button that's useful in limited situations. It's downright harmful in others.
 

Young Star

Grandmaster
I will have to try this one out and compare to my current one. Looks like it selects targets in a similar manner. The one I'm using I often times have to double tap it to get the provoke to finish.
 

Young Star

Grandmaster
After testing both @eppy and @halygon 's macros I still prefer the one I have. Eppy's works decent but has a longer delay before it finishes provoking. Hally's I could not get to work very well at all. It wouldn't target two mobs on screen a lot of times even when they were the only ones. It kept targeting the same one and getting the "you can't tell someone to attack themselves".

I got this one from a guild mate early on when I started on this server and I don't see it posted anywhere. I think it runs a lot faster. Once in a while I have to double tap the hotkey but for the most part it is pretty reliable:


Code:
@cleartargetqueue
if not listexists 'provo'
  createlist 'provo'
endif
if not listexists 'safety'
  createlist 'safety'
endif
@clearlist 'provo'
@clearlist 'safety'
if getenemy! 'gray' 'criminal' 'closest'
  useskill 'Provocation'
  waitfortarget 2000
  target! 'enemy'
  waitfortarget 2000
  pushlist 'provo' 'enemy'
  while getenemy 'gray' 'murderer' 'criminal'
    pushlist 'safety' 1
    if not @inlist 'provo' 'enemy' and @inrange 'enemy' 10
      break
    endif
    if list 'safety' > 5
      stop
    endif
  endwhile
  target! 'enemy'
endif
 

halygon

Grandmaster
Heh, to be fair, I haven't used mine in about two years - which was the last time I trained Provo.
 

Young Star

Grandmaster
I dont think it is really anything wrong with your script. It is just the way the client decides to find "nearest" targets. I don't think it is very reliable.

TBH I am not exactly sure how the one I have is getting two different targets. I see that it gets the first one and adds it to a list then gets another but what I don't see is how it excludes the first target.
 

halygon

Grandmaster
I dont think it is really anything wrong with your script. It is just the way the client decides to find "nearest" targets. I don't think it is very reliable.

TBH I am not exactly sure how the one I have is getting two different targets. I see that it gets the first one and adds it to a list then gets another but what I don't see is how it excludes the first target.
I guess in any of the macros, you could use the ignoreobject command to ignore the previously found mob from future searches and clearignorelist to wipe that out after every macro run. That's the only real way i see to improve any of these.
 

PekatronIII

Grandmaster
in Khaldun it's script does not work or does not work properly.
frog.png
 

Nailbomb

Neophyte
After testing both @eppy and @halygon 's macros I still prefer the one I have. Eppy's works decent but has a longer delay before it finishes provoking. Hally's I could not get to work very well at all. It wouldn't target two mobs on screen a lot of times even when they were the only ones. It kept targeting the same one and getting the "you can't tell someone to attack themselves".

I got this one from a guild mate early on when I started on this server and I don't see it posted anywhere. I think it runs a lot faster. Once in a while I have to double tap the hotkey but for the most part it is pretty reliable:


Code:
@cleartargetqueue
if not listexists 'provo'
  createlist 'provo'
endif
if not listexists 'safety'
  createlist 'safety'
endif
@clearlist 'provo'
@clearlist 'safety'
if getenemy! 'gray' 'criminal' 'closest'
  useskill 'Provocation'
  waitfortarget 2000
  target! 'enemy'
  waitfortarget 2000
  pushlist 'provo' 'enemy'
  while getenemy 'gray' 'murderer' 'criminal'
    pushlist 'safety' 1
    if not @inlist 'provo' 'enemy' and @inrange 'enemy' 10
      break
    endif
    if list 'safety' > 5
      stop
    endif
  endwhile
  target! 'enemy'
endif


i hate to necro posts.. but this macro is extremely helpful. it has helped me soo much . thanks
 

Cossi

Novice
//Clear Mobs
unsetalias 'provoke1'
unsetalias 'provoke2'
//Get first mob
if getenemy 'gray' 'criminal' 'enemy' 'nearest'
@setalias 'provoke1' 'enemy'
else
sysmsg 'No Mobs within range to provoke'
stop
endif
//Get Second mob - because 'nearest' is used, it will not select the same mob as above as nearest cycles through the two closest mobs
if getenemy 'gray' 'criminal' 'enemy' 'nearest'
@setalias 'provoke2' 'enemy'
else
sysmsg 'No Mobs within range to provoke'
stop
endif
if getenemy 'murderer' 'humanoid'
setalias 'asshat' 'enemy'
headmsg 'Found Murderer'
endif
useskill 'Provocation'
pause 600
waitfortarget 1500
target! 'provoke1'
waitfortarget 1500
if findalias 'asshat'
target! 'asshat'
pause 600
msg 'all kill'
waitfortarget 1500
target! 'asshat'
unsetalias 'asshat'
else
target! 'provoke2'
endif


How and where do i transfer this macro?
 
Top