Escribiendo en Archivos INI sin el jugador conectado
#1

INI - Y_INI
Hola amigos, venia con una consulta rara, y espero que me puedan ayudar, esta vez de verdad.

Necesito escribir informacion en mis archivos INI, aun si el o los jugadores, no estan conectados. Lo quiero para resetar algunas variables .

He intentado hacer un Loop contando los archivos, pero no me resulta, si alguien pudiera ayudarme de verdad se lo agradeceria.

Gracias.
Reply
#2

їLos archivos que tipo de nombre tienen, nombres de jugadores o estбn ordenados por nъmeros?
Reply
#3

Quote:
Originally Posted by [DOG]irinel1996
Посмотреть сообщение
їLos archivos que tipo de nombre tienen, nombres de jugadores o estбn ordenados por nъmeros?
Son nombres de jugadores, EJ: Esteban_Robles.ini, Stella.ini
Reply
#4

Facil no necesitas que el usr este conectado con saber el nombre del usuario puedes abrir el archivo y ingresar los datos.
Reply
#5

Quote:
Originally Posted by OneBlaack
Посмотреть сообщение
Facil no necesitas que el usr este conectado con saber el nombre del usuario puedes abrir el archivo y ingresar los datos.
Pues, ya sй que puedo ingresar el dato. Pero si quiero que otros jugadores puedan cambiar los valores de otros jugadores que NO esten conectados como lo harian? No pueden ya que no son Admin's como yo.

Gracias en todo caso.
Reply
#6

Bueno usa el sscanf eso te ayudara y que coloquen el nombre del usuario o archivo ya despues de eso debes saber que hacer.


Код:
    zcmd(editar, playerid, params[])
    {
           new archivo;
           if (sscanf(params, "s[MAX_PLAYER_NAME]", archivo))
	{
               if (dini_Exists(archivo))
               {
                   
                }
        }
return 1;
   }
esto es un simple ejemplo.
Reply
#7

Quote:
Originally Posted by OneBlaack
Посмотреть сообщение
Bueno usa el sscanf eso te ayudara y que coloquen el nombre del usuario o archivo ya despues de eso debes saber que hacer.


Код:
    zcmd(editar, playerid, params[])
    {
           new archivo;
           if (sscanf(params, "s[MAX_PLAYER_NAME]", archivo))
	{
               if (dini_Exists(archivo))
               {
                   
                }
        }
return 1;
   }
esto es un simple ejemplo.
Eso no funcionarнa, en primer lugar estб mal la variable.
Un ejemplo sуlido serнa este, con zcmd y sscanf.
pawn Код:
COMMAND:test(playerid, params[]) {
    new
        cadena[30],
        nombre[MAX_PLAYER_NAME]
    ;
    if (sscanf(params, "s[24]", nombre)) return SendClientMessage(playerid, -1, "Use /test [Nombre_Apellido]");
    format(cadena, 30,
        "%s.ini", //Aquн agregue la extensiуn de los archivos. En este caso yo puse .ini
        nombre
    );
    if(fexist(cadena)) {
        //Abre el archivo aquн y modificalo, el nombre estб guardado en la matriz 'cadena'.
    } else {
        //El archivo no existe.
    }
    return 1;
}
Reply
#8

Probarй que tal eso, y aviso.
Reply
#9

Revivo para comentarles que lo probй asi:
pawn Код:
COMMAND:test(playerid, params[]) {
    new
        cadena[30],
        nombre[MAX_PLAYER_NAME]
    ;
    if (sscanf(params, "s[24]", nombre)) return SendClientMessage(playerid, -1, "Use /test [Nombre_Apellido]");
    format(cadena, 30,
        "/Usuarios/%s.ini",
         nombre
    );
    if(fexist(cadena)) {
        new INI:File = INI_Open(cadena);
        INI_WriteInt(File, "Lider", 0);
    } else {
       
    }
    return 1;
    }
Pero no obtuve resultados, alguien sabe la razon? Creo que tengo algo mal hecho en el cуdigo

PD: Agregue textos para comprobar, y definitivamente detecta si la "Cadena" existe o no, pero creo que el error esta aqui:

new INI:File = INI_Open(cadena);
INI_WriteInt(File, "Lider", 0);
Reply
#10

pawn Код:
COMMAND:test(playerid, params[]) {
    new
        cadena[30],
        nombre[MAX_PLAYER_NAME]
    ;
    if (sscanf(params, "s[24]", nombre)) return SendClientMessage(playerid, -1, "Use /test [Nombre_Apellido]");
    format(cadena, 30,
        "/Usuarios/%s.ini",
         nombre
    );
    if(fexist(cadena)) {
        print("1 - Existe");
        new
            INI:gArchivo
        ;
        gArchivo = INI_Open(cadena);
        print("2 - Abierto");
        INI_WriteInt(gArchivo, "Lider", 0);
        print("3 - Escrito");
        INI_Close(gArchivo);
        print("4 - Cerrado");
    } else {
        print("1 - No existe");
    }
    return 1;
}
Prueba ese cуdigo y mira a ver los print en la consola.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)