Page 1 of 3
Converted MQ2 Commands
Posted: Thu Feb 24, 2005 12:17 am
by JGC84
dibs on the idiot proof ones!
ISXCommandList.h
Code: Select all
COMMAND("MacroBeep",CMD_MacroBeep,true,false);
COMMAND("do_ranged",CMD_do_ranged,true,false);
COMMAND("SetAutoRun",CMD_SetAutoRun,true,false);
COMMAND("DisplayLoginName",CMD_DisplayLoginName,true,false);
COMMAND("PopupText",CMD_PopupText,true,false);
ISXCommands.cpp
Code: Select all
// /beep
int CMD_MacroBeep(int argc, char *argv[])
{
//bRunNextCommand = TRUE;
Beep(0x500,250);
return 0;
}
// /ranged
int CMD_do_ranged(int argc, char *argv[])
{
EQPlayer *pRangedTarget=pTarget;
if (argc-1)
{
pRangedTarget=GetSpawnByID(atoi(argv[1]));
if (!pRangedTarget)
{
printf("Invalid spawn ID. Use /ranged with no parameters, or with a spawn ID");
return 0;
}
}
if (!pRangedTarget)
{
printf("No target for ranged attack");
return 0;
}
if (gbRangedAttackReady)
{
pLocalPlayer->DoAttack(0x0B,0,pRangedTarget);
gbRangedAttackReady=0;
}
return 0;
}
// /autorun
int CMD_SetAutoRun(int argc, char *argv[])
{
_strlwr(argv[1]);
if(argv[1]=="on" || argv[1]=="off")
{
CHAR szServerAndName[MAX_STRING] = {0};
sprintf(szServerAndName,"%s.%s",((PCHARINFO)pCharData)->Server,((PCHARINFO)pCharData)->Name);
WritePrivateProfileString(szServerAndName,"AutoRun",argv[1],gszINIFilename);
sprintf(szServerAndName,"Set autorun to: '%s'",argv[1]);
WriteChatColor(szServerAndName,USERCOLOR_DEFAULT);
}
return 0;
}
// /loginname
int CMD_DisplayLoginName(int argc, char *argv[])
{
PCHAR szLogin = GetLoginName();
if (!szLogin) {
printf("Unable to retrieve login name.");
} else {
WriteChatf("Login name: \ay%s\ax",szLogin);
free(szLogin);
}
return 0;
}
// /popup
int CMD_PopupText(int argc, char *argv[])
{
CHAR szRest[MAX_STRING] = {0};
pISInterface->GetArgs(1,argc,argv,szRest);
DisplayOverlayText(szRest, CONCOLOR_LIGHTBLUE, 100, 500,500,3000);
return 0;
}
Posted: Thu Feb 24, 2005 4:14 am
by slimjim
Code: Select all
int CMD_BuyItem(int argc, char *argv[])
{
bRunNextCommand = FALSE;
if (!pMerchantWnd) return 0;
CHAR szQty[MAX_STRING] = {0};
PCHARINFO pCharInfo = NULL;
DWORD Qty;
if (NULL == (pCharInfo = GetCharInfo())) return 0;
pISInterface->GetArgs(1,argc,argv,szQty);
Qty=(DWORD)atoi(szQty);
if (Qty > 20 || Qty < 1) return 0;
pMerchantWnd->RequestBuyItem(Qty);
return 0;
}
Posted: Thu Feb 24, 2005 4:17 am
by slimjim
untested but should work... will test tomorrow.
Code: Select all
int CMD_SellItem(int argc, char *argv[])
{
bRunNextCommand = FALSE;
if (!pMerchantWnd) return 0;
CHAR szQty[MAX_STRING] = {0};
PCHARINFO pCharInfo = NULL;
DWORD Qty;
if (NULL == (pCharInfo = GetCharInfo())) return 0;
pISInterface->GetArgs(1,argc,argv,szQty);
Qty = (DWORD)atoi(szQty);
if (Qty > 20 || Qty < 1) return 0;
pMerchantWnd->RequestSellItem(Qty);
return 0;
}
Posted: Sat Feb 26, 2005 3:32 pm
by slimjim
Code: Select all
// ***************************************************************************
// Function: CMD_Where
// Description: Our '/where' command
// Displays the direction and distance to the closest spawn
// Usage: /where <spawn>
// ***************************************************************************
int CMD_Where(int argc, char* argv[])
{
if (argc<2)
{
WriteChatf("Syntax: %s <spawn>",argv[0]);
return 0;
}
if (!ppSpawnList) return 0;
if (!pSpawnList) return 0;
PSPAWNINFO pChar = GetCharInfo()->pSpawn;
PSPAWNINFO pSpawnClosest = NULL;
SEARCHSPAWN SearchSpawn;
ClearSearchSpawn(&SearchSpawn);
CHAR szMsg[MAX_STRING] = {0};
CHAR szName[MAX_STRING] = {0};
CHAR szArg[MAX_STRING] = {0};
bRunNextCommand = TRUE;
SearchSpawn.SpawnType= PC;
for(int i=1;i<argc;i++)
{
i+=ParseSearchSpawnArg(i,argc,argv,SearchSpawn);
}
if (!(pSpawnClosest = SearchThroughSpawns(&SearchSpawn,pChar))) {
sprintf(szMsg,"There were no matches for: %s",FormatSearchSpawn(szArg,&SearchSpawn));
} else {
INT Angle = (INT)((atan2f(pChar->X - pSpawnClosest->X, pChar->Y - pSpawnClosest->Y) * 180.0f / PI + 360.0f) / 22.5f + 0.5f) % 16;
sprintf(szMsg,"The closest '%s' is a level %d %s %s and %1.2f away to the %s, Z difference = %1.2f",
CleanupName(strcpy(szName,pSpawnClosest->Name),FALSE),
pSpawnClosest->Level,
pEverQuest->GetRaceDesc(pSpawnClosest->Race),
GetClassDesc(pSpawnClosest->Class),
DistanceToSpawn(pChar,pSpawnClosest),
szHeading[Angle],
pSpawnClosest->Z-pChar->Z);
DebugSpew("Where - %s",szMsg);
}
WriteChatColor(szMsg,USERCOLOR_WHO);
return 0;
}
Posted: Sun Feb 27, 2005 2:39 am
by slimjim
Code: Select all
// ***************************************************************************
// Function: Target
// Description: Our '/target' command
// Selects the closest spawn
// Usage: /target [spawn|myself|mycorpse]
// ***************************************************************************
int CMD_Target(int argc, char* argv[])
{
if (!ppSpawnList) return 0;
if (!pSpawnList) return 0;
PSPAWNINFO pChar = GetCharInfo()->pSpawn;
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;
CHAR szTempName[MAX_STRING] = {0};
bRunNextCommand = TRUE;
for(int i=1;i<argc;i++)
{
if (!stricmp(argv[i],"myself")) {
if (pChar) {
pSpawnClosest = pChar;
DidTarget = TRUE;
}
} else if (!stricmp(argv[i],"mycorpse")) {
if (pChar) {
SearchSpawn.SpawnType = CORPSE;
strcpy(szTempName,pChar->Name);
strcpy(SearchSpawn.szName,strlwr(szTempName));
}
} else if (!stricmp(argv[i],"clear")) {
pTarget = NULL;
DebugSpew("Target cleared.");
WriteChatColor("Target cleared.",USERCOLOR_WHO);
return 0;
} else {
i+= ParseSearchSpawnArg(i,argc,argv,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) {
psTarget = (PSPAWNINFO*)ppTarget;
*psTarget = pSpawnClosest;
DebugSpew("Target - %s selected",pSpawnClosest->Name);
szMsg[0]=0;
} else {
sprintf(szMsg,"Unable to target, address = 0");
}
}
if (szMsg[0])
if (!gFilterTarget) WriteChatColor(szMsg,USERCOLOR_WHO);
return 0;
}
Posted: Sun Feb 27, 2005 5:32 am
by slimjim
I wasn't sure if szToggle is a needed value or not; Whether SetDisplaySWhoFilter would read from gFilterSWho class to determine if it was already set and then toggle it. So i decided to make it so you had to type in on or off. Also helped fix a couple crashing problems i had if they didn't because of the strcpy command i was using.
Code: Select all
// ***************************************************************************
// Function: SWhoFilter
// Description: Our '/whofilter' command
// Sets SuperWho filters
// Usage: /whofilter [options]
// ***************************************************************************
int CMD_SWhoFilter(int argc, char* argv[])
{
CHAR szArg[MAX_STRING] = {0};
CHAR szToggle[MAX_STRING] = {0};
CHAR szTemp[MAX_STRING] = {0};
if (argc < 3)
{
WriteChatColor("Usage: /whofilter <lastname|class|race|level|gm|guild|holding|ld|sneak|anon|lfg|npctag|spawnid|trader|afk|concolor|invisible> [on|off]");
return 0;
}
strcpy(szArg,argv[1]);
strcpy(szToggle,argv[2]);
if (!stricmp(szArg,"Lastname")) {
SetDisplaySWhoFilter(&gFilterSWho.Lastname,"Lastname",szToggle);
} else if (!stricmp(szArg,"Class")) {
SetDisplaySWhoFilter(&gFilterSWho.Class,"Class",szToggle);
} else if (!stricmp(szArg,"Race")) {
SetDisplaySWhoFilter(&gFilterSWho.Race,"Race",szToggle);
} else if (!stricmp(szArg,"Body")) {
SetDisplaySWhoFilter(&gFilterSWho.Body,"Body",szToggle);
} else if (!stricmp(szArg,"Level")) {
SetDisplaySWhoFilter(&gFilterSWho.Level,"Level",szToggle);
} else if (!stricmp(szArg,"GM")) {
SetDisplaySWhoFilter(&gFilterSWho.GM,"GM",szToggle);
} else if (!stricmp(szArg,"Guild")) {
SetDisplaySWhoFilter(&gFilterSWho.Guild,"Guild",szToggle);
} else if (!stricmp(szArg,"LD")) {
SetDisplaySWhoFilter(&gFilterSWho.LD,"LD",szToggle);
} else if (!stricmp(szArg,"Sneak")) {
SetDisplaySWhoFilter(&gFilterSWho.Sneak,"Sneak",szToggle);
} else if (!stricmp(szArg,"LFG")) {
SetDisplaySWhoFilter(&gFilterSWho.LFG,"LFG",szToggle);
} else if (!stricmp(szArg,"NPCTag")) {
SetDisplaySWhoFilter(&gFilterSWho.NPCTag,"NPCTag",szToggle);
} else if (!stricmp(szArg,"SpawnID")) {
SetDisplaySWhoFilter(&gFilterSWho.SpawnID,"SpawnID",szToggle);
} else if (!stricmp(szArg,"Trader")) {
SetDisplaySWhoFilter(&gFilterSWho.Trader,"Trader",szToggle);
} else if (!stricmp(szArg,"AFK")) {
SetDisplaySWhoFilter(&gFilterSWho.AFK,"AFK",szToggle);
} else if (!stricmp(szArg,"Anon")) {
SetDisplaySWhoFilter(&gFilterSWho.Anon,"Anon",szToggle);
} else if (!stricmp(szArg,"Distance")) {
SetDisplaySWhoFilter(&gFilterSWho.Distance,"Distance",szToggle);
} else if (!stricmp(szArg,"Light")) {
SetDisplaySWhoFilter(&gFilterSWho.Light,"Light",szToggle);
} else if (!stricmp(szArg,"Holding")) {
SetDisplaySWhoFilter(&gFilterSWho.Holding,"Holding",szToggle);
} else if (!stricmp(szArg,"ConColor")) {
SetDisplaySWhoFilter(&gFilterSWho.ConColor,"ConColor",szToggle);
} else if (!stricmp(szArg,"invisible")) {
SetDisplaySWhoFilter(&gFilterSWho.Invisible,"Invisible",szToggle);
} else {
WriteChatColor("Usage: /whofilter <lastname|class|race|level|gm|guild|holding|ld|sneak|anon|lfg|npctag|spawnid|trader|afk|concolor|invisible> [on|off]");
}
return 0;
}
Posted: Sun Feb 27, 2005 11:40 am
by JGC84
granted your not saving much memory, and it doesnt make much difference, but just seems logical not to bother with the extra strings, so why not:
Code: Select all
int CMD_SWhoFilter(int argc, char* argv[])
{
if (argc < 3)
{
WriteChatColor("Usage: /whofilter <lastname|class|race|level|gm|guild|holding|ld|sneak|anon|lfg|npctag|spawnid|trader|afk|concolor|invisible> [on|off]");
return 0;
}
if (!stricmp(argv[1],"Lastname")) {
SetDisplaySWhoFilter(&gFilterSWho.Lastname,"Lastname",argv[2]);
} else if (!stricmp(argv[1],"Class")) {
SetDisplaySWhoFilter(&gFilterSWho.Class,"Class",argv[2]);
} else if (!stricmp(argv[1],"Race")) {
SetDisplaySWhoFilter(&gFilterSWho.Race,"Race",argv[2]);
} else if (!stricmp(argv[1],"Body")) {
SetDisplaySWhoFilter(&gFilterSWho.Body,"Body",argv[2]);
} else if (!stricmp(argv[1],"Level")) {
SetDisplaySWhoFilter(&gFilterSWho.Level,"Level",argv[2]);
} else if (!stricmp(argv[1],"GM")) {
SetDisplaySWhoFilter(&gFilterSWho.GM,"GM",argv[2]);
} else if (!stricmp(argv[1],"Guild")) {
SetDisplaySWhoFilter(&gFilterSWho.Guild,"Guild",argv[2]);
} else if (!stricmp(argv[1],"LD")) {
SetDisplaySWhoFilter(&gFilterSWho.LD,"LD",argv[2]);
} else if (!stricmp(argv[1],"Sneak")) {
SetDisplaySWhoFilter(&gFilterSWho.Sneak,"Sneak",argv[2]);
} else if (!stricmp(argv[1],"LFG")) {
SetDisplaySWhoFilter(&gFilterSWho.LFG,"LFG",argv[2]);
} else if (!stricmp(argv[1],"NPCTag")) {
SetDisplaySWhoFilter(&gFilterSWho.NPCTag,"NPCTag",argv[2]);
} else if (!stricmp(argv[1],"SpawnID")) {
SetDisplaySWhoFilter(&gFilterSWho.SpawnID,"SpawnID",argv[2]);
} else if (!stricmp(argv[1],"Trader")) {
SetDisplaySWhoFilter(&gFilterSWho.Trader,"Trader",argv[2]);
} else if (!stricmp(argv[1],"AFK")) {
SetDisplaySWhoFilter(&gFilterSWho.AFK,"AFK",argv[2]);
} else if (!stricmp(argv[1],"Anon")) {
SetDisplaySWhoFilter(&gFilterSWho.Anon,"Anon",argv[2]);
} else if (!stricmp(argv[1],"Distance")) {
SetDisplaySWhoFilter(&gFilterSWho.Distance,"Distance",argv[2]);
} else if (!stricmp(argv[1],"Light")) {
SetDisplaySWhoFilter(&gFilterSWho.Light,"Light",argv[2]);
} else if (!stricmp(argv[1],"Holding")) {
SetDisplaySWhoFilter(&gFilterSWho.Holding,"Holding",argv[2]);
} else if (!stricmp(argv[1],"ConColor")) {
SetDisplaySWhoFilter(&gFilterSWho.ConColor,"ConColor",argv[2]);
} else if (!stricmp(argv[1],"invisible")) {
SetDisplaySWhoFilter(&gFilterSWho.Invisible,"Invisible",argv[2]);
} else {
WriteChatColor("Usage: /whofilter <lastname|class|race|level|gm|guild|holding|ld|sneak|anon|lfg|npctag|spawnid|trader|afk|concolor|invisible> [on|off]");
}
return 0;
}
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:01 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:02 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:04 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:05 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:06 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:07 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:08 am
by xyilla
Re: Converted MQ2 Commands
Posted: Tue Apr 15, 2025 3:09 am
by xyilla