// ====== INCLUDES =======//
#include <a_samp>
#include <foreach>
#include <SII>
#include <zcmd>
#include <sscanf2>
// ===== OTIMIZAЗГOZINHA kk ====== //
#if defined MAX_PLAYERS
#undef MAX_PLAYERS
#endif
#define SLOTS 20
// ===== CORES ===== //
#define COR_VIP 0xFFBEFFE2
#define COR_AZULZINHO 0x00A5FFFF
#define COR_AMARELO2 0xFFFF00AA
#define COR_VERDE 0x00FF00FF
#define COR_AZULZAO 0x005FFFFF
// ======= NEWS ========= //
new
PlayerVip[SLOTS],// Variavel pra ver se o player й vip e o nivel vip dele
_sStr[128],// Uma string global!
iddele,// Variavel que vamos usar em comandos tipo: /ban [id]! o ID й a variavel iddele :)
meses// Variavel dos meses que serгo dado aos players vips!
;
//======= PUBLICS ======= //
public OnFilterScriptInit()
{
print("\n--------------------------------------------------");
print(" Carregando Sistema de Vip...");
print(" Sistema de Vip carregado com sucesso!");
print(" Sistema de Vip criado por Bruno Pereira ••");
print("--------------------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
foreach(Player, i)// Loop em foreach!
{
SalvarVip(i);// Salva as contas!
}
return 1;
}
public OnPlayerConnect(playerid)
{
CarregarVip(playerid);// Carrega a conta vip do player!
if(PlayerVip[playerid] == 1)// Se ele for VIP 1 manda essa mensagem pra todos online \/!
{
format(_sStr, 40, "O VIP %s estб OnLine", pNome(playerid));
SendClientMessageToAll(COR_VIP, _sStr);
}
else if(PlayerVip[playerid] == 2)
{
format(_sStr, 50, "O SUPER-VIP %s estб OnLine", pNome(playerid));
SendClientMessageToAll(COR_AZULZINHO, _sStr);
}
else if(PlayerVip[playerid] == 3)
{
format(_sStr, 50, "O SOCIO %s estб OnLine", pNome(playerid));
SendClientMessageToAll(COR_VERDE, _sStr);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarVip(playerid);// Salva a conta do player!
return 1;
}
// ======== COMANDOS ========== //
CMD:ajudavip(playerid, params[])
{
if(PlayerVip[playerid] >= 1)// Se ele for VIP maior ou igual a um manda essa mensagem abaixo \/
{
SendClientMessage(playerid, -1, "/vips /socios /equiparvip");
}
if(IsPlayerAdmin(playerid))// Se ele for admin, manda essa tambem \/
{
SendClientMessage(playerid, -1, "/darvip /darsvip /darsocio /tirarvip");
}
return 1;
}
CMD:vips(playerid, params[])
{
SendClientMessage(playerid, -1 , "VIPs e Super-Vips onlines:");// Mensagem
foreach(Player, i)// Loop
{
if(IsPlayerConnected(i))// Verifica os players vips conectados!
{
if(PlayerVip[playerid] == 1)// Se os players vips forem igual a 1 (vip normal) manda isso abaixo \/!
{
format(_sStr, 40, "VIP: %s", pNome(i));// formata a mensagem
SendClientMessage(playerid, COR_VIP, _sStr);// envia a mensagem
}
else if(PlayerVip[playerid] == 2)
{
format(_sStr, 40, "SUPER-VIP: %s", pNome(i));
SendClientMessage(playerid, COR_AZULZINHO, _sStr);
}
}
}
return 1;
}
CMD:socios(playerid, params[])
{
SendClientMessage(playerid, -1 , "Socios Onlines:");
foreach(Player, i)
{
if(IsPlayerConnected(i))
{
if(PlayerVip[playerid] == 3)
{
format(_sStr, 40, "SOCIO: %s", pNome(i));
SendClientMessage(playerid, COR_VERDE, _sStr);
}
}
}
return 1;
}
CMD:darvip(playerid, params[])
{
if(!IsPlayerAdmin(playerid))// Se o cara NAO for admin (!) manda a mensagem!
return SendClientMessage(playerid, -1, "Vocк nгo estб autorizado a usar esse comando !");
if(sscanf(params, "ud", iddele, meses))// Sscanf! * Se ele nгo preencher todos os campos manda a mensagem \/! *
return SendClientMessage(playerid, -1, "Correto: /darvip [id] [meses]");// manda mensagem
if(!IsPlayerConnected(iddele))// Se o "iddele" nao estiver conectado manda a mensagem!
return SendClientMessage(playerid, -1, "Esse jogador nгo estб online");// mensagem
PlayerVip[iddele] = 1;// Seta o vip do cara pra 1
SetPlayerScore(iddele, GetPlayerScore(iddele) + meses*2);// Verifica o level do player e seta o numero que o admin digitou no "meses" veses 2!
GivePlayerMoney(iddele, meses*10000);// Da a quantidade grana pro player. A quantidade й o numero que o admin digitou no meses VESES 10 Mil!
format(_sStr, 100, "Atenзгo o admin %s te deu %d meses VIP com %d Nнveis e R$ %d.", pNome(playerid), meses, meses*2, meses*10000);// Formata a mensagem!
SendClientMessage(iddele, COR_AZULZAO, _sStr);// Manda a mensagem!
format(_sStr, 100, "Vocк deu %d meses de VIP para o %s", meses, pNome(iddele));
SendClientMessage(playerid, COR_AZULZAO, _sStr);
return 1;
}
CMD:darsvip(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Vocк nгo estб autorizado a usar esse comando !");
if(sscanf(params, "ud", iddele, meses))
return SendClientMessage(playerid, -1, "Correto: /darsvip [id] [meses]");
if(!IsPlayerConnected(iddele))
return SendClientMessage(playerid, -1, "Esse jogador nгo estб online");
PlayerVip[iddele] = 2;
SetPlayerScore(iddele, GetPlayerScore(iddele) + meses*3);
GivePlayerMoney(iddele, meses*20000);
format(_sStr, 100, "Atenзгo o admin %s te deu %d meses SUPER-VIP com %d Nнveis e R$ %d.", pNome(playerid), meses, meses*3, meses*20000);
SendClientMessage(iddele, COR_AZULZAO, _sStr);
format(_sStr, 100, "Vocк deu %d meses de SUPER-VIP para o %s", meses, pNome(iddele));
SendClientMessage(playerid, COR_AZULZAO, _sStr);
return 1;
}
CMD:darsocio(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Vocк nгo estб autorizado a usar esse comando !");
if(sscanf(params, "ud", iddele, meses))
return SendClientMessage(playerid, -1, "Correto: /darsocio [id] [meses]");
if(!IsPlayerConnected(iddele))
return SendClientMessage(playerid, -1, "Esse jogador nгo estб online");
PlayerVip[iddele] = 3;
SetPlayerScore(iddele, GetPlayerScore(iddele) + meses*4);
GivePlayerMoney(iddele, meses*30000);
format(_sStr, 100, "Atenзгo o admin %s te deu %d meses de Sуcio com %d Nнveis e R$ %d.", pNome(playerid), meses, meses*4, meses*30000);
SendClientMessage(iddele, COR_AZULZAO, _sStr);
format(_sStr, 100, "Vocк deu %d meses de Sуcio para o %s", meses, pNome(iddele));
SendClientMessage(playerid, COR_AZULZAO, _sStr);
return 1;
}
CMD:tirarvip(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Vocк nгo estб autorizado a usar esse comando !");
if(sscanf(params, "u", iddele))
return SendClientMessage(playerid, -1, "Correto: /tirarvip [id]");
if(!IsPlayerConnected(iddele))
return SendClientMessage(playerid, -1, "Esse jogador nгo estб online");
if(PlayerVip[iddele] == 0)
return SendClientMessage(playerid, -1, "Esse jogador nгo й VIP/S-VIP/SOCIO");
PlayerVip[iddele] = 0;// Seta o nivel vip do cara pra 0!
format(_sStr, 80, "O administrador %s tirou seu VIP/S-VIP/SOCIO!", pNome(playerid));
SendClientMessage(iddele, COR_AZULZAO, _sStr);
format(_sStr, 80, "Vocк tirou o VIP/S-VIP/SOCIO do %s", pNome(iddele));
SendClientMessage(playerid, COR_AZULZAO, _sStr);
format(_sStr, 35, "Vips/%s.ini", pNome(playerid));// Formata o local da Pasta!
if(fexist(_sStr))// Se a o arquivo existir, remove ele \/
{
INI_Remove(_sStr);// Remove o arquivo!
}
return 1;
}
CMD:equiparvip(playerid, params[])
{
if(PlayerVip[playerid] == 1)// Se ele for VIP vai dar essas armas:
{
GivePlayerWeapon(playerid, 24, 999);
GivePlayerWeapon(playerid, 31, 999);// Da a armas 31 com 999 balas ao player!
SendClientMessage(playerid, COR_AZULZINHO, "Vocк pegou seus equipamentos VIP!");
}
else if(PlayerVip[playerid] == 2)// Se ele for SuperVip vai dar essas armas:
{
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 24, 999);
GivePlayerWeapon(playerid, 31, 999);
GivePlayerWeapon(playerid, 4, 999);
GivePlayerWeapon(playerid, 29, 999);
SendClientMessage(playerid, COR_AZULZINHO, "Vocк pegou seus equipamentos SUPER VIP!");
}
else if(PlayerVip[playerid] == 3)// Se ele for Sуcio vai dar essas armas:
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
GivePlayerWeapon(playerid, 24, 999);
GivePlayerWeapon(playerid, 31, 999);
GivePlayerWeapon(playerid, 4, 999);
GivePlayerWeapon(playerid, 29, 999);
GivePlayerWeapon(playerid, 38, 999);
GivePlayerWeapon(playerid, 46, 999);
SendClientMessage(playerid, COR_AZULZINHO, "Vocк pegou seus equipamentos de SУCIO!");
}
else if(PlayerVip[playerid] == 0)// Se ele nao for VIP, vai mandar essa mensagem :)
return SendClientMessage(playerid, -1, "Vocк nгo й vip!");
return 1;
}
CMD:salvarvips(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Vocк nгo estб autorizado a usar esse comando !");
foreach(Player, i)// Loop
{
SalvarVip(i); // Salva as contas!
}
SendClientMessage(playerid, -1, "Todos os Vips/Super-Vips/Socios onlines foram salvos com sucesso!");
return 1;
}
CMD:chatvip(playerid, params[])
{
new String[128];// String!
if(PlayerVip[playerid] == 0)// Se o player nгo for VIP manda amensagem abaixo!
return SendClientMessage(playerid, -1, "Vocк nгo й Vip/Super-Vip/Sуcio");
if(sscanf(params, "s[100]", _sStr))//Sscanf!
return SendClientMessage(playerid, -1, "Correto: /chatvip [chat]");
if(PlayerVip[playerid] == 1)// Se o cara for VIP nivel 1...
{
format(String, 128, "VIP %s: %s", pNome(playerid), _sStr);
MensagemVips(COR_AMARELO2, String);
}
else if(PlayerVip[playerid] == 2)// Se for vip nivel 2
{
format(String, 128, "SUPER-VIP %s: %s", pNome(playerid), _sStr);
MensagemVips(COR_AMARELO2, String);
}
else if(PlayerVip[playerid] == 3)// se for vip nivel 3
{
format(String, 128, "* SOCIO %s: %s", pNome(playerid), _sStr);
MensagemVips(COR_AMARELO2, String);
}
return 1;
}
forward MensagemVips(cor, string[]);
public MensagemVips(cor, string[])// Funзгo que envia mensagem pros VIPS!!
{
foreach(Player, i)// Loop!
{
if(IsPlayerConnected(i))// Players vips conectados!
{
if(PlayerVip[i] >= 1)// Se o vip for maior que 1
{
SendClientMessage(i, cor, string);// manda a mensagem!
}
}
}
}
// ========= STOCKS ========= //
stock pNome(playerid)// Stock de getar o nome :)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
return nome;
}
stock SalvarVip(playerid)// Stock de salvar VIP!
{
if(PlayerVip[playerid] >= 1)// Se o cara for maior ou igual a 1
{
format(_sStr, 35, "Vips/%s.ini", pNome(playerid));// Formata o local do arquivo!
if(INI_Open(_sStr))// Abre o arquivo!
{
INI_WriteInt("NivelVip", PlayerVip[playerid]);// Seta o NivelVip = NIVEL DO VIP DO PLAYER!
INI_Save();// Salva
INI_Close();// Fecha o arquivo!
}
}
return 1;
}
stock CarregarVip(playerid)
{
format(_sStr, 35, "Vips/%s.ini", pNome(playerid));// Formata...
if(INI_Open(_sStr))// Abre o arquivo!
{
PlayerVip[playerid] = INI_ReadInt("NivelVip");// Seta o PlayerVip[playerid] para o numero que estiver no NivelVip...
INI_Close();// Fecha o arquivo!
}
return 1;
sou iniciante na parada ...ou se puder colocar na Fs pra mim ... Nao entendi direito como vc explicou nao entendo muito sobre o assunto@@!!
|
tem como especificar isso ...porque nao sei como faz
sou iniciante na parada ...ou se puder colocar na Fs pra mim ... Nao entendi direito como vc explicou nao entendo muito sobre o assunto@@!! |
qualquer dica de alguem ai postem por favor to precisando