#include <a_samp> #include <zcmd> #include <sscanf2> #include <string>
CMD:NomeDoComandoSemBarra(playerid, params[] { // CMD: = comando, PlayerId = Player que executarб o comando, params = paramкtro //
new id; // Id do jogador que receberб o comando, caso nгo seja para um jogador. E sim para vocк, nгo crie pelo // //ZCMD. new skin; // Coloque o nome do comando que serб executado, eu colocarei skin. Pois trocarei a skin, mas pode ser //qualquer outro nome, por exemplo. Criarei vida, para dar vida ao jogador. Entгo posso colocar qualquer nome de //variбvel. new str[128]; // Й ai que usaremos a include String. Ela servirб para dizer ao jogador, o que foi executado nele. new aName [MAX_PLAYER_NAME]; // Serб o administrador que executarб o comando no jogador.
GetPlayerName(playerid, aName, MAX_PLAYER_NAME); // Ele servirб para getar o id do jogador que o comando serб executado e o nome do Administrador que usarб o comando.
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um administrador(a)!"); // If = Se, !IsPlayerAdmin = Usamos quando se o jogador for admin ele nгo usarб o comando, isso serб feito. Apуs o Return. PlayerID = Identificar qual jogador estб usando esse comando, return = para voltar o comando, ou seja. Se nгo for admin, o comando nгo serб executado. E apуs isso algo serб executado. // SendClientMessage = Para enviarmos uma mensagem ao jogador que estarб usando o comando. 0xFF0000FF (cor vermelha) = Cor da mensagem que serб transmitida ao jogador. E apуs as aspas, use o texto que serб dito ao jogador. Que tentarб usar um comando que sу й restrito aos administradores.
if(sscanf(params, "ddd", id, skin)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Digite: /setarskin [id] [id da skin]"); // IF = se, sscanf = serб o include usado para dizer ao administrador que o seu comando estб sendo digitado errado, caso ele digite sу /setarskin ou /setarskin id. Apуs isso usaremos Params = Parвmetro, para dizer como o comando serб usado. Entгo colocaremos "ddd", id, nomedavariavel)) Caso ele coloque errado, o return serб ocorrido e avisarб como o comando deve ser usado. Ou seja, ai entra o SendClientMessage, que jб expliquei.
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); // If = se, !IsPlayrerConnected(id)) = vai verificar se o id digitado estб conectado, caso nгo. Serб executado o return, que o SendClientMessage falarб o que aconteceu.
SetPlayerSkin(id, skin); // SetPlayerSkin = Serб o comando que vocк colocarб que deseja executar, pode colocar-se qualquer outro que seja vбlido. EU coloquei SetPlayerSkin pois й o comando que usarei, nos parкnteses, coloque as variбveis. Ou seja. id = Id do jogador se serб executado o comando, Skin = Coloque a variбvel que vocк criou para utilizar o comando. No meu caso, coloquei SKIN.
format(str, sizeof(str), "[x] O Administrador(a) %s setou sua skin para a ID: %d", aName, skin); // Format = Vai dizer ao player, o modo que foi executado. O comando que vai ser executado. Str ou String ( vocк pode colocar um desses dois, ou str ou String) = Serб o que dizerб os nomes. Ou seja %s. Apуs isso, usaremos entre as aspas. O Administrador(a) %s. %s = String, usamos para idenficar Nomes, palavras, letras ou frases. setou sua skin para a ID: %d, %d = Usamos para nъmeros inteiros, exemplo: 2, 3, 109, 180000. Apуs as aspas, colocaremos de acordo com a ordem usada. Usamos o nome do administrador primeiro, usando a %s. Entгo colocaremos primeiro o. Aname, apуs o aName. Colocamos o nome da variбvel usada. Assim a variбvel dizerб o valor do que foi mudado no jogador.
SendClientMessage(id, 0xFF0000FF, str); // Essa nem preciso explicar, acabei de explicar na mensagem acima.
return 1; }
CMD:setarskin(playerid, params[]) { new id; new skin; new str[128]; new aName [MAX_PLAYER_NAME]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um administrador(a)!"); if(sscanf(params, "ddd", id, skin)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Digite: /setarskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); SetPlayerSkin(id, skin); format(str, sizeof(str), "[x] O Administrador(a) %s setou sua skin para a ID: %d", aName, skin); SendClientMessage(id, 0xFF0000FF, str); return 1; }
#include <a_samp> #include <ZCMD> #include <string> #include <sscanf2> #if defined FILTERSCRIPT #define red 0xFF0000AA #define str String public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Sistema Administrativo (ZCMD) By: SrAlface007"); // Para usar os comandos, й necessбrio estar logado na rcon! print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #endif // Comandos ZCMD // Nгo mecha em nada desse script, pois qualquer coisa que vocк fizer errado, o sistema pode parar de funcionar! CMD:setarvida(playerid, params[]) { new id; new str[128]; new vida; new aName [MAX_PLAYER_NAME]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[Erro] Vocк nгo й um administrador(a)!"); // O que darб se o player nгo for administrador. if(sscanf(params, "ddd", id, vida)) return SendClientMessage(playerid, 0xFF0000FF, "[Erro] Digite: /setarvida [id] [quantidade]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[Erro] O player nгo estб conectado."); SetPlayerHealth(id, vida); format(str, sizeof(str), "[x] O Administrador(a) %s lhe deu vida, quantidade: %d .", aName, vida); SendClientMessage(id, 0xFF0000FF, str); return 1; } CMD:dararma(playerid, params[]) { new id; new str[128]; new arma; new municao; new aName [MAX_PLAYER_NAME]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF00000FF, "[ERRO] Vocк nгo й um administrador(a)!"); if(sscanf(params, "ddd", id, arma, municao)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Digite: /dararma [id] [arma] [muniзгo]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); GivePlayerWeapon(id, arma, municao); format(str, sizeof(str), "[x] O Administrador(a) %s lhe deu a arma ID: %d com %d de muniзгo(хes)", aName, arma, municao); SendClientMessage(id, 0xFF0000FF, str); return 1; } CMD:setarcolete(playerid, params[]) { new id; new str[128]; new colete; new aName [MAX_PLAYER_NAME]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[Erro] Vocк nгo й um administrador(a)!"); if(sscanf(params, "ddd", id, colete)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Digite: /setarcolete [id] [colete]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); SetPlayerArmour(id, colete); format(str, sizeof(str), "[x] O Administrador(a) %s lhe deu colete, quantidade: %d .", aName, colete); SendClientMessage(id, 0xFF0000FF, str); return 1; } CMD:comandosadmin(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um administrador(a)!"); SendClientMessage(playerid, 0xFF0000FF, " /setarcolete /setarvida /dararma /comandosadmin"); SendClientMessage(playerid, 0xFF0000FF, " /setarscore /trazer /ir /kick /ban /lchat /setarskin"); return 1; } CMD:setarscore(playerid, params[]) { new id; new score; new str[128]; new aName [MAX_PLAYER_NAME]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um administrador(a)!"); if(sscanf(params, "ddd", id, score)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Digite: /setarscore [id] [score]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); SetPlayerScore(id, score); format(str, sizeof(str), "[x] O Administrador(a) %s lhe setou %d de score(s)", aName, score); SendClientMessage(id, 0xFF0000FF, str); return 1; } CMD:setarskin(playerid, params[]) { new id; new skin; new str[128]; new aName [MAX_PLAYER_NAME]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um administrador(a)!"); if(sscanf(params, "ddd", id, skin)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Digite: /setarskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); SetPlayerSkin(id, skin); format(str, sizeof(str), "[x] O Administrador(a) %s setou sua skin para a ID: %d", aName, skin); SendClientMessage(id, 0xFF0000FF, str); return 1; } CMD:kick(playerid, params[]) { new id; new kick; new aName [MAX_PLAYER_NAME]; new str[128]; GetPlayerName(playerid, aName, MAX_PLAYER_NAME); if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um administrador(a)!"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] O player nгo estб conectado."); Kick(id); SendClientMessage(id, 0xFF0000FF, str); return 1; }
Nгo precisa incluir a include String a a_samp ja o faz.
Alem do mais da para melhorar bastante o tutorial achei menos rico em conhecimento que alguns aqui da Board sobre o mesmo assunto. |
Muito bom o tutorial, mas jб existe tutoriais assim mas mais um nunca й demais nй
|
Precisa sim incluir o String, eu jб tentei sem incluir. E deu erro, ou foi warning. Faz tempo, entгo nгo sei se foi um dos dois.
Desculpa se meu tutorial foi menos rico em conhecimento. No meu prуximo tutorial tentarei colocar muito mais conhecimento. |
Na verdade, a prуpria include a_samp jб inclui a string.
Quanto a seu tutorial, vocк foi muito tйcnico, a ponto de apenas colocar o cуdigo, falar pra que serve, sem explicar como funciona. Seja um pouco mais teуrico. Vocк estб tentando ensinar a utilizar ZCMD e sscanf, entгo foque nisto. Aliбs, procure dar uma melhor organizaзгo no seu tуpico, facilita muito na leitura. Abraзos. |
Alguйm me ajuda olha oq ta aparecendo http://imgur.com/aJCmnnE
|
new id;
new skin;
new str[128];
new aName [MAX_PLAYER_NAME];
stock PlayerName(playerid)
{
static Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}
new PlayerName[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
static
Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName[playerid], 24);
//PlayerName[playerid] para obter o nome nas funзхes
return 1;
}