Author Topic: PVM aide  (Read 8273 times)

0 Members and 2 Guests are viewing this topic.

Offline SinbadSailingTopic starter

  • Newbie
  • *
  • Posts: 5
  • Activity:
    0%
  • Reputation Power: 1
  • SinbadSailing has no influence.
  • Respect: +1
  • Referrals: 0
    • View Profile
PVM aide
« on: July 28, 2016, 09:18:16 PM »
0
Here is a script I loop sometimes during pvm on a no skill cap shard. It is useful for reducing clicks, but it is a work in progress and is not foolproof. I welcome any and all feedback.

Known issues:
1. Sometimes the pet is accidentally disco'd.
2. Sometimes the all kill command accidentally tells the pet to kill the player.
3. Relies on the Loop checkbox. This should be easy enough to fix by wrapping the whole thing in 'while not dead' hopefully
4. Beware that this will auto-attack PKs. Remove the 'murderer' condition from @getenemy if you want don't want to deal with this.
5. You must already have an "active" instrument before this script starts. I usually double click an instrument in my pack before hitting play.

Things I want to change:
1. Prioritize self-health monitoring. Maybe I could wrap each subsection in a while loop that would break if my hits go below some threshold. Then control would return to the self-healing section.
2. Auto-detect pet instead of having to set the alias manually.
3. For monsters that create spawn (e.g. Dark Father): find a way to have both the pet and player attack the boss, but if there is spawn then the player kills the spawn while the pet stays on the boss, then once the spawn is cleared the player returns to attacking the boss.
4. Make the discordance robust to not having an active instrument selected yet.

Cheers



Code: [Select]
//----------------------------------------
// Self-health monitoring
//---------------------------------------
// Heal if hits go below 55% of total
if diffhits 'self' > 45
  // Heal to 90%
  while diffhits 'self' > 10
    bigheal
    target! 'self'
  endwhile
endif
//----------------------------------
// Heal Pet
//-----------------------------------
if not findalias 'pet1'
  promptalias 'pet1'
endif
// Heal if hits go below 60% of total
if diffhits 'pet1' > 40
  //Heal to 85%
  while diffhits 'pet1' > 15
    while 'poisoned' 'pet1'
      cast "cure"
      waitfortarget 2000
      target! 'pet1'
    endwhile
    cast 'greater heal'
    waitfortarget 2000
    target! 'pet1'
  endwhile
endif
//---------------------------------------
// Get enemy & disco + all kill
//-----------------------------------------
@getenemy 'enemy' 'criminal' 'murderer' 'closest'
if @findobject 'enemy'
  @clearjournal
  if @inrange 'enemy' 10
    // set pet on enemy
    msg 'All Kill'
    waitfortarget 1000
    target! 'enemy'
    if not @timerexists 'discotimer'
      @createtimer 'discotimer'
    endif
  endif
endif
// Disco enemy, and continue trying if it fails
if not @injournal 'jarring' and not @injournal 'already' and not @injournal 'would have no effect'
  if timer 'discotimer' >= 2050
    useskill 'Discordance'
    waitfortarget 1000
    target! 'enemy'
    settimer 'discotimer' 0
  endif
endif
//----------------------------------
// Weapon ability spam
//-------------------------------
if not timerexists 'abilitytimer'
  settimer 'abilitytimer' 500
endif
if timer 'abilitytimer' >= 500
  @setability 'primary' 'on'
  //@setability 'secondary' 'on'
  settimer 'abilitytimer' 0
endif
//----------------------------------------------
// Char buffs
//--------------------------------------------
if not buffexists 'Enemy of One'
  cast 'Enemy of One'
  pause 250
endif
if not buffexists 'Bless'
  cast 'Bless'
  waitfortarget 1500
  target! 'self'
  pause 250
endif

Offline Yulack

  • Newbie
  • *
  • Posts: 8
  • Activity:
    0%
  • Reputation Power: 1
  • Yulack has no influence.
  • Respect: +3
  • Referrals: 0
    • View Profile
Re: PVM aide
« Reply #1 on: August 31, 2016, 06:06:50 AM »
0
hope this helps
target! 'enemy' 125 <-- timed out timer, as with all times the best one is the one You find works
with a pause 126
then canceltarget

if not @injournal 'jarring' and not @injournal 'already' and not @injournal 'would have no effect'
  if timer 'discotimer' >= 2050
    useskill 'Discordance'
    waitfortarget 1000
    target! 'enemy' 125
    settimer 'discotimer' 0
    pause 126
    canceltarget
  endif
endif

Tags: