Problema con Dini.
#1

Miren estoy creando mi sistema VIP, tengo un pequeсo problema, cuando un jugador se desconecta y luego se conecta no tiene el nivel VIP


pawn Код:
#define PlayerFile              "VIP/%s.ini"
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new file[100];
    format(file,sizeof(file),PlayerFile,Pinfo[playerid][pName]);
    dini_Set(file,"Name",Pinfo[playerid][pName]);
    dini_Set(file,"Ip",Pinfo[playerid][Pip]);
    dini_IntSet(file,"Nivel_Vip",Pinfo[playerid][Nivel_Vip]);
    Pinfo[playerid][Nivel_Vip]  = 0;
    return 1;
}

Que mierda pasa ? No me tira ningun error ni nada, pero no se guarda

Voy al archivo .ini y el nivel siempre esta en 0


Comando /setvip =

pawn Код:
dcmd_setvip(playerid, params[])
{
 
    new file[100];
    format(file,sizeof(file),PlayerFile,Pinfo[playerid][pName]);
    new string[128],string2[128];
    new giveplayerid, level;
    new playername[MAX_PLAYER_NAME],idname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
    GetPlayerName(playerid,idname,MAX_PLAYER_NAME);
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "ERROR: Nesesitas mas nivel de administrador para esto!");
    if(sscanf(params, "ud", giveplayerid, level))return SendClientMessage(playerid, COLOR_RED, "Uso Correcto: /setvip [ID / Nombre] [Nivel]");
    else if (giveplayerid == INVALID_PLAYER_ID)return SendClientMessage(playerid, COLOR_RED, "ID Invalido");
    else if (level > 5)return SendClientMessage(playerid, COLOR_RED, "Nivel VIP Maximo 5!");
    else
    {
        Pinfo[giveplayerid][Nivel_Vip] = level;
        format(string,sizeof(string),"Admin %s Te ha dado el nivel V.I.P %d",playername,level);
        SendClientMessage(giveplayerid,COLOR_YELLOW,string);
        format(string2,sizeof(string2),"El nivel VIP de %s ahora es %d",idname,level);
        SendClientMessageToAll(COLOR_YELLOW,string2);
        dini_IntSet(file,"Nivel_Vip",Pinfo[playerid][Nivel_Vip]);
    }
    return 1;
}
Otra cosa, cuando ya le di un nivel vip, los comandos les funcionan perfectamente, asi que el server toma el nivel vip del jugador.
Reply
#2

esta la carpeta VIP en scriptfiles?
Reply
#3

Removй el
pawn Код:
Pinfo[playerid][Nivel_Vip]  = 0;
de OnPlayerDisconnect

Ahн lo que haces el setear el Nivel a 0.

Todo sea por el contador de mensajes.
Reply
#4

pawn Код:
//Epic fail con los nicks de los jugadores.
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
GetPlayerName(playerid,idname,MAX_PLAYER_NAME);
pawn Код:
dini_IntSet(file,"Nivel_Vip",Pinfo[playerid][Nivel_Vip]);//No deberia ser "giveplayerid"???
3є Si usas la version 0.3d, tenes el plugin de sscanf actualizado?
Reply
#5

Quote:
Originally Posted by GaBO!
Посмотреть сообщение
esta la carpeta VIP en scriptfiles?
Si Claro


Quote:
Originally Posted by El Bardo
Посмотреть сообщение
Removй el
pawn Код:
Pinfo[playerid][Nivel_Vip]  = 0;
de OnPlayerDisconnect

Ahн lo que haces el setear el Nivel a 0.

Todo sea por el contador de mensajes.
No, probe y no funciona.


Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
pawn Код:
//Epic fail con los nicks de los jugadores.
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
GetPlayerName(playerid,idname,MAX_PLAYER_NAME);
pawn Код:
dini_IntSet(file,"Nivel_Vip",Pinfo[playerid][Nivel_Vip]);//No deberia ser "giveplayerid"???
3є Si usas la version 0.3d, tenes el plugin de sscanf actualizado?
Por que fail con los names? Esta mal un cуdigo?
No uso sscanf.
Reply
#6

1є Si usas sscanf o dime que es este codigo del comando:
pawn Код:
if(sscanf(params, "ud", giveplayerid, level))return SendClientMessage(playerid, COLOR_RED, "Uso Correcto: /setvip [ID / Nombre] [Nivel]");
2є El fail es xq guardas el mismo nombre en 2 variables diferentes
Reply
#7

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
1є Si usas sscanf o dime que es este codigo del comando:
pawn Код:
if(sscanf(params, "ud", giveplayerid, level))return SendClientMessage(playerid, COLOR_RED, "Uso Correcto: /setvip [ID / Nombre] [Nivel]");
2є El fail es xq guardas el mismo nombre en 2 variables diferentes
Lo que pasa por copiar cmd's
Reply
#8

Cierto, estaba con sscanf, pero no puse el #include <sscanf2>. Lo tengo actualizado, pero al poner el sscanf y compilo el script se me cierra el pawno. Que pasa ?


Donde es el fail que decis _?
Reply
#9

Quote:
Originally Posted by Jovanny
Посмотреть сообщение
Lo que pasa por copiar cmd's
La verdad, no lo copie, es un Script VIP base que estaba en la seccion inglesa. No me copie de otro.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)