25.03.2016, 18:22
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.
Bom, para comeзar, vocк pode fazer uma funзгo para facilitar e diminuir teu trabalho ao criar os comandos.
Com a funзгo pronta, vocк pode 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));
}
}
- /ir:
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;
}
Tenha 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.
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.PHP код:
AdminLevel[MAX_PLAYERS];
Agora, й sу criar os comandos para definir o adminlevel de jogadores alvos:
- /setadmin:
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;
}
Caso vocк queira fazer verificaзхes em comandos, e permitir somente administradores de certos leveis a utilizar, й simples:
Observaзхes
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 код:
if(AdminLevel[playerid] < 2)
return SendClientMessage(playerid, COLOR_ERROR, "* Vocк nгo estб autorizado.");
PHP код:
#define COLOR_ERROR /*valor hexadecimal*/
#define COLOR_INFO /*valor hexadecimal*/
Й isso, caso tenha alguma dъvida, basta responder a este tуpico.