06.03.2015, 05:52
Hola comunidad de SAMP.
En este momento quiero hacer unas preguntas de como usar bien el Y_INI, por que ъltimamente estoy tratando de trabajarlo pero no entiendo o me confundo al usarlo, entonces es: "Creй un archivo ini, para guardar las posiciones de los lugares pero a la hora de usarlos no me da el valor por que lo asume en cero y eso es por que no me estб cargando el archivo en las variables, intentй hacerlo de una forma y me dio, pero quise hacer un comando para cambiar los puntos de spawn reemplazando lo que hay en el archivo ini, pero no me reemplaza en las variable por que lo estoy creando mal, por eso necesito que me digan como se usa por que he leнdo, leнdo y parece que fuese retrasado , bueno sin mas que decir aquн va el cуdigo:"
En este momento quiero hacer unas preguntas de como usar bien el Y_INI, por que ъltimamente estoy tratando de trabajarlo pero no entiendo o me confundo al usarlo, entonces es: "Creй un archivo ini, para guardar las posiciones de los lugares pero a la hora de usarlos no me da el valor por que lo asume en cero y eso es por que no me estб cargando el archivo en las variables, intentй hacerlo de una forma y me dio, pero quise hacer un comando para cambiar los puntos de spawn reemplazando lo que hay en el archivo ini, pero no me reemplaza en las variable por que lo estoy creando mal, por eso necesito que me digan como se usa por que he leнdo, leнdo y parece que fuese retrasado , bueno sin mas que decir aquн va el cуdigo:"
PHP код:
forward Lugares_Spawn(name[], value[]);
public Lugares_Spawn(name[], value[])
{
INI_Float("SpawnLSposX", SpawnLS[0]);
INI_Float("SpawnLSposY", SpawnLS[1]);
INI_Float("SpawnLSposZ", SpawnLS[2]);
INI_Float("SpawnSFposX", SpawnSF[0]);
INI_Float("SpawnSFposY", SpawnSF[1]);
INI_Float("SpawnSFposZ", SpawnSF[2]);
INI_Float("SpawnLVposX", SpawnLV[0]);
INI_Float("SpawnLVposY", SpawnLV[1]);
INI_Float("SpawnLVposZ", SpawnLV[2]);
INI_Float("HospitalLSposX", HospitalLS[0]);
INI_Float("HospitalLSposY", HospitalLS[1]);
INI_Float("HospitalLSposZ", HospitalLS[2]);
INI_Float("HospitalLS1posX", HospitalLS1[0]);
INI_Float("HospitalLS1posY", HospitalLS1[1]);
INI_Float("HospitalLS1posZ", HospitalLS1[2]);
INI_Float("HospitalSFposX", HospitalSF[0]);
INI_Float("HospitalSFposY", HospitalSF[1]);
INI_Float("HospitalSFposZ", HospitalSF[2]);
INI_Float("HospitalLVposX", HospitalLV[0]);
INI_Float("HospitalLVposY", HospitalLV[1]);
INI_Float("HospitalLVposZ", HospitalLV[2]);
INI_Float("PrisionLSposX", PrisionLS[0]);
INI_Float("PrisionLSposY", PrisionLS[1]);
INI_Float("PrisionLSposZ", PrisionLS[2]);
INI_Float("PrisionSFposX", PrisionSF[0]);
INI_Float("PrisionSFposY", PrisionSF[1]);
INI_Float("PrisionSFposZ", PrisionSF[2]);
INI_Float("PrisionLVposX", PrisionLV[0]);
INI_Float("PrisionLVposY", PrisionLV[1]);
INI_Float("PrisionLVposZ", PrisionLV[2]);
return 1;
}
stock CargarSpawns()//Esto lo llamo en el gmodeinit
{
if(!fexist("Spawns.ini"))
{
new File:Archivo = fopen("Spawns.ini", io_write);
fclose(Archivo);
}
new INI:Dato = INI_Open("Spawns.ini");
INI_SetTag(Dato, "Spawneos");
INI_WriteFloat(Dato, "SpawnLSposX", SpawnLS[0] = 1687.448120); //Asi es como lo pongo en la variable, Pero si quiero cambiar la posicion con un comando, cuando reemplaze y vuelva a iniciar el gm, me va a seguir usando estas posiciones.
INI_WriteFloat(Dato, "SpawnLSposY", SpawnLS[0] =-1343.622558);
INI_WriteFloat(Dato, "SpawnLSposZ", SpawnLS[0] = 17.426399);
INI_WriteFloat(Dato, "SpawnSFposX", -1497.2019);
INI_WriteFloat(Dato, "SpawnSFposY", 920.7836);
INI_WriteFloat(Dato, "SpawnSFposZ", 7.1875);
INI_WriteFloat(Dato, "SpawnLVposX", 2482.0923);
INI_WriteFloat(Dato, "SpawnLVposY", 1382.3254);
INI_WriteFloat(Dato, "SpawnLVposZ", 10.8125);
INI_SetTag(Dato, "Hospitales");
INI_WriteFloat(Dato, "HospitalLSposX", 2033.441040);
INI_WriteFloat(Dato, "HospitalLSposY", -1408.815673);
INI_WriteFloat(Dato, "HospitalLSposZ", 17.164100);
INI_WriteFloat(Dato, "HospitalLS1posX", 2033.441040);
INI_WriteFloat(Dato, "HospitalLS1posY", -1408.815673);
INI_WriteFloat(Dato, "HospitalLS1posZ", 17.164100);
INI_WriteFloat(Dato, "HospitalSFposX", 2033.441040);
INI_WriteFloat(Dato, "HospitalSFposY", -1408.815673);
INI_WriteFloat(Dato, "HospitalSFposZ", 17.164100);
INI_WriteFloat(Dato, "HospitalLVposX", 2033.441040);
INI_WriteFloat(Dato, "HospitalLVposY", -1408.815673);
INI_WriteFloat(Dato, "HospitalLVposZ", 17.164100);
INI_SetTag(Dato, "Prisiones");
INI_WriteFloat(Dato, "PrisionLSposX", 1553.427734);
INI_WriteFloat(Dato, "PrisionLSposY", -1675.610229);
INI_WriteFloat(Dato, "PrisionLSposZ", 16.195299);
INI_WriteFloat(Dato, "PrisionSFposX", 1553.427734);
INI_WriteFloat(Dato, "PrisionSFposY", -1675.610229);
INI_WriteFloat(Dato, "PrisionSFposZ", 16.195299);
INI_WriteFloat(Dato, "PrisionLVposX", 1553.427734);
INI_WriteFloat(Dato, "PrisionLVposY", -1675.610229);
INI_WriteFloat(Dato, "PrisionLVposZ", 16.195299);
INI_Close(Dato);
}
//Aqui es donde lo necesito:
public rCargarTiempo(playerid)
{
INI_ParseFile("Spawns.ini", "Lugares_%s");
TogglePlayerSpectating(playerid, false);
if(Jugador[playerid][iNatalidad] == 0)
{
SetSpawnInfo(playerid, 0, Jugador[playerid][iSkin], SpawnLS[0], SpawnLS[1], SpawnLS[2], -90, 0, 0, 0, 0, 0, 0);
}
else if(Jugador[playerid][iNatalidad] == 1)
{
SetSpawnInfo(playerid, 0, Jugador[playerid][iSkin], SpawnSF[0], SpawnSF[1], SpawnSF[2], -90, 0, 0, 0, 0, 0, 0);
}
else
{
SetSpawnInfo(playerid, 0, Jugador[playerid][iSkin], SpawnLV[0], SpawnLV[1], SpawnLV[2], -90, 0, 0, 0, 0, 0, 0);
}
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SpawnPlayer(playerid);
GetPlayerPos(playerid, Jugador[playerid][iposX], Jugador[playerid][iposY], Jugador[playerid][iposZ]);
new INI:Archivo = INI_Open(UsuarioPath(playerid));
INI_SetTag(Archivo, "Usuario");
INI_WriteFloat(Archivo, "posX", Jugador[playerid][iposX]);
INI_WriteFloat(Archivo, "posY", Jugador[playerid][iposY]);
INI_WriteFloat(Archivo, "posZ", Jugador[playerid][iposZ]);
INI_WriteInt(Archivo, "Interior", Jugador[playerid][iInterior] = GetPlayerInterior(playerid));
INI_WriteInt(Archivo, "VirtualWorld", Jugador[playerid][iVirtualWorld] = GetPlayerVirtualWorld(playerid));
INI_Close(Archivo);
TogglePlayerControllable(playerid, true);
SetCameraBehindPlayer(playerid);
}