Tenta adapta na sua GM ...
Код:
// INCLUDES //
#include <a_samp>
#include <foreach>
#include <zcmd>
#include <SII>
new
PlayerVip[SLOTS],// Variavel pra ver se o player й vip e o nivel vip dele
_sStr[128],// Uma string global!
meses// Variavel dos meses que serгo dado aos players vips!
;
public OnGameModeExit()
{
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;
}
//CMD /DARVIP
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 /VIPS ..
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;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarVip(playerid);// Salva a conta do player!
return 1;
}
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;
}