• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

MQ2WireFrame

odessa

Well-known member
Joined
Oct 20, 2005
RedCents
220¢
Use Advanced Lighting has to be ON

This requires DSurface0.127.zip
and to compile (DSurface.h) DSurface0.127Header.zip

Command /wireframe on/off/bg
This will wireframe everything including UI and text so beware. I did it for fun but I guess in theory this should help you out with AFK multiboxing :)

/wireframe bg will toggle "wireframe while in background" mode

I also made it so F5 (don't ask why, I just picked it) toggles wireframe

Added dll for the special kids...


Rich (BB code):
#include "../MQ2Plugin.h"
#include "DSurface.h"

PreSetup("MQ2WireFrame");

int igRadarButton = VK_F5;
bool bgWF = false;
bool bgBGWF = false;
bool bgWireframe = false;
bool bgKeyPressed = false;

VOID WireFrameSet(bool set) {
	if (set) {
		DSWireFrame(true);
		bgWireframe = true;
		WriteChatColor("WireFrame Mode is On",USERCOLOR_DEFAULT); 
	} else {
		DSWireFrame(false);
		bgWireframe = false;
		WriteChatColor("WireFrame Mode is Off",USERCOLOR_DEFAULT);		
	}
}

VOID WireFrameToggle() {
	if (bgWireframe) {
		WireFrameSet(false);
		bgKeyPressed = true;
	} else {
		WireFrameSet(true);
		bgKeyPressed = true;
	}
}

VOID BGWireFrameToggle() {
	if (bgWF) {
		bgWF = false;
		WriteChatColor("WireFrame Mode in Background is Off",USERCOLOR_DEFAULT); 
	} else {
		bgWF = true;
		WriteChatColor("WireFrame Mode in Background is On",USERCOLOR_DEFAULT); 
	}
}

VOID WireFrame(PSPAWNINFO pChar, PCHAR szLine) {
	if(!strcmpi(szLine,"on"))
		WireFrameSet(true);
	else if(!strcmpi(szLine,"off"))
		WireFrameSet(false);
	else if(!strcmpi(szLine,"bg"))
		BGWireFrameToggle();
}

PLUGIN_API VOID OnPulse(VOID)
{
	HWND EQhWnd = *(HWND*)EQADDR_HWND;
	if (GetForegroundWindow()==EQhWnd) {
		if (bgBGWF) {
			bgBGWF = false;
			WireFrameSet(false);
		}
		if (GetKeyState(igRadarButton) & 0x80) {
			if (!bgKeyPressed) WireFrameToggle();
		} else {
			bgKeyPressed = false;
		}	
	} else if (bgWF) {
		if (!bgWireframe) {
			bgBGWF = true;
			WireFrameSet(true);
		}
	}

}

PLUGIN_API VOID InitializePlugin(VOID)
{
	if (InitializeDS()) {
		WriteChatColor("MQ2WireFrame",CONCOLOR_YELLOW);
		if (atof(DSGetVersion())>=0.127) {
			AddCommand("/wireframe",WireFrame);
		}
		else {
			WriteChatColor("MQ2WireFrame requires DirectSurface 0.127 or higher",CONCOLOR_RED);	
		}
	} else {
			WriteChatColor("MQ2WireFrame requires DirectSurface 0.127 or higher",CONCOLOR_RED);
	}
}

PLUGIN_API VOID ShutdownPlugin(VOID)
{
	RemoveCommand("/wireframe");
}
 
Last edited:
maybe dumb question but is this useful when using EQPlayNice from WinEQ ?
 
This is useful for running bot characters or buffbots even. Honestly, I'd like to see a feature to automatically wireframe an instance of EQ whenever the window loses focus. THAT would be cool.
 
TeachersPet said:
This is useful for running bot characters or buffbots even. Honestly, I'd like to see a feature to automatically wireframe an instance of EQ whenever the window loses focus. THAT would be cool.
i agree!
 
This should work for active DSWire when window is on background.

Rich (BB code):
bool active = true;

PLUGIN_API VOID OnPulse(VOID)
{
      HWND EQhWnd=*(HWND*)EQADDR_HWND;
      
      bool current = GetForegroundWindow()==EQhWnd;

      if (current!=active)
      {
             active = current;
             DSWireFrame(!active);
      }
}
 
This is great. Rather confusing if you're trying to play while in wireframe mode :P
Tried using the addition from Chavito, I'm probably using it wrong because I CTD if I put the window in the background.

Now, if this should be done right (IMO) then it should be able to enable/disable BackgroundWired for each character. I play multimon and often reads something on the second monitor.. I haven't looked at how MQ2Fps handles background processes for real yet, but it looks a lot like what Chavito wrote. Now just add INI handling for character for whether or not they should go wired when in the background.
 
Last edited:
Man I really hate that question. Why would it be detectable? Is it making your toon do something that it wouldnt normally do? Like jump 3000 feet in to the air or run mach 55? All its done is made your client draw everything in stick figures basicly to make less of a load on the CPU.
 
When it does the wireframe, do you know if it still loads the textures or not? I know the rendering overhead is dropped by a ridiculous amount, just wondering if its doing the same magic for memory.

If it trims out the required memory we can load more instances :)
 
textures are still loaded, all it does is change the rendering
 
EQManiac said:
Dang, plugin is only excellent, not godly :)

You wouldn't be able to toggle if it wasn't loading textures. You just want a text mode EQ client :)
 
EQManiac said:
When it does the wireframe, do you know if it still loads the textures or not? I know the rendering overhead is dropped by a ridiculous amount, just wondering if its doing the same magic for memory.

If it trims out the required memory we can load more instances :)

I doubt it, because then it'd have to reload all of the textures back into memory when you turn off wireframe mode.

What would be nice is for SOE to implement a shared texture space. All global models could be shared obviously, and if you're in the same zone as another character you wouldn't need to load those textures again.
 
is this something that would help me with my blue screen of death issues every time i try to bring up second eq instant. I used to be able to two box but ever since OoW its been spotty at best and with TSS I cant even get close to getting second instant up before my comp shuts me down with the pretty blue screen. Even with eqw dont help.
 
Have everything loaded to my MQ folder but when i run the dsurface exe says it cant find the dsurface dll even though it is in same folder.
 
.NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET .NET
oh did I mention .NET?
 
Gondola said:
I doubt it, because then it'd have to reload all of the textures back into memory when you turn off wireframe mode.

What would be nice is for SOE to implement a shared texture space. All global models could be shared obviously, and if you're in the same zone as another character you wouldn't need to load those textures again.

And when you succor or zone into a zone that has some like textures it wouldn't take as long neither. Now that would be a kickass plugin, one that tells SOE servers that "yes, I am done downloading the file you are trying to send me, move on to the next" and just read the files that're straight off your hard drive.
 
installed .NET restarted comp, started dsurface.exe
direct surface - file dsurface.dll is missing
 
i'm having the same problem, it wont recognize that the .dll is in the same folder already.

i've been trying to find the problem so dont just RTFM =\. either i'm retarded or overlooking something i guess. but
The .NET Framework version 1.1 redistributable package includes everything you need to run applications developed using the .NET Framework.

so i'm guessing my problem is i dont have the right .net framework package installed that is for the .net program used to develop Direct surface? maybe dobey linked the wrong framework version?

sorry agian if this is commonly known but i'm lost here, have no clue what to do.
 
Well really I am not using .NET at all but VS 2k5 wants proper libraries. Download .NET 2.0 and that should do it. I have both 1.1 and 2.0 installed for VS2k3 and VS2k5 :)
 
i get that message on my laptop that doesnt have VS installed on it. my pc which does have VS gets it going fine cept once everything loaded i turn wire on and crash

edit-that is with 1.1 .net
 
after logging back on everything is working fine. didnt change any settings or plugins. odd but glad its working
 
odessa said:
You wouldn't be able to toggle if it wasn't loading textures. You just want a text mode EQ client :)
Yes! back to the world of MUD's
 
I DL'd .Net and all that and when i run the DSurface.exe it gives me the missing DSurface.dll shit. -- never used .NET before though, but i installed it and all that, is .NET a actually program i need to run aswell?
 
yah i still get that missing error on my laptop, done everything the same on my pc and it works /shrug
 
Well I got all the dsurface files in ONE folder, the MQ2 folder, and I can get it to work on one account. WHen I try to add other accounts on to have them run it in the backgroupnd it eirther tells me it dont know the commands or just crashs me when I hit F5. SO I need to know if its possible to run the wireframe on more then one account. and if there is a special trick to make this happen? Cause there was a special trick to make it happen on the first machine
1. Unplug the plugin if you allready have it plugged in
2. Start Dsurface
3. Use the Icon on DSURFACE to INJECT into EQ
4. Load plugin
5. Start plugin
Outta order outta luck
 
Learningcurve said:
Well I got all the dsurface files in ONE folder, the MQ2 folder, and I can get it to work on one account. WHen I try to add other accounts on to have them run it in the backgroupnd it eirther tells me it dont know the commands or just crashs me when I hit F5. SO I need to know if its possible to run the wireframe on more then one account. and if there is a special trick to make this happen? Cause there was a special trick to make it happen on the first machine
1. Unplug the plugin if you allready have it plugged in
2. Start Dsurface
3. Use the Icon on DSURFACE to INJECT into EQ
4. Load plugin
5. Start plugin
Outta order outta luck

3 doesn't do anything, injection happens by default, all that menu does is shows you into which processes it was injected.
 
I guess i should also mention I only got this to work on one account, and I havent got it to work since and sure as heck cant get it to work on more then one at a time. So other then the fact that I basically can't seem to get it to work at all. It works great! Downloading new version to see if there is any change, nope no change still works great!

(I always wanted a program that would instantly campout all my accounts and lock me out of the server for 20 minutes just incase my account got hacked and then I could have it run this and boot them out and lock em out so they cant steal all my stuff.. woohooo)

Whoa scratch that its workin on one again yipeeee!

oh wait trying to log into one of my other accounts fixed that (square one again)
 
.NET Installed, Windows Updater up-to-date... this crap doesn't work, f#@$ DSurface.dll for MISSING!!!!
 
oh it works just not stable if ya get it workin and can't get multiples for sure workin. I am trying it again, maybe this is why it didnt work
Use Advanced Lighting has to be ON
SO maybe I am the dumbass... Maybe not, still not workin. Advanced lighting is the ONLY thing on maybe there is supposed to be more.
 
Last edited:
MQ2WireFrame

Users who are viewing this thread

Back
Top
Cart