[Tutorial] Vip por Dias
#1

Tutorial Vip Por Dias

Lembrando,eu aprendi fazer e apenas quer encinar para quem vive tentando e nunca consegue
Bom й uma coisa facil de se criar,vamos comeзar, cada linha do Tutorial irei explicar
Comeзando
No topo de seu Gamemode/FS
pawn Код:
#include SII
pawn Код:
enum pInfo
{
pVip,//Armazenarб o Vip
pDias,//Armazenarб os dias do Vip
}
new WInfo[MAX_PLAYERS][pInfo];
Comando vocк utilizarб assim
pawn Код:
COMMAND:darvip(playerid, params[])
{
    new Dias,level,iddele;
    if(!IsPlayerAdmin) return SendClientMessage(playerid, COR_CINZA1, "Vocк nгo tem permissгo para usar esse comando!");
    if(sscanf(params, "ddd", iddele, level,Dias)) return SendClientMessage(playerid, COR_CINZA1, "Use: /darvip  [id] [level] [dias]");
    if(!IsPlayerConnected(iddele)) return SendClientMessage(playerid, COR_CINZA2, "Jogador nгo conectado.");
        WInfo[iddele][pDias] = (gettime() + (Dias * 24 * 60 * 60));//Dias Multipiclando O Tempo * 24 * 60 * 60
    WInfo[iddele][pVip] = level;//Level Vip
    return 1;
}
Mais se vocк quer mandar uma mensagem para o jogador falando quantos dias de vip ele tem
por exemplo
pawn Код:
new String[128];
format(String, sizeof(String), "{DCDCDC}| Forum SA:MP INFORMA | {FFFF00}Vocк й ainda tem %d dias De vip", WInfo[playerid][pDias]);//Chama a variavel que guarda o vip
SendClientMessage(playerid, GetPlayerColor(playerid), String);
irб dar um valor muito grande
faзa assim
pawn Код:
new String[128];
format(String, sizeof(String), "{DCDCDC}| Forum SA:MP INFORMA | {FFFF00}Vocк й ainda tem %d dias De vip", (WInfo[playerid][pDias] - gettime()) / (60 * 60 * 24)//Da um nъmero mais preciso);
SendClientMessage(playerid, GetPlayerColor(playerid), String);
Verificaзгo para ver se o vip venceu
pawn Код:
if(WInfo[playerid][pVip] >= 1)
        {
            VIPVencido[playerid] = 0;
            if(gettime() >= WInfo[playerid][pDias])
            {
                    WInfo[playerid][pVip] = 0;
                    WInfo[playerid][pDias] = 0;
                    SendClientMessage(playerid, COR_VIP, "|BPS INFORMA| Seu VIP venceu. Renove seu VIP para ter seu benefinios novamente!");
                }
        }
Vamo como salvar o Vip
Mexo com SII
entгo vamos LA
Na sua callback/dialog de registro adicione
pawn Код:
INI_WriteInt("Dias", 0);
INI_WriteInt("Vip", 0);

Ja na callback de Login coloque
WInfo[playerid][pDias] = INI_ReadInt("Dias");
WInfo[playerid][pVip] = INI_ReadInt("Vip");
Agora no final do seu gamemode coloque uma stock para salvar as contas
pawn Код:
SalvarContas(playerid)
{
    format(formata[playerid], 69, "Contas/%s.ini", pNome(playerid));//Formata e Use de seu acordo como Players/%s.ini
    if(INI_Open(formata[playerid]))//Abre a conta
    {
        INI_WriteInt("Dias", WInfo[playerid][pDias]);// Salva os Dias do Player
                INI_WriteInt("Vip", WInfo[playerid][pVip]);// Salva os Dias do Player
        INI_Save();//Salva
        INI_Close();//Fecha
    }
    return 1;
}
Callback OnGameModeExit
pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++) //LOop pra salvar a conta de geral
    {
    SalvarContas(x);
    }
pawn Код:
Callback OnPlayerDisconnect

SalvarContas(playerid);
Vip Por Dias Salvando DOF2
Topo do GM/FS
pawn Код:
#include <DOF2>
Salvando
pawn Код:
stock SalvarPlayer(playerid)
{
        if(DOF2_FileExists(ReturnFileUser(playerid)))
        {
                DOF2_SetInt(ReturnFileUser(playerid),"Vip",WInfo[playerid][pVip]);//Salva o VIP, tinha esquecido de colocar pra salvar
                DOF2_SetInt(ReturnFileUser(playerid),"Dias", WInfo[playerid][pDias]);//Salva os dias
                DOF2_SaveFile();//salva os arquivos
        }
}
Carregando os Arquivos
pawn Код:
stock CarregarPlayer(playerid)
{
        if(DOF2_FileExists(ReturnFileUser(playerid)))
        {
 
                WInfo[playerid][pVip] = DOF2_GetInt(ReturnFileUser(playerid),"Vip");
                WInfo[playerid][pDias] = DOF2_GetInt(ReturnFileUser(playerid),"Dias");
        }
}
pawn Код:
public OnPlayerConnect(playerid)
{
CarregarPlayer(playerid);
return 1;
}
pawn Код:
Funзгo de Login

CarregarPlayer(playerid);
pawn Код:
public OnGameModeExit
SalvarPlayer(playerid);
assim ele darб o verdadeiro valor por exemplo 40 Dias,Bom й isso й simples, mais pra quem nгo tinha idйia ta ai
Reply
#2

Faltou um exemplo de verificaзгo para quando o perнodo acabar.
Reply
#3

e so falta tambem fazer como salvar o vip que o player tem e obter o valor dele ao conectar dnv
Reply
#4

Terminando jaja edito
Reply
#5

ae melhorou um pouco mas tem de explicar melhor..
Reply
#6

poderia ter usado DOF2 para salvar jб que a maioria usa DOF2
Reply
#7

Vou converter para DOF2, explicar mais , Obrigado a todos
Reply
#8

Abre o PAWNO e cria um novo blank script e teste o cуdigo do tutorial(exatamente oque estб no tуpico),
depois verifique os erros que irгo aparecer.
Reply
#9

O que o Garfield disse acima й de fundamental importвncia em um tutorial.
Vou lhe dar uma dica para futuras postagens do gкnero.

Escreva um script para seu tutorial. Se vocк postar partes do seu game mode para servir de explicaзгo pode ser um problema para leigos.
Reply
#10

" (WInfo[playerid][pDias] - gettime()) / (60 * 60 * 24) "

isso estб errado, irб obter um valor negativo.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)