Quote:
Originally Posted by Eduardo_Cotoco
Eu Falei, Que Nгo tem Diferenзa vocк, fazer com strcmp ou zcmd que o comando nao vai ter que mudar de codigo, nao falei, que nao tem diferenзa os dois, quis dizer que, nao vai mudar o comando.
nгo vai mudar a parte por exemplo de dentro, do comando
MostraRG(playerid);
isso nao vai mudar
|
Desculpe mas tem diferenзa sim.
1є Nгo sei para que criar uma public de RG pois se essa public sу vai ser usada 1 vez.
2є Veja.
STRCMP
pawn Код:
if(strcmp("/rg",cmdtext,true,3) == 0)
{
MostrarRG(playerid);
return 1;
}
Usei 5 Linhas, agora veja ZCMD.
pawn Код:
CMD:rg(playerid,params[]) return MostrarRG(playerid);
Viu? Fiz tudo em uma linha, e se juntar com sscanf fica prefeito.
Veja um exemplo de /kick.
STRCMP.
pawn Код:
if(strcmp("/kick",cmdtext,true,5) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "[AV] /kick [IdDOPlayer/ParteDoNome] <reason>");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(giveplayerid != playerid && Untouchable[giveplayerid])
{
SendClientMessage(playerid, COLOR_GREY, "* You Can't Do this on This player!");
format(string,sizeof(string), "[justinAntCheat] %s TENTOU kickar o programador e levou auto-kick.",GetPlayerNameEx(playerid));
SendClientMessageToAll(COLOR_RED, string);
Kick(playerid);
return 1;
}
new targetlevel = PlayerInfo[giveplayerid][pAdmin];
new playerlevel = PlayerInfo[playerid][pAdmin];
if(targetlevel > playerlevel) return SendClientMessage(playerid, COLOR_GREY, "* You can not Kick People that is higher Than You!");
if (PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(IsPlayerNPC(giveplayerid))
{
SendClientMessage(playerid, CAZUL, " Vocк й retardado? estб tentando kickar um NPC!!");
Kick(playerid);
return 1;
}
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(strcmp(giveplayer,"Justin_Winter",true)==0 || strcmp(giveplayer,"Justin_Winter",true)==0)
{
format(string, sizeof(string), "%s foi kickado por tentar kickar o Ricardo.", sendername);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(playerid);
return 1;
}
if(!strlen(result))
{
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s foi kickado pelo administrador %s | Motivo: nгo informado",d,m,y,h,mi,s,giveplayer,sendername);
KickLog(string);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] kickado pelo administrador %s | Motivo nгo informado.",d,m,y,h,mi,s,sendername);
AddPunishment(giveplayerid, string);
format(string, sizeof(string), "%s (%d) foi kickado pelo administrador %s | Motivo: nгo informado", giveplayer, giveplayerid, sendername);
SendClientMessageToAll(COLOR_NICERED, string);
format(string, sizeof(string), "Vocк foi kickado pelo administrador %s | Motivo: nгo informado", sendername);
SendClientMessage(giveplayerid,COLOR_LIGHTBLUE, string);
SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391);
SafeSetPlayerInterior(giveplayerid, 6);
GameTextForPlayer(giveplayerid, "~r~~h~Admin Kicked: ~n~~r~No Reason Given", 6000, 3);
Kick(giveplayerid);
return 1;
}
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s foi kickado pelo administrador %s | motivo: %s",d,m,y,h,mi,s,giveplayer,sendername, (result));
KickLog(string);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] foi kickado pelo administrador %s | Motivo: %s",d,m,y,h,mi,s,sendername,(result));
AddPunishment(giveplayerid, string);
format(string, sizeof(string), "%s (%d) foi kickado pelo administrador %s | Motivo: %s", giveplayer, giveplayerid, sendername, (result));
SendClientMessageToAll(COLOR_NICERED, string);
format(string, sizeof(string), "Vocк foi kickado pelo administrador %s | Motivo: %s", sendername, (result));
SendClientMessage(giveplayerid,COLOR_LIGHTBLUE, string);
SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391);
SafeSetPlayerInterior(giveplayerid, 6);
format(string, sizeof(string), "~r~~h~Admin Kicked: ~n~~r~%s",(result));
GameTextForPlayer(giveplayerid, string, 6000, 3);
Kick(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "[AV] %d nгo estб online.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
Agora veja o ZCMD
pawn Код:
CMD:kick(playerid,params[])
{
new id, reason[128], nomei[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
GetPlayerName(playerid,nomei,sizeof(nomei));
if(sscanf(params,"ds",id,reason))
return SendClientMessage(playerid,-1,"USE: /kick [id] [razгo]");
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid,-1,"Vocк nгo й admin.");
if(!IsPlayerConnected(id))
return SendClientMessage(playerid,-1,"ID invalido");
format(string,sizeof(string),"[KickSystem]: %s(%d) foi kickado pelo administrador %s(%d). Razгo: %s.",nomei,id,nome,playerid,reason);
SendClientMessageToAll(-1,string);
new y, m, d;
new h, mi, s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string),"(%d/%d/%d) [%d/%d/%d]: %s usou /kick %s Razгo: %s",d,m,y,h,mi,s,nome,nomei,reason);
GiveLog(string);
return true;
}
Agora me diz, ZCMD & STRCMP sгo iguais? Sгo? Viu o tamanho do STRCMP? GRAANDE Nй? Viu o tamanha do ZCMD? PEQUEEENO nй?