30.09.2011, 05:53
Estou aqui apenas para postar os comandos bбsicos de um Admin em um servidor, independente de seu gкnero, vamos lб.
Primeiramente uma dica, coloque isto no GameMode para nao precisar ficar dando GetPlayerName em si mesmo toda hora.
Vamos definir as cores que eu usei.
Agora vamos aos comandos
E Lembrem-se de colocar isto no fim do game mode:
Desculpem pelo exagero no limite das cйlulas "[256]", й uma coisa que ainda estou a estudar para nгo colocar lag no game mode.
Espero que sirva de ajuda para alguйm.
Primeiramente uma dica, coloque isto no GameMode para nao precisar ficar dando GetPlayerName em si mesmo toda hora.
pawn Код:
stock pNome(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
return nome;
}
pawn Код:
#define BRANCO 0xFFFFFFAA
#define AMARELO 0xF6F600AA
#define VERMELHO 0xE31919AA
pawn Код:
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;
}
pawn Код:
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;
}
Espero que sirva de ajuda para alguйm.