stock pNome(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
return nome;
}
#define BRANCO 0xFFFFFFAA
#define AMARELO 0xF6F600AA
#define VERMELHO 0xE31919AA
public OnPlayerCommandText(playerid, cmdtext)
{
new tmp[256];
new idx;
if(strcmp(cmd,"/dararma",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarArma [ID][ID da Arma][Muniзгo]");
return 1;
}
new armado = strval(tmp);
new armadoname[MAX_PLAYER_NAME];
GetPlayerName(armado,armadoname,sizeof(armadoname));
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarArma [ID][ID da Arma][Muniзгo]");
return 1;
}
new arma = strval(tmp);
if(arma < 1 || arma > 46)
{
SendClientMessage(playerid,BRANCO,"ID Mнnimo 1 - Mбximo 46");
return 1;
}
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarArma [ID][ID da Arma][Muniзгo]");
return 1;
}
new municao = strval(tmp);
if(municao < 1 || municao > 9999)
{
SendClientMessage(playerid,BRANCO,"Muniзгo Mнnima 1 - Mбxima 9999");
return 1;
}
format(string,sizeof(string),"O Admin %s deu a Arma %d com %d Balas Para %s",pNome(playerid),arma,municao,armadoname);
SendClientMessageToAll(0xF6F600AA,string);
format(string,sizeof(string),"Vocк recebeu a arma %d com %d balas do admin %s",arma,municao,pNome(playerid));
SendClientMessage(playerid,AMARELO,string);
GivePlayerWeapon(armado,arma,municao);
return 1;
}
if(strcmp(cmd,"/darvida",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarVida [ID][Vida]");
return 1;
}
new vidado = strval(tmp);
new vidadoname[MAX_PLAYER_NAME];
GetPlayerName(vidado,vidadoname,sizeof(vidadoname));
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarVida [ID][Vida]");
return 1;
}
new vida = strval(tmp);
if(vida < 0 || vida > 100)
{
SendClientMessage(playerid,BRANCO,"Vida Mнnima 0 - Mбxima 100");
return 1;
}
format(string,sizeof(string),"O Admin %s Setou a Vida de %s para %d",pNome(playerid),vidadoname,vida);
SendClientMessageToAll(0xF6F600AA,string);
format(string,sizeof(string),"O Admin %s Setou sua Vida para %d",pNome(playerid),vida);
SendClientMessage(vidado,AMARELO,string);
SetPlayerHealth(vidado,vida);
return 1;
}
if(strcmp(cmd,"/darcolete",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarVida [ID][Vida]");
return 1;
}
new coletado = strval(tmp);
new coletadoname[MAX_PLAYER_NAME];
GetPlayerName(coletado,coletadoname,sizeof(coletadoname));
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarColete [ID][Colete]");
return 1;
}
new colete = strval(tmp);
if(colete < 0 || colete > 100)
{
SendClientMessage(playerid,BRANCO,"Colete Mнnimo 0 - Mбximo 100");
return 1;
}
format(string,sizeof(string),"O Admin %s Setou o Colete de %s para %d",pNome(playerid),coletadoname,colete);
SendClientMessageToAll(0xF6F600AA,string);
format(string,sizeof(string),"O Admin %s Setou seu Colete para %d",pNome(playerid),colete);
SendClientMessage(coletado,AMARELO,string);
SetPlayerArmour(coletado,colete);
return 1;
}
if(strcmp(cmd,"/dargrana",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarGrana [ID/Nome][Grana]");
return 1;
}
new granado = strval(tmp);
new granadoname[MAX_PLAYER_NAME];
GetPlayerName(granado,granadoname,sizeof(granadoname));
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /DarGrana [ID/Nome][Grana]");
return 1;
}
new grana = strval(tmp);
if(grana < 1 || grana > 99999999)
{
SendClientMessage(playerid,BRANCO,"Grana Mнnima R$1 - Mбxima R$99999999");
return 1;
}
format(string,sizeof(string),"O Admin %s Deu R$ %d Para %s",pNome(playerid),grana,granadoname);
SendClientMessageToAll(0xF6F600AA,string);
format(string,sizeof(string),"Vocк Ganhou R% %d do Admin %s",grana,pNome(playerid));
SendClientMessage(playerid,AMARELO,string);
GivePlayerMoney(granado, grana);
return 1;
}
if(strcmp(cmd,"/ir",true) == 0)//testar
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Ir [ID]");
return 1;
}
new ido = strval(tmp);
new idoname[MAX_PLAYER_NAME];
GetPlayerName(ido,idoname,sizeof(idoname));
new Float:x,Float:y,Float:z,Float:angle;
GetPlayerPos(ido,x,y,z);
new playerint = GetPlayerInterior(ido);
GetPlayerFacingAngle(ido,angle);
SetPlayerPos(playerid,x,y+0.5,z);
SetPlayerFacingAngle(playerid,angle);
SetPlayerInterior(playerid,playerint);
format(string,sizeof(string),"O Admin %s Foi Atй %s.",pNome(playerid),idoname);
SendClientMessageToAll(0xF6F600AA,string);
format(string,sizeof(string),"O Admin %s Veio Atй Vocк.",pNome(playerid));
SendClientMessage(ido,BRANCO,string);
return 1;
}
if(strcmp(cmd,"/trazer",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Trazer [ID]");
return 1;
}
new trago = strval(tmp);
new tragoname[MAX_PLAYER_NAME];
GetPlayerName(trago,tragoname,sizeof(tragoname));
new Float:x,Float:y,Float:z,Float:angle;
new interioradmin = GetPlayerInterior(playerid);
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,angle);
SetPlayerPos(trago,x,y,z);
SetPlayerFacingAngle(trago,angle);
SetPlayerInterior(trago,interioradmin);
format(string,sizeof(string),"O Admin %s Trouxe %s Atй Ele.",pNome(playerid),tragoname);
SendClientMessageToAll(0xF6F600AA,string);
format(string,sizeof(string),"O Admin %s Trouxe Vocк Atй Ele.",pNome(playerid));
SendClientMessage(trago,BRANCO,string);
return 1;
}
if(strcmp(cmdtext,"/kick",true) == 0)
//Aqui podes colocar um if(IsPlayerAdmin(playerid)) ou o que for
{
tmp = strtok(cmdtext, idx);
new kickado = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Kick [ID][Motivo]");
return 1;
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(!strlen(result))
{
SendClientMessage(playerid,BRANCO,"Use /Kick [ID][Motivo]");
return 1;
}
if(strcmp(pNome(kickado),"Pedro_Miranda",true) == 0)//anti-kick
{
new kick[MAX_PLAYER_NAME];
GetPlayerName(kickado,kick,sizeof(kick));
format(string,sizeof(string),"[OWNED]: %s Foi Kickado Por Tentar Kickar %s",pNome(playerid),kick);
SendClientMessageToAll(COR_ADMCMD,string);
Kick(playerid);
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(kickado,Nome,sizeof(Nome));
format(string,sizeof(string),"[ADM CMD]: %s Foi Kickado Pelo Admin %s, Motivo: %s",Nome,pNome(playerid),(result));
SendClientMessageToAll(COR_ADMCMD,string);
Kick(kickado);
return 1;
}
if(strcmp(cmd,"/ip",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /IP [ID/Nome]");
return 1;
}
new ipado = strval(tmp);
new ipadoname[MAX_PLAYER_NAME];
GetPlayerName(ipado,ipadoname,sizeof(ipadoname));
new ipadoip[256];
GetPlayerIp(ipado,ipadoip,sizeof(ipadoip));
format(string,sizeof(string),"IP de %s: %s",ipadoname,ipadoip);
SendClientMessage(playerid,VERMELHO,string);
return 1;
}
if(strcmp(cmd,"/cv",true) == 0)//criar veiculo
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"[ERRO]: Use /CV [ID do Veнculo][Cor 1][Cor 2]");
return 1;
}
new modelo = strval(tmp);
if(modelo < 400 || modelo > 611)
{
SendClientMessage(playerid,BRANCO,"[ERRO]: ID Mнnimo 400 - Mбximo 611!");
return 1;
}
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"[ERRO]: Use /CV [ID do Veнculo][Cor 1][Cor 2]");
return 1;
}
new cor1 = strval(tmp);
if(cor1 < 0 || cor1 > 250)
{
SendClientMessage(playerid,BRANCO,"[ERRO]: Cor Mнnima 0 - Mбxima 250");
return 1;
}
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"[ERRO]: Use /CV [ID do Veнculo][Cor 1][Cor 2]");
return 1;
}
new cor2 = strval(tmp);
if(cor2 < 0 || cor2 > 250)
{
SendClientMessage(playerid,BRANCO,"[ERRO]: Cor Mнnima 0 - Mбxima 250");
return 1;
}
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
format(string,sizeof(string),"Veнculo Criado com Sucesso!");
SendClientMessage(playerid,BRANCO,string);
AddStaticVehicleEx(modelo,x,y+2,z,0.0,cor1,cor2,-1);
return 1;
}
if(strcmp(cmd,"/ban",true) == 0)
{
tmp = strtok(cmdtext, idx);
new banido = strval(tmp);
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(!strlen(result))
{
SendClientMessage(playerid,BRANCO,"Use /Ban [ID][Motivo]");
return 1;
}
if(strcmp(pNome(banido),"Pedro_Miranda",true) == 0)// Anti Ban
{
new ban[MAX_PLAYER_NAME];
GetPlayerName(banido,ban,sizeof(ban));
format(string,sizeof(string),"[OWNED]: %s Foi Banido Por Tentar Banir %s",pNome(playerid),ban);
SendClientMessageToAll(COR_ADMCMD,string);
Ban(playerid);
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(banido,Nome,sizeof(Nome));
SendClientMessage(banido,VERMELHO,"Banido do Servidor!Para Revisгo de Ban Visite o Fуrum!");
format(string,sizeof(string),"[ADM CMD]: %s Foi Banido Pelo Admin %s, Motivo: %s",Nome,pNome(playerid),result);
SendClientMessageToAll(COR_ADMCMD,string);
Ban(banido);
return 1;
}
if(strcmp(cmd,"/explodir",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Explodir [ID]");
return 1;
}
new explodido = strval(tmp);
new explodidoname[MAX_PLAYER_NAME];
GetPlayerName(explodido,explodidoname,sizeof(explodidoname));
new Float:x,Float:y,Float:z;
GetPlayerPos(explodido,x,y,z);
format(string,sizeof(string),"[ADM CMD]: %s Foi Explodido Pelo Admin %s.",explodidoname,pNome(playerid));
SendClientMessageToAll(COR_ADMCMD,string);
CreateExplosion(x,y,z,7,100);
return 1;
}
if(strcmp(cmd,"/congelar",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Congelar [ID]");
return 1;
}
new congelado = strval(tmp);
new name[MAX_PLAYER_NAME];
GetPlayerName(congelado,name,sizeof(name));
TogglePlayerControllable(congelado,0);
format(string,sizeof(string),"[ADM CMD]: %s Foi Congelado Pelo Admin %s",name,pNome(playerid));
SendClientMessageToAll(VERMELHO,string);
return 1;
}
if(strcmp(cmd,"/descongelar",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Descongelar [ID]");
return 1;
}
new descongelado = strval(tmp);
new name[MAX_PLAYER_NAME];
GetPlayerName(descongelado,name,sizeof(name));
TogglePlayerControllable(descongelado,1);
format(string,sizeof(string),"[ADM CMD]: %s Foi Descongelado Pelo Admin %s",name,pNome(playerid));
SendClientMessageToAll(VERMELHO,string);
return 1;
}
if(strcmp(cmd,"/tapa",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,BRANCO,"Use /Tapa [ID]");
return 1;
}
new tapado = strval(tmp);
new tapadoname[MAX_PLAYER_NAME];
GetPlayerName(tapado,tapadoname,sizeof(tapadoname));
new Float:x,Float:y,Float:z;
GetPlayerPos(tapado,x,y,z);
SetPlayerPos(tapado,x,y,z+10);
format(string,sizeof(string),"[ADM CMD]: %s Levou um Tapa de %s.",tapadoname,pNome(playerid));
return 1;
}
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;
}
if(strcmp(cmdtext,"/kick",true) == 0)
//Aqui podes colocar um if(IsPlayerAdmin(playerid)) ou o que for
{
if(strcmp(cmdtext,"/kick",true) == 0)
{
//Aqui podes colocar um if(IsPlayerAdmin(playerid)) ou o que for
stock pNome(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
return nome;
}
enum Info
{
pAdmin
}
new PlayerInfo[MAX_PLAYERS][Info];
public OnPlayerCommandText(playerid,cmdtext)
{
new tmp[256];
new idx;
if(strcmp(cmd,"/daradmin",true) == 0)
if(strcmp(pNome(playerid),"Jason_King",true) == 0)//pra voce poder usar sem ser admin
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid,0xFFFFFFAA,"Use /DarAdmin [ID/Nome][AdminLevel]");
new admin = strval(tmp);
new adminame[MAX_PLAYER_NAME];
GetPlayerName(admin,adminname,sizeof(adminame));
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid,0xFFFFFFAA,"Use /DarAdmin [ID/Nome][AdminLevel]");
new adminlevel = strval(tmp);
if(adminlevel < 0 || adminlevel > 1342) return SendClientMessage(playerid,0xFFFFFFAA,"Admin Mбximo 1342, Mнnimo 0");
PlayerInfo[admin][pAdmin] = adminlevel;
new string[256];
format(string,sizeof(string),"Vocк promoveu %s para o nнvel %d de Admin",adminname,adminlevel);
SendClientMessage(playerid,0xFFFFFFAA,string);
format(string,sizeof(string),"Vocк foi promovido a nнvel %d de Admin por %s",adminlevel,pNome(playerid))
SendClientMessage(admin,0xFFFFFFAA,string);
return 1;
}
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;
}
Jason voce pode fazer assim
pawn Код:
pawn Код:
Espero que te sirva |