Quote:
Originally Posted by NathanLive
Vamos lб amigo:
Nesse tipo de comando vocк vai usar uma funзгo chamada strtok, ela serve para pegar o espaзo e identificar o que vem escrito depois do comando, usando ela funcionaria mais ou menos assim seu comando (nгo testei caso tenha erro avise aн):
pawn Код:
if(strcmp(cmd, "/banip", true) == 0 || strcmp(cmd, "/banirip", true) == 0) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFAA, "Vocк nгo й administrador."); //Caso o player nгo for adm no caso eu usei a RCON como referкncia, no seu GM vocк modifica new tmpex[128]; //Criei a variбvel tmpex que vai servir para armazenar o valor depois do primeiro espaзo ou seja o id new idxex; // Servirб de apoio para funзгo strtok pois vai pegar o нnicio do id tmpex = strtok(cmdtext, idxex); // Aqui vai atribuir para tmp o reconhecimento do id, pois o strtok vai pegar o espaзo que vem depois if(!strlen(tmpex)) // Caso o usuбrio nгo digite o id { SendClientMessage(playerid,0xFFFFAA,"Uso correto: /banip [id] [motivo]."); return 1; } new playerban = strval(tmpex); //Strval serve para passar uma string de texto para um valor inteiro, ou seja tranforma o texto em nъmero, no caso o texto pegado й o id if(!IsPlayerConnected(playerban)) return SendClientMessage(playerid, 0xFFFFAA, "Esse ID nгo estб conectado."); /* Aн vocк usarб a funзгo abaixo para pegar o motivo, nгo vou explicar pois nгo conheзo muito bem essa funзгo, vou estudб-la melhor qualquer coisa te explico */ new length = strlen(cmdtext); while ((idxex < length) && (cmdtext[idxex] <= ' '))// Aqui servirб para detectar o texto apуs o segundo espaзo { idxex++; } new offset = idxex; new result[64];//Aqui serб armazenado o motivo do banimento while ((idxex < length) && ((idxex - offset) < (sizeof(result) - 1))) { result[idxex - offset] = cmdtext[idxex]; idxex++; } result[idxex - offset] = EOS; if(!strlen(result))//Caso nгo digite o motivo { SendClientMessage(playerid,0xFFFFAA,"Uso correto: /banip [id] [motivo]."); return 1; } new aviso[256]; format(aviso, 256,"%s foi banido pelo ADM %s motivo: %s.",pNome(playerban), pNome(playerid), result); SendClientMessageToAll(0xFFFFAA, aviso); Ban(playerban); }
A funзгo pNome que eu criei
pawn Код:
stock pNome(playerid) { new nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, nome, sizeof(nome)); return nome; }
|
Hm... nгo resolveu tudo pois entendi atй onde vocк sabia tbm ^^
Mais vai ganhar rep.
Se alguem poder dar uma complementada ai na parte que ele sabe mais ou menos eu agradeзo!