CMD:ir(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "Vocк precisa ser uma Administrador level 1 para usar este comando");
if(pJogando[playerid] == true) return SendClientMessage(playerid, CorErro, "Vocк nгo estб trabalhando!");
if(sscanf(params, "d", ID)) return SendClientMessage(playerid, CorErroNeutro, "USE: /ir [ID]");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, CorErroNeutro, "O jogador nгo estб conectado");
//
GetPlayerPos(ID, Pos[0], Pos[1], Pos[2]);
//
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
{
SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
}
else
{
SetVehiclePos(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
}
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(ID));
SetPlayerInterior(playerid, GetPlayerInterior(ID));
//
format(Str, 256, "AdmCmd: O administrador %s foi atй %s", pNomeOriginal[playerid], pNomeOriginal[ID]);
Log("Admin/Logs/Ir.ini", Str);
return 1;
}
CMD:kick(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "Vocк precisa ser uma Administrador level 1 para usar este comando");
if(pJogando[playerid] == true) return SendClientMessage(playerid, CorErro, "Vocк nгo estб trabalhando!");
if(sscanf(params, "ds[56]", ID, Motivo)) return SendClientMessage(playerid, CorErroNeutro, "USE: /kick [ID] [MOTIVO]");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, CorErroNeutro, "O jogador nгo estб conectado");
//
format(Str, sizeof(Str), "AdmCmd: O Player %s foi kickado pelo administrador %s. Motivo: %s", pNomeOriginal[ID], pNomeOriginal[playerid], Motivo);
SendClientMessageToAll(VermelhoEscuro, Str);
Kick(ID);
//
Log("Admin/Logs/Kick.ini", Str);
return 1;
}
CMD:ir(playerid, params[])
{
new Float:xPos[3];
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "Vocк precisa ser uma Administrador level 1 para usar este comando");
if(pJogando[playerid] == true) return SendClientMessage(playerid, CorErro, "Vocк nгo estб trabalhando!");
if( isnull ( params )) return SendClientMessage(playerid, CorErroNeutro, "USE: /ir [ID]");
if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, CorErroNeutro, "O jogador nгo estб conectado");
GetPlayerPos(strval(params), xPos[0], xPos[1], xPos[2]);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
{
SetPlayerPos(playerid, xPos[0], xPos[1], xPos[2]);
}
else
{
SetVehiclePos(GetPlayerVehicleID(playerid), xPos[0], xPos[1], xPos[2]);
}
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(strval(params)));
SetPlayerInterior(playerid, GetPlayerInterior(strval(params)));
format(Str, 256, "AdmCmd: O administrador %s foi atй %s", pNomeOriginal[playerid], pNomeOriginal[strval(params)]);
Log("Admin/Logs/Ir.ini", Str);
return 1;
}
CMD:kick(playerid, params[]) {
new idplayer, mensagem[124], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[124];
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "Vocк precisa ser uma Administrador level 1 para usar este comando");
if(pJogando[playerid] == true) return SendClientMessage(playerid, CorErro, "Vocк nгo estб trabalhando!");
if(sscanf(params,"is", idplayer, mensagem)) return SendClientMessage(playerid, -1, "[ ERRO ] Digite: /kick [id do player] [mensagem]");
if(!IsPlayerConnected(idplayer)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player nгo estб conectado!");
GetPlayerName(playerid, aname, sizeof(aname));
GetPlayerName(idplayer, pname, sizeof(pname));
format(string, sizeof(string), "{00FF00}* O(A) administrador(a) %s kickou o(a) player %s Motivo: %s", aname, pname, mensagem);
SendClientMessageToAll(-1, string);
Log("Admin/Logs/Kick.ini", string);
format(string, sizeof(string), "{00FF00}* %s vocк foi kickado(a) do servidor pelo(a) administrador(a) %s Motivo: %s", pname, aname, mensagem);
SendClientMessage(idplayer, -1, string);
Kick(idplayer);
return 1;
}
[FONT="Courier New"]
pawn Код:
A maiora das pessoas usam ZCMD e SSCANF com 1 parametro, isso nгo й necessбrio, existe a forma mais fбcil que й sу usar o ZCMD, fica muito mais fбcil e rбpido. Criei esse tutorial com a intensгo de prolongar o ensinamento ъtil do BlueX. Qualquer erro, melhoramento pode fazer postando um comentбrio nesse tуpico. Nгo irei tolerar chingamentos. Faзa uma crнtica construtiva. Para inicio vocк precisa ter a include ZCMD, caso nгo tenha a include faзa o seguinte: -> Entre no pastebin.Include ZCMD, clique aqui. pawn Код:
Vamos direto ao ponto, vou dar um exemplo de comando e explica-lo com 1 parametro e deixar um tutorial do BlueX no final sobre 2 parametros com SSCANF. pawn Код:
Exemplo: "/dinheiro 8994", irб entregar ao player que digitou 8994. Vamos as explicaзхes: pawn Код:
frase -> Й a nossa string, nela cabe 128 celulas. UsadorDoComando -> Com ela iremos pegar o nome do playerid e jogar o nome dele no comando. pawn Код:
isnull -> Nulo. params -> Como vocк jб sabe, no zcmd, params й o que vem depois do /comando. Ou seja, seu objetivo й quebrar a string 'params' para poder pegar a hora para setar o servidor. (Crйditos Luнs Miki) pawn Код:
params -> Adiciona a quantidade que foi inserida no params. pawn Код:
pawn Код:
pawn Код:
------------------------------------- FIM Comando /dinheiro ------------------------------ pawn Код:
Nesse caso quem recebeu a mensagem foi o params ( ID escolhido ). ------------------------------------- FIM Comando /pos ------------------------------------- PS: Quando usar dois parametros vocк pode pegar o valor do id apenas colocando (id). Mais com 1 parametro й preciso usar "strval (params)". Veja um exemplo no CODE abaixo, perceba o "strval (params)" e "(id)". Vamos ver esse exemplo com 2 parametros usando SSCANF. pawn Код:
pawn Код:
|
¤Usando sscanf em zcmd¤ Bem comecei a usar zcmd a pouco tempo, mas tenho visto que й muito diferente de strcmp, alem de tudo й mais fбcil de se aprender, neste tutorial vou ensinar como usar sscanf em zcmd, irei ensinar o que aprendi claro, nгo estarei dizendo coisas que nгo sei, por tanto vamos comeзar... Bem para usar sscanf em zcmd terб que criar o comando zcmd logico, entгo vamos lб. No topo do GM/Fs adicione pawn Код:
Nгo se esqueзa de adicionar as arrays como logico, claro que pode mudar o nome, nгo й preciso chamar-se new Texto, pode ser new frase, o que quiser, sу tem que saber colocar... pawn Код:
pawn Код:
pawn Код:
params - Como vocк jб sabe, no zcmd, params й o que vem depois do /comando. Ou seja, seu objetivo й quebrar a string 'params' para poder pegar a hora para setar o servidor. (Crйditos Luнs Miki) us - Bem essa parte й o que torna sscanf facil de usar em zcmd, vc sabe sabe quando usa mensagem que tenha que pegar o nome do player? ou o id, que usa %s, %d aqui й mesma coisa sу que sem %, entгo vamos ver alguns dos que eu sei... Код:
d ou i - usado quando vocк usa nъmeros, exemplo numero do seu celular... s - й o string usado quando vocк usa letras, exemplo "Meu nome й BlueX" u - usado para aquele famoso [Id do Player]... f - usado para coordenadas... Existem mais, mas eu ainda nгo todos.... pawn Код:
pawn Код:
Por fim usamos ↓ pawn Код:
Nгo pois vocк irб mandar para o player nгo serб necessбrio, mas caso vocк queira que mostre o id basta colocar assim: pawn Код:
/av para admin: pawn Код:
pawn Код:
Usando imaginaзгo vocк chega lб. Espero que goste ®Creditos® ®BlueX - Por criaзгo do Tutorial ®Luis Miki - Por explicaзгo de duas coisas que eu nгo sabia ®****** - Pela criaзгo do sscanf ®Zeex - Plea criaзгo do zcmd ↓Download↓ ↓ZCMD - Clique Aqui ↓sscanf 2.0 - Clique Aqui |
CMD:ir(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "Vocк precisa ser uma Administrador level 1 para usar este comando");
if(pJogando[playerid]) return SendClientMessage(playerid, CorErro, "Vocк nгo estб trabalhando!");
if(isnull(params)) return SendClientMessage(playerid, CorErroNeutro, "USE: /ir [ID]");
new ID = strval(params);
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, CorErroNeutro, "O jogador nгo estб conectado");
new Float: x,
Float: y,
Float: z;
GetPlayerPos(ID, x, y, z);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
{
SetPlayerPos(playerid, x, y, z);
}
else
{
SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
}
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(ID));
SetPlayerInterior(playerid, GetPlayerInterior(ID));
new string[89];
format(string, sizeof(string), "AdmCmd: O administrador %s foi atй %s", pNomeOriginal[playerid], pNomeOriginal[ID]);
Log("Admin/Logs/Ir.ini", string);
return 1;
}