02.12.2013, 02:45
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.
Y tambien lo checkea cada tanto, aqui esta:
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
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
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;
}