22.01.2013, 00:58
Galera to precisando muito desse comando. tipo eu teleporto o cara usando um comando.tipo eu digito /teleportaplayer [id] eu usando isso ai eu teleporto um cara para outro lugar.se alquem suber obg
CMD:teleportar(playerid, params[])
{
if(IsPlayerAdmin(playerid))
{
jogador1, jogador2;
new Float:X, Float:Y, Float:Z;
if(sscanf(params, "dd", jogador1, jogador2)) return SendClientMessage(playerid, -1, "ERRO: Use /Teleportar [ ID 1 ] [ ID 2 ]");
if(!IsPlayerConnected(jogador1) return SendClientMessage(playerid, -1, "ERRO:Jogador 1 nгo conectado.");
if(!IsPlayerConnected(jogador2) return SendClientMessage(playerid, -1, "ERRO:Jogador 2 nгo conectado.");
GetPlayerPos(jogador2, X, Y, Z);
SetPlayerPos(jogador1, X, Y, Z);
SendClientMessage(playerid, -1, "* jogadores teleportados.");
}
else
{
SendClientMessage(playerid, -1, "Vocк nгo й admin !");
}
return 1;
}
CMD:teleportar(playerid, params[]) {
new tele, give;
if(sscanf(params, "id", tele, give)) return SendClientMessage(playerid, -1 "Use: /teleportar [playerid]");
SetPlayerPos(give, Float:X, Float:Y, Float:Z);
return true;
}
CMD:setarpos(playerid, params[])
{
new X, Y, Z;
if(PlayerDados[playerid][Admin] < 3) return SendClientMessage(playerid, BRANCO, "Vocк precisa ser admin nivel 3 para usar este comando!");
if(PlayerDados[playerid][Trabalhando] == false) return SendClientMessage(playerid, CINZA, "Vocк precisa /trabalhar para usar esse comando!");
if(sscanf(params, "uiii", ID, X, Y, Z)) return SendClientMessage(playerid, CINZA, "[SERVER] Use /setarposicao [ID] [Pos X] [Pos Y] [Pos Z]"), SendClientMessage(playerid, CINZA, "Use o comando para alterar a posiзгo de um jogador");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, BRANCO, "[ERRO] ID invalido");
SetPlayerPos(ID, X, Y, Z);
format(String, sizeof(String), "[SERVER] O Admin {1B95E0}%s{00C2EC} Teleportou o jogador {1B95E0}%s{00C2EC} para as cordenadas: %d %d %d!", Nome(playerid), Nome(ID), X, Y, Z);
SendClientMessageToAll(BRANCO, String);
return 1;
}
CMD:trazer(playerid, params[])
{
if(PlayerDados[playerid][Admin] < 1) return SendClientMessage(playerid, BRANCO, "Vocк precisa ser admin nivel 2 para usar este comando!");
if(PlayerDados[playerid][Trabalhando] == false) return SendClientMessage(playerid, CINZA, "Vocк precisa /trabalhar para usar esse comando!");
if(sscanf(params, "u", ID)) return SendClientMessage(playerid, CINZA, "[SERVER] Use /trazer [ID]"), SendClientMessage(playerid, CINZA, "Use o comando para trazer um jogador atй vocк");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, BRANCO, "[ERRO] ID invalido");
new Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(ID, Pos[0]+2, Pos[1]+2, Pos[2]+2);
format(String, sizeof(String), "O Admin %s trouxe vocк atй ele!", Nome(playerid));
SendClientMessage(ID, AZUL_CLARO, String);
format(String, sizeof(String), "Vocк trouxe o jogador %s [ID: %d] atй vocк", Nome(ID), ID);
SendClientMessage(playerid, AZUL_CLARO, String);
return 1;
}
CMD:teleportplayer(playerid,params[]){
if(!IsPlayerAdmin(playerid))return 0;
new Float:F[3],id;
if(sscanf(params,"ufff",id,F[0],F[1],F[2]))return SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,"/teleportplayer <id> <X> <Y> <Z>");
if(!IsPlayerConnected(id))return SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,"Jogador Nгo Conectado");
SetPlayerPos(id,F[0],F[1],F[2]);
new String[256],Nome[24],AdminNome[24];
GetPlayerName(id,Nome,24);
GetPlayerName(id,AdminNome,24);
SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,(format(String,256,"Vocк Teleportou o Player %s Para As Seguintes Posiзхes %f %f %f",Nome,F[0],F[1],F[2]),String));
return SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,(format(String,256,"Vocк Foi Teleportado Por %s Para As Seguintes Posiзхes %f %f %f",AdminNome,F[0],F[1],F[2]),String));
}
Este comando seta o posiзao do player para o que indicou no comando:
pawn Код:
|
Galera decupem ai por nao avisar, eu faзo nen ideia como usar sscanf. e possivel vcs criarem em strcmp?
se for possivel obg ai. |
#include <a_samp>
public OnPlayerCommandText(playerid,cmdtext[]){
new cmd[256],idx;
cmd = strtok(cmdtext,idx);
if(!strcmp("/teleportplayer",cmd,true)){
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))return SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,"/teleportplayer <id> <X> <Y> <Z>");
id = strval(tmp);
if(!IsPlayerAdmin(playerid))return 0;
SetPlayerPos(id, -1120.8994, 2822.5698, 42.7000);
new String[256],Nome[24],AdminNome[24];
GetPlayerName(id,Nome,24);
GetPlayerName(id,AdminNome,24);
SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,(format(String,256,"Vocк Teleportou o Player %s ",Nome),String));
return SendClientMessage(playerid,/*Cor Vermelha*/ 0xFF0000AA,(format(String,256,"Vocк Foi Teleportado Por %s",AdminNome),String));
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}