17.08.2011, 00:52
MuitoBOm
Poderia fazer um ensinando sobre:
ZCMD, SSCANF, FOREACH, outras opзхes rбpidas e algum sistema de salvamento/carregamento de dados rбpido e fбcil, recomento SII. Eu to sem tempo porque to criando meu GM aqui e ta tenso, se eu tivesse com mais tempo fazia. Mas ficou muito legal esse, parabйns ! |
Calma Cara, Nгo vo passar ZCMD para iniciante, se nem criar comando iniciante sabe D:
|
//Cуdigo de quando eu comecei a programar
if(strcmp(cmd, "/kick", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /kick [ID/NOME] [MOTIVO]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(PlayerInfo[playerid][pAdmin] == 0)
{
SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo estб autorizado a usar esse comando");
}
if (PlayerInfo[playerid][pAdmin] >= 1 && PlayerInfo[playerid][aDuty] ==1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /kick [ID/NOME] [motivo]");
return 1;
}
if(strcmp(result,"1", true) == 0) { result = "Nick imprуprio"; }
if(strcmp(result,"2", true) == 0) { result = "Anъncio Indevido"; }
if(strcmp(result,"3", true) == 0) { result = "Desliga o Cheater -.-'"; }
format(string, sizeof(string), "AdmCmd: %s foi kickado por %s. Motivo: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_VIP, string);
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "AdmCmd: %s foi kickado por %s, razгo: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
KickLog(string);
Kick(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "%s Nгo й um ID ativo", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
CMD:kick(playerid, params[])
{
if(PodeUsar(playerid, 1)) return 1;//Verifica o nнvel do admin e se ele estб em trabalho.
if(sscanf(params,"ds[128]", sPlayer, corda[playerid]))//Se ele nгo preencher os parametros
return SendClientMessage(playerid, cinza,"USE: /kick [playerid] [motivo]");//manda erro
if(sPlayer == playerid)//Se o ID digitado for igual o ID do admin
return SendClientMessage(playerid, cinza, "[ERRO] Vocк nгo pode se auto kickar, nгo й modos de admin!"), Kick(playerid);//manda erro e kicka o admin (afinal, ele iria se kickar xD)
if(!IsPlayerConnected(sPlayer))//Se o jogador nгo estiver online
return ERRO4//manda erro
format(corda[sPlayer], 128, "%s(%d) foi kickado por %s(%d) por: %s", gNome(sPlayer), sPlayer, gNome(playerid), playerid, corda[playerid]);//Formata a mensagem
SendClientMessageToAll(vermelho, corda[sPlayer]);//Envia a mensagem
Kick(sPlayer);//Kicka o jogador
SendDeathMessage(playerid, sPlayer, 201);//Manda um desenho na tela, legal sу para o admin :D
return true;
}