Buenas Aqui Les dejo Algunos Commandos para su Server
Echos en Base Al GS 1.00.18
Requisitos: Tener conocimientos basicos de C++ y SQL
/pkclear://========================================================================================================================
// PK Clear Command
//========================================================================================================================
void PkClearCommand(int aIndex, char* Message)
{
// pkclear Enabled Comand
if(conf.commands.pkclearenabled == 0)
{
// Disable Command MSG
GCServerMsgStringSend("[Pk Clear]: Disabled Command.",aIndex,1);
return;
}
// LVL Requirement
if((int)gObjGetInt(aIndex,gObjLvl)< conf.commands.pkclearlvl)
{
MsgOutput(aIndex,"[Pk Clear]: The Command can be used at Level [%d].",conf.commands.pkclearlvl);
return;
}
// Zen Requirement
// Initiate :
if(conf.commands.pkclearcost == 1)
{
if((int)gObjGetInt(aIndex,gObjZen)< conf.commands.pkclearzen)
{
if(conf.commands.pkclearcost > 0)
{
MsgOutput(aIndex,"[PK Clear]: You need [%ld] zen to use the command",conf.commands.pkclearzen);
return;
}
else
{
GCServerMsgStringSend("[Pk Clear]: !Incorrect configuration in the DSF_Commands.ini",aIndex,1);
return;
}
}
}
if(conf.commands.pkclearcost == 1)
{
if((int)gObjGetInt(aIndex,gObjZen) >= conf.commands.pkclearzen)
{
if(conf.commands.pkclearzen > 0)
{
gObjWrite(aIndex,gObjZen,gObjGetInt(aIndex,gObjZen) - conf.commands.pkclearzen);
GCMoneySend(aIndex,gObjGetInt(aIndex,gObjZen));
}
}
}
// End
// Detects if you are PK or No
if(gObj[aIndex].m_PK_Level < 4)
{
GCServerMsgStringSend("[Pk Clear]: You are already a Commoner.",aIndex,1);
return;
}
else
{
// Cleared Pk Status
gObjWrite(aIndex,gObjPK,3);
GCPkLevelSend(aIndex,3);
gObj[aIndex].m_PK_Count = 0;
gObj[aIndex].m_PK_Time = 0;
GCServerMsgStringSend("[PK Clear]: PK status successfully cleared.",aIndex,1);
return;
}
}
/post://========================================================================================================================
// Post Command
//========================================================================================================================
void PostCommand(int aIndex,char* Message)
{
gObjGetNick(aIndex,Character);
if(conf.commands.postenabled == 0)
{
return;
}
if(!_strcmpi("/post",Message))
{
GCServerMsgStringSend("[Post]: Syntax : /post <msg>.",aIndex,1);
return;
}
if(strlen(Message) < 1)
{
GCServerMsgStringSend("[Post]: Syntax : /post <msg>.",aIndex,1);
return;
}
if((int)gObjGetInt(aIndex,gObjLvl) < conf.commands.postlevel)
{
MsgOutput(aIndex,"[Post]: The Command can be used at Level [%d].",conf.commands.postlevel);
return;
}
if(conf.commands.postcostzen == 1)
{
if((int)gObjGetInt(aIndex,gObjZen) < conf.commands.postpricezen)
{
if(conf.commands.postpricezen > 0)
{
GCServerMsgStringSend("[Post]: You need [%ld] Zen to execute Command.",aIndex,1);
return;
}
else
{
GCServerMsgStringSend("[Post]: !Incorrect configuration in the DSF_Commands.ini",aIndex,1);
return;
}
}
}
int Muted = MuDB.CheckMute(gObj[aIndex].Name);
if(Muted == 1)
{
GCServerMsgStringSend("[Post]: Post function temporarily mute from global.",aIndex,1);
return;
}
switch(2)
{
case 0:
{
ServerMsgSendYellow(aIndex,"[Post]","%s:%s",Character,Message);
}
break;
case 1:
{
ServerMsgSendBlue(aIndex,"[Post]","%s:%s",Character,Message);
}
break;
case 2:
{
ServerMsgSendOrange(aIndex,"[Post]","%s:%s",Character,Message);
}
break;
case 3:
{
ServerMsgSendGreen(aIndex,"[Post]","%s:%s",Character,Message);
}
break;
default:
break;
}
if(conf.commands.postloguse == 1)
{
Log.AddTime("Use Command -> [ %s ]\t[ %s ] : %s",gObj[aIndex].AccountID,gObj[aIndex].Name,"Post");
Log.Command("Use Command -> [ %s ] [ %s ] : %s\n",gObj[aIndex].AccountID,gObj[aIndex].Name,"Post");
}
if(conf.commands.postsave == 1)
{
Log.Post("%s: %s\n",gObj[aIndex].Name,Message);
}
if(conf.commands.postcostzen == 1)
{
if((int)gObjGetInt(aIndex,gObjZen) >= conf.commands.postpricezen)
{
if(conf.commands.postpricezen > 0)
{
gObjWrite(aIndex,gObjZen,gObjGetInt(aIndex,gObjZen) - conf.commands.postpricezen);
GCMoneySend(aIndex,gObjGetInt(aIndex,gObjZen));
}
}
}
}
/add://========================================================================================================================
// Add Command
//========================================================================================================================
void AddCommand(int aIndex,LPCSTR Buffer,int Type)
{
if(conf.commands.addenabled == 0)
{
return;
}
if((int)gObjGetInt(aIndex,gObjLvl) < conf.commands.addlevel)
{
MsgOutput(aIndex,"[Add Points]:You have not met the required level [%d].",conf.commands.addlevel);
return;
}
if(conf.commands.addcost == 1)
{
if((int)gObjGetInt(aIndex,gObjZen) < conf.commands.addprice)
{
if(conf.commands.addprice > 0)
{
MsgOutput(aIndex,"[Add Points]:You need [%d] zen to execute Command.",conf.commands.addprice);
return;
}
else
{
GCServerMsgStringSend("[Add Points]:Incorrect configuration in the DSF_Commands.ini!",aIndex,1);
return;
}
}
}
if(Type == gObjCommand && gObj[aIndex].DbClass != 64)
{
GCServerMsgStringSend("[Add Points]:For DarkLord or LordEmperor",aIndex,1);
return;
}
int AddPoints = atoi(Buffer);
if(gObj[aIndex].LevelUpPoint < AddPoints)
{
GCServerMsgStringSend("[Add Points]:You do not have enough points to add.",aIndex,1);
return;
}
if(!AddPoints)
{
GCServerMsgStringSend("[Add Points]:Syntax Error. Command needs a number.",aIndex,1);
return;
}
DWORD OldValue = *(DWORD*)(aIndex * OBJECT_SIZE + OBJECT_BASE + Type);
switch(Type)
{
case gObjStrength:
if(((gObj[aIndex].Strength + AddPoints) >= conf.stats.playermaxstats) || ((gObj[aIndex].Strength + AddPoints) >= MaxStats[gObj[aIndex].Class][0]))
{
MsgOutput(aIndex,"[Add Points]: Maximum Possible Strengt is %d",conf.stats.playermaxstats);
return;
}
break;
case gObjAgility:
if(((gObj[aIndex].Dexterity + AddPoints) >= conf.stats.playermaxstats) || ((gObj[aIndex].Dexterity + AddPoints) >= MaxStats[gObj[aIndex].Class][1]))
{
MsgOutput(aIndex,"[Add Points]: Maximum Possible Agility is %d",conf.stats.playermaxstats);
return;
}
break;
case gObjVitality:
if(((gObj[aIndex].Vitality + AddPoints) >= conf.stats.playermaxstats) || ((gObj[aIndex].Vitality + AddPoints) >= MaxStats[gObj[aIndex].Class][2]))
{
MsgOutput(aIndex,"[Add Points]: Maximum Possible Energi is %d",conf.stats.playermaxstats);
return;
}
break;
case gObjEnergy:
if(((gObj[aIndex].Energy + AddPoints) >= conf.stats.playermaxstats) || ((gObj[aIndex].Energy + AddPoints) >= MaxStats[gObj[aIndex].Class][3]))
{
MsgOutput(aIndex,"[Add Points]: Maximum Possible Energy is %d",conf.stats.playermaxstats);
return;
}
break;
case gObjCommand:
if(gObj[aIndex].Class == 4)
{
if(((gObj[aIndex].Leadership + AddPoints) >= conf.stats.playermaxstats) || ((gObj[aIndex].Leadership + AddPoints) >= MaxStats[gObj[aIndex].Class][4]))
{
MsgOutput(aIndex,"[Add Points]: Maximum Possible Command is %d",conf.stats.playermaxstats);
return;
}
}
else
{
return;
}
break;
}
*(DWORD*)(aIndex * OBJECT_SIZE + OBJECT_BASE + Type)= OldValue + AddPoints;
*(DWORD*)(aIndex * OBJECT_SIZE + OBJECT_BASE + gObjLvlPoint) = gObj[aIndex].LevelUpPoint - AddPoints;
GCLevelUpMsgSend(aIndex,0x01);
MsgOutput(aIndex,"[%d] Point(s) were added successfully",AddPoints);
if(conf.commands.addloguse == 1)
{
Log.AddTime("Use Command -> [ %s ]\t[ %s ] : %s",gObj[aIndex].AccountID,gObj[aIndex].Name,"Add");
Log.Command("Use Command -> [ %s ] [ %s ] : %s\n",gObj[aIndex].AccountID,gObj[aIndex].Name,"Add");
}
if(conf.commands.addcost == 1)
{
if((int)gObjGetInt(aIndex,gObjZen) >= conf.commands.addprice)
{
if(conf.commands.addprice > 0)
{
gObjWrite(aIndex,gObjZen,gObjGetInt(aIndex,gObjZen) - conf.commands.addprice);
GCMoneySend(aIndex,gObjGetInt(aIndex,gObjZen));
}
}
}
}
/gg + Prefix GM/ADMIN/MODvoid GgCommand(int aIndex,char* Message)
{
gObjGetNick(aIndex,Character);
if(conf.commands.ggenabled == 0)
{
GCServerMsgStringSend(StgStc.MSG_DISABLED,aIndex,1);
return;
}
if(VerifyGM(aIndex) == false)
{
return;
}
if(*(short int*)(aIndex * OBJECT_SIZE + OBJECT_BASE + gObjCtl) == 32)
{
char sBuff[255]={0};
wsprintf(sBuff,"[GM]%s: %s",Character,Message);
MsgOutputGlobal(aIndex,sBuff);
Log.AddTime("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s",gObj[aIndex].Ip_addr,gObj[aIndex].AccountID,gObj[aIndex].Name,"gg");
Log.GM("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s\n",gObj[aIndex].Ip_addr,gObj[aIndex].AccountID,gObj[aIndex].Name,"gg");
}
else if(*(short int*)(aIndex * OBJECT_SIZE + OBJECT_BASE + gObjCtl) == 8)
{
char sBuff[255]={0};
wsprintf(sBuff,"[ADMIN]%s: %s",Character,Message);
MsgOutputGlobal(aIndex,sBuff);
Log.AddTime("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s",gObj[aIndex].Ip_addr,gObj[aIndex].AccountID,gObj[aIndex].Name,"gg");
Log.GM("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s\n",gObj[aIndex].Ip_addr,gObj[aIndex].AccountID,gObj[aIndex].Name,"gg");
}
else if(*(short int*)(aIndex * OBJECT_SIZE + OBJECT_BASE + gObjCtl) == 12)
{
char sBuff[255] = { 0 };
wsprintf(sBuff, "[MOD]%s: %s", Character, Message);
MsgOutputGlobal(aIndex, sBuff);
Log.AddTime("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s", gObj[aIndex].Ip_addr, gObj[aIndex].AccountID, gObj[aIndex].Name, "gg");
Log.GM("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s\n", gObj[aIndex].Ip_addr, gObj[aIndex].AccountID, gObj[aIndex].Name, "gg");
}
}
/zenvoid ZenCommand(int aIndex, char *ChatMSG)
{
if(conf.commands.zenaddenabled == 0)
{
GCServerMsgStringSend(StgStc.MSG_DISABLED,aIndex,1);
return;
}
int Amount = 0;
sscanf(ChatMSG,"%d",&Amount);
if(!Amount || Amount > 2000000000 || Amount < 0)
{
GCServerMsgStringSend("Error, please re-check the string you gave.",aIndex,1);
GCServerMsgStringSend("Reminder: max possible money is 2,000,000,000.",aIndex,1);
return;
}
gObjWrite(aIndex, gObjZen,gObjGetInt(aIndex,gObjZen) + Amount);
GCMoneySend(aIndex, gObjGetInt(aIndex,gObjZen)+ Amount);
MsgOutput(aIndex,"[AddZen]:Added %d From Zen Successful!",Amount);
}
By Deilan Sasame
Agradecer no Cuesta Nada