[Pedido] Criando comandos administrativos - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (
https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Pedido] Criando comandos administrativos (
/showthread.php?tid=603612)
Criando comandos administrativos -
WL - 25.03.2016
Olб galera quero saber como criar comandos IR , Trazer & /setadmin e no /SETADMIN ir colocando os cargos para Setar tipo level 1 , level 2 , level 3 й etc.
Re: Como criar comandos /IR , /TRAZER , /setadmin em gamemode. -
Lуs - 25.03.2016
Boa tarde,
WL!
Antes de comeзarmos, dк uma olhada em alguns links ъteis:
Sobre os comandos /ir e /trazerBom, para comeзar, vocк pode fazer uma funзгo para facilitar e diminuir teu trabalho ao criar os comandos.
PHP код:
/*
Parвmetros:
playerid - Player que vai ser enviado
targetid - Player que vai receber o playerid
*/
SendPlayerToPlayer(playerid, targetid)
{
//Obtйm as coordenadas do alvo
new Float:x, Float:y, Float:z;
GetPlayerPos(targetid, x, y, z);
//Altera o mundo virtual e o interior do playerid para o mesmo do alvo
SetPlayerInterior(playerid, GetPlayerInterior(targetid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
//Verifica se o jogador estб dirigindo algum veнculo
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) {
SetPlayerPos(playerid, x, y, z);
} else {//Se estiver, envia o carro tambйm
new vehicleid = GetPlayerVehicleID(playerid);
SetVehiclePos(vehicleid, x, y, z);
LinkVehicleToInterior(vehicleid, GetPlayerInterior(targetid));
SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(targetid));
}
}
Com a funзгo pronta, vocк pode criar os comandos:
PHP код:
YCMD:ir(playerid, params[], help)
{
//Variбvel para armazenar o jogador alvo
new targetid;
//Checagem de parвmetros
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, COLOR_INFO, "* /ir [playerid]");
//verificando se o jogador estб conectado
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, COLOR_ERROR, "* O jogador nгo estб conectado.");
if(targetid == playerid)
return SendClientMessage(playerid, COLOR_ERROR, "* Vocк nгo pode ir atй vocк mesmo.");
//Enviando o jogador
SendPlayerToPlayer(playerid, targetid);
return 1;
}
- /trazer: (Mesma coisa, sу inverter os parвmetros da funзгo)
PHP код:
YCMD:trazer(playerid, params[], help)
{
//Variбvel para armazenar o jogador alvo
new targetid;
//Checagem de parвmetros
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, COLOR_INFO, "* /trazer [playerid]");
//verificando se o jogador estб conectado
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, COLOR_ERROR, "* O jogador nгo estб conectado.");
//Verificando se o jogador alvo й o mesmo que quem digita o comando
if(targetid == playerid)
return SendClientMessage(playerid, COLOR_ERROR, "* Vocк nгo pode trazer vocк mesmo.");
//Trazendo o jogador
SendPlayerToPlayer(targetid, playerid);
return 1;
}
Sobre o sistema de rank administrativoTenha certeza que leu a pбgina de Scripting Basics (principalmente a parte de variбveis) antes de comeзar.
Algo bem bбsico, primeiramente, vocк vai precisar de uma variбvel global para cada jogador para controlar o nнvel administrativo de cada um.
PHP код:
AdminLevel[MAX_PLAYERS];
Esse MAX_PLAYERS, indica o tamanho do vetor, ou seja, ele tem o tamanho que foi definido na include a_samp de jogadores mбximo que um servidor pode ter, isto й, pode variar entre 500 e 1000.
Agora, й sу criar os comandos para definir o adminlevel de jogadores alvos:
PHP код:
YCMD:trazer(playerid, params[], help)
{
//Variбvel para armazenar o jogador alvo
new targetid;
//Checagem de parвmetros
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, COLOR_INFO, "* /trazer [playerid]");
//verificando se o jogador estб conectado
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, COLOR_ERROR, "* O jogador nгo estб conectado.");
//Verificando se o jogador alvo й o mesmo que quem digita o comando
if(targetid == playerid)
return SendClientMessage(playerid, COLOR_ERROR, "* Vocк nгo pode trazer vocк mesmo.");
//Trazendo o jogador
SendPlayerToPlayer(targetid, playerid);
return 1;
}
Observaзхes
Caso vocк queira fazer verificaзхes em comandos, e permitir somente administradores de certos leveis a utilizar, й simples:
PHP код:
if(AdminLevel[playerid] < 2)
return SendClientMessage(playerid, COLOR_ERROR, "* Vocк nгo estб autorizado.");
COLOR_ERROR e COLOR_INFO sгo directives, (valores prй-definidos em hexadecimal), vocк pode dar uma olhada neste artigo sobre keywords para saber como defini-las, utilize o modelo abaixo, caso queira:
PHP код:
#define COLOR_ERROR /*valor hexadecimal*/
#define COLOR_INFO /*valor hexadecimal*/

Й isso, caso tenha alguma dъvida, basta responder a este tуpico.
Re: Como criar comandos /IR , /TRAZER , /setadmin em gamemode. -
WL - 25.03.2016
Tem ******** para contato? ou Skype?
Re: Como criar comandos /IR , /TRAZER , /setadmin em gamemode. -
Lуs - 25.03.2016
Quote:
Originally Posted by WL
Tem ******** para contato? ou Skype?
|
Sim, caso precise me contatar, me procure por mensagem privada.
Antes de me contatar, tenha certeza de que leu minha assinatura.
Re: Como criar comandos /IR , /TRAZER , /setadmin em gamemode. - MacMillan_ - 25.03.2016
Apesar da sua dъvida jб ter sido resolvida..
[ame="http://www.youtube.com/watch?v=Ngr4OiNaRnE"]Guia Definitivo SAMP - Criar comando utilizando ZCMD e SSCANF[/ame]
Depois que vocк ver, vai conseguir criar qualquer comando que utilize zcmd e sscanf.