I believe MQ is broken in ways we don't know about yet...

Help section from before the user variable changes that broke all macros

Moderator: MacroQuest Developers

OldNecro
a ghoul
a ghoul
Posts: 136
Joined: Thu Dec 19, 2002 3:09 am

I believe MQ is broken in ways we don't know about yet...

Post by OldNecro » Wed Feb 12, 2003 10:11 am

Here's why:

This code is mostly identical to its previous version, with a few obvious improvements that in no way should cause things like this to happen. Here is a list of the current problems I am having:

- None of the DoT events work at all. They are not even being called.
- The Fizzled and Interrupted events don't work at all.
- ALL other events work perfectly.
- After the macro runs for about 2-3 minutes, MQ starts spamming "couldn't parse && $char(hp,pct)>15 /return" after it has run this exact line of code many thousands of times previous to the error.

and here's the code (which I am reluctant to release, had to modify the code a great deal to remove evidence of where I am using it lol)

Code: Select all

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%|                                                                      |%%|
|%%| necrodot.mac                                                         |%%|
|%%|                                                                      |%%|
|%%| All original code by: OldNecro                                       |%%|
|%%|                                                                      |%%|
|%%| New Features                                                         |%%|
|%%| ------------                                                         |%%|
|%%|    - Added Tell logging                                              |%%|
|%%|    - Added revamped almost every line of code to speed up macro      |%%|
|%%|    - Added real-time predicted HP awareness for the target           |%%|
|%%|    - Automatically switches to new target when enough DoTs have      |%%|
|%%|      beeen applied to current target to eventually kill it           |%%|
|%%|    - Pre-nerf CoS owners will be able to remain invis to avoid adds  |%%|
|%%|    - Since $gm is broken, added GotSummoned event to /q when the GM  |%%|
|%%|      summons you away from your camp                                 |%%|
|%%|    - Added Feign Death re-attempt if failed                          |%%|
|%%|    - Added alerts to check for mobs in aggro radius in upkeep and    |%%|
|%%|      casting loops. If mob can see invis, you will FD. If mob cannot |%%|
|%%|      see invis, you will remain invis and macro will pause until mob |%%|
|%%|      leaves aggro range                                              |%%|
|%%|    - Added meditate sub to reduce duplicate code in casting subs     |%%|
|%%|    - Added many, many more mana-saving efficiencies that are a       |%%|
|%%|      little too in-depth for the scope of this feature list          |%%|
|%%|    - Fixed a bug where macro would freak out if no targets were      |%%|
|%%|      available with 100% health. However, because of this, the macro |%%|
|%%|      no longer works for more than one person at the camp            |%%|
|%%|                                                                      |%%|
|%%| Future Additions                                                     |%%|
|%%| ----------------                                                     |%%|
|%%|    - I am going to add some kind of FD recovery so that /q isn't     |%%|
|%%|      needed. Will check self for detrimental spell effects and       |%%|
|%%|      whatnot and LT as needed, etc.                                  |%%|
|%%|                                                                      |%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

#chat tell

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Definitions ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

#event Dot1Broke "Dark Plague spell has worn off"
#event Dot2Broke "Splurt spell has worn off"
#event Dot3Broke "Pyrocruor spell has worn off"
#event Dot4Broke "Ignite Blood spell has worn off"
#event GotAttacked "YOU for"
#event GotNuked "You have taken"
#event YouResisted "You resist the"
#event GotCastedOn "<some kind of spell effect message>"
#event Fizzled "Your spell fizzles"
#event Interrupted "Your spell is interrupted"
#event Resisted "Your target resisted"
#event FeignFailed "Soandso has fallen to the ground"
#event GotSummoned "summoned by the"

| These will be absorbed into CheckVitals as soon as $char(buff) is fixed.

#event InvisBroke "You feel yourself starting to appear"
#event ShieldBroke "shielding fades"
#event LichBroke "flesh returns."

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Variable Definitions ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

| Duration variables are needed because $spell(duration) is still broken.

#define Dot1 v0
#define Dot1Dmg v1
#define Dot1Dur v2
#define Dot2 v3
#define Dot2Dmg v4
#define Dot2Dur v5
#define Dot3 v6
#define Dot3Dmg v7
#define Dot3Dur v8
#define Dot4 v9
#define Dot4Dmg v10
#define Dot4Dur v11
#define LT v12
#define LTDmg v13
#define LTDur v14
#define LTHP v15
#define LichSpell v16
#define Shielding v17
#define Feign v18
#define MobName v19
#define MobMaxHP v20
#define MobCurHP v21
#define LastMobID v22
#define Recast v23
#define NeedLich v24

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Timer Definitions ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

#define Dot1Timer t0
#define Dot2Timer t1
#define Dot3Timer t2
#define Dot4Timer t3
#define LTTimer t4

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub Main ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Main

   /mqlog *** necrodot started $date() $time() ***
   /call InitializeVariables
   /call SetAlerts

   :MainLoop
   /if $NeedLich==TRUE /call Event_LichBroke
   /if n $MobCurHP<=0 /call GetNewTarget
   /call CheckVitals
   /call CheckAlerts
   /doevents
   /doevents flush
   /goto :MainLoop

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub SetAlerts ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub SetAlerts

   /alert clear 1
   /alert add 1 npc radius 90 <some mob who can't see invis

   /alert clear 2
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>
   /alert add 2 npc radius 90 <mob who can see invis>

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub InitializeVariables ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub InitializeVariables
   
   /varset Dot1 "Dark Plague"
   /varset Dot1Dmg 2440.00
   /varset Dot1Dur 125s
   /varset Dot2 "Splurt"
   /varset Dot2Dmg 2208.00
   /varset Dot2Dur 100s
   /varset Dot3 "Pyrocruor"
   /varset Dot3Dmg 2397.00
   /varset Dot3Dur 113s
   /varset Dot4 "Ignite Blood"
   /varset Dot4Dmg 1411.00
   /varset Dot4Dur 130s
   /varset LT "Vexing Mordinia"
   /varset LTDmg 1317.00
   /varset LTDur 60s
   /varset LTHP 900.00
   /varset LichSpell "Arch Lich"
   /varset Shielding "Shield of the Arcane"
   /varset Feign "Death Peace"
   /varset MobName "<some mob's name>"
   /varset MobCurHP 0.00
   /varset MobMaxHP 10000.00
   /varset LastMobID 0
   /varset NeedLich TRUE

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub InitializeTimers ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub InitializeTimers

   /varset Dot1Timer 0
   /varset Dot2Timer 0
   /varset Dot3Timer 0
   /varset Dot4Timer 0

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub GetNewTarget ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub GetNewTarget

   /echo Getting new target
   /press ESC
   /press ESC
   /press ESC
   /call InitializeTimers
   /target npc notid $LastMobID radius 190 $MobName
   /if $target()==FALSE /return
   /varset LastMobID $target(id)
   /varcalc MobCurHP $target(hp,pct)/100*$MobMaxHP
   /call Event_Dot1Broke
   /call Event_Dot2Broke
   /call Event_Dot3Broke
   /call Event_Dot4Broke

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub CheckAlerts ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub CheckAlerts

   :KeepWaiting
   /if $alert(2)==TRUE /call Event_GotAttacked
   /if $alert(1)==TRUE {
      /doevents InvisBroke
      /doevents GotAttacked
      /doevents GotNuked
      /doevents GotCastedOn
      /doevents YouResisted
      /goto :KeepWaiting
   }

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub CheckVitals ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub CheckVitals

   :VitalsLoop
   /if n $LTTimer>0 /return
   /if n $MobCurHP<$LTDmg && $char(hp,pct)>15 /return
   /if n $char(hp,cur)>$calc($char(hp,max)-$LTHP) /return
   :LTLoop
   /varset Recast FALSE
   /if n $char(mana,cur)<$calc($spell("$LT",mana)+$spell("$Feign",mana)) /return
   /call CheckAlerts
   /stand
   /echo Casting $LT
   /cast "$LT"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if $Recast==TRUE /goto :VitalsLoop
   /varset LTTimer $LTDur
   /varsub MobCurHP $LTDmg
   /delay $spell("$LT",casttime)s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Sub Meditate ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Meditate

   /echo Checking mana level
   :ManaLoop
   /call CheckVitals
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /doevents InvisBroke
   /varadd p0 $spell("$Feign",mana)
   /if n $char(mana,cur)<$p0 /goto :ManaLoop

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Dot1Broke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Dot1Broke
/echo dot1 Event Started

   /if n $MobCurHP<$Dot1Dmg && $MobCurHP<$Dot3Dmg /return
   /if n $Dot1Timer>0 {
      /echo Still have $Dot1Timer ms left before I can recast.
      /return
   }
   :Dot1Loop
   /varset Recast FALSE
   
   | Have to use actual number here because $spell()
   | is broken for all spells above level 60.
   | /call Meditate $spell("$Dot1",mana)

   /call Meditate 425
   /call CheckAlerts
   /stand
   /echo Casting $Dot1
   /cast "$Dot1"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if $Recast==TRUE /goto :Dot1Loop
   /varset Dot1Timer $Dot1Dur
   /varsub MobCurHP $Dot1Dmg

   | Have to use actual number here because $spell()
   | is broken for all spells above level 60.
   | /delay $spell("$Dot1",casttime)s

   /delay 5s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Dot2Broke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Dot2Broke
/echo dot2 Event Started

   /if n $Dot2Timer>0 {
      /echo Still have $Dot2Timer ms left before I can recast.
      /return
   }
   :Dot2Loop
   /varset Recast FALSE
   /call Meditate $spell("$Dot2",mana)
   /call CheckAlerts
   /stand
   /echo Casting $Dot2
   /cast "$Dot2"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if $Recast==TRUE /goto :Dot2Loop
   /varset Dot2Timer $Dot2Dur
   /varsub MobCurHP $Dot2Dmg
   /delay $spell("$Dot2",casttime)s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Dot3Broke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Dot3Broke
/echo dot3 Event Started

   /if n $MobCurHP<$Dot3Dmg && $MobCurHP<$Dot2Dmg /return
   /if n $Dot3Timer>0 {
      /echo Still have $Dot3Timer ms left before I can recast.
      /return
   }
   :Dot3Loop
   /varset Recast FALSE
   /call Meditate $spell("$Dot3",mana)
   /call CheckAlerts
   /stand
   /echo Casting $Dot3
   /cast "$Dot3"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if Recast==TRUE /goto :Dot3Loop
   /varset Dot3Timer $Dot3Dur
   /varsub MobCurHP $Dot1Dmg
   /delay $spell("$Dot3",casttime)s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Dot4Broke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Dot4Broke
/echo dot4 Event Started

   /if n $MobCurHP<$Dot2Dmg /return
   /if n $Dot4Timer>0 {
      /echo Still have $Dot4Timer ms left before I can recast.
      /return
   }
   :Dot4Loop
   /varset Recast FALSE
   /call Meditate $spell("$Dot4",mana)
   /call CheckAlerts
   /stand
   /echo Casting $Dot4
   /cast "$Dot4"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if Recast==TRUE /goto :Dot4Loop
   /varset Dot4Timer $Dot4Dur
   /varsub MobCurHP $Dot4Dmg
   /delay $spell("$Dot4",casttime)s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event GotAttacked ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_GotAttacked

   /beep
   /stand
   /target PC
   /mqlog Got trained by $target(name) $target(surname).
   /echo Oh shit! We got hit! Casting $Feign
   /for v99 1 to 20
      /doevents FeignFailed
      /cast "$Feign"
      /delay 5
   /next v4
   /q
   /endmacro

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event GotNuked ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_GotNuked

   /call Event_GotAttacked

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event YouResisted ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_YouResisted

   /call Event_GotAttacked

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event GotCastedOn ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_GotCastedOn

   /call Event_GotAttacked

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Fizzled ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Fizzled

   /varset Recast TRUE

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Interrupted ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Interrupted

   /varset Recast TRUE

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Resisted ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Resisted

   /varset Recast TRUE

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event FeignFailed ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_FeignFailed

   /stand

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event GotSummoned ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_GotSummoned

   /q
   /endmacro

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event InvisBroke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_InvisBroke

   /echo Clicking Circlet of Shadow
   /stand
   /press CoS Hotkey
   /sit

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event ShieldBroke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_ShieldBroke
/echo shield Event Started

   :ShieldLoop
   /varset Recast FALSE

   | Have to use actual number here because $spell()
   | is broken for all spells above level 60.
   | /call Meditate $spell("$Shielding",mana)

   /call Meditate 350
   /call CheckAlerts
   /stand
   /echo Casting $Shielding
   /cast "$Shielding"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if $Recast==TRUE /goto :ShieldLoop

   | Have to use actual number here because $spell()
   | is broken for all spells above level 60.
   | /delay $spell("$Shielding",casttime)s

   /delay 12s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event LichBroke ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_LichBroke
/echo Lich Event Started

   :LichLoop
   /if $target==FALSE {
      /varset NeedLich TRUE
      /return
   }
   /varset Recast FALSE
   /call CheckAlerts
   /stand
   /echo Casting $LichSpell
   /cast "$LichSpell"
   /delay 10
   /doevents Fizzled
   /doevents Interrupted
   /doevents Resisted
   /doevents GotAttacked
   /doevents GotNuked
   /doevents GotCastedOn
   /doevents YouResisted
   /if $Recast==TRUE /goto :LichLoop
   /varset NeedLich FALSE
   /delay $spell("$LichSpell",casttime)s
   /call Event_InvisBroke
   /delay 15

/return

|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%[ Event Chat ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|
|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|

Sub Event_Chat

   /if $p0==tell /mqlog *** $p1 told you $p2 

/return
I'm not even close to done with it yet, still need to remove the debug /echos and add some /mqlogs and whatnot, but I want to get the thing operational first of course.

So anyone have any idea what is going on?

-OldNecro

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Wed Feb 12, 2003 7:13 pm

Code: Select all

/if n $MobCurHP<$LTDmg && $char(hp,pct)>15 /return
I am assumintg that the first compare is evaluating to true when the spam starts. Try this instead:

Code: Select all

/if n $MobCurHP<$LTDmg /if n $char(hp,pct)>15 /return
Maybe parens are needed.

OldNecro
a ghoul
a ghoul
Posts: 136
Joined: Thu Dec 19, 2002 3:09 am

Post by OldNecro » Wed Feb 12, 2003 7:51 pm

Yes, I did change that shortly after I posted... I believe there are still bugs with the new AND and OR operators. Those parts do work now.

lifewolf
a ghoul
a ghoul
Posts: 143
Joined: Fri Oct 18, 2002 6:29 pm

Post by lifewolf » Wed Feb 12, 2003 9:11 pm

Ugh, dont use && and ||... I have not heard one person say it works, but several bitch that they cant figure it out

I do also believe, anyway, that its
/if (1==2 && 3==3) {
for syntax

GuardianX99
a lesser mummy
a lesser mummy
Posts: 43
Joined: Tue Dec 31, 2002 6:31 pm
Contact:

Post by GuardianX99 » Fri Feb 14, 2003 8:25 pm

WHY are you using && and ||? Why not use | or |**TEXT**| unless thats not for comments

OldNecro
a ghoul
a ghoul
Posts: 136
Joined: Thu Dec 19, 2002 3:09 am

Post by OldNecro » Fri Feb 14, 2003 9:22 pm

I... uh... WTF are you talking about? lol

insanitywiz
a hill giant
a hill giant
Posts: 250
Joined: Mon Jul 08, 2002 7:50 am

Post by insanitywiz » Sat Feb 15, 2003 12:21 pm

I haven't looked through your macro, but fizzle and interupted events work fine for me, so it's something with how your macro is put together, or how your client is reporting some chat. Other then that, I don't know, and it's quite possible that they (SOE) made some changes that have screwed with things.