15.09.2012, 20:33
.:: Sistema de Administraзгo ZAdmin ::.
Reputaзгo serб sempre bem vinda.
- Informaзхes Basicas:Reputaзгo serб sempre bem vinda.
• 3 Leveis Administrativos.
• 11 Comandos para admins.
• 1 Comando para players.
• Sistema de Registro e Login en Box.
• Esse FS й uma base para novatos.
- Crйditos:
• FS - Criado por Zuiudгo
• Testes - Zuiudгo
- Comandos Administrativos:
- Comandos de Admin nivel 1:
• /Ir
• /Trazer
• /Congelar
• /Descongelar
• /AvAdm
• /ComandosAdmin
- Comandos de Admin nivel 2:
• /Kickar
• /Banir
• /SetarVida
• /SetarColete
- Comandos de Admin nivel 3:
• /DarAdmin
- Necessбrio:
• Includes: ZCMD, SSCANF E DINI.
• Pasta " Players " na scritpfiles.
- Downloads:
• Pastebin
• Cуdigo:
pawn Код:
////////////////////////////////////////////////////////////////////////////////
// ZUIUDГO SISTEMA DE ADMIN //
//////////////////////////////////////////////////////////////////////////////// */
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
#include <a_samp>
#include <zcmd>
#include <sscanf>
#include <dini>
#define DIALOG_LOGIN 47414
#define DIALOG_REGISTER 58515
#define red 0xF00A0AFF
#define blue 0x25A5FAFF
#define green 0x009900FF
#define yellow 0xFFFF00FF
#define cinza 0xB5B5B5FF
#define MAX_PING 700
#pragma tabsize 0
// === Errou a senha 3x = kick ===
new Tentativas[MAX_PLAYERS];
// === Playerinfo ===
enum pInfo
{
Admin,
Score,
Cash
};
new playerinfo[MAX_PLAYERS][pInfo];
//------------------------------------------------------------------------------
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Zuiudгo Sistema de Admin Carregado!");
print("--------------------------------------\n");
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,-1,"[INFORMAЗГO]: Esse servidor utiliza um sistema de Administraзгo de Zuiudгo! ( Mais informaзхes em forum.sa-mp.com ..)");
new arquivoplayers[64], nomeplayer[MAX_PLAYER_NAME];
GetPlayerName(playerid,nomeplayer,sizeof(nomeplayer));
format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",nomeplayer);
if(dini_Exists(arquivoplayers))
{
SetPVarInt(playerid,"Registrado",1);
SendClientMessage(playerid,red,"Vocк jб estб registrado, use /logar");
TogglePlayerControllable(playerid,0);
}
else
{
SendClientMessage(playerid,red,"Vocк nгo estб registrado, use /registrar");
SetPVarInt(playerid,"Registrado",0);
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
Salvar(playerid);
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerText(playerid, text[])
{
if(text[0] == '@' && playerinfo[playerid][Admin] >= 1)
{
new string[128];
format(string,sizeof(string),"Admin: %s [%d]: %s",Nome(playerid),playerid,text[1]);
SendAdminMessage(blue,string);
return 0;
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerRequestSpawn(playerid)
{
if(GetPVarInt(playerid, "Registrado") && !GetPVarInt(playerid, "Logado"))
{
SendClientMessage(playerid,red,"Vocк precisa se logar antes, para poder jogar, digite /logar.");
return 0;
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerUpdate(playerid)
{
new ping = GetPlayerPing(playerid);
new string[150];
if(ping > MAX_PING)
{
format(string,sizeof(string),"%s Foi Kickado do Servidor por Exercer %d de ping o (Limite).",Nome(playerid),MAX_PING);
SendClientMessageToAll(yellow,string);
Kick(playerid);
}
return 1;
}
//------------------------------------------------------------------------------
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGIN)
{
if(response == 0)
{
SendClientMessage(playerid,red,"Sem se logar vocк nгo pode jogar, por isso foi kikado");
Kick(playerid);
}
if(response == 1)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Seja Bem vindo, sua conta jб estб registrada. Digite sua senha para poder jogar","Logar","Sair");
return 1;
}
else
{
Logar(playerid,inputtext);
SetPVarInt(playerid,"Logado",1);
return 1;
}
}
}
if(dialogid == DIALOG_REGISTER)
{
if(response == 0)
{
SendClientMessage(playerid,red,"Para se registrar use /registrar.");
}
if(response ==1 )
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,red,"Vocк precisa digitar uma senha!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registro","Seja bem vindo! Registre uma senha para poder jogar!","Registrar","Sair");
return 1;
}
else
{
Registrar(playerid,inputtext);
return 1;
}
}
}
return 1;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
CMD:relato(playerid,params[])
{
new relato[150],string[200];
if(sscanf(params,"s",relato)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Relato <Texto>");
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Relato de: %s(%d): %s",Nome(playerid),playerid,relato);
SendAdminMessage(-1,string);
SendClientMessage(playerid,-1,"{FF0000}[ZAdmin]: {FFFFFF}Seu Relato Foi Enviado Com Sucesso Para a Administraзгo Online, Aguarde Sua Resposta.");
return 1;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
/* Comandos nivel 1: */
CMD:comandosadmin(playerid,params[])
{
new string[1000];
if(playerinfo[playerid][Admin] < 1)
{
strcat(string,"{FF0000}[ZAdmin]: {FFFFFF}Administrador Level 1:\n");
strcat(string,"{FFFFFF}/Ir /Trazer /Congelar /Descongelar /AvAdm");
}
if(playerinfo[playerid][Admin] < 2)
{
strcat(string,"{FF0000}[ZAdmin]: {FFFFFF}Administrador Level 2:\n");
strcat(string,"{FFFFFF}/Kickar /Banir /SetarVida /SetarColete");
}
if(playerinfo[playerid][Admin] < 3)
{
strcat(string,"{FF0000}[ZAdmin]: {FFFFFF}Administrador Level 3:\n");
strcat(string,"{FFFFFF}/DarAdmin");
}
return 1;
}
CMD:ir(playerid,params[])
{
new id,string[150];
new Float:PosX,Float:PosY,Float:PosZ;
if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"u",id)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Ir <PlayerID>");
GetPlayerPos(id,PosX,PosY,PosZ);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)SetPlayerPos(playerid,PosX,PosY,PosZ); else SetVehiclePos(GetPlayerVehicleID(playerid),PosX,PosY,PosZ);
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));
SetPlayerInterior(playerid,GetPlayerInterior(id));
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Foi Atй: %s",Nome(playerid),Nome(id));
SendClientMessageToAll(-1,string);
return 1;
}
CMD:trazer(playerid,params[])
{
new idt,string[150];
new Float:PosX,Float:PosY,Float:PosZ;
if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idt)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"u",idt)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Trazer <PlayerID>");
GetPlayerPos(playerid,PosX,PosY,PosZ);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)SetPlayerPos(idt,PosX,PosY,PosZ); else SetVehiclePos(GetPlayerVehicleID(idt),PosX,PosY,PosZ);
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(idt));
SetPlayerInterior(playerid,GetPlayerInterior(idt));
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Puxou Atй Vocк: %s",Nome(playerid),Nome(idt));
SendClientMessageToAll(-1,string);
return 1;
}
CMD:congelar(playerid,params[])
{
new idc,string[150];
if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idc)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"u",idc)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Congelar <PlayerID>");
TogglePlayerControllable(idc,0);
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Congelou: %s",Nome(playerid),Nome(idc));
SendClientMessageToAll(-1,string);
return 1;
}
CMD:descongelar(playerid,params[])
{
new idd,string[150];
if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idd)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"u",idd)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Descongelar <PlayerID>");
TogglePlayerControllable(idd,1);
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Descongelou: %s",Nome(playerid),Nome(idd));
SendClientMessageToAll(-1,string);
return 1;
}
CMD:avadm(playerid,params[])
{
new texto[500],string[550];
if(playerinfo[playerid][Admin] < 1) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(sscanf(params,"s",texto)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/AvAdm <Texto>");
format(string,sizeof(string),"[ZAdmin]: {FF0000}Administrador: %s Diz: {FFFFFF}%s",Nome(playerid),texto);
SendClientMessageToAll(-1,string);
return 1;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
/* Comandos nivel 2: */
CMD:kickar(playerid,params[])
{
new idk,motivo[150],string[250];
if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idk)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"us",idk,motivo)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Kickar <PlayerID> <Motivo>");
format(string,sizeof(string),"[ZAdmin]: Administrador(a): %s - Kickou: %s - Motivo: %s",Nome(playerid),Nome(idk),motivo);
SendClientMessageToAll(cinza,string);
Kick(idk);
return 1;
}
CMD:banir(playerid,params[])
{
new idb,motivo[150],string[250];
if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idb)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"us",idb,motivo)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/Banir <PlayerID> <Motivo>");
format(string,sizeof(string),"[ZAdmin]: Administrador(a): %s - Baniu: %s - Motivo: %s",Nome(playerid),Nome(idb),motivo);
SendClientMessageToAll(cinza,string);
Ban(idb);
return 1;
}
CMD:setarvida(playerid,params[])
{
new idv,vida,string[150];
if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idv)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"ud",idv,vida)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/SetarVida <PlayerID> <Quantidade de Vida>");
SetPlayerHealth(playerid,vida);
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Setou Sua Vida Para: %d",Nome(playerid),vida);
SendClientMessage(idv,blue,string);
return 1;
}
CMD:setarcolete(playerid,params[])
{
new idc,colete,string[150];
if(playerinfo[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(idc)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"ud",idc,colete)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/SetarVida <PlayerID> <Quantidade de Vida>");
SetPlayerHealth(playerid,colete);
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Administrador(a): %s Setou Seu Colete Para: %d",Nome(playerid),colete);
SendClientMessage(idc,-1,string);
return 1;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
/* Comandos nivel 3: */
CMD:daradmin(playerid,params[])
{
new ida,level,string[250];
if(playerinfo[playerid][Admin] < 3) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Vocк precisa ser administrador para usar este comando!");
if(!IsPlayerConnected(ida)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {FFFFFF}Jogador nгo conectado!");
if(sscanf(params,"ud",ida,level)) return SendClientMessage(playerid,-1,"{FF0000}[USE]: {FFFFFF}/DarAdmin <PlayerID> <Level de 1-3>");
playerinfo[ida][Admin] = level;
format(string,sizeof(string),"{FF0000}[ZAdmin]: {FFFFFF}Vamos dar os parabйns б %s Agora й um Administrador(a) Level %d",Nome(ida),level);
SendClientMessageToAll(-1,string);
return 1;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
stock SendAdminMessage(cor,string[])
{
for(new d; d < GetMaxPlayers(); ++d)
{
if(IsPlayerConnected(d) && playerinfo[d][Admin] > 1)
{
SendClientMessage(d,cor,string);
}
}
}
//------------------------------------------------------------------------------
stock Salvar(playerid)
{
new arquivoplayers[64];
new Nome1[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nome1,sizeof(Nome1));
format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",Nome1);
dini_IntSet(arquivoplayers,"Admin",playerinfo[playerid][Admin]);
dini_IntSet(arquivoplayers,"Score",GetPlayerScore(playerid));
dini_IntSet(arquivoplayers,"Cash",GetPlayerMoney(playerid));
return 1;
}
//------------------------------------------------------------------------------
stock Logar(playerid,key[])
{
new arquivoplayers[64];
new Nome1[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nome1,sizeof(Nome1));
format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",Nome1);
if(!strcmp(key,dini_Get(arquivoplayers,"Senha"),false))
{
playerinfo[playerid][Admin] = dini_Int(arquivoplayers,"Admin");
SetPlayerScore(playerid,dini_Int(arquivoplayers,"Score"));
GivePlayerMoney(playerid, (ResetPlayerMoney(playerid), dini_Int(arquivoplayers,"Cash")));
SendClientMessage(playerid,green,"CONTA: Vocк foi logado com sucesso!");
SetPVarInt(playerid,"Logado",1);
return 1;
}
if(Tentativas[playerid]==2)
{
SendClientMessage(playerid,red,"Vocк foi kickado por errar a sua senha 3 vezes");
Kick(playerid);
return 1;
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Digite sua senha para poder logar.","Logar","Sair");
SendClientMessage(playerid,red,"Sua senha estб errada! Caso vocк a erre mais de 3 vezes vocк serб kickado por motivos de seguranзa!");
Tentativas[playerid]++;
return 1;
}
}
//------------------------------------------------------------------------------
stock Registrar(playerid,key[])
{
new arquivoplayers[64];
new Nome1[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nome1,sizeof(Nome1));
format(arquivoplayers,sizeof(arquivoplayers),"/Players/%s.txt",Nome1);
dini_Create(arquivoplayers);
dini_Set(arquivoplayers,"Senha",key);
SendClientMessage(playerid,green,"CONTA: Vocк foi registrado e logado com sucesso");
dini_IntSet(arquivoplayers,"Admin",0);
dini_IntSet(arquivoplayers,"Score",0);
dini_IntSet(arquivoplayers,"Cash",0);
return 1;
}
//------------------------------------------------------------------------------
stock Nome(playerid)
{
new Name[MAX_PLAYERS];
GetPlayerName(playerid,Name,sizeof(Name));
return Name;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
public OnFilterScriptExit()
{
print("\n--------------------------------------");
print("Zuiudгo Sistema de Admin Descarregado!");
print("--------------------------------------\n");
return 1;
}
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*