SA-MP Forums Archive
Duda GPS Y_ini - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Duda GPS Y_ini (/showthread.php?tid=234873)



Duda GPS Y_ini - luis_lpv_22 - 04.03.2011

Buenas, estaba haciendo un sistema de GPS con Y_ini y me surgiу una duda al tener que cargar los destinos desde un archivo de texto.

Los destinos se guardarнan de la siguiente manera:
Код:
Enabled = false

[nombre elegido por el jugador]
X: 0
Y: 0
Z: 0

[Hospital San Fierro]
X: 1560.34
Y: -38.034
Z: 23.012
Entonces mi duda es: їCуmo puedo cargar los destinos desde el archivo, y que aparezcan los nombres de las pestaсas en un dialog? Es decir, al poner "/destinos" te saldrнa un dialog con el nombre de cada pestaсa que tienes en el archivo (y si no tienes pondrнa que no tienes) y al seleccionar uno se crearнa el checkpoint en la posiciуn correspondiente a la pestaсa elegida.

Espero que me hayais entendido.

Un Saludo. Gracias


Respuesta: Duda GPS Y_ini - leaNN! - 04.03.2011

Nunca he usado Y_Ini, no conozco su funcionamiento.
Si fuese Dini, podria ayudarte...

Igual supongo que usan la misma forma de leer archivos. Lo harй con Dini, luego tu lo pasas para Y_Ini.
pawn Код:
Enabled = false

PL: [nombre elegido por el jugador]
PLX: 0
PLY: 0
PLZ: 0

L1: [Hospital San Fierro]
L1X: 1560.34
L1Y: -38.034
L1Z: 23.012
Entonces, usas:

pawn Код:
CMD:gps(playerid, params)
{
new pname[MAX_PLAYER_NAME], archivo[256], str[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(archivo, sizeof(archivo), "GPS/%s", pname);
if(!dini_Exists(archivo))
{
ShowPlayerDialog(playerid, 177, DIALOG_STYLE_MSGBOX, "GPS", "No tienes ningun lugar guardado en tu GPS!", "Aceptar", "");
}

else
{
format(str, sizeof(str), "%s\n%s\n%s\%s\%s", dini_Int(archivo, "L1"), dini_Int(archivo, "L2"), dini_Int(archivo, "L3"), dini_Int(archivo, "L4"), dini_Int(archivo, "L5"));
ShowPlayerDialog(playerid, 178, DIALOG_STYLE_LIST, "GPS", str, "Aceptar", "Cancelar");
}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

new pname[MAX_PLAYER_NAME], archivo[256], str[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(archivo, sizeof(archivo), "GPS/%s", pname);

if(dialogid == 178 && response)
{
switch(listitem)
{

if(listitem == 0)
{
SetPlayerRaceCheckpoint(playerid, 1, dini_Int(archivo, "L1X"), dini_Int(archivo, "L1Y"), dini_Int(archivo, "L1Z"), 0.0, 0.0, 0.0, 10);
}

else if(listitem == 1)
{
SetPlayerRaceCheckpoint(playerid, 1, dini_Int(archivo, "L2X"), dini_Int(archivo, "L2Y"), dini_Int(archivo, "L2Z"), 0.0, 0.0, 0.0, 10);
}

else if(listitem == 2)
{
SetPlayerRaceCheckpoint(playerid, 1, dini_Int(archivo, "L3X"), dini_Int(archivo, "L3Y"), dini_Int(archivo, "L3Z"), 0.0, 0.0, 0.0, 10);
}

else if(listitem == 3)
{
SetPlayerRaceCheckpoint(playerid, 1, dini_Int(archivo, "L4X"), dini_Int(archivo, "L4Y"), dini_Int(archivo, "L4Z"), 0.0, 0.0, 0.0, 10);
}

else if(listitem == 4)
{
SetPlayerRaceCheckpoint(playerid, 1, dini_Int(archivo, "L5X"), dini_Int(archivo, "L5Y"), dini_Int(archivo, "L5Z"), 0.0, 0.0, 0.0, 10);
}

}
}
return 1;
}
Y L1, L2, L3, L4, y L5, serian los lugares guardados por el jugador, que se harian con algun comando tuyo xD.
Creo que asн deberнa funcionar, no lo testiй, lo hice aqui en el foro lol.


Respuesta: Duda GPS Y_ini - luis_lpv_22 - 04.03.2011

Mmmm pues veo que no me entendiste bien jeje. A ver, me explico mejor:

Al comprar el GPS se crea el archivo GPS.ini en la carpeta correspondiente a cada jugador
Asн quedarнa el archivo .ini despuйs de haber guardado posiciones como favoritas:

Код:
Enabled = false            // Quiere decir que cuando el jugador se desconectу el gps estaba desactivado
CurrentDestination: X,Y,Z  // Si estaba activado, al conectarse le darб el mismo destino que tenнa.

[Hospital SF]   // Posiciуn guardada por el jugador
X: 0.0
Y: 0.0
Z: 0.0

[Comisarнa SF]  // Posiciуn guardada por el jugador
X: 1.0
Y: 1.0
Z: 1.0
Pues bien, lo que yo quiero hacer es lo siguiente:

Cuando el jugador pone "/destinos" le aparece un dialog con una lista de todos los destinos que йl tiene guardado en el archivo GPS.ini

Ejemplo de como quedarнa el dialog:

Код:
|-GPS----------------------- |                             
|___________________________ |
| Hospital SF                |
|___________________________ |
| Comisarнa SF               |
|___________________________ |
|                            |
|   Select          Close    |
|___________________________ |
Bien, pues al seleccionar uno de los dos destinos se crearб el checkpoint en las coordenadas guardadas en el archivo y en la pestaсa correspondiente al destino seleccionado.

Es decir, si elige "Hospital SF" se crearб un checkpoint en 0.0, 0.0, 0.0
Y si elige "Comisarнa SF" se crearб un checkpoint en 1.0, 1.0, 1.0

Espero que me hayas entendido ahora, si no, te paso un trozo del cуdigo. Gracias de todos modos, un saludo


Re: Duda GPS Y_ini - Miguel - 05.03.2011

Yo he leнdo el tema que hizo ****** hacerca de la librerнa, pero no sabrнa como hacer lo que quieres sin primero haberlo intentado. Sin embargo, hay una parte de la explicaciуn que dice que puedes cargar un archivo completo, mientras que en el callback para cargar el archivo pones "tag[]", me imagino que es para saber con que tag estбs trabajando.

http://forum.sa-mp.com/showthread.ph...Tag#post832863

La parte que explica eso deberнa estar marcado en rojo. Dejame ver si entre las preguntas encuentro algo...


Respuesta: Duda GPS Y_ini - luis_lpv_22 - 06.03.2011

De acuerdo, esperarй tu respuesta.

Gracias Miguel.


Re: Duda GPS Y_ini - Miguel - 07.03.2011

No Luis, creo que serнa mejor que preguntaras en ese tema, yo no puedo responderte porque no he usado ni probado Y_INI (no lo necesito), por lo que la respuesta te la puede dar alguien que si lo halla hecho, y probablemente el lugar indicado es ese.