• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->
  • Unfortunately, yes, there is a suspension wave happening around the new tlp launch. :'( Please keep regular discussion to Suspension MegaThread and please consider submitting a Suspension report to RG.

Where is my developpers forums? :P (1 Viewer)

Status
Not open for further replies.
Joined
Aug 4, 2006
RedCents
611¢
Well passed a few hours to write up some kind of introduction for a huge project i have in mind, i talked with redbot on irc and he told me he was gonna setup a forums for that ... dammit i dont see it i must be blind!

MQ2ProjetX

Well some of ya might have heard of ProjetX it was first talked about a few months ago in mq2melee thread, a project i start working on but i have to put it on ice, cause question and answer i was seeking was getting unanswered or i was being told that people like me doesnt need to know how to do that or i dont need to do that their is other way.

ProjetX by itself is a MQ2 Complaint API Plugins, that will offer new powerfull toys for plugin, macro and hud designers. Everything that i wanted to be added into mq2main but that developpers always refuses or slap me arounds! Their is way to much duplicate code that currently in use in many plugins (lack of built-in functions into mq2main), their is also lots of codes that was made that actually duplicate code that is in eqgames.exe (lack of built in function prototyping and offset). Their was a time when almost everything was found in eqgame.exe but that get nerfed and stipped down by the devs, i want those back, i understand at that times their was very few people with knowledge on how to find those but stripping it down didnt stop experience programmers to make mq2warp, mq2ghost, and stuff like that.

ProjetX will also act as a module manager and handler, that will enable to load/unload child module of his own kinds, i also wanted to integrates bi-directionals communications channels and services between plugins so they could exchange data between them. I also want to reduce memory usage and cpu usage, on pulse plugins are cpu heavy weights and some times they do things that could have been coded way better if it was build on stronger fortifications, and have more built-in detour to tigger and traps events without having to do massive for/loops.

Lets me paste down for example code that is use to get number of free buff slots available currently in mq2:
Rich (BB code):
  case FreeBuffSlots: 
    Dest.DWord=GetAAIndexByName("mystical attuning"); 
    if (PlayerHasAAAbility(PCHARINFO pChar, Dest.DWord)) 
    { 
      for (unsigned int j=0; j < AA_CHAR_MAX_REAL; j++) 
      { 
        if ( pPCData->GetAltAbilityIndex(j) == Dest.DWord) 
        { 
          Dest.DWord=15+(GetCharInfo2()->AAList[j].PointsSpent/5); 
          break; 
        } 
      }
    } else Dest.DWord = 15; 
    if(GetAAIndexByName("Embrace of the Dark Reign")) Dest.DWord++;
    if(GetAAIndexByName("Embrace of the Keepers")) Dest.DWord++; 
    for (nBuff=0 ; nBuff<25 ; nBuff++) 
    { 
      if (GetCharInfo2()->Buff[nBuff].SpellID>0) 
        Dest.DWord--; 
    } 
    Dest.Type = pIntType; 
    return true;
code description: As you could see, each time you use ${Me.FreeBuffSlots} it first calculate how many buffs slots are avaialable for the current loaded character (everytime it check if you own any of those aa to estimate # of slots: "mystical attuning", "embrace of the dark reign" and "embrace of the keepers"). Then it scan's all 25 possible buff slots and substract each slots that have a buff in then return you the results.

code comments: Total # of slots should be evaluated when character load into the game, then each time you purchase new aa. If you have mystatical attuning 2 minutes ago you should still have, why recalculating those everytimes! And Fun parts they scan for all 25 slots and decrease their counter each time they found a buffid. Why 25? if you own only 15?

new approach:
1. When projetx detect it's the 1st time you get ingame with this character it will calculate to built-in variables, TotalNumberOfBuffSlot and TotalNumberOfBuffFree.

2. Make some kind of detour that will notify me when i receive new buffs, or that some buffs fades out. So i could recalculate TotalNumberOfBuffFree.

3. Make some kind of detour that will notify me when you get new aa available, so i could recalculate TotalNumberOfBuffSlot then save that total and if this total differs from saved one then i should also recalculate TotalNumberOfBuffFree.

4. Make two direct MQ2DataVar ie: MeBuffSlotTotal and MeBuffSlotFree and directly return our calculated values (no needs to recalculate them, no need to scan a map of internal tlo commands and waste stupids cpu ressources).

This is a very huge projects by itself, i dont plan on doing it if i dont get any assistances from skilled programmers, hackers, documenters, also i dont want people to invest their full times in developping this, as they got times they could search for new offsets, or write up new subs etc. Also i dont want this project to be built only for one hacking site, i know some might get shocked reading this but i want this to be opened for all hacking sites (ie: Redguides, mmobugs, forever hacking and freelances peoples) to help out development, designing and testing. When platform his release they could their own modules.

First Built-In Core Components Projet:

I want to start that huges projects with the buff manager sections. I will need skilled people to find me the following informations to be able to create the proper detour. I will need at least 3 functionals detours to notify me when buffs changes: (ie: some has fade out, or some as get in). Those detour needs ideally to be made after GetCharInfo2()->Buff, or GetCharInfo2()->ShortBuff, or pPetInfoWnd->Buff as been updated, so i could update appropriate structure info with latest informations and generate appropriate events for modules that are listenings.

I'am not sure if their is suck kinds of code in the executable, but i would like offsets for functions to clickoff buffs and songs that dont use "PACKETS" and/or UI CLICK NOTIFICATION, well if we have no choices CLICK notification is better then nothings!

I will keep arrays of spells pointer loaded for fast access, (hopes zoning dont changes those pointers address), also fast evaluates debuffs informations you have on, aka mq2debuffs (built-in) and total # of slots available and total # of free buff slots. I will also look foward on building OnBuffAdd() and OnBuffOut() events for baby plugins!

I hope i get positive feeedback from community
s0rCieR
 
Last edited by a moderator:
This is going to be revolutionary and its awesome that its happening here on RedGuides. I'd be happy to help in any way I can.
 
I'm a complete n00b in these regards, but referring to the Buff Slot example, wouldn't you just use memory to store all that data that you're reading/parsing onload?
 
EvenLessSpam said:
I'm a complete n00b in these regards, but referring to the Buff Slot example, wouldn't you just use memory to store all that data that you're reading/parsing onload?

Well instead of having to rescan all full buff slots, loaded spells information pointers and calculates pointers on each pulses (ie: pulses = frame per seconds) in that examples what i want to do is detour something in games instead that will notify me that buffs have changes then i could do my scanning etc. Goal is to fill up variables that doesnt exist so having less codes to executes when this happends. ie when buffs fades out or you getting buffs it should already be executed way less often in 1 hours then number of frames per seconds you have in one hours!

Hope i didnt lost ya! ROFL

s0rCieR
 
TurkReno said:
This is going to be revolutionary and its awesome that its happening here on RedGuides. I'd be happy to help in any way I can.

Like i said in post i dont want to restrict that just to RedGuides, cause its lots of works and it could benefits the community in generals. Well if you are good at finding things in eqgames their is already some jobs for ya! lmao

s0rCieR
 
I ran into a small problems this morning trying to code somethings, here is the code in question
Rich (BB code):
typedef VOID (__cdecl *fPJXModuleInit)(PPJXMODULE);
typedef VOID (__cdecl *fPJXModuleFree)(PPJXMODULE);

typedef struct _PJXMODULE {
  struct _PJXMODULE* pNext;
  struct _PJXMODULE* pLast;
  char    Name[MAX_PATH];
  HMODULE hModule;
  fPJXModuleInit fInit;
  fPJXModuleFree fFree;
} PJXMODULE, *PPJXMODULE;

wont compiles uness i changes
Rich (BB code):
typedef VOID (__cdecl *fPJXModuleInit)(VOID *);
typedef VOID (__cdecl *fPJXModuleFree)(VOID *);

And this is not really what i wishes :( anyone have a working solutions?
 
You need your _PJXMODULE struct declaration before the function pointer declarations, otherwise the compiler won't know what a PPJXMODULE is.

cronic
 
cronic said:
You need your _PJXMODULE struct declaration before the function pointer declarations, otherwise the compiler won't know what a PPJXMODULE is.

cronic

ya but structure itself need other data first also :) lol thats real nice lmao
 
Copied this to s0rcier's forum, closing so nobody gets mixed up. If you can help on this project, please apply to s0rc's group.
 
Where is my developpers forums? :P
Status
Not open for further replies.

Users who are viewing this thread

Back
Top