[Tutorial] Criar sistema de VIP, com salvamento.
#1

COMO CRIAR UM SISTEMA DE VIP?

Olб galera, sou novo neste forum.
Venho aqui ensinar б vocкs a criar um sistema de VIP, com salvamento.

Usaremos variaveis, sii(salvamento), zcmd(processador de comandos). Se vocк nгo possui elas, vai localizar o download no final do tutorial.
Todos cуdigos do tutorial foram testados in-game.

Vamos parar de enrolar, vamos agora ao tutorial.

Definindo includes e extras(para melhor entendimento):
pawn Код:
#include a_samp
#include sii
#include zcmd
#define nao 0
#define sim 1
Vamos agora criar as variaveis globais, usadas para o nome do player, variavel da pasta e a variavel que define se o player e vip ou nгo.
pawn Код:
new VipPlayer[MAX_PLAYERS]; // ESSA VARIAVEL SE NAO FOR MODIFICADA TEM O VALOR 0 , E INUTIL COLOCAR O VALOR DELA 0 (VipPlayer[MAX_PLAYERS] = 0;)
new pNome[50];
new Pasta[128];
Para uma melhor organizaзгo, vamos usar stocks, vamos criar a stock para salvar o player:
pawn Код:
stock SaveVip(playerid)
{
    GetPlayerName(playerid, pNome, sizeof(pNome));
    format(Pasta,sizeof(Pasta),"VipPlayers/%s.ini", pNome);// DEFINE A PASTA E O NOME DO PLAYER
    INI_Open(Pasta);// EDITA O %S(NOME).ini SE NAO TIVER CRIA, CRIA SOMENTE A PASTA %S(NOME).ini , VOCК TEM QUE CRIAR A PASTA VIPPLAYERS
    INI_WriteInt("Permissao", VipPlayer[playerid]);// SALVA A PERMISSAO DO PLAYER, SE NAO TIVER = 0, SE TIVER = 1
    INI_Save();
    INI_Close();
}
Agora para Carregar o Player:
pawn Код:
stock LoadVip(playerid)
{
    GetPlayerName(playerid, pNome, sizeof(pNome));
    format(Pasta,sizeof(Pasta),"VipPlayers/%s.ini", pNome);//DEFINE A PASTA E O NOME ONDE VAI LER NOMEDOPLAYER.INI
    INI_Open(Pasta);
    VipPlayer[playerid] = INI_ReadInt("Permissao");// VAI LER O ARQUIVO E VAI DEFINIR SE O PLAYER E VIP OU NAO 0  = NAO, 1 = SIM
    INI_Close();
}
Agora uma stock extra, nгo й muito importante, ela define o player como vip in-game.Porйm й possivel colocar entrando na scriptfiles e mudando Permissao=0 para Permissao=1.
pawn Код:
stock PlayerIsVip(playerid)
{
    VipPlayer[playerid] = sim;
    SaveVip(playerid);
}
Somos obrigados a usar a public OnPlayerConnect(playerid), e tambйm a public OnPlayerDisonnect(playerid) para ler e salvar.
pawn Код:
public OnPlayerConnect(playerid)
{
    LoadVip(playerid);
    return 1;
}
public OnPlayerDisconnect(playerid)
{
    SaveVip(playerid);
    return 1;
}
Exemplos de comando:
pawn Код:
CMD:virarvip(playerid) // FUNCAO QUE TRANSFORMA O PLAYER EM VIP, USANDO A STOCK PLAYERISVIP
{
    PlayerIsVip(playerid);
    SendClientMessage(playerid,-1,"Vocк й um VIP.");//MSG
    return 1;
}
// EXEMPLO DE COMANDO, SE FOR VIP ABRE SE NAO FOR APARECE UMA MSG DE ERRO
CMD:souvip(playerid)
{
    if(VipPlayer[playerid] == sim) // COMO SIM = 1, O VipPlayer TEM QUE HAVER O VALOR 1 , CASO NГO VAI APARECER A MSG (else)
    {
        SendClientMessageToAll(-1,"|****************************************|");
        SendClientMessageToAll(-1,"|********| SOU VIP NOOBS |********|");
        SendClientMessageToAll(-1,"|****************************************|");
    }
    else SendClientMessage(playerid,-1,"Vocк nгo й VIP.");
    return 1;
}
Como sou meio que iniciante, estes codes nгo serгo aquela coisa toda, mais serгo util para pessoas que querem aprender.

Downloads:
> SII
> ZCMD

Espero que gostem, recomendo:
if : wiki sa-mp
sii: humildadeforever
zcmd + sscanf: BlueX (Caso queira criar o comando /darvip [id] ou outros)
Qualquer erro, favor me avise, fiz o tutorial meio que correndo tambйm
Reply
#2

Poderia fazer com gettime(), para vencer sozinho etc, mas vale a intenзгo nй '-'
Reply
#3

Quote:
Originally Posted by Nickvj7
Посмотреть сообщение
Poderia fazer com gettime(), para vencer sozinho etc, mas vale a intenзгo nй '-'
Obrigado pela dica.
Reply
#4

Bom tutorial, membro novo aqui?? +rep
Reply
#5

Quote:
Originally Posted by Schocc
Посмотреть сообщение
Bom tutorial, membro novo aqui?? +rep
Sou sim, mais nгo sou novato no Pawn. Eu tinha parado, fiquei um tempo sem PC, agora eu voltei hehe..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)