[AJUDA]Sistema de VIP
#1

#EDIT
Galera to com 1 problemminha aqui, fui refazer meus comandos de setar, e fui aperfeiзoar ele, coloquei assim:

pawn Код:
if(strcmp(cmd,"/setvip",true) == 0)
{
    new dias[3];
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid,COLOR_GREEN,"USE: /setvip [id]");
        return 1;
    }
    giveplayerid = strval(tmp);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid,COLOR_GREEN,"USE: /setvip [id]");
        return 1;
    }
    if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][Admin] >= 5)
    {
        if(IsPlayerConnected(giveplayerid))
        {
            getdate(dias[0], dias[1], dias[2]);
            format(file, sizeof(file),"Contas/%s.ini", giveplayer);
            if(INI_Open(file))
            {
                dias[1]++;
                PlayerInfo[giveplayerid][VIP] = 1;
                INI_WriteInt("VIPLevel", PlayerInfo[giveplayerid][VIP]);
                INI_WriteInt("Dia",dias[0]);
                INI_WriteInt("Mes",dias[1]);
                INI_WriteInt("Ano",dias[2]);
                INI_Save();
                INI_Close();
            }
        }
        else
        {
            format(string, sizeof(string), "%d nгo й um player ativo!", giveplayerid);
            SendClientMessage(playerid, COLOR_CYAN, string);
            return 1;
        }
    }
    else
    {
        SendClientMessage(playerid,COLOR_CYAN, "Vocк nгo tem permissгo para usar este comando!");
    }
    return 1;
}
pawn Код:
stock GetVip(playerid)
{
    new PlayerName[24];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    format(file, sizeof(file),"Contas/%s.ini",PlayerName);
    if(PlayerInfo[playerid][VIP] >= 1)
    {
        new ano[2], mes[2], dia[2], string[100];
        getdate(ano[0], mes[0], dia[0]);
        if(INI_Open(file))
        {
            dia[1] = INI_ReadInt("Dia");
            mes[1] = INI_ReadInt("Mes");
            ano[1] = INI_ReadInt("Ano");
            INI_Close();
        }
        //se dia[0] й igual a dia[1] e mes[0] й maior que mкs[1] ou o ano[0] for diferente do ano[1] faзa
        //o cуdigo irб ser lido assim /\ й mais fбcil o entedimento
        if(dia[0] == dia[1] || mes[0] >= mes[1])
        {
            if(INI_Open(file))
            {
                INI_WriteString("Mes","Acabou");
                INI_WriteString("Dia","Acabou");
                INI_WriteString("Ano","Acabou");
                PlayerInfo[playerid][VIP] = 0;
                INI_WriteInt("VIPLevel", PlayerInfo[playerid][VIP]);
                INI_Save();
                INI_Close();
            }
            format(string, sizeof(string),"** %s, Seu VIP acabou, Recarregue seu VIP.",PlayerName);
            SendClientMessage(playerid, COLOR_CYAN, string);
        }
    }
    return 1;
}
O Problema й quando seto ele de VIP, no mesmo segundo o vip dele й retirado, quando roda a stock GetVip o vip dele й retirado
Reply
#2

pawn Код:
if(strcmp(cmd,"/setvip",true) == 0)
{
    new VIPLevel;
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid,COLOR_GREEN,"USE: /setvip [id] [cargo]");
        return 1;
    }
    giveplayerid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid,COLOR_GREEN,"USE: /setvip [id] [cargo]");
        return 1;
    }
    VIPLevel = strval(tmp);
    if(VIPLevel < 0)
    {
        SendClientMessage(playerid, COLOR_CYAN, "Level minimo 0");
        return 1;
    }
    if(VIPLevel > 1)
    {
        SendClientMessage(playerid, COLOR_CYAN, "Level mбximo 1");
        return 1;
    }
    if(VIPLevel == PlayerInfo[giveplayerid][VIP])
    {
        SendClientMessage(playerid, COLOR_CYAN, "Voce ja tem este level");
        return 1;
    }
    format(file,sizeof(file),"Contas/%s.ini", giveplayer);
    if(INI_Open(file))
    {
        INI_WriteInt("VIPLevel", VIPLevel);
        PlayerInfo[giveplayerid][VIP] = INI_ReadInt("VIPLevel");
        INI_Save();
        INI_Close();
    }
    if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][Admin] >= 5)
    {
        if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1,"nao econectado");
        {
            if(PlayerInfo[giveplayerid][VIP] == 1)
            {
                format(string, sizeof(string), "Adm.CMD: Vocк deu VIP para %s", giveplayer);
                SendClientMessage(playerid, COLOR_BLUE, string);
                format(string, sizeof(string), "** O Administrador %s deu VIP para vocк", sendername);
                SendClientMessage(giveplayerid, COLOR_RED, string);
                format(string, sizeof(string), "[RTX]INFO: Vocк й um VIP agora, digite /comandosvip e veja seus comandos!");
                SendClientMessage(giveplayerid, 0x00FFC3FF, string);
                GameTextForPlayer(giveplayerid, "~h~~b~PROMOVIDO ~y~VIP!", 2000, 1);
                printf("[Command] %s usou /setvip para dar vip para %s", sendername, giveplayer);
            }
            if(PlayerInfo[giveplayerid][VIP] == 0)
            {
                format(string, sizeof(string), "Adm.CMD: Vocк retirou o VIP de %s", giveplayer);
                SendClientMessage(playerid, COLOR_BLUE, string);
                format(string, sizeof(string), "** O Administrador %s retirou seu VIP", sendername);
                SendClientMessage(giveplayerid, COLOR_RED, string);
                format(string, sizeof(string), "[RTX]INFO: Vocк й um VIP agora, digite /comandosvip e veja seus comandos!");
                SendClientMessage(giveplayerid, 0x00FFC3FF, string);
                GameTextForPlayer(giveplayerid, "~h~~r~PERDEU ~y~VIP!!", 2000, 1);
                printf("[Command] %s usou /setvip para retirar o vip de %s", sendername, giveplayer);
            }
        }
        //else
       // {
        //    format(string, sizeof(string), "%d nгo й um player ativo!", giveplayerid);
        //    SendClientMessage(playerid, COLOR_CYAN, string);
       //     return 1;
      //  }
    }
    else
    {
        SendClientMessage(playerid,COLOR_CYAN, "Vocк nгo tem permissгo para usar este comando!");
    }
    return 1;
}
Reply
#3

tendi nada mais tenta o q a [O.z]Caroline fez pra ver se vai dar.

Quote:
Originally Posted by Nake01
Посмотреть сообщение
Galera to com 1 problemminha aqui, fui refazer meus comandos de setar, e fui aperfeiзoar ele, coloquei assim:
O Problema й, se eu setar um ID que nгo existe ex: "/setvip 45 1" aparece, que nгo existe sу que se eu setar "/setvip 45 1", ai aparece que o player jб tem esse level
Afinal o comando ta ou nao funcionado ?

tenho medo
Reply
#4

O da carol esta certo. Creio eu que funcione sim lucas..
Reply
#5

Arrumei ai galera, postei o code e erro errada
Reply
#6

#UP *-*
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)