30.09.2011, 21:19
Bom, to a uns tempos pensando em fazer algo mas to sem criatividade, entгo resolvi fazer esse simples sistema de VIP com todas linhas explicadas .
Fiz ele em SII, zcmd e sscanf.
Ele tem 3 nнveis de VIP.
- Vip Normal
- Super Vip
- Sуcio
Comandos de admins
/darvip [id] [meses]
/darsvip [id] [meses]
/darsocio [id] [meses]
/tirarvip [id] [meses]
Sу tem 3 comandos dos vips de exemplo
/ajudavip
/equiparvip
/chatvip
Comando dos players
/vips
/socios
Outras coisas do FS
Ele salva os Vips na pasta Vips no seu scriptfile, e dentro do arquivo seta o numero de que o player й.
1 - Vip
2 - S-VIP
3 - Sуcio.
Crie a pasta Vips no seu scriptfile!
Quando o player loga, se ele for Vip+ manda a mensagem pra todos que o Player VIP/SVIP/SOCIO estб online.
E ele tem todas linhas explicadas!
Download abaixo
Crйditos:
Bruno Pereira - Criador
Zeex - ZCMD
Y Less - Sscanf e Foreach
Slick - SII
Fiz ele em SII, zcmd e sscanf.
Ele tem 3 nнveis de VIP.
- Vip Normal
- Super Vip
- Sуcio
Comandos de admins
/darvip [id] [meses]
/darsvip [id] [meses]
/darsocio [id] [meses]
/tirarvip [id] [meses]
Sу tem 3 comandos dos vips de exemplo
/ajudavip
/equiparvip
/chatvip
Comando dos players
/vips
/socios
Outras coisas do FS
Ele salva os Vips na pasta Vips no seu scriptfile, e dentro do arquivo seta o numero de que o player й.
1 - Vip
2 - S-VIP
3 - Sуcio.
Crie a pasta Vips no seu scriptfile!
Quando o player loga, se ele for Vip+ manda a mensagem pra todos que o Player VIP/SVIP/SOCIO estб online.
E ele tem todas linhas explicadas!
Download abaixo
pawn Код:
/* Sistema de VIP feito por Bruno Pereira, favor nгo retire os crйditos, isso й crime!
Pode modificalo de qualquer maneira, mas deixe pelo menos os crйditos :)!
Contato: brunopereiraa-@hotmail.com
Skype: grt.figa
Й nois !!! */
// ====== 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;
}
/* Sistema de VIP feito por Bruno Pereira, favor nгo retire os crйditos, isso й crime!
Pode modificalo de qualquer maneira, mas deixe pelo menos os crйditos :)!
Contato: brunopereiraa-@hotmail.com
Skype: grt.figa
Й nois !!! */
Bruno Pereira - Criador
Zeex - ZCMD
Y Less - Sscanf e Foreach
Slick - SII