Nonbelievers of Lax soon to be disproven!

General announcements relating to the modularized MacroQuest2 system.

Moderator: MacroQuest Developers

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

Nonbelievers of Lax soon to be disproven!

Post by Lax » Sat Nov 15, 2003 11:21 am

In the last 3 days I have been working hard to redefine the future of Macroquest. The people who have seen the work this far are pleased, and the time draws near to actually allow public beta testing. Please note that nothing in the current MQ will be changed, or broken. This will be an entirely new distribution, from the same place. For now the project is dubbed MQ2.

So what is MQ2?

MQ2 is an EverQuest development platform, with some default functionality. The development platform is so good, in fact, that it is second only to having the current EQ source code. Gone are the days for inline assembly (99% of it anyway) in MQ. Now we have a much cleaner and easier method of stealing! What was previously 10 lines of inline assembly, is now 1 line that looks like pEverQuest->dsp_chat(Line,Color);...

MQ2 is plugin-based. There is a main DLL, MQ2Main, which contains the API needed to create plugins that do pretty much anything. Plugins simply include a "MQ2Plugin.h" header file and instantly gain access to everything in MQ2Main, all of the data structures, etc. To add custom commands, you use AddCommand. To add custom ParseMacroParameters parms, like $char, you use AddParm. To add a detour, you use AddDetour. To execute code on every MQ pulse, you make copy the plugin template function OnPulse(). And so on. It's incredibly simple.

Many people have great ideas like bazaar functionality.. .. and many have things they do not want to share, and don't want to have to diff in their changes every time they get a new source. Now, instead of the cumbersome "EQLib_Custom.cpp", you simply make a plugin and it's independent.

What sort of plugins...?
Several features of "old" Macroquest are removed from the main system. Namely: FPS Limiter, Chat (including the windows), Map labelling, UI Labels, Item display mods, Telnet. Plugins can handle all of these and more. In fact, most of the features just listed already have been developed in plugin form. A little more testing by developers and things will be ready.

Can my plugin use another plugin as an API?
Sure. You probably shouldn't try to use things from plugins that arent designed to be API. Export things from the API plugin, and import them in the functional plugin, and make sure the functional plugin is using the .lib from the API plugin in addition to the others needed.

What does this mean for us right NOW, not tomorrow when we can get this?
MQ2 is a couple days behind as far as new features and fixes implemented in the "old" macroquest CVS. Anything implemented since a few days ago will have to be re-done into MQ2. I'm working fast to keep this delta as small as possible.

WHEN DOES BETA START
It should not be long before we have a zip for you to download for beta testing. Beta testing will last as long as it takes to get the plugins tested, which will not be long.

Once the default set of plugins is working, we can call it a "stable" release.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

tehHax0r
a lesser mummy
a lesser mummy
Posts: 40
Joined: Sat Oct 11, 2003 12:13 am

yes!

Post by tehHax0r » Sat Nov 15, 2003 11:42 am

holy s.h.i.t :shock:

i cant wait.
[quote]Among programmers, laziness is considered the highest art form, and we do our best to express our souls in this art.[/quote]

nimblefoot
a lesser mummy
a lesser mummy
Posts: 33
Joined: Sun Jun 29, 2003 11:50 am

Post by nimblefoot » Sat Nov 15, 2003 12:10 pm

Sounds a lot like Decal for Asheron's Call. Can't wait to see it. =)

Kaitain
a ghoul
a ghoul
Posts: 109
Joined: Fri Oct 10, 2003 1:49 pm

All I can say is...

Post by Kaitain » Sat Nov 15, 2003 12:14 pm

Awsome. Truely awsome. Having spent the last two days writting little piddly functions for MQ, I can only imagine the work you have put in to this. Let me be the first to say, "Thank you!"

rencro
Custom Builder
Custom Builder
Posts: 56
Joined: Sat Sep 27, 2003 12:39 am

Post by rencro » Sat Nov 15, 2003 1:35 pm

Awesome, but so is Macroquest! and has been, for quite a while now. Let me be one of the many to continually thank ALL the MQ developers over MQ's history.

Graeboi
decaying skeleton
decaying skeleton
Posts: 1
Joined: Sat Nov 15, 2003 1:39 pm

Post by Graeboi » Sat Nov 15, 2003 1:41 pm

I am new here but allow me to say way to go. I can not wait to test this new form of mq. I am still in the learning section of how all this works but hope to contribute one day. So for now at least I hope to contribute by testing this new beta along with evreyone else. Keep up the good work.

User avatar
Kint
a hill giant
a hill giant
Posts: 208
Joined: Thu Mar 13, 2003 3:36 am

Post by Kint » Sat Nov 15, 2003 6:08 pm

saounds amazing. let me know if I can help in any way =p. Would love to beta when it's ready.

User avatar
psychotik
a ghoul
a ghoul
Posts: 112
Joined: Mon Oct 06, 2003 3:48 am

Post by psychotik » Sat Nov 15, 2003 8:33 pm

looking very nice

TI994a
a ghoul
a ghoul
Posts: 87
Joined: Mon Oct 13, 2003 12:25 pm

Pardon my ignorance...

Post by TI994a » Mon Nov 17, 2003 4:36 pm

What does this do for us, the end-users? Will this alter the requirements for compiling MQ? Will those of us using NMAKE to compile under VC++ 6 at command still be able to compile this way? Will we have more files to keep up with between builds? And last but not least, I'd love to hear from Plazmic his take on all this.

- TI

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 » Mon Nov 17, 2003 4:41 pm

#1: people whining about being "forced" to use features can no longer whine. developers can create plugins users can choose to use.
#2: No, the requirements are the same
#3: Sure but the appropriate files for nmake are not there at this time. Currently the compile procedure for VC6 consists of load workspace, hit build.. or something remarkably similar.
#4: I dont know what you're "keeping up with" so please be more specific... if you're an "end user" you download and hit compile?
#5: He's busy with hoshiakari ;) He's given part of his take on it in the developers private board and his concerns about the original codebase were addressed... now he wants to know if MQ2 can make more than 24 hours in a day
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Mon Nov 17, 2003 4:52 pm

nmake? yes
more files? yes, but cleaner separation for your personal additions

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Post by Plazmic » Mon Nov 17, 2003 7:27 pm

My take:
This is a "good thing(tm)"
It will make MQ easier to cusomize, faster to develop for, blah blah, etc... ad nasuem...
- Plazmic

TI994a
a ghoul
a ghoul
Posts: 87
Joined: Mon Oct 13, 2003 12:25 pm

Thanks...

Post by TI994a » Mon Nov 17, 2003 10:52 pm

More files, as in, currently, when i recompile MQ, I really only have 2 files I need to distribute to my other machines to run MQ on them, the exe, and the dll. I wasn't sure if this new plugin model was going to create a whole slew of files we'd have to keep up with, and distribute among machines after compile.

Thanks for the note Plazmic. I know MQ was your baby for a long time. While I love the new stuff Lax has been doing with MQ, and all the other developers, your lack of posting anywhere on these "MQ2" threads made me unsure whether this was something you were onboard with or not.

I'm gonna keep watching these threads a bit more closely. This is kind of exciting if this is the future of MQ.

- TI

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 » Mon Nov 17, 2003 11:34 pm

Yes in that sense there is more files to keep up with. Each plugin has the option of using its own ini file, and each plugin is its own .dll. Plugins do not necessarily have to be updated for each new build of MQ2Main, but it's not a bad idea... it shouldn't be difficult anyway
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Re: Thanks...

Post by Mckorr » Tue Nov 18, 2003 8:39 am

TI994a wrote:Thanks for the note Plazmic. I know MQ was your baby for a long time. While I love the new stuff Lax has been doing with MQ, and all the other developers, your lack of posting anywhere on these "MQ2" threads made me unsure whether this was something you were onboard with or not.
The original idea for this development came from EQMule00. He, Lax and I fleshed out the project outline, and then Lax went to work. I took his code, made some project adjustments, then Lax refined it all. And then we waited. We weren't going to make anything public till we had input from more devs, especially Plaz. Took a couple days, Plaz has some other projects going on right now 8)
MQ2: Think of it as Evolution in action.