[Pedido] Vip automatico
#1

Ola, estou a busca de um comando para dar vip e o vip sair automaticamente em 30 dias...
Atualmente estou usando esse:
pawn Код:
if(strcmp(cmd, "/darvip", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [playerid/PartOfName]");
                return 1;
            }
            new para1;
            para1 = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            new nome[24];
            GetPlayerName(playerid, nome, sizeof nome);
            if(PlayerInfo[playerid][pAdmin] >= 5000)
            {
                if(IsPlayerConnected(para1))
                {
                    if(para1 != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(para1, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        PlayerInfo[para1][pDonateRank] = 1;
                        format(string, sizeof(string), "Vocк deu VIP para %s. ",giveplayer);
                        SendClientMessage(playerid, COLOR_OOC, string);
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo estб autorizado a usar este comando!");
            }
        }
        return 1;
    }
Sera que alguem poderia modificar ele para ficar automatico? ou me mandar algum tutorial ensinando :/ ficaria grato, obrigado.
Reply
#2

isso ta no registro filhote
deve ter algo como
PlayerInfo[para1][pDonateRank] = 0;
Reply
#3

como assim ?
Reply
#4

PQP olha no registro do gm la deve ter algo do genero pra definir q ele comeзa com cip setado a 0
Reply
#5

Testei o cуdigo e esta funcionando corretamente.

As informaзхes sгo salvar no arquivo Vips.txt, que й criado automaticamente quando o GM й iniciado, e, toda vez que o jogador й spawnado, o privilйgio de VIP e checado, caso jб tenha expirado, ele perde o beneficio.

PHP код:
#include <Dini>
public OnGameModeInit()
{
    if(!
fexist("Vips.txt")) { dini_Create("Vips.txt"); }
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    if(
PlayerInfo[playerid][pDonateRank] == 1)
    {
        new 
n[24];
        
GetPlayerName(playeridn24);
        if(
dini_Isset("Vips.txt"n))
        {
            if(
getdate() >= dini_Int("Vips.txt"n))
            {
                
SendClientMessage(playerid0xFFFF00FF"Seu tempo de VIP expirou !");
                
PlayerInfo[playerid][pDonateRank] = 0;
                
dini_Unset("Vips.txt"n);
            }
        }
    }
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    new 
cmd[256], idxtmp[256];
    
cmd strtok(cmdtextidx);
    if(
strcmp(cmd"/darvip"true) == 0)
    {
        new 
iddiasn[24], n2[24], str[128];
        if(
PlayerInfo[playerid][pAdmin] < 5000) return SendClientMessage(playeridCOLOR_GRAD1"   Vocк nгo estб autorizado a usar este comando!");
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_GRAD2"USE: /darvip [playerid/PartOfName] [dias]");
        
id ReturnUser(tmp);
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_GRAD2"USE: /darvip [playerid/PartOfName] [dias]");
        
dias strval(tmp);
        if(
dias 1) return SendClientMessage(playeridCOLOR_GRAD2"A quantidade de dias deve ser superior а 1.");
        if((
getdate() + dias) >= 365) return SendClientMessage(playeridCOLOR_GRAD2"Vocк nгo pode escolher esta quantidade de dias.");
        
GetPlayerName(playeridn24);
        
GetPlayerName(idn224);
        if(!
IsPlayerConnected(id) || id == INVALID_PLAYER_ID) return SendClientMessage(playerid0xFF0000FF"ID Invбlido.");
        
PlayerInfo[id][pDonateRank] = 1;
        
format(strsizeof str"Vocк deu VIP para %s por %d dias."n2dias);
        
SendClientMessage(playeridCOLOR_OOCstr);
        
format(strsizeof str"%s te deu VIP por %d dias."ndias);
        
SendClientMessage(idCOLOR_OOCstr);
        
dini_IntSet("Vips.txt"n2getdate()+dias);
        return 
1;
    }
    return 
0;

Reply
#6

vo testar Shadoww5, vlws rep+
Reply
#7

agora ele da esses erros ao compilar:
pawn Код:
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(1170) : error 021: symbol already defined: "Time"
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(4902) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(4903) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(4904) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(4905) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(13792) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(15231) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(19599) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(19599) : error 076: syntax error in the expression, or invalid function call
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(22350) : error 021: symbol already defined: "strtok"
D:\PCS-SAMP\Compiler\gamemodes\projetosa.pwn(22365) : error 047: array sizes do not match, or destination array is too small
Reply
#8

Nгo vai funcionar devido ter que possui os parвmetros do gettime(ano,mes,dia);
Toma aqui,.


pawn Код:
stock vipDias(playerid, dias)
{
    if(!IsPlayerConnected(playerid)) return 1;
    new j_ano, j_dia, j_mes, j_String[128], j_Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, j_Nome, sizeof(j_Nome));
    getdate(j_ano, j_mes, j_dia);
    j_dia += dias;
    while(j_dia > 31) {
        j_dia -= 31;
        j_mes++;
    }
    while(j_mes > 12) {
        j_mes -= 12;
        j_ano++;
    }
    format(j_String, sizeof(j_String), "Vip%s.ini", j_Nome);
    if(!dini_Exists(j_String)) {
        dini_Create(j_String);
        dini_IntSet(j_String, "Dia", j_dia);
        dini_IntSet(j_String, "Mes", j_mes);
        dini_IntSet(j_String, "Ano", j_ano);
    }
    else {
        dini_IntSet(j_String, "Dia", j_dia);
        dini_IntSet(j_String, "Mes", j_mes);
        dini_IntSet(j_String, "Ano", j_ano);
    }
    PlayerInfo[playerid][pVip] = 1;
    return 0x01;
}
Eu quem fiz, testa.


reputation? :/
Reply
#9

Claro que funciona sem os parвmetros dia mes ano ele da o Unix Time Stamp que й uma contagem de segundos desde 01/01/1970

http://www.unixtimestamp.com/
Reply
#10

Perdгo, quis dizer Getdate().
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)