• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

A couple of questions... (1 Viewer)

[email protected]

New member
Joined
Sep 12, 2004
RedCents
Didn't know where else to put this but here, but...
So:

1) What programming language are the macros written in? If i knew this i may not have to ask my next two questions.

2) How can i add a number to a variable? Say i just wanted to increase a variable by 1 everytime it went through a loop, kind of like a /for statement, but just adding through the code. This makes sense, right?

3) Is there a timer/delay code out there that will keep going and allow for other commands to be executed? Because i know /delay will even stop a loop even if the delay is in its own little subroutine triggered by something irrelevant to my loopage.

So yeah, sorry if i'm in the wrong place (I never know where to ask such questions). But thanks in advance for any response/answer.
 
1) What programming language are the macros written in? If i knew this i may not have to ask my next two questions.
Its bassed off c++ mostly. But it has a few of its own comands too of course. Read the WIKI at www.macroquest.com
2) How can i add a number to a variable? Say i just wanted to increase a variable by 1 everytime it went through a loop, kind of like a /for statement, but just adding through the code. This makes sense, right?
Very easy to do. What are you trying to do

3) Is there a timer/delay code out there that will keep going and allow for other commands to be executed? Because i know /delay will even stop a loop even if the delay is in its own little subroutine triggered by something irrelevant to my loopage.
Within the sub...i dont think so. It will perform it as it reads it. So lets take for example a simple sub

Rich (BB code):
Sub speak
/say Im talking to absolutly noone
/delay 10s
/say Has it really been 10 seconds???
/return

now if i add this in red....

Rich (BB code):
Sub speak
/say Im talking to absolutly noone
/delay 10s /whatevercode here
/say Has it really been 10 seconds???
/return

It will still wait the 10 seconds. Now say if you did

It would start the 10 second countdown as soon as the /cast 1 was excucuted. that means it would be casting and counting at the same time...if that makes sense.

I do know that you can manually do things during delay code. i.e.

/say blah blah
/delay 10 (then you cast a spell by clicking spell gem)
/say i casted blah blah...

this would cast whatever spell you have in spell gem. You cant make it beat game mechanics tho. For example

/cast 1
then click another spell gem before the spell is casted. This will result in the game saying something like you cannot use that command right now or something like that.

Hopefully this clears up some stuff for you
 
If you figure for most computers 1000 loop iterations is a second you could probably throw in a 500 loop counter and then when the increment gets to whatever you want it could do the operation and then keep on iterating. That might be a way to go if you want a do something inside delay but wouldnt be much different then doing.
/cast
/delay
/cast

like SoS offered.

It is always easier for the community here to help you if you give us what exactly you are trying to do.
 
2) How can i add a number to a variable? Say i just wanted to increase a variable by 1 everytime it went through a loop, kind of like a /for statement, but just adding through the code. This makes sense, right?

This macro should provide the examples you need:
Rich (BB code):
Sub Main
/declare wine int local
/deletevar Turns
/declare Turns int local 0

:Loop
/if (!${FindItem[=Bone Chips].InvSlot}) {
  /echo backpacks empty go get more stuff
  /endmacro
}

/for wine 1 to 4
   /ctrlkey /itemnotify ${FindItem[=Bone Chips].InvSlot} leftmouseup
   /if (!${FindItem[=Bone Chips].InvSlot}) /goto :Done
      /delay 4
   /if (${wine}==1) {
      /click left target
      /click left target
      /delay 4
     }
   /if (${wine}==2) {
      /notify GiveWnd GVW_MyItemSlot1 leftmouseup
      /delay 4
     }
   /if (${wine}==3) {
      /delay 4
      /notify GiveWnd GVW_MyItemSlot2 leftmouseup
     }
   /if (${wine}==4) {
      /delay 4
      /notify GiveWnd GVW_MyItemSlot3 leftmouseup
     }
/next wine
/delay 4
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 4
/varcalc Turns ${Turns}+1

:cursorclear
/delay 4
/if (${Cursor.ID}!=13073 && ${Cursor.ID}!=32601 && ${Cursor.ID}!=17144 && ${Cursor.ID}!=17899) {
  		/destroy
  		/delay 1s
  		/goto :loop
  		}
/if (${Cursor.ID}) /goto :cursorclear
/goto :Loop

:Done
  /delay 4
  /notify GiveWnd GVW_Give_Button leftmouseup
  /endmacro
 
I completly forgot about the Wiki guide, looked at the others except for that one. Thanks.

As for the 2nd and 3rd questions I am basically running a macro in an instanced zone. With the obvious 6hour time limit, I was wanting for it to reset itself. I was previously doing it so it would grab a new one every level, but now a level takes longer than 6 hours so my idea was a timer of a sort. My ideas were at first using /delay 108000s or something for 5 hours, but my target macro wasn't working because of the delay (The delay and loop were in different sub-routines).

So, my second idea was for another loop kind of like an icrement counter time thing (like where a /for statement will increment its counter each run through), but I couldn't find the corrent syntax for it to add one to my variable. I even tried "/varset intMoo ${intMoo}+1" I believe, but I will try that again once i get home. I guess i could technically just use a /for statement and just do a /delay 1s in each and use an /if statement to execute once it gets to 5hours in seconds... right?

And i understand the risks and ethics of Afk'ing exp macros, But the information is also for future uses. Thanks again :)
 
Hmm... Yeah, all these ideas work (to a certain degree) tweaked in their own way. Thanks to everyone, and yes the timed works, but its counting faster than seconds, so does the timer variable option. But i came up with another idea. To use the time and add 6 hours to it. so, basically just declare a begin time and an end time, and using /varcalc, not /varset (thankyou thez) add 6 hours. (Variables are in integers, so it works before actual 6 hours are up) and throw in an /if statement, it works, Thanks to all your guys' help, i will be able to climb even more in the ranks. hah, Thanks again
 
A couple of questions...

Users who are viewing this thread

Back
Top