How can I fix this error? (RESOLVED)

Need some help with that macro you're working on or aren't quite sure how to get your macro to do something? Ask here!

Moderator: MacroQuest Developers

Banannaboy
a lesser mummy
a lesser mummy
Posts: 43
Joined: Tue Apr 13, 2004 9:59 pm

How can I fix this error? (RESOLVED)

Post by Banannaboy » Sat Apr 24, 2004 8:37 pm

Hi. I have been using this macro and since the latest patch I get an error everytime it casts a spell, but the macro still works correctly....I just get spammed. The macro s the following:

Code: Select all

| - twist.mac - 
| 
| Modified from Colonel's Macro by ml2517 
| 
| Modified to current form 4/20/2004 
| 
|  Combat Twist Order ------------+ 
|  NonCombat Twist Order -----+   | 
|                             |   | 
| Usage:                      v   v 
|           /macro twist.mac ### ### 
| # represents the spell gem number you'd like to sing 
| 
| Example: 
| /macro twist.mac 4567 123456 
| 

#Event destroy "You have scrounged up something that doesn't look edible."
#Event move "Your target is too far away, get closer!"
#Event anchor "Drop Anchor"
#Event back "You cannot see your target."
#Event exp "You gain party experience!!"
#Event tank "Set Tank"
Sub Main(Param0) 
    /newif (!${Defined[Param0]}) /endmacro 

| 
|  Variable Declarations 
| 
    /declare CombatCurSong global 
    /declare NonCombatCurSong global 
    /declare NNonCombatSongs global 
    /declare NCombatSongs global 
    /declare NonCombatSongList global 
    /declare CombatSongList global 
    /declare TwistI global 
    /declare TwistJ global 
    /declare DynamicBuffer global 
    /declare NonCombatSongArray array 
    /declare CombatSongArray array 
    /declare ArrSong array
    /declare AnchorX global
    /declare AnchorY global
    /declare tank global 

| 
|  Timer Declarations 
| 
    /declare SingTime timer 
    /varset AnchorY 0
    /varset AnchorX 0
    /varset CombatCurSong 1 
    /varset NonCombatCurSong 1 
    /varset NNonCombatSongs ${String[@Param0].Length} 
    /varset NCombatSongs ${String[@Param1].Length} 
    /varset NonCombatSongList @Param0 
    /varset CombatSongList @Param1 
    /varset DynamicBuffer 5
    /varset tank none

    /for TwistI 1 to @NNonCombatSongs 
        /varcalc TwistJ @TwistI 
        /varset NonCombatSongArray(@TwistI) ${String["@NonCombatSongList"].Mid[@TwistJ,1]} 
    /next TwistI 
    /for TwistI 1 to @NCombatSongs 
        /varcalc TwistJ @TwistI 
        /varset CombatSongArray(@TwistI) ${String["@CombatSongList"].Mid[@TwistJ,1]} 
    /next TwistI 
    :Loop 
    /newif (${Me.State.NotEqual["SIT"]}) { 
        /newif (${Me.Combat}) /call CombatSing @CombatSongArray(@CombatCurSong) 
        /newif (!${Me.Combat}) /call NonCombatSing @NonCombatSongArray(@NonCombatCurSong) 
    } 
   /newif (${Me.State.Equal["DUCK"]}) /keypress DUCK 
   /newif (${Me.State.Equal["SIT"]}) /stand 
   /goto :Loop 
/return 


Sub CombatSing 
     /declare Buffer local 
  :CombatSing1 
    /call CheckSong @Param0 
    /varset SingTime 30 
    /varset Buffer 0    
    /cast @Param0
    /doevents
  :CombatSing2 
    /delay 1
    /doevents 
    /newif (${Me.Casting.ID}) { 
        /newif (@SingTime<=0) /goto :CombatSingBreak 
        /goto :CombatSing2 
    } 
    :CombatSingBreak 
    /newif (@SingTime>0) /goto :CombatSing1 
    /newif (${Macro.Return.Equal[${Int[0]}]}) { 
        /delay @DynamicBuffer 
        /stopsong 
    } else /newif (${Macro.Return.Equal[${Int[2]}]}) { 
      :CombatSing3 
        /varadd Buffer 1 
        /delay 1 
        /newif (@Buffer>8) { 
        /stopsong 
        /goto :CombatSing1 
        } 
        /newif ((${Me.Buff["${Me.Gem[@Param0]}"].ID})&&(${Me.Buff["${Me.Gem[@Param0]}"].Duration}<24)) /goto :CombatSing3 
        /varset DynamicBuffer @Buffer 
        /stopsong 
    } else { 
      :CombatSing4 
        /doevents
        /varadd Buffer 1 
        /delay 1 
        /newif (@Buffer>8) { 
        /stopsong 
        /goto :CombatSing1 
        } 
        /newif (((${Me.Song["${Me.Gem[@Param0]}"].ID})&&(${Me.Song["${Me.Gem[@Param0]}"].Duration}<2))||((${Me.Buff["${Me.Gem[@Param0]}"].ID})&&(${Me.Buff["${Me.Gem[@Param0]}"].Duration}<2))) /goto :CombatSing4 
        /varset DynamicBuffer @Buffer 
        /stopsong 
    } 
|    /echo Dynamic Buffer: @DynamicBuffer 
    /varadd CombatCurSong 1 
    /newif (@CombatCurSong>@NCombatSongs) /varset CombatCurSong 1 
/return 




Sub NonCombatSing 
     /declare Buffer local 
  :NonCombatSing1
    /call CheckSong @Param0 
    /varset SingTime 30 
    /varset Buffer 0    
    /cast @Param0
    /doability "Forage"
    /assist @tank
    /doevents
    /autoinventory  
  :NonCombatSing2 
    /delay 1 
    /newif (${Me.Casting.ID}) { 
        /newif (@SingTime<=0) /goto :NonCombatSingBreak 
        /goto :NonCombatSing2 
    } 
    :NonCombatSingBreak 
    /newif (@SingTime>0) /goto :NonCombatSing1 
    /newif (${Macro.Return.Equal[${Int[0]}]}) { 
        /delay @DynamicBuffer 
        /stopsong 
    } else /newif (${Macro.Return.Equal[${Int[2]}]}) { 
      :NonCombatSing3 
        /varadd Buffer 1 
        /delay 1 
        /newif (@Buffer>8) { 
        /stopsong 
        /goto :NonCombatSing1 
        } 
        /newif ((${Me.Buff["${Me.Gem[@Param0]}"].ID})&&(${Me.Buff["${Me.Gem[@Param0]}"].Duration}<24)) /goto :NonCombatSing3 
        /varset DynamicBuffer @Buffer 
        /stopsong 
    } else { 
      :NonCombatSing4 
        /varadd Buffer 1 
        /delay 1 
        /newif (@Buffer>8) { 
        /stopsong 
        /goto :NonCombatSing1 
        } 
        /newif (((${Me.Song["${Me.Gem[@Param0]}"].ID})&&(${Me.Song["${Me.Gem[@Param0]}"].Duration}<2))||((${Me.Buff["${Me.Gem[@Param0]}"].ID})&&(${Me.Buff["${Me.Gem[@Param0]}"].Duration}<2))) /goto :NonCombatSing4 
        /varset DynamicBuffer @Buffer 
        /stopsong 
    } 
|    /echo Dynamic Buffer: @DynamicBuffer 
    /varadd NonCombatCurSong 1 
    /newif (@NonCombatCurSong>@NNonCombatSongs) /varset NonCombatCurSong 1 
/return 

Sub CheckSong(GemNumber) 
/newif (${Spell["${Me.Gem[@GemNumber]}"].SpellType.Find["Beneficial"]}) { 
    /newif (${Spell["${Me.Gem[@GemNumber]}"].TargetType.Find["Group"]} || ${Spell["${Me.Gem[@GemNumber]}"].TargetType.Find["Self"]} || ${Spell["${Me.Gem[@GemNumber]}"].TargetType.Find["PC"]}) { 
        /newif (${Me.Gem[@GemNumber].Equal["Selo`s Accelerating Chorus"]}) { 
            /return 2 
        } else { 
            /return 1 
        } 
    } else { 
        /return 0 
    } 
} else { 
    /return 0 
} 
/return

Sub Event_destroy
  /echo Destroying ${Cursor.Name}
  /destroy
/return

Sub Event_move
  /doevents flush
  /keypress forward hold
  :Checker
  /face fast nolook
  /newif (${Target.Distance}<=15) {
    /face fast nolook
    /keypress forward
    /return
  }
  /goto :Checker
/return

Sub Event_anchor
  /varset AnchorX ${Me.X}
  /varset AnchorY ${Me.Y}
  /echo Anchor dropped at @AnchorX , @AnchorY
/return

Sub Event_back

/return

Sub Event_exp
/newif (@AnchorX==0 || @AnchorY==0) {
  /echo No anchor is set.
  /return
}
  :AnchorMoveLoop 

   /newif (${Me.State.NotEqual[STAND]}) /stand 
   /face nolook loc @AnchorY,@AnchorX 
   /newif (${Math.Distance[@AnchorY,@AnchorX]}>5) /keypress forward hold 
   /newif (${Math.Distance[@AnchorY,@AnchorX]}<=5) { 
      /keypress forward 
      /newif (${Me.State.NotEqual[STAND]}) /stand 
      /face away nolook loc @AnchorY,@AnchorX 
      /return 
} 
    /goto :AnchorMoveLoop 
/return

Sub Event_tank
  /echo Setting tank...
  /varset tank ${Target}
  /echo Tank set to @tank
/return
  
The error I get is

No such 'spell' member 'Equal'
Last edited by Banannaboy on Sun Apr 25, 2004 12:17 am, edited 1 time in total.

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Sat Apr 24, 2004 9:44 pm

You can do some other cleanup work on this.

(${Macro.Return.Equal[${Int[0]}]})

You dont need to ${Int[0]} just to get the string 0.
${Macro.Return.Equal[0]} is the same thing


Anyway, the error you're getting is here:
(${Me.Gem[@GemNumber].Equal["Selo`s Accelerating Chorus"]})

You need to do
(${Me.Gem[@GemNumber].Name.Equal["Selo`s Accelerating Chorus"]})
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Banannaboy
a lesser mummy
a lesser mummy
Posts: 43
Joined: Tue Apr 13, 2004 9:59 pm

Post by Banannaboy » Sun Apr 25, 2004 12:16 am

Thanks Lax

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Sun Apr 25, 2004 9:16 am

Or you could have just gotten the new one :P