SA-MP Forums Archive
[Ajuda] Remover VIP automбtico (Nгo й pedido de cуdigo) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Remover VIP automбtico (Nгo й pedido de cуdigo) (/showthread.php?tid=373583)



Remover VIP automбtico (Nгo й pedido de cуdigo) - JuniorRiddle - 31.08.2012

Eu tentei criar um sistema VIP onde o admin adciona a data de vencimento ao jogador, exemplo: /darvip id, dia, mes, ano, e essa data ficaria salva, na onplayerupdate eu pus um check meio galhofa mas ele nгo funcionou (tenho certeza que por burrice minha, alguйm poderia me ajudar e apontar o erro no meu check, pois a VIP sai, assim que й dada.

pawn Код:
if(strcmp(cmd, "/darvip", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pAdmin] < 4000)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo tem autorizaзгo para usar esse comando.");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "ERRO: Digite /darvip [id] [dia] [mes] [ano](Coloque o comando com um dia a menos)");
                return 1;
            }
            new para1;
            para1 = ReturnUser(tmp);
            new nome[24];
            GetPlayerName(playerid, nome, sizeof nome);
            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));

            tmp = strtok(cmdtext, idx);
            new dia = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [id] [dia] [mкs] [ano] (Data do Vencimento)");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            new mes = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [id] [dia] [mкs] [ano] (Data do Vencimento)");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            new ano = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [id] [dia] [mкs] [ano] (Data do Vencimento)");
                return 1;
            }
            if(IsPlayerConnected(para1))
            {
                if(para1 != INVALID_PLAYER_ID)
                {
                    format(string, sizeof string, "Vocк deu os status de VIP para %s", giveplayer);
                    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                    format(string, sizeof string, "Vocк recebeu todos os status de VIP do administrador %s.", sendername);
                    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
                    getdate(year, month, day);
                    gettime(hour,minute,second);
                    format(string, sizeof(string), "%s deu vip ao %s nнvel %d (%d/%d/%d - %d:%d)",sendername,giveplayer,day, month, year,hour, minute);
                    VipsLog(string);
                    PlayerInfo[giveplayerid][pLevel] += 3;
                    ScoreLevel(para1);
                    PlayerInfo[para1][pVIP] = 1;
                    PlayerInfo[para1][pVIPD] = dia;
                    PlayerInfo[para1][pVIPM] = mes;
                    PlayerInfo[para1][pVIPA] = ano;
                    return 1;
                    }
                }
            }
        }
Check na OnPlayerUpdate

pawn Код:
if(PlayerInfo[playerid][pVIP] != 0)
        {
        getdate(Ano, Mes, Dia);
        if(PlayerInfo[playerid][pVIPD] < Dia || PlayerInfo[playerid][pVIPM] < Mes)
        {
            SendClientMessage(playerid, 0xFFFF00FF, "Seu tempo de VIP expirou.");
            PlayerInfo[playerid][pVIP] = 0;
            PlayerInfo[playerid][pVIPM] = 0;
            PlayerInfo[playerid][pVIPA] = 0;
            PlayerInfo[playerid][pVIPD] = 0;
        }
        else if(PlayerInfo[playerid][pVIPA] > Ano)
        {
            SendClientMessage(playerid, 0xFFFF00FF, "Seu tempo de VIP expirou.");
            PlayerInfo[playerid][pVIP] = 0;
            PlayerInfo[playerid][pVIPM] = 0;
            PlayerInfo[playerid][pVIPA] = 0;
            PlayerInfo[playerid][pVIPD] = 0;
        }
    }



Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - Ricop522 - 31.08.2012

https://sampforum.blast.hk/showthread.php?tid=254915


Respuesta: Remover VIP automбtico (Nгo й pedido de cуdigo) - JuniorRiddle - 31.08.2012

Consegui fazer certinho em Unixtimestamp, agora, tem como eu converter ele pra horбrio real dentro do samp?

Mas o dia VIP/Mкs/Ano VIP sу funciona quando eu seto 30 dias usando esse mйtodo pra calcular data de vencimento

pawn Код:
if(PlayerInfo[playerid][pVIPD] > 31)
                {
                PlayerInfo[playerid][pVIPD] -= 31;
                PlayerInfo[playerid][pVIPM] ++;
                }
                if(PlayerInfo[playerid][pVIPM] > 12)
                {
                PlayerInfo[playerid][pVIPM] -= 12;
                PlayerInfo[playerid][pVIPA] ++;
                return 1;
Existe forma de calcular ou eu teria que fazer o comando da mesma forma que o meu primeiro /darvip id dias [dia] [mes] [ano] do vencimento, jб que esses valores sгo unico e exclusivo pro jogador digitar /tempovip e ver seu vecimento.


Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - paulor - 31.08.2012

http://forum.sa-mp.com/showpost.php?...postcount=1653 - GetTime.

Pegue como base!



Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - Ricop522 - 31.08.2012

Conseguiu mesmo? vocк realmente leu?

vipVencimento] = (86400*dias)+gettime();


60 dias, 100 dias, etc.

pawn Код:
Comando

pVencimento] = (86400*dias)+gettime();

// Vencimento
new atualTimer = PlayerInfo[playerid][pVencimento];
new iRandomTime = (atualTimer-gettime())+gettime();
new szMessage[128];
format(szMessage, sizeof(szMessage), "O seu donator irб expirar em %s", timec(iRandomTime));
SendClientMessage(playerid, 0xCACAFFAA, szMessage);

// Fim do GM

stock timec(timestamp, compare = -1) {
    if (compare == -1) {
        compare = gettime();
    }
    new
        n,
        // on the following line, I have removed the need for the diff() function.
        // if you want to use the diff() function in pawn, replace the following with:
        // Float:d = diff(timestamp, compare),
        Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
        returnstr[32];
    if (d < 60) {
        format(returnstr, sizeof(returnstr), "< 1 minuto");
        return returnstr;
    } else if (d < 3600) { // 3600 = 1 hour
        n = floatround(floatdiv(d, 60.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "minuto");
    } else if (d < 86400) { // 86400 = 1 day
        n = floatround(floatdiv(d, 3600.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "hora");
    } else if (d < 2592000) { // 2592000 = 1 month
        n = floatround(floatdiv(d, 86400.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "dia");
    } else if (d < 31536000) { // 31536000 = 1 year
        n = floatround(floatdiv(d, 2592000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "mкs");
    } else {
        n = floatround(floatdiv(d, 31536000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "ano");
    }
    if (n == 1) {
        format(returnstr, sizeof(returnstr), "1 %s", returnstr);
    } else {
        format(returnstr, sizeof(returnstr), "%d %ss", n, returnstr);
    }
    return returnstr;
}
Toma ai mastigado, nгo sabe estudar, vamos veer se pelo menos agora aprende.


Respuesta: Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - JuniorRiddle - 31.08.2012

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Conseguiu mesmo? vocк realmente leu?

Toma ai mastigado, nгo sabe estudar, vamos veer se pelo menos agora aprende.
Mesmo com sua grosseria obrigado, eu tive que sair pra escola mas eu jб tinha conseguido fazer e esqueci de editar.
Valeu mesmo assim, sempre achei vocк um dos caras mais humildes e um dos que eu mais admirava nesse fуrum e pelo seu trabalho no AD-RP, mas agora realmente fiquei meio decepcionado com essa demosntraзгo de arrogancia, de qualquer forma, REP+, abraзo.


Re: Respuesta: Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - DrKaFuZo - 08.11.2012

Quote:
Originally Posted by JuniorRiddle
Посмотреть сообщение
Mesmo com sua grosseria obrigado, eu tive que sair pra escola mas eu jб tinha conseguido fazer e esqueci de editar.
Valeu mesmo assim, sempre achei vocк um dos caras mais humildes e um dos que eu mais admirava nesse fуrum e pelo seu trabalho no AD-RP, mas agora realmente fiquei meio decepcionado com essa demosntraзгo de arrogancia, de qualquer forma, REP+, abraзo.
diz uma novidade ai....


Re: Respuesta: Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - DrKaFuZo - 08.11.2012

Quote:
Originally Posted by JuniorRiddle
Посмотреть сообщение
Mesmo com sua grosseria obrigado, eu tive que sair pra escola mas eu jб tinha conseguido fazer e esqueci de editar.
Valeu mesmo assim, sempre achei vocк um dos caras mais humildes e um dos que eu mais admirava nesse fуrum e pelo seu trabalho no AD-RP, mas agora realmente fiquei meio decepcionado com essa demosntraзгo de arrogancia, de qualquer forma, REP+, abraзo.
me passa ai como voce fez?


Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - PSYRocK - 08.11.2012

Malz coloquei o meu codigo mais ele й exclusivo, nгo vo bobear de deixar os meus comandos exclusivos e funcionando para vocкs que nem se quer da REP+!


Re: Remover VIP automбtico (Nгo й pedido de cуdigo) - Q.I - 08.11.2012

Quote:
Originally Posted by PSYRocK
Посмотреть сообщение
Malz coloquei o meu codigo mais ele й exclusivo, nгo vo bobear de deixar os meus comandos exclusivos e funcionando para vocкs que nem se quer da REP+!
se entrego heim a conta fake kK!