Question MQ2 Objects

jrwalz

New member
Joined
Oct 5, 2017
Messages
9
Reaction score
0
Points
0
I've been asking and answering my own questions so much that I don't know what to ask, but I want to post something on here potentially constructive, at least for me.

1] Are there issues with the String outer variable. I was using an event to get the feedback for a bard song. When I tried to use String as an outer, it just returned "String outer" into the main. So I had to do a specific /doevents call and get the return value from the event right after the event call. This works, but it can and did cause another unexpected problem that I had to deal with.

2] I'm used to regular programming so I try to think on that while doing MQ2, but it is hard because as far as I know. There isn't a way to create an "object" from an object. So lets say TLO:Me ${Me.Combat}. Ok so as far as I know there is no way to mimic this such that you could get whether the 'Q' key is pressed from any other person in the group. Can't do ${String[${Group.Member[1].CombatState}].Equal[Active]}. There is no other way to get that information from any other character. So what I would hope into the MQ2 Space Odyssy future would be where if we had two pieces of information such as the Target's ID and String name, that we could form another object from the character class. So maybe ${Spawn[ID, Name].Combat} or something. Unless there is a way, and I don't know about it. /declare George Character local

3] The last and craziest question that I have is, is there a way for two macros to share a common ini file? I have been working on a set-up such that the Main Toon or control character has a macro running, and then all the rest of the toon crew use their own same macro. This works fine as long as all communication is sent via chat, but that system isn't very good for reasons of clutter. Unless there is a way to not print to screen the messages, yet the macros could pick them up using events. I thought I read something on that, but it may have been a weird dream.

So there is your newbie question challenge for the week!
 
1] Are there issues with the String outer variable. I was using an event to get the feedback for a bard song. When I tried to use String as an outer, it just returned "String outer" into the main. So I had to do a specific /doevents call and get the return value from the event right after the event call. This works, but it can and did cause another unexpected problem that I had to deal with.

I suspect you have the syntax incorrect:

In your main you would declare the strings you want to use in your events.

/declare MyEventInfo string outer NULL

then in the event you do

sub Event_MyEvent()
/varset MyEventInfo Something triggered
/return

BUT you need to have a couple /doevents in your main loop to tell the macro to go procress the events.
 
2] I'm used to regular programming so I try to think on that while doing MQ2, but it is hard because as far as I know. There isn't a way to create an "object" from an object.

This example was very confusing. If you want to know what other members of your group are doing you have a few options.

#1 - If EQ knows something then its likely there is a TLO that will get you the information . Finding the correct TLO and getting the syntax to pull what you want is the challenge. Especially when you are just starting out.

#2 - MQ2NetBots was created to share information about other clients YOU are running. For example: ${NetBots[ <Insert your tank name > ].PctHPs} would return your tanks HP. You could also check to see if they are attacking.
 
3] The last and craziest question that I have is, is there a way for two macros to share a common ini file? I have been working on a set-up such that the Main Toon or control character has a macro running, and then all the rest of the toon crew use their own same macro. This works fine as long as all communication is sent via chat, but that system isn't very good for reasons of clutter. Unless there is a way to not print to screen the messages, yet the macros could pick them up using events. I thought I read something on that, but it may have been a weird dream.

It is common to have a macro load different INI sections based on the class.

MQ2EQBCS.EXE <-- chat server. gives you a local chat server between your clients.

MQ2EQBCS <- MQ2 plugin that talks to the server. Can send direct commands or messages.

MQ2NetBots <- MQ2 plugin that sends state information over the chat client. Provides TLO: NetBots

Getting these setup and working is a must for anyone who wants to run multiple characters.
 
Yes, I guess that is what I had to figure out that I had to have the special /doevents in my main, but you verified for me the correct way of doing it. I should also end all my declares with a value such as NULL, and I guess that it doesn't cause problems if that is the correct way of doing it, heh. I just have to get used to the syntax of it. I keep thinking class variables, and there are no class variables except from the plugin objects.
 
Last edited:
I think you nailed the answer with my cumbersome question. Yes, MQ2Netbots sounds like what I was thinking about. Basically a way for one toon to see what the other toons actions were without necessarily doing a special #event in Tell. I got very close to what I wanted using member Spawn, then slowly I realized that there were strict members for each TLO. Now that I understand that, wiki actually becomes useful for me. That is until I memorize everthing, which is getting close. The TLO:Target is very powerful outside of EQBC server, but of course you have to be targeting the Character.
 
Last edited:
It is common to have a macro load different INI sections based on the class.

MQ2EQBCS.EXE <-- chat server. gives you a local chat server between your clients.

MQ2EQBCS <- MQ2 plugin that talks to the server. Can send direct commands or messages.

MQ2NetBots <- MQ2 plugin that sends state information over the chat client. Provides TLO: NetBots

Getting these setup and working is a must for anyone who wants to run multiple characters.


I guess that I used MQ2 Lite for too long, then I didn't know about needing EQBC Classic Server. I was just using the Macroquest2 download from here, MMOBugs. It's taking me awhile to get used to using the full version. It is still very helpfull to see how you broke it down into three parts. That does make it easier to understand.
 
Last edited:
Short version is the EQBC is only way to share info and MQ2NetBots is the only specific plugin designed to do it.

Longer version is you could make a macro or plugin do it but some core functionality of MQ2 needs updated or someone needs to make a plugin to handle any datatype rather than only what mq2netbots offers.

So technically the macro system only sort of works with the full scope of objects because it isnt built out right. I was sorting some of it out when eqmule redid macros and so i just stopped. What do i mean? well you can do this:

/declare This spell outer "Complete Heal"

It will technically declare that as a spelltype and you could ${This.Mana} or ${This.Range} and it should work. But the macro parser is only set up to handle float, bool, string, and ints for some reason. We can totally add in the ability to declare spells and alt abilitities, discs, or any other top level object. We just havent done it for some reason.

You can use MQ2netbots combined with mq2eqbc like he said. There is also a function in netbots that sends messages without displaying them through EQBC. This could be modified for other plugins to use as well. I was looking at adding that functionality to MQ2 bot at one point during the rewrite and got sidetracked.
 
Last edited:
Short version is the EQBC is only way to share info and MQ2NetBots is the only specific plugin designed to do it.

Longer version is you could make a macro or plugin do it but some core functionality of MQ2 needs updated or someone needs to make a plugin to handle any datatype rather than only what mq2netbots offers.

So technically the macro system only sort of works with the full scope of objects because it isnt built out right. I was sorting some of it out when eqmule redid macros and so i just stopped. What do i mean? well you can do this:

/declare This spell outer "Complete Heal"

It will technically declare that as a spelltype and you could ${This.Mana} or ${This.Range} and it should work. But the macro parser is only set up to handle float, bool, string, and ints for some reason. We can totally add in the ability to declare spells and alt abilitities, discs, or any other top level object. We just havent done it for some reason.

You can use MQ2netbots combined with mq2eqbc like he said. There is also a function in netbots that sends messages without displaying them through EQBC. This could be modified for other plugins to use as well. I was looking at adding that functionality to MQ2 bot at one point during the rewrite and got sidetracked.



Wow you like totally understood where I was coming from and then some. I'm going to have to copy paste and process the information that you gave me. It's too much for my newbie brain tonight; I think I give it a rest now.