Can we get a pre-"improvement" version released?

sc0ttr0

Member
Joined
Jan 22, 2014
Messages
56
Reaction score
3
Points
8
It's damn near unplayable. I will donate. Whatever. I know there is the the new way and the old way to do things but people adapt to what works for them and integrate it into their play styles.

People pay to use this and I'm sure EQMule gets some of that. Can we get a release of what works and a countdown of when this other crap will be the only thing available? Like say, January 1 for people to get their supported macro's / plugins updated?

This is NOT fun. Did something change that forced this and am I just being a bitch?
 
The current plan is to try and get macros updated for these changes.

If it gets to a point where we hit a brick wall with updating some macros, I think we'll need to look at another solution like a macro switch that allows old macros to run the old way. It's something I'd need to discuss with htw if it was viable though.

I am really sorry about the change that broke them. Diverting from offical MQ2 core will cause issues too, so I really want to leave that as a last resort.

I have another update about to come out that will fix a few issues.
 
  • Love
Reactions: EQDAB
I really appreciate you very much. I think I can speak for the community in saying that.
 
  • Like
Reactions: EQDAB
Biggest thing folks can do is make a good report so we can find / replicate the problem. I'm willing to help but I'm not going to have any free time until Sunday and that's raid night so ...

Steps to take to report a problem with a macro:

#1 Make sure to add #Warning

#2 Run the macro - Take note of EXACTLY what the error message says.

#3 Tell us how to run it, what it should do, what it is or is not doing now.
 
  • Like
Reactions: EQDAB
The current plan is to try and get macros updated for these changes.

If it gets to a point where we hit a brick wall with updating some macros, I think we'll need to look at another solution like a macro switch that allows old macros to run the old way. It's something I'd need to discuss with htw if it was viable though.

I am really sorry about the change that broke them. Diverting from offical MQ2 core will cause issues too, so I really want to leave that as a last resort.

I have another update about to come out that will fix a few issues.

I can see why eqmule made the changes, but for those of us without a programming background, its hard to fix our macros, some of us have taken years to get them running the way we want.

A macro switch would be cool, even if its only temporary, till those that know what they are doing can fix things.

I have to say that this is pretty bad timing, to be at the same time as the "mother of all nerfs" patch, its all pretty disheartening....
 
  • Like
Reactions: EQDAB
So let me get this straight, you would rather use your broken ass macros and suppress the errors and misspellings, failed logic and bugs which bogs the macro engine down to about 60% speed having to process that crap for no good reason than fixing all that and enjoying 100% working macros which run at full speed? Ok got it.

I gave 2 weeks advance notice at least for this thing. I told people to not come whining about this after the patch, did anyone listen? No.

It's amazing really, I even added a super easy way to see all the errors and exactly which typos and variables where wrong.
This isn't hard to fix people, it's not even that time consuming, I fixed a 10000 line macro myself in like 2 days and I don't even write macros that often.

Sigh.
 
Last edited:
  • Like
Reactions: EQDAB
@mule

I am not a dev but will give it a try. I pay for this service because, for the most part, it works. As another poster stated, many of us have spent YEARS adjusting our playstyle and methods to the working state it was.

It's not personal. We depend on macro writers and you to keep things updated. I guess some of the maco / plugin writers didn't listen to your warnings. They obviously aren't the ones paying the price at the moment or I expect things would be fixed.

People like me are. Paying customers.

It's amazing really, I even added a super easy way to see all the errors and exactly which typos and variables where wrong.

Can you point me to how this is done or where this is posted? I will certainly give it a try in an effort to get past this. I'm not disputing that the changes are for the better just stating that they are painful and the new engine could have been released as a different working version for the writers to work with while the people paying for the service could choose to remain on the non-optimized version for a time.
 
Should we have a wiki for all of the macro's so we can start running through them? I am willing to help, but like everyone my time is limited. A central list may help people out on where to start and pitch in.
 
  • Like
Reactions: EQDAB
I gave 2 weeks advance notice at least for this thing. I told people to not come whining about this after the patch, did anyone listen? No.

For the record.

I fixed my stuff in about 4-6 hours. 10k line macro. Mostly code I didn't write.

There is a long term benefit to having the macros fixed.

Unfortunately, there are only a hand full of people who are comfortable making changes and there are dozen of macros, most of which have been abandoned by their authors.

Is it that surprising that people who can't fix things would rather have an implementation that is 40% slower but works for them?
 
Quote:
It's amazing really, I even added a super easy way to see all the errors and exactly which typos and variables where wrong.

Can somebody point me toward this? I will be glad to give it a try.
 
Find #warning in your macro change it to |#warning
Save.

Now Make a hotkey
/invoke ${Macro.Undeclared}

Next start your macro, do stuff

After it runs for a few mins, type /mqp on
Now click your hotkey it should display every single error and which line in the macro that error is at.

Or you can just leave #warning as it is in which case the macro will be automatically paused on each error it finds.

Either way, /invoke ${Macro.Undeclared} will display the full list of errors.
 
This works fine for me in some fairly simple macros, but its not helping with bot mac :(
 
In that case you should just print out the full error list and paste it here including the macro and people will fix it line by line as they have been for other macros.

Other than size I doubt there is anything special with that macro that makes it harder to fix than a smaller macro.
 
Last edited:
Same. It's like whoever wrote it is testing to see if there is a variable (now against the rules if i understand this correctly) and if it's not there he then declares it. I tried to remove the test and make the variable local to avoid the already in use errors but he apparently uses them in other places in the macro which would make sense why he is testing for them.

Sadly, this is beyond what I'm capable of at this time. I have learned a pretty good deal researching though so it wasn't a total waste of time.
 
It's amazing really, I even added a super easy way to see all the errors and exactly which typos and variables where wrong.

Does this by chance find instances of multiple /next's? That is the thing I don't have time to fix in my macros right now. The undeclared variables was relatively easy to fix. I don't think I had a single undeclared variable in my bots because I always declare stuff before using it. The part that took me a couple hours to fix was the NULLs for undefined function arguments. I had checked for defined and set defaults previously (perfectly valid programming tactic, it's what you do in other languages like javascript for example). So I had to go through every single function with arguments that might not all be defined previously and change code to handle the values being NULL instead of undefined.

But anyway, the /for /next changes are going to take far longer, and having something that says where multiple /next in one /for loop are at, could help make that a tad easier.

Same. It's like whoever wrote it is testing to see if there is a variable (now against the rules if i understand this correctly) and if it's not there he then declares it. I tried to remove the test and make the variable local to avoid the already in use errors but he apparently uses them in other places in the macro which would make sense why he is testing for them.

Sadly, this is beyond what I'm capable of at this time. I have learned a pretty good deal researching though so it wasn't a total waste of time.

You can still test if a variable is defined and declare it. That is perfectly valid and useful for not predeclaring a bunch of unnecessary variables and taking up more memory.

What you can't do is try to use the variable before it's declared.

Example:

Code:
sub main
   | This is valid
   /if ( !${Defined[Variable1]} ) /declare Variable1 string outer Hello World
   /echo ${Variable1}

   |This is not valid
   /echo ${Variable2}
/return

Before the change the second /echo would've just echo'd NULL. Now it will error.
 
It's amazing really, I even added a super easy way to see all the errors and exactly which typos and variables where wrong.

Does this by chance find instances of multiple /next's? That is the thing I don't have time to fix in my macros right now. The undeclared variables was relatively easy to fix. I don't think I had a single undeclared variable in my bots because I always declare stuff before using it. The part that took me a couple hours to fix was the NULLs for undefined function arguments. I had checked for defined and set defaults previously (perfectly valid programming tactic, it's what you do in other languages like javascript for example). So I had to go through every single function with arguments that might not all be defined previously and change code to handle the values being NULL instead of undefined.

But anyway, the /for /next changes are going to take far longer, and having something that says where multiple /next in one /for loop are at, could help make that a tad easier.

Same. It's like whoever wrote it is testing to see if there is a variable (now against the rules if i understand this correctly) and if it's not there he then declares it. I tried to remove the test and make the variable local to avoid the already in use errors but he apparently uses them in other places in the macro which would make sense why he is testing for them.

Sadly, this is beyond what I'm capable of at this time. I have learned a pretty good deal researching though so it wasn't a total waste of time.

You can still test if a variable is defined and declare it. That is perfectly valid and useful for not predeclaring a bunch of unnecessary variables and taking up more memory.

What you can't do is try to use the variable before it's declared.

Example:

Code:
sub main
   | This is valid
   /if ( !${Defined[Variable1]} ) /declare Variable1 string outer Hello World
   /echo ${Variable1}

   |This is not valid
   /echo ${Variable2}
/return

Before the change the second /echo would've just echo'd NULL. Now it will error.


A quick fix for /next issues is to use Notepad++, open the .mac in question. Press CTRL+F Type in /next, hit the "find all in this document button" you now have a list of all the /next in the file. Then get type /continue, then copy it to clip board then go line by line replacing /next with /continue

That's how I did it anyway.
 
I just want to give a heads up. We see the problems people are having with macros. We are working on trying to help ease the issues for people.

Our current top 3 priority's.

1. Working on a solution to macro problems people are having, especially bot40.mac.

2. MQ2Bot not engaging with a Rogue

3. Improvements to MQ2AutoLogin for session launching.

I am really sorry about the troubles lately.
 
From a programmer perspective, it's sometimes necessary to just break old/broken shit - sorry, but that's just the way it is.

I will work on fixing any broken macro, if you post all files (.mac, .inc, etc.) and be specific about issue, including conditions, zone, classes, etc.

EQMule is correct in saying fix the core, fix the macros - that's just the way it is going forward.

htw
 
From a programmer perspective, it's sometimes necessary to just break old/broken shit - sorry, but that's just the way it is.

I will work on fixing any broken macro, if you post all files (.mac, .inc, etc.) and be specific about issue, including conditions, zone, classes, etc.

EQMule is correct in saying fix the core, fix the macros - that's just the way it is going forward.

htw

I got pull.mac running, unfortunately this required I add a line at the top of main that unloads MQ2Bot due to the way things are handled. If MQ2Bot is loaded but not on it freaks out even though nothing in my macro is broken. I believe the relavent issue is that MQ2Bot is loaded but not on, thus shows as a bunch of undeclared variables. If it works for you then you can remove the line /plugin mq2bot unload and the echo that follows.
 
From a programmer perspective, it's sometimes necessary to just break old/broken shit - sorry, but that's just the way it is.

EQMule is correct in saying fix the core, fix the macros - that's just the way it is going forward.

htw

I'm not disputing things will be better in the end. No doubt they will. I was just asking for a release of the old in the interim to mitigate the pain while the macro writers figure out their issues.

From the viewpoint of non-macro writers, it was working and now it's not. I guess it's all about perspective.

On a personal, positive note, I am learning a ton about macro writing and starting to enjoy it a little bit!