Moderator: MacroQuest Developers

Code: Select all
ini key=1,2,3,4,5,6,7
/varset KeyData ReadIniKey
/varset TakeCount KeyData
/if (!${TakeCount.Mid[${index},1]}) /varset index 1
:CountingLoop
/varcalc index ${index}+1
/if (!${TakeCount.Mid[${index},1]}), /varcalc FullCount ${Index}-1, /goto :CountingLoop
/varcalc ShortCount ${FullCount}-4
/varset ReturnData ${KeyData.Right[${ShortCount},${ShortCount}]Code: Select all
#include <stdio.h>
#include <string.h>
int main (int argc, char **argv)
{
static const char *key = "1,2,3,4,5,6,7";
char *extra;
char *newKey;
int newSize;
int num1, num2, num3, num4;
num1 = num2 = num3 = num4 = 0;
newSize = strlen(key) * 2;
extra = new char[newSize];
newKey = new char[newSize];
sscanf(key, "%d,%d,%d,%d,%s", &num1, &num2, &num3, &num4, extra);
num3 = 12;
num4 = 15;
snprintf(newKey, newSize, "%d,%d,%d,%d,%s", num1, num2, num3, num4, extra);
printf("%s\n", newKey);
delete extra;
delete newKey;
return(0);
}


Code: Select all
GetArg(Arg1,key,3,FALSE,FALSE,FALSE,',');Code: Select all
PSTR GetArg(
PSTR szDest,
PSTR szSrc,
DWORD dwNumber,
[BOOL LeaveQuotes],
[BOOL ToParen],
[BOOL CSV],
[CHAR Seperator],
[BOOL AnyNonAlphaNum])Code: Select all
ManaRegen=3,5,340,0,255,255,MR - ${Me.ManaRegen}Code: Select all
target=3,124,643,0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]} Code: Select all
char * iniVal[MAX_STRING];
char * pArg;
pArg = strtok(iniString,",");
int i;
for (i = 0; pArg != NULL; i++)
{
iniVal[i] = pArg;
DebugSpew("iniVal: %s\n",iniVal[i]);
pArg = strtok(NULL, ",");
}
sprintf(iniString,"%s,%d,%d,%s,%s,%s",iniVal[0],newX,newY,iniVal[3],iniVal[4],iniVal[5],iniVal[6]);
WritePrivateProfileString("Elements",Option,iniString,iniName);Code: Select all
[MQ2]iniVal: 3
[MQ2]iniVal: 124
[MQ2]iniVal: 643
[MQ2]iniVal: 0
[MQ2]iniVal: 255
[MQ2]iniVal: 255
[MQ2]iniVal: ${If[${Target.ID}
[MQ2]iniVal: ${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight}
[MQ2]iniVal: ]}Code: Select all
target=3,124,643,0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]} Code: Select all
0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]} 
Code: Select all
CHAR ParseArgs(PCHAR Line, int offset, CHAR Seperator=' ')
{
char szTemp[MAX_STRING];
char szTmp[MAX_STRING];
int plcmnt = 0;
int j = 0;
for(int i=0;i<30;i++)
{
GetArg(szTemp,Line,i+offset,FALSE,FALSE,FALSE,Seperator);
if(strlen(szTemp) == 0)
{
szTmp[plcmnt] = szTemp[j];
break;
}
sprintf(szTemp,"%s%s",szTemp,Seperator);
for(j=0; j<strlen(szTemp); j++)
{
szTmp[plcmnt+j] = szTemp[j];
}
plcmnt += strlen(szTemp);
}
return szTemp[MAX_STING];
}Code: Select all
target=3,124,643,0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]}
GetArg(Arg3,target,3,FALSE,FALSE,FALSE,',');
szRest = ParseArg(target, 4, ',');
Code: Select all
Arg3 = 643
szRest would = 0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]}
Code: Select all
void Test(PSPAWNINFO pChar, PCHAR szLine)
{
CHAR target[MAX_STRING] = {0};
sprintf(target,"3,124,643,0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]}");
CHAR Arg3[MAX_STRING] = {0};
CHAR szRest[MAX_STRING] = {0};
GetArg(Arg3,target,3,FALSE,FALSE,FALSE,',');
szRest = GetNextArg(target,3,FALSE,',');
WriteChatColor(Arg3,USERCOLOR_CHAT_CHANNEL);
WriteChatColor(szRest,USERCOLOR_CHAT_CHANNEL);
}Code: Select all
PSTR ParseArg(PSTR szDest, PCSTR szSrc, DWORD dwNumber, CHAR Separator=' ')
{
PCSTR szTemp = szSrc;
ZeroMemory(szDest,MAX_STRING);
szTemp = GetNextArg(szTemp,dwNumber-1,FALSE,Separator);
sprintf(szDest,"%s",szTemp);
return szDest;
}
void Test(PSPAWNINFO pChar, PCHAR szLine)
{
CHAR target[MAX_STRING] = {0};
sprintf(target,"3,124,643,0,255,255,${If[${Target.ID},${Target.Level} - ${Target.Class} - ${Target.Distance} - ${Target.LineOfSight},]}");
CHAR Arg3[MAX_STRING] = {0};
CHAR szRest[MAX_STRING] = {0};
GetArg(Arg3,target,3,FALSE,FALSE,FALSE,',');
ParseArg(szRest, target, 4, ',');
WriteChatColor(Arg3,USERCOLOR_CHAT_CHANNEL);
WriteChatColor(szRest,USERCOLOR_CHAT_CHANNEL);
}Code: Select all
int gNumArgs=0;
CHAR gParsedArgs[100][MAX_STRING] = {0}
PSTR ParseArgs(PSTR szDest, PCHAR szSrc, DWORD dwNumber, CHAR Separator)
{
char szTemp[MAX_STRING];
ZeroMemory(szDest,MAX_STRING);
int plcmnt = 0;
int j = 0;
for(int i=0;i<strlen(szSrc);i++)
{
GetArg(szTemp,szSrc,i+dwNumber);
if(strlen(szTemp) == 0)
{
szDest[plcmnt] = szTemp[j];
break;
}
sprintf(gParsedArgs[i],"%s",szTemp);
gNumArgs = i;
sprintf(szTemp,"%s ",szTemp);
for(j=0; j<strlen(szTemp); j++)
{
szDest[plcmnt+j] = szTemp[j];
}
plcmnt += strlen(szTemp);
}
return szDest;
}
void Test()
{
CHAR Fuck[MAX_STRING] = {0};
sprintf(Fuck,"This is a test and only a test. Please go back to sleep");
ParseArg(gTemp,Fuck,9);
WriteChatColor(gTemp,USERCOLOR_CHAT_CHANNEL);
}gTemp wrote:Please go back to sleep
Code: Select all
gParsedArgs[0] = Please
gParsedArgs[1] = go
ect...