plugin

Helstar

Lifetimer
Joined
Feb 11, 2007
Messages
64
Reaction score
0
Points
0
was looking for a few more plugins for the tit build. i play on the p99 server and understand the rules there.

autoforage
working melee
memfast

these are ones i could remeber but im sure theres more.
 
Can do AutoForage pretty easy, and I responded to your melee question in the problem thread. For FastMem, that one would take a bit more time to get something going, but I'll put it on the list.

htw
 
Can do AutoForage pretty easy, and I responded to your melee question in the problem thread. For FastMem, that one would take a bit more time to get something going, but I'll put it on the list.

htw

thank you sir you are the best.
 
also is there a way to get autologin to work too? get tired of putting the info in
 
hey, htw, if you send me a msg on msn i'll give you the source for mq2autoforage and mq2instamem... got them both
 
htw,

is there any way we can get targeting mobs on map enabled for people that do not play on p99
 
all servers have that "no targeting too far" feature...

i looked at the server code and this is what it really does. each zone has a max distance on the clip plane, if you target past that, it says "OMG UZ A HAXORZ!" =\ pretty gay... so it reports you as a hacker and moves on... so, if htw could find a way to know what the max clip distance then you'd be able to go back to normal on every server... with some limitation... i started using ${Spawn[npc soandso].Distance}, this allows me to grab the distance... you can pretty much do the same with this as anything else. IE if you want to face where the mob is, do /face ${Spawn[npc htws_mom].Y},${Spawn[npc htws_mom].X} :)D yes i love to make fun of devs...) so... basicly... use some innovation and you can learn how to get around this "block" :)

cheat smarter!

here is my no-target leash macro that i use... you'll need to edit a little bit...


Code:
sub main
:loop
/call leash "htws_mom"
/goto :loop
/return

sub leash(name)
/if (${SpawnCount[${name}]}!=0) /return 0
:keepmoving
/face fast no look ${Spawn[${name}].Y},${Spawn[${name}].X}"
/keypress forward hold
/if (${Math.Distance[${Me.Y},${Me.X},${Me.Z}:${MyParam1},${Me.Z}]}>3) /goto :keepMoving
/keypress forward
/return
 
Last edited:
Haven't forgotten you. Dev box had a bit of a bust, so full format + reinstall all my shit. :(

Dencelle: You have my email, send of the instantmem if you don't mind, will save me time!! We can talk some more about the clip plane detection also, that'd be fun to mess with.

htw
 
sent a pm on here -.- the format for it is "/memspell "Cazic Touch" 1
 
all servers have that "no targeting too far" feature...

i looked at the server code and this is what it really does. each zone has a max distance on the clip plane, if you target past that, it says "OMG UZ A HAXORZ!" =\ pretty gay... so it reports you as a hacker and moves on... so, if htw could find a way to know what the max clip distance then you'd be able to go back to normal on every server...

I went about it this way, since the default client targets at about 196~ range regardless of clip plane anywhere:

Code:
// ***************************************************************************
// Function:    Target
// Description: Our '/target' command
//              Selects the closest spawn
// Usage:       /target [spawn|myself|mycorpse]
// ***************************************************************************
VOID Target(PSPAWNINFO pChar, PCHAR szLine)
{
    if (!ppSpawnList) return;
    if (!pSpawnList) return;
    PSPAWNINFO pSpawnClosest = NULL;
    SEARCHSPAWN SearchSpawn;
    ClearSearchSpawn(&SearchSpawn);
    CHAR szArg[MAX_STRING] = {0};
    CHAR szMsg[MAX_STRING] = {0};
    CHAR szLLine[MAX_STRING] = {0};
    PCHAR szFilter = szLLine;
    BOOL DidTarget = FALSE;
    BOOL bArg = TRUE;
    BOOL Force = FALSE;
    int TargetDistance = 195;

    bRunNextCommand = TRUE;
    _strlwr(strncpy(szLLine,szLine,MAX_STRING));
    while (bArg) {
        GetArg(szArg,szFilter,1);
        szFilter = GetNextArg(szFilter,1);
        if (szArg[0]==0) {
            bArg = FALSE;
        } else if (!strcmp(szArg,"myself")) {
            if (((PCHARINFO)pCharData)->pSpawn) {
                pSpawnClosest = ((PCHARINFO)pCharData)->pSpawn;
                DidTarget = TRUE;
			}
		} else if (!strcmp(szArg,"mycorpse")) {
            if (((PCHARINFO)pCharData)->pSpawn) {
                sprintf(szFilter,"%s's Corpse",((PCHARINFO)pCharData)->pSpawn->Name);
				_strlwr(szFilter);
			}
		} else if (!strcmp(szArg,"force")) {
				Force = TRUE;
        } else if (!strcmp(szArg,"clear")) {
            pTarget = NULL;
            EnviroTarget.SpawnID = 0;
            DoorEnviroTarget.SpawnID = 0;
            DebugSpew("Target cleared.");
            WriteChatColor("Target cleared.",USERCOLOR_WHO);
            return;
        } else {
            szFilter = ParseSearchSpawnArgs(szArg,szFilter,&SearchSpawn);
        }
    }
    if (pTarget) SearchSpawn.FromSpawnID = ((PSPAWNINFO)pTarget)->SpawnID;

    if (!DidTarget) {
        pSpawnClosest = SearchThroughSpawns(&SearchSpawn,pChar);
    }

    if (!pSpawnClosest) {
        CHAR szTemp[MAX_STRING] = {0};
        sprintf(szMsg,"There are no spawns matching: %s",FormatSearchSpawn(szTemp,&SearchSpawn));
    } else {
        PSPAWNINFO *psTarget = NULL;
        if (ppTarget && DistanceToSpawn(pChar,pSpawnClosest) + (pChar->Z - pSpawnClosest->Z) < TargetDistance || ppTarget && Force == TRUE) {
            psTarget = (PSPAWNINFO*)ppTarget;
            *psTarget = pSpawnClosest;
            DebugSpew("Target - %s selected",pSpawnClosest->Name);
			szMsg[0]=0;
		} else {
			if ( !ppTarget ) {
				sprintf(szMsg,"Unable to target, address = 0");
			} else {
				sprintf(szMsg,"%s is too far away for a regular client to access with /target (You can bypass this with /target force <syntax>)",pSpawnClosest->Name);
			}
		}
	}
	if (szMsg[0])
    if (!gFilterTarget) WriteChatColor(szMsg,USERCOLOR_WHO);
    return;
}

You can of course still grab targets further out with a mouse click, which is regular client behavior but this would prevent you from showing up in a hackerlog for an excessive target distance.

By the way dencelle, you still owe me some source code :D
 
I made an MQ2AutoForage & uploaded to update server. If anyone gets time, can ya test it out? I will later when I get time, if someone else doesn't.

htw
 
running it now. all seems good. can we speed up the autoinventory part. the item stays on the cursor for allmost a good 5 sec.
 
running it now. all seems good. can we speed up the autoinventory part. the item stays on the cursor for allmost a good 5 sec.
Sure. That was by design, but hard-coded.

I changed the new default to 3000ms (3 sec).

It also will write it to your [MQ2AutoForage] section of your server_toon.ini, as CheckDelay option.

Default would show like:

CheckDelay=3000

You can set that to anywhere from 250 (250ms, or 1/4 sec), up to 60000 (60 sec).

Unload plugin.
Change setting in INI, save.
Load plugin.
Test to see if the delay works for you.

htw
 
Direct link so you don't have to /unload or camp out (just unload plugin, download this one & overwrite your old one in mq2 dir, and then load plugin again):

Download HERE


htw
 
Added MQ2FastMem to the dist. Use Check for Updates from loader tray icon.

This makes /memspell & /memset instant, but not the gem right-click. I'll get that done when I have time.

Thanks to dencelle for providing the core code so I didn't have to convert ours backwards, saved time. Thanks dencelle!

htw
 
also is there a way to get autologin to work too? get tired of putting the info in
BTW, this will take me a bit longer to get to. The main reason is the changes over 5+ years, to the members of stuff like CXWnd, etc.

I'll try to get time for it soon.

If anyone wants their server included in it, post the server number & name.

Server number can be found in your eq titanium directory (where eqgame.exe is), in eqlsPlayerData.ini, assuming your last connected server is the one you want me to add.

Looks something like this:
Code:
[MISC]
LastServerID=53
LastServerName=[A 0.8.0] Project 1999 - Classic Legit PVE Progression
HasReadSWarning=true
HasViewedWebOrder52701=false

The server ID is needed (in this case, p1999 is 53).

In game, do: /echo ${MacroQuest.Server} and it will give you the short name, post that also (e.g., for p1999, it shows 'project1999').

htw
 
i would like to thank you for all your hard work and time. i know you have lots of other stuff to do then just write and fix all the code here.
 
itchy, what source do i owe you... i remembered that i owed you code but don't remember what i owe you... lol