Converted MQ2 Commands - /doability

Moderator: MacroQuest Developers

onetimehero
a ghoul
a ghoul
Posts: 105
Joined: Fri Sep 05, 2003 2:42 pm

Converted MQ2 Commands - /doability

Post by onetimehero » Sun Mar 27, 2005 6:23 pm

Code: Select all

COMMAND("DoAbility",CMD_DoAbility,true,false);

Code: Select all

// ***************************************************************************
// Function:    DoAbility
// Description: Our '/doability' command
//              Does (or lists) your abilities
// Usage:       /doability [list|ability|#]
// ***************************************************************************
int CMD_DoAbility(int argc, char *argv[])
{
	if (!cmdDoAbility)
	{
		PCMDLIST pCmdListOrig = (PCMDLIST)EQADDR_CMDLIST;
		for (int i=0;pCmdListOrig[i].fAddress != 0;i++) {
			if (!strcmp(pCmdListOrig[i].szName,"/doability")) {
				cmdDoAbility = (fEQCommand)pCmdListOrig[i].fAddress;
			}
		}
	}
    if (!cmdDoAbility) return -1;

    if (argc<2 || atoi(argv[1]) || !EQADDR_DOABILITYLIST) {
        cmdDoAbility((PSPAWNINFO)pLocalPlayer,argv[1]);
        return 0;
    }

    DWORD Index, DoIndex = 0xFFFFFFFF;
    CHAR szBuffer[MAX_STRING] = {0};

    if (!stricmp(argv[1],"list") || !stricmp(argv[1], "-list")) {
        WriteChatColor("Abilities:",USERCOLOR_DEFAULT);
        for (Index=4;Index<10;Index++) {
            if (EQADDR_DOABILITYLIST[Index]==0xFFFFFFFF) {
                sprintf(szBuffer,"%d. <Empty>",Index-3);
            } else if (szSkills[EQADDR_DOABILITYLIST[Index]]) {
                sprintf(szBuffer,"%d. %s",Index-3,szSkills[EQADDR_DOABILITYLIST[Index]]);
            } else {
                sprintf(szBuffer,"%d. *Unknown%d",Index-3,EQADDR_DOABILITYLIST[Index]);
            }
            WriteChatColor(szBuffer,USERCOLOR_DEFAULT);
        }
        WriteChatColor("Combat Skills:",USERCOLOR_DEFAULT);
        for (Index=0;Index<4;Index++) {
            if (EQADDR_DOABILITYLIST[Index]==0xFFFFFFFF) {
                sprintf(szBuffer,"%d. <Empty>",Index+7);
            } else if (szSkills[EQADDR_DOABILITYLIST[Index]]) {
                sprintf(szBuffer,"%d. %s",Index+7,szSkills[EQADDR_DOABILITYLIST[Index]]);
            } else {
                sprintf(szBuffer,"%d. *Unknown%d",Index+7,EQADDR_DOABILITYLIST[Index]);
            }
            WriteChatColor(szBuffer,USERCOLOR_DEFAULT);
        }
        WriteChatColor("Combat Abiilities:",USERCOLOR_DEFAULT);
        for (Index=10;Index<18;Index++) {
            if (EQADDR_DOABILITYLIST[Index]==0xFFFFFFFF) {
                sprintf(szBuffer,"%d. <Empty>",Index+1);
			} else if (EQADDR_DOABILITYLIST[Index] > 132) { // highest number we have defined so far
				sprintf(szBuffer,"%d. *Unknown%d",Index+1,EQADDR_DOABILITYLIST[Index]);
            } else if (szSkills[EQADDR_DOABILITYLIST[Index]]) {
                sprintf(szBuffer,"%d. %s",Index+1,szSkills[EQADDR_DOABILITYLIST[Index]]);
            } else {
                sprintf(szBuffer,"%d. *Unknown%d",Index+1,EQADDR_DOABILITYLIST[Index]);
            }
            WriteChatColor(szBuffer,USERCOLOR_DEFAULT);
        }
        return 0;
    }

	pISInterface->GetArgs(1,argc,argv,szBuffer);

    for (Index=0;Index<10;Index++) {
        if (EQADDR_DOABILITYLIST[Index]!= 0xFFFFFFFF) {
            if (!strnicmp(szBuffer,szSkills[EQADDR_DOABILITYLIST[Index]],strlen(szSkills[EQADDR_DOABILITYLIST[Index]]))) {
                if (Index<4) {
                    DoIndex = Index+7; // 0-3 = Combat abilities (7-10)
                } else {
                    DoIndex = Index-3; // 4-9 = Abilities (1-6)
                }
            }
        }
    }
    if (DoIndex!=0xFFFFFFFF) {
        cmdDoAbility((PSPAWNINFO)pLocalPlayer,itoa(DoIndex,szBuffer,10));
    } else {
        WriteChatColor("You do not seem to have that ability on a /doability button",USERCOLOR_DEFAULT);
    }
	return 0;
}

Hmm. That's odd.

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 » Sun Mar 27, 2005 6:36 pm

added
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0