[COLOR=#000000][COLOR=#FF8000]/*
Credits: coNsept,Yukura,leo123
*/
[/COLOR][COLOR=#0000BB]void AddStats[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]int aIndex[/COLOR][COLOR=#007700])
{
if (![/COLOR][COLOR=#0000BB]IsAddCmd[/COLOR][COLOR=#007700]) return;
[/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Init[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700]);
if (![/COLOR][COLOR=#0000BB]strcmpi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Message[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"/add"[/COLOR][COLOR=#007700]))
{
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"Useage: /add <Type> <Amount>"[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"The price for Add is: %d, Maximum stats: %d"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]AddPrice[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]AddMax[/COLOR][COLOR=#007700]);
return;
}
if ([/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Money [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]AddPrice[/COLOR][COLOR=#007700])
{
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"You are lacking zen! %d"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]AddPrice [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Money[/COLOR][COLOR=#007700]);
return;
}
[/COLOR][COLOR=#0000BB]char Param1[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]100[/COLOR][COLOR=#007700]];
[/COLOR][COLOR=#0000BB]memset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]0x00[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]100[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]GetParam[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Message[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]int AddType [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700];
if (![/COLOR][COLOR=#0000BB]strcmpi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"str"[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0xB8[/COLOR][COLOR=#007700];
if (![/COLOR][COLOR=#0000BB]strcmpi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"agi"[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0xBA[/COLOR][COLOR=#007700];
if (![/COLOR][COLOR=#0000BB]strcmpi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"vit"[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0xBC[/COLOR][COLOR=#007700];
if (![/COLOR][COLOR=#0000BB]strcmpi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"eng"[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0xBE[/COLOR][COLOR=#007700];
if (![/COLOR][COLOR=#0000BB]strcmpi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"cmd"[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0xD8[/COLOR][COLOR=#007700];
if (![/COLOR][COLOR=#0000BB]AddType[/COLOR][COLOR=#007700])
{
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"You have selected wrong type! The types are: str, agi, vit, eng, cmd"[/COLOR][COLOR=#007700]);
return;
}
if ([/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Class [/COLOR][COLOR=#007700]!= [/COLOR][COLOR=#0000BB]4 [/COLOR][COLOR=#007700]&& [/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000BB]0xD8[/COLOR][COLOR=#007700])
{
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"Only Dark Lords can use the add cmd type."[/COLOR][COLOR=#007700]);
return;
}
[/COLOR][COLOR=#0000BB]char Param2[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]100[/COLOR][COLOR=#007700]];
[/COLOR][COLOR=#0000BB]memset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param2[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]0x00[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]100[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]GetParam[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Message[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Param2[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]int StatsToAdd [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]atoi[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Param2[/COLOR][COLOR=#007700]);
if ([/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]LvlUpPoints [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]StatsToAdd[/COLOR][COLOR=#007700])
{
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"You are lacking level up points! %d"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]StatsToAdd [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]LvlUpPoints[/COLOR][COLOR=#007700]);
return;
}
[/COLOR][COLOR=#0000BB]int NowStats [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]GetWord[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]AddType[/COLOR][COLOR=#007700]);
if (([/COLOR][COLOR=#0000BB]StatsToAdd [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]NowStats[/COLOR][COLOR=#007700]) > [/COLOR][COLOR=#0000BB]AddMax[/COLOR][COLOR=#007700])
{
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"You are not allowed to add more than %d points!"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]AddMax[/COLOR][COLOR=#007700]);
return;
}
[/COLOR][COLOR=#0000BB]BYTE Packet[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]5[/COLOR][COLOR=#007700]] = {[/COLOR][COLOR=#0000BB]0xC1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]0x05[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]0x0F3[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]0x06[/COLOR][COLOR=#007700]};
[/COLOR][COLOR=#0000BB]Packet[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]4[/COLOR][COLOR=#007700]] = (([/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]% [/COLOR][COLOR=#0000BB]16[/COLOR][COLOR=#007700]) ^ [/COLOR][COLOR=#0000BB]8[/COLOR][COLOR=#007700]) / [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#FF8000]// Nice algorithm by coNsept to convert from gObj Offsets to the add types :P
[/COLOR][COLOR=#007700]if ([/COLOR][COLOR=#0000BB]AddType [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000BB]0xD8[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Packet[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]4[/COLOR][COLOR=#007700]] = [/COLOR][COLOR=#0000BB]0x04[/COLOR][COLOR=#007700];
if ([/COLOR][COLOR=#0000BB]StatsToAdd [/COLOR][COLOR=#007700]<= [/COLOR][COLOR=#0000BB]100[/COLOR][COLOR=#007700])
for ([/COLOR][COLOR=#0000BB]int i[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]StatsToAdd[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]++)
[/COLOR][COLOR=#0000BB]CGLevelUpPointAdd[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Packet[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700]);
else
{
[/COLOR][COLOR=#0000BB]int Amount [/COLOR][COLOR=#007700]= ([/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]LvlUpPoints [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]StatsToAdd [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]SetInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]0xA4[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Amount[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]AddInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]AddType[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]StatsToAdd [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]CGLevelUpPointAdd[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Packet[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700]);
}
[/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]SetInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]0xB4[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Money [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]AddPrice[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]CGMoneySend[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Money [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]AddPrice[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Init[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"You've added %d points. You have now %d points left."[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]StatsToAdd[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]cObj[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]LvlUpPoints[/COLOR][COLOR=#007700]);
if ([/COLOR][COLOR=#0000BB]StatsToAdd [/COLOR][COLOR=#007700]> [/COLOR][COLOR=#0000BB]100[/COLOR][COLOR=#007700])
[/COLOR][COLOR=#0000BB]MessageOutput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aIndex[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"Please relog and your stats will be updated."[/COLOR][COLOR=#007700]);
} [/COLOR][/COLOR]