Ayuda con sistemas de vip!
#1

Hola, estoy viendo el sistema del vip de mi GM y veo que al cerrar el samp-server.exe y volverlo a abrir se le va el vip a los usuarios que le doy. El script es asi.
pawn Код:
CMD:setvip(playerid, params[]){
    if (Info[playerid][pAdminZC] >= 1338 || Info[playerid][pShopTech] == 1){
        new string[128], giveplayerid, level;
        if(sscanf(params, "dd", giveplayerid, level)){
            SendClientMessageEx(playerid, COLOR_WHITE, "{FFD700}USO:{FFFFFF} /setvip [playerid] [level]");
            SendClientMessageEx(playerid, COLOR_GRAD3, "Available Levels: |0| None |1| Bronze |2| Silver |3| Gold |4| Platinum |5| Moderator");
            return 1;
        }
        if(IsPlayerConnected(giveplayerid)){
            if(giveplayerid != INVALID_PLAYER_ID){
                if(level < 0 || level > 5) return SendClientMessageEx(playerid, COLOR_GRAD1, "VIP Level: 0 a 5!");
                Info[giveplayerid][pVIP] = level;
                Info[giveplayerid][pTempVIP] = 0;
                Info[giveplayerid][pBuddyInvited] = 0;
                new year, month,day;
                getdate(year, month, day);
                new playerip[32];
                GetPlayerIp(giveplayerid, playerip, sizeof(playerip));
                if(month == 12)
                {
                    Info[giveplayerid][pVIPDateM] = 1;
                }
                else
                {
                    new total;
                    total = month + 1;
                    Info[giveplayerid][pVIPDateM] = total;
                }
                Info[giveplayerid][pVIPDateD] = day;
// Luego sigue pero lo importante esta aqui creo
Y tambien lo checkea cada tanto, aqui esta:
pawn Код:
CheckVIPExpire(playerid){
    print("DEBUG CheckVIPExpire");
    new year, month,day;
    getdate(year, month, day);
    if(Info[playerid][pVIP] == 0){
       Info[playerid][pVIPDateD] = -1;
       Info[playerid][pVIPDateM] = -1;
       return 1;
    }
    if(Info[playerid][pVIPDateD] >= 1 && Info[playerid][pVIPDateM] >= 1){
        if(Info[playerid][pVIP] >= 1 && Info[playerid][pBuddyInvited] == 0){
       
            if(day >= Info[playerid][pVIPDateD] && Info[playerid][pVIPDateM] == 12 && month != 12){
                //print("DEBUG: DICIEMBRE EXPLOIT [CheckVIPExpire]");
                Info[playerid][pVIPDateD] = -1;
                Info[playerid][pVIPDateM] = -1;
                Info[playerid][pVIP] = 0;
                return SendClientMessageEx(playerid, COLOR_VIP, "{FFD700}SERVIDOR:{FFFFFF}Tu VIP ha expirado, puedes hacer tu orden de renovaciуn ahora mismo.");
            }
            if(day >= Info[playerid][pVIPDateD] && month >= Info[playerid][pVIPDateM]){
                //print("DEBUG: NORMAL [CheckVIPExpire]");
                Info[playerid][pVIPDateD] = -1;
                Info[playerid][pVIPDateM] = -1;
                Info[playerid][pVIP] = 0;
                return SendClientMessageEx(playerid, COLOR_VIP, "{FFD700}SERVIDOR:{FFFFFF}Tu VIP ha expirado, puedes hacer tu orden de renovaciуn ahora mismo.");
            }
            if(Info[playerid][pVIPDateD] >= 30 && month > Info[playerid][pVIPDateM]){
                //print("DEBUG: Si es 30 y pasу el mes [CheckVIPExpire]");
                Info[playerid][pVIPDateD] = -1;
                Info[playerid][pVIPDateM] = -1;
                Info[playerid][pVIP] = 0;
                return SendClientMessageEx(playerid, COLOR_VIP, "{FFD700}SERVIDOR:{FFFFFF}Tu VIP ha expirado, puedes hacer tu orden de renovaciуn ahora mismo.");
            }
        }
    }
    return 1;
}
Esto se debe a que cierro el samp-server.exe o a que esta mal el script con los months y los days? Gracias desde ya
Reply
#2

Yo tambiйn tenia el mismo problema, pero cuando abrнa el samp-server.exe desde mi pc , me ponнa vip y despuйs cuando cerraba el samp-server.exe y lo abrнa de nuevo y entraba me aparecнa que mi vip expiro algo asн, pero solo me pasa cuando lo abro desde mi pc al server.
Reply
#3

Tu dices que con host eso no pasa?
Reply
#4

Yo supondrнa que no es que se le valla el VIP si no que no se le guarda...
Reply
#5

Parka si se le guarda porque cuando logueo despues de haber cerrado el samp-server me dice VIP: Ha expirado tu vip. Eso quiere decir que se guardo pero se vencio en menos de un mes o sera culpa de que yo cerre el samp-server?
Reply
#6

Quote:
Originally Posted by ValenRatti
Посмотреть сообщение
Parka si se le guarda porque cuando logueo despues de haber cerrado el samp-server me dice VIP: Ha expirado tu vip. Eso quiere decir que se guardo pero se vencio en menos de un mes o sera culpa de que yo cerre el samp-server?
Si a mi tambiйn me pasaba aveces jajaja intenta poniendo /guardarcuenta
Reply
#7

Elimina la callback de 'CheckVIPExpire(playerid)' y llevas tu mismo el control en algъn bloc de notas.
Reply
#8

Si, creo que hare eso, ya que si anoto todo es lo mismo...
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)