Mana Robe macro - and my first macro

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Mana Robe macro - and my first macro

Post by horseshoecrabs » Mon Aug 22, 2005 8:53 pm

Hi,

This is my first macro, and it's designed to take the tedium out of using a mana robe in conjunction with a rune item such as a wizzy epic. It's in my comments in the code, but I'll say it again here anyway: thank you to everybody who has contributed code to these boards. Without so many examples to work from, I wouldn't have been able to make anything at all. I would LOVE to get some contructive criticism, so please share your thoughts (or improved code...) with this totally inexperienced, non-programming n00b.

Cheers!

edit: deleted this macro because the one in the next post is SO much better at handling laggy situations.
Last edited by horseshoecrabs on Sat Aug 27, 2005 2:47 pm, edited 1 time in total.

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Fri Aug 26, 2005 6:00 pm

Deleted this version and posted new and improved version at end of thread.
Last edited by horseshoecrabs on Sun Oct 02, 2005 3:42 pm, edited 1 time in total.

flabbie
orc pawn
orc pawn
Posts: 11
Joined: Wed May 18, 2005 7:57 pm

Post by flabbie » Sun Sep 04, 2005 3:10 am

great effort ..at least I think so but it doesn't quite work for me at this point in time.

I have a fabled mana robe as opposed to the regular one..also I have a different rune device...I use the Wand of Impenetrable Force when robing. I also use a different regular primary and a different regular chest piece.

When I looked to change your variables to match my setup, I noticed that you have seperate variable declarations from the assigning the value.

For example you could consolidate your

Code: Select all

/declare ManaRobe outer 
   /varset ManaRobe Mana Robe
into

Code: Select all

/declare Manarobe string outer Mana Robe
Although that's just a preference for myself, it seems to be a popular practice on a lot of macros here.

However, I also noticed that you didn't use "string" in your declaration of the varaiables that named your various armor gear and that caused lots of errors for me...which disappeared after adding "string" into the line before the "outer".

Anyhoo, keep up the good work and I look forward to seeing more from this macro =)[/code]

flabbie
orc pawn
orc pawn
Posts: 11
Joined: Wed May 18, 2005 7:57 pm

Post by flabbie » Sun Sep 04, 2005 3:27 am

Forgive me, but I love the idea of this macro but I would also like to make it work for all those out there as well.

There are several places right away where the macro is checking for very specific buffs and items. I know there are really cool ways to get around it but at this time of night, I ain't thinking of any. So if I may be so bold as to request a change... /duck

The most obvious is when you are looking for

Code: Select all

/call item "Discordant Leggings of Betrayal"

$(Me.Buff[Aura of Eternity].Duration.TotalSeconds)
Instead add variables in the begining that we can call throughout the macro like so:

Code: Select all

/declare ClickyFTItem string outer Discordant Leggings of Betrayal
/declare ClickyFTBuff string outer Aura of Eternity


/call item ${ClickyFTItem}
$(Me.Buff[${ClickyFTBuff}].Duration.TotalSeconds)
I'm a novice at this entire coding thing myself but this is something I was working on but you beat me to it!

nadia69
decaying skeleton
decaying skeleton
Posts: 2
Joined: Sun Sep 04, 2005 11:13 am

Post by nadia69 » Sun Sep 04, 2005 11:14 am

what and where insert a code for cast gem 5 between each manarobe cast ? for long mob ) ?
for do in game
manarobe nuke manarobe nuke mana nuke mana nuke ?

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Fri Sep 09, 2005 1:57 pm

There are several places right away where the macro is checking for very specific buffs and items. I know there are really cool ways to get around it
You're absolutely correct about this. The easiest (but less clean) solution would be for you to do a search and replace of all instances of a given buff name and replace it with something else. The other solution is to call the buff name out just once at the beginning of the code as a string name and then have that string referenced in all the code. However, you still have to replace the buff name at least once, so you may as well do a global search and replace. That said, when I have some time to look at it, I will probably do as you suggested only because I'm anal retentive that way. :)
what and where insert a code for cast gem 5 between each manarobe cast ? for long mob ) ?
for do in game
manarobe nuke manarobe nuke mana nuke mana nuke ?
I think I understand what you're asking, so I'll answer this in two different parts.

First, you no longer have to call out a spell gem number, you can simply tell MQ to cast the name of the spell you want. If you're wanting to call a spell gem specifically because you're going to change the nuke sitting in spell gem 5 for example and you don't know how to call the spell in that gem slot, go read the manual.

You're question about where to stick a nuke in this macro isn't really appropriate to this macro. The reason for this is that the code flows from top to bottom and it takes EVERY opportunity to cast Harvest and Harvest of Druzzil, both of which have very long cast times. This would have a profound and perhaps very unfortunate consequence if you needed to land a nuke on a mob that's gating and you find yourself sitting there stunned from Harvest or in the middle of casting it. My advice to you; take the pieces of the code you like and make a different macro.

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Mon Sep 26, 2005 12:12 pm

great effort ..at least I think so but it doesn't quite work for me at this point in time.

I have a fabled mana robe as opposed to the regular one..also I have a different rune device...I use the Wand of Impenetrable Force when robing. I also use a different regular primary and a different regular chest piece.

When I looked to change your variables to match my setup, I noticed that you have seperate variable declarations from the assigning the value.

For example you could consolidate your

Code:

/declare ManaRobe outer
/varset ManaRobe Mana Robe



into

Code:

/declare Manarobe string outer Mana Robe



Although that's just a preference for myself, it seems to be a popular practice on a lot of macros here.

However, I also noticed that you didn't use "string" in your declaration of the varaiables that named your various armor gear and that caused lots of errors for me...which disappeared after adding "string" into the line before the "outer".

Anyhoo, keep up the good work and I look forward to seeing more from this macro =)[/code]
Hi Flabbie,

I've had some time to look at this and here's the thing: I made the names of the items and buffs very specific so that there was no chance of grabbing the wrong item out of the bag or checking for the correct buffs. It's a relatively simple matter to do the search and replace.

Now, the pitfall you may have is that if you have a Time wand, you MUST also update your bandolier or the script will break.

I have also made some additional modifications for swapping in the auxillary mana buff item such as a Ssraa Emperor robe, mana buff pants, whatever you may have. Again, it's a matter of identifying the correct item (assuming you have one) and notifying the correct slots and time remaining on the buff it casts.

I am not quite happy yet with rev 2 of the script as I've just described it, and I have to travel on business this week, so look for something from me next week.

Cheers!

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Sun Oct 02, 2005 3:38 pm

Hi there, I'm back from the business trip and had a chance to look things over in my macro. I took your suggestions and rolled the varsets into the string declarations, but for an interestingly different reason than just good form.

Somebody above indicated that the variables weren't being set up correctly until they were consolidated. I didn't run into this problem until I added a couple more variables, so I don't know if I inadvertantly ran into some kind of MQ2 limit or what. Anywho, consolidation of the variable declarations fixed my problem as well, so I'll be using that format as a "best practices" policy going forward.

I did as requested and changed all instances of buff names and equipment to variables so changing names of any specifics need only happen once, at the top of the script.

Friendly reminder of things to keep in mind when modifying and using this macro:

You are responsible for coherency in your bandolier settings. If you have the wrong item defined in the bandolier, the script will try to cast the wrong item from your mainhand slot when the bandolier is called.

Don't forget! Time Wand = 12 casts in the script, Wizzy Epic 1.0 = 13 casts. Change script as needed to reflect this.

You need to go through the variable declarations and make sure you indicate the correct rune casting item AND its corresponding buff name.

You need to go through the variable declarations and indicate the correct AuxManaItem (PG trials belt that casts minor crack, silk caster legs from Epic 2.0 chest, etc.) AND it's corresponding buff. If you don't have any such item that does this, feel free to strip out the sections of code that call it. It's easy enough to identify.

The AuxManaItem may also be something you wear! In that case, strip out the parts of the script that tell MQ how to go find this item in a bag and instead replace it all with a simple "/cast item ${AuxManaItem}

And my apologies for the indentations - notepad is a crappy editer. :twisted:

Stuff I may do one of these days:

- see about forcing the position of the alt key as up when doing a right of left mouse operation
- run a loop-based check to ensure bags are opening and closing correctly before allowing script to continue
- check on duration of certain key buffs and refresh as necessary such as O'Keil's Levity, SoW / SoE, etc.

Without further ado:

edited: see thread near bottom of page 1 (this page).
Last edited by horseshoecrabs on Mon Oct 03, 2005 1:01 am, edited 1 time in total.

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Sun Oct 02, 2005 4:30 pm

yours

Code: Select all

/declare AuxManaItem outer "Garter Belt of Minor Crack"
better

Code: Select all

/declare AuxManaItem string outer Garter Belt of Minor Crack
yours

Code: Select all

/cast item ${AuxManaItem}
better

Code: Select all

/cast item "${AuxManaItem}"
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Sun Oct 02, 2005 6:15 pm

I can see how the nomenclature is interchangeable, but why is your proposed method better? In mine, the fewest number of quotation marks necessary are used.

Is it aesthetics or something else?

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Sun Oct 02, 2005 6:36 pm

Generally you do not want "" in the declare because it will mess things up when you do /call's in other things. It may be working here fine, but it won't in other situations. It is better to have the "" on the /call line.
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Sun Oct 02, 2005 11:13 pm

Ok, how's this? Will delete my other post once I get a thumbs up from somebody who knows a lot more about this than I do (which is probably 90% of the people on these boards).

Edited on 10/14/2005, but not related to the recent EQ patch. I found a REALLY stupid bug that assumed you were already wearing the AuxManaItem if you tried to cast that item near the end of the script. Putting on the item, casting it, and putting it back in inventory is now a subroutine. :idea:

Moved the global "RobeCasts" declaration out to autoexec.cfg. No more non-critical errors during macro execution when trying to re-declare a global var.

Added a couple more /doevents checks. No need to spam the break key now. Every instance where a spell / item is being cast should now be the last thing the script tries to do when interrupting it with a hot key.

Code: Select all

|Useage: This Macro requires the Wizard Epic, but is easily 
|adaptable to work with the Wand of Impenetrable Force from time. 
| 
|This macro will grab your mana robe from inventory (if you're not 
|wearing it) and then cast it, keeping you buffed with the Epic 
|rune so as not to take any damage. 
| 
| Thanks to Yalp, Casperwiz and Ieatacid for the orginal code.  If it looks like I stole 
| your code and didn't mention you, you're probably right.  I learned this from scratch... 
| and looked at tons of code to figure out how MQ2 basically works.  If I forgot you, mea 
| culpa. 
| 
| Significant (so I tell myself) modifications made by Horseshoecrabs: in no particular 
| order... 
| 
|   - Less retarded about casting the horse unnecessarily. 
|   - Attempting a new strategy for robeswapping: robes stay on pointer until macro is 
|     done or interrupted. 
|   - Made the delay for moving equipment around an incremental number so it's more 
|     dynamic about lagged vs. unlagged situations.  Starts at zero. 
|   - Includes new logic to integrate Harvest and Harvest of Druzzil in a more robust way 
|   - Includes logic to check for a mount 
|   - If macro runs until you are FM, macro will dispel horse only if you didn't already 
|     have it loaded 
|   - Added counters to show mana and number of Mana Robe casts 
|   - Modified logic to swap the mainhand item and the chest item 
|   - Using Bandolier for primary item - it's faster at switching than scripting.  They 
|     are referred to as "uber" and "lich" below. 
|   - Added Events handling to better capture actual runes cast, manarobe casts to handle 
|     counters better 
|   - Remembers how many casts were made against a rune in a previous macro session 
|     - If you don't get nailed between mana robe macro sessions, your rune shouldn't get 
|       removed at all. 
| 
|   - Attempts to recognize if you're wearing the wrong gear at end of macro 
|     - added this because lag or spamming a break key can cause you to leave on the wrong 
|       robe or mainhand item. (may not be perfected or even possible to perfect) 
| 
|   - Added a macro break key.  Your mq2custombinds.txt file will need an entry to make 
|     the key work: 
|      name=Interrupt 
|      down=/multiline ; /if (${Me.Mount.ID}) /dismount; /stopcast 
|      up= 
| 
|   - And of course you'll need to bind Interrupt (or whatever you want to call it) to a 
|     key, F11 etc.  It may be necessary to push the break key a couple times to interrupt 
|     the script completely, but it's not too bad. 
| 
|   - If you have a mana regen item such as Girdle of Efficiency, the script will check 
|     remaining time on it and recast at 5 minutes or less. 
|   - Used variables wherever possible so if you have the Time wand, you can simply change 
|     the varset for "RuneStaff" and the rest will work as intended. 
|   - If you use a Time wand, make sure you change all instances of "13" to "12" so you 
|   - don't chew through the entire rune. 
|   - Harvest of Druzzil has a special delay timer on casting - the scripting acts wonky 
|     if it's not there. 
|   - If you're not on a mount and you get stunned by Harvest, you sit automatically for a 
|     little extra mana regen :) 
|   - Script is agnostic about where you keep your items; any bag will do 
|   - Attempts to keep your best gear on as often as possible since HPs and resists matter 
|     during raid events. 

#event StopRoutine "You must be standing to cast a spell." 
#event StopRoutine "Your spell is interrupted." 
#event FreshRune "You are surrounded by a swirling maelstrom of magical force." 
#event FreshRune "Your body is surrounded by a Force Shield." 
#event ManaRobeCast "You feel your life force draining into your mind." 
#turbo 

Sub Main 
/declare AuxManaItem string outer Uber Legs of Minor Crack
/declare AuxManaBuff string outer Minor Crack
/declare ManaRobe string outer Mana Robe
/declare MountItem string outer Giant Black Drum
/declare PriChest string outer Ghostly Robes
/declare PriLegs string outer Pantaloons of Ass Kicking
/declare PriMainhand string outer Staff of Prismatic Power
/declare RuneBuff string outer Force Shield
/declare RuneStaff string outer Wand of Impenetrable Force
/declare BagChest int outer
|
|  /declare RobeCasts int global
|  move the previous command out to \release\autoexec.cfg
|
/declare AlreadyMounted int outer 1
/declare SpellWait int outer 1
/declare IncrementalWait int outer 0
    
   /call UnloadCursor
   /if (${Me.Buff[${RuneBuff}].Duration.TotalSeconds}>300 && ${Me.Buff[${AuxManaBuff}].Duration.TotalSeconds}<300 && ${Me.PctMana}>=95) /call CastAuxManaItem
   /doevents
   /if (${Me.Buff[${RuneBuff}].Duration.TotalSeconds}>300 && ${Me.Buff[${AuxManaBuff}].Duration.TotalSeconds}>300 && ${Me.PctMana}>=95) /goto :EndIt
   /doevents
   /if (!${Me.Mount.ID}) { 
	/varset AlreadyMounted 0 
	/cast item "${MountItem}"
	/call CastWait 
	}

   /doevents
   /If (${Me.Buff[${AuxManaBuff}].Duration.TotalSeconds}<300) /call CastAuxManaItem
   /doevents
   /varset BagChest ${FindItem[${ManaRobe}].InvSlot.Pack} 
   /if (!${Window[${BagChest}].Open}) /nomodkey /itemnotify ${InvSlot[${BagChest}]} rightmouseup
	:loop
	/if (!${Cursor.ID}) {
		/nomodkey /itemnotify ${FindItem[${ManaRobe}].InvSlot} leftmouseup 
		/varcalc IncrementalWait ${IncrementalWait}+1
		/delay ${IncrementalWait}
		/goto :loop
		}
	/varset IncrementalWait 0

	/if (!${Window[${BagChest}].Open}) /nomodkey /itemnotify ${InvSlot[${BagChest}]} rightmouseup
   /doevents

   :mainloop 
   /varset SpellWait 1 
   /if (!${Me.Buff[${RuneBuff}].ID}) { 
      /if (!${Me.Inventory[Mainhand].Name.Equal[${RuneStaff}]}) /docommand /bandolier activate lich
      /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup 
      /echo Casting Rune (top of GetMana Routine) 
      /cast item "${RuneStaff}" 
      /call CastWait 
      /doevents
      } 

   /if (${Me.PctMana} < 90 && ${Me.AltAbilityReady[Harvest of Druzzil]}) { 
      /varset SpellWait 10 
      /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]}) /docommand /bandolier activate uber 
      /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup 
      /echo Casting Harvest of Druzzil 
      /docommand /alt activate 172
      /call CastWait 
      /varset SpellWait 1 
      /doevents 
      } 

   /if (${Me.PctMana} <= 90 && ${Me.SpellReady[Harvest]}) { 
      /varset SpellWait 10
      /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]}) /docommand /bandolier activate uber 
      /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup 
      /echo Casting Harvest 
      /cast "Harvest"
      /call CastWait 
      /varset SpellWait 1 
      /doevents 
      } 

   /if (${Me.Buff[${RuneBuff}].ID}) /echo Mana Robe has been cast ${RobeCasts} time(s) against this rune and you have ${Me.PctMana}% mana. 

   /if (${Me.PctMana}>=95 && ${RobeCasts}<=2) { 
      /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]}) /docommand /bandolier activate uber 
      /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup
      /echo Mana is at ${Me.PctMana}% and Rune is healthy, exiting main loop. 
      /doevents 
      /goto :Endit 
      } 

   /if (${RobeCasts} >2 && ${Me.PctMana}>=95) { 
      /if (!${Me.Inventory[Mainhand].Name.Equal[${RuneStaff}]}) /docommand /bandolier activate lich 
      /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup 
      /cast item "${RuneStaff}"
      /call CastWait 
      /doevents 
      /goto :Endit 
      } 

   /if (${RobeCasts} == 12) { 
      /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup 
      /if (!${Me.Inventory[Mainhand].Name.Equal[${RuneStaff}]}) /docommand /bandolier activate lich 
      /cast item "${RuneStaff}" 
      /call CastWait 
      /doevents 
      } 

   /if (!${Me.Inventory[Chest].Name.Equal[${ManaRobe}]}) /nomodkey /itemnotify chest leftmouseup 
      /nomodkey /itemnotify chest rightmouseup 
      /call CastWait 
      /doevents
      /goto :mainloop 

   :Endit 
    /if (${Window[${BagChest}].Open}) /nomodkey /itemnotify ${InvSlot[${BagChest}]} rightmouseup
    /if (!${Me.Buff[${RuneBuff}].ID}  || ${Me.Buff[${RuneBuff}].Duration.TotalSeconds} < 300) {
       /if (!${Me.Inventory[Mainhand].Name.Equal[${RuneStaff}]}) /docommand /bandolier activate lich
       /cast item "${RuneStaff}"
       /call CastWait
      } 

   /doevents 

   :TryAgain0 
   /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]}) /docommand /bandolier activate uber 
   /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup
   /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]} | | !${Me.Inventory[Chest].Name.Equal[${PriChest}]} ) /goto :TryAgain0 
   /call UnloadCursor

   /if (${RobeCasts}==0) /echo Fresh Rune has been cast 

   /if (${Me.Buff[${AuxManaBuff}].Duration.TotalSeconds}<300) /call CastAuxManaItem
   /if (${AlreadyMounted}==0) /dism 

/endmac 

Sub CastWait 
   :Casting 
   /delay ${SpellWait} 
   /if (${Me.Stunned} && !${Me.Sitting}) /sit 
   /if (${Me.Stunned}) /goto :Casting 
   /if (${Me.Casting.ID}) /goto :Casting 
/return 

Sub UnloadCursor 
   :loop 
   /autoinv 
   /delay ${IncrementalWait} 
   /if (${Cursor.ID}) { 
     /varcalc IncrementalWait ${IncrementalWait}+1 
     /goto :loop 
     } 
   /varset IncrementalWait 0 
/return 

Sub CastAuxManaItem
	   /varset BagChest ${FindItem[${AuxManaItem}].InvSlot.Pack} 
	   /if (!${Window[${BagChest}].Open}) /nomodkey /itemnotify ${InvSlot[${BagChest}]} rightmouseup
		:AuxManaItemLoop0
		/if (!${Cursor.ID}) {
			/nomodkey /itemnotify ${FindItem[${AuxManaItem}].InvSlot} leftmouseup 
			/varcalc IncrementalWait ${IncrementalWait}+1
			/delay ${IncrementalWait}
			/goto :AuxManaItemLoop0
			}
		/varset IncrementalWait 0
		/if (!${Window[${BagChest}].Open}) /nomodkey /itemnotify ${InvSlot[${BagChest}]} rightmouseup
		/nomodkey /itemnotify legs leftmouseup
		/cast item "${AuxManaItem}"
		/call CastWait
		/nomodkey /itemnotify legs leftmouseup
		/call UnloadCursor
		}
/return

Sub Event_FreshRune 
   /varset RobeCasts 0 
   /docommand /bandolier activate uber 
/return 

Sub Event_ManaRobeCast 
   /varcalc RobeCasts ${RobeCasts}+1 
/return 

Sub Event_StopRoutine 
   /doevents flush 
   :TryAgain1 
   /if (!${Me.Inventory[Chest].Name.Equal[${PriChest}]}) /nomodkey /itemnotify chest leftmouseup 
   /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]}) /docommand /bandolier activate uber 
   /if (!${Me.Inventory[Mainhand].Name.Equal[${PriMainhand}]} | | !${Me.Inventory[Chest].Name.Equal[${PriChest}]} ) /goto :TryAgain1 
   /call UnloadCursor 
   /if (${AlreadyMounted}==0) /dism 
   /endmac 
/return 
Last edited by horseshoecrabs on Wed Oct 19, 2005 11:13 am, edited 8 times in total.

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Sun Oct 02, 2005 11:33 pm

You should make your declares strings, ie

Code: Select all

/declare myvar [b]string[/b] outer belt of everlovin crack
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

horseshoecrabs
a ghoul
a ghoul
Posts: 89
Joined: Fri Jun 10, 2005 6:35 pm

Post by horseshoecrabs » Mon Oct 03, 2005 1:00 am

They already are strings. According to the html doc on the home page, here are the default data types:

The default type is string
The default scope is local
The default value is nothing (empty string, or 0)

So I'm done. Deleting the other macro. Thanks for the feedback!

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Mon Oct 03, 2005 8:40 am

horseshoecrabs wrote:They already are strings.
I may know that, and you may know that (cause you read the manual, good job by the way), but not everybody else knows that.

Regardless, it's your mac. Decent work.

EDIT: You don't need quotes when the var is inside [], ie ${Me.Buff["${RuneBuff}"]
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]