Ola pessoal vim postar um Comando de Minha altoria junto com as Funções que uso(as principais pelo menos)

vamos la:
Código PHP:
//==================================================
//Função que pega a Index do Char pelo nome
//==================================================
int Get_IndexByName(char *szId)
{
    for(
int i gObjPlayergObjMaxUsri++) 
    {
        
this->Get_NameID(i,NameID);
        if(
this->Get_gObjConnect(i) == true
        {
            if(
strcmp(NameID,szId) == 0
            { 
                return 
i
            }
        }
    }
    return 
FALSE;
}


//=============================================
//Função que pega um parametro base e divide em outros
//=============================================
char Get_Param(char idchartxtcharbuff)
{
        
char pMsg[200] = {0};
    
strcpy(pMsg txt);
    
char cnt 0;
    
char *pch strtok(pMsg," ");

    while (
pch != NULL) {
        if(
cnt == id) {
            
strcpy(buff,pch);
            return 
id;
        }
        
pch strtok (NULL," ");
        
cnt ++;
    }
    return 
0;
}

//=================================================
//Comando /setzen usado por GameMasters
//=================================================
void ChatSendSetZen(int aIndex,charMessage)
{
    
SYSTEMTIME horaGetLocalTime(&hora);
    
OBJECTSTRUCTgObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
    
int CountbIndex;
    
int CtlCode CmdSQL->GetFieldInt("Character","CtlCode","WHERE Name = '%s'",gObj->Name);
    if(
configs.CmdSetZen.ativo == 0
    {
        
Send->SendPMMsg(aIndex,INACTIVETEXT);
        return;
    }
    if(
configs.CmdSetZen.onlygm == && CtlCode 8) {
        
Send->SendPMMsg(aIndex,ISNOTGM);
        return;
    }
    if(!
_strcmpi(Message,configs.CmdSetZen.string)) {
        
Send->SendPMMsg(aIndex,"Usa-se: %s <Quant.>",configs.CmdSetZen.string);
        return;
    }

    
memset(Name,0,10);
    
getvalue.Get_Param(0,Message,Name);
    
bIndex getvalue.Get_IndexByName(Name);

    
memset(Buffer,0,255);
    
getvalue.Get_Param(1,Message,Buffer);
    
Count atoi(Buffer);

    if(
bIndex == 0) {
        
Send->SendPMMsg(aIndex,NOTUSER);
        return;
    }
    if(
Count || Count 2000000000
    {
        
Send->SendPMMsg(aIndex,"Valor não permitido.");
        return;
    }
    
setvalue.Set_gObjValue(bIndex,gObjZen,Count);
    
GCMoneySend(bIndex,getvalue.Get_gObjInt(bIndex,gObjZen));
    
printf("%02d:%02d:%02d - [%s][%s] Set Zen %s, %d\n",hora.wHour,hora.wMinute,hora.wSecond,gObj->AccountID,gObj->Name,Name,Count);
    
sprintf(Logger,"%02d:%02d:%02d - [%s][%s] Set Zen %s, %d",hora.wHour,hora.wMinute,hora.wSecond,gObj->AccountID,gObj->Name,Name,Count);
    
Send->CreateLog(0,Logger);

Espero que tenha ajudado.

OBS: As outras funções não postadas, não serão disponibilizadas pelo fato de serem de total autoria minha assim como a de setzen. porem ainda uso elas em meus servidores comercializados
por favor não insistam.

att Jamel