Saving Spawn Cord.
#1

When i go in server its create file with defualt coordinates. And then i write /setspawn comand to set spawn to palace where i need it. There changes coordinates in ini file too. But when i restart server and come back in. Its spawns @ 0,0,0 coordinates.
Код:
#include <YSI\y_ini>
#define SpawnPath "/Misc/Spawn.ini"

enum Misc
{
Float:SetSpawnX,
Float:SetSpawnY,
Float:SetSpawnZ,
Float:SetSpawnA
}
new MiscInfo[Misc];

public OnGameModeInit()
{
//Misc Load
if(fexist(SpawnPath))
{
INI_ParseFile(SpawnPath, "LoadSpawnFile", .bExtra = true);
printf("Spawn Cordinates loaded...");
}else{
new INI:MiscIni = INI_Open(SpawnPath);
INI_SetTag(MiscIni, "SpawnPosition");
INI_WriteFloat(MiscIni, "SetSpawnX", -316.1390);
INI_WriteFloat(MiscIni, "SetSpawnY", 1055.4912);
INI_WriteFloat(MiscIni, "SetSpawnZ", 19.7422);
INI_WriteFloat(MiscIni, "SetSpawnA", 2.3608);
INI_Close(MiscIni);
printf("Spawn Cordinates Created...");
}
return 1;
}

forward LoadSpawnFile(playerid, tag[], name[], value[]);
public LoadSpawnFile(playerid, tag[], name[], value[])
{
INI_Float("SetSpawnX", MiscInfo[SetSpawnX]);
INI_Float("SetSpawnY", MiscInfo[SetSpawnY]);
INI_Float("SetSpawnZ", MiscInfo[SetSpawnZ]);
INI_Float("SetSpawnA", MiscInfo[SetSpawnA]);
return 1;
}

stock SaveMisc()
{
new INI:MiscIni = INI_Open(SpawnPath);
INI_SetTag(MiscIni, "SpawnPosition");
INI_WriteFloat(MiscIni, "SetSpawnX", MiscInfo[SetSpawnX]);
INI_WriteFloat(MiscIni, "SetSpawnY", MiscInfo[SetSpawnY]);
INI_WriteFloat(MiscIni, "SetSpawnZ", MiscInfo[SetSpawnZ]);
INI_WriteFloat(MiscIni, "SetSpawnA", MiscInfo[SetSpawnA]);
INI_Close(MiscIni);
return 1;
}

public OnPlayerSpawn(playerid)
{
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin],  MiscInfo[SetSpawnX],  MiscInfo[SetSpawnY],  MiscInfo[SetSpawnZ],  MiscInfo[SetSpawnA], 0, 0, 0, 0, 0, 0 );
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{

if (strcmp("/setspawn", cmdtext, true, 10) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 5)
{
SendClientMessage(playerid, GREY, "* not authorized  ");
return 1;
}
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, GREY, "* You can't do that in vehicle!");
return 1;
}
new Float:pX, Float:pY, Float:pZ, Float:pA;
GetPlayerPos(playerid, pX, pY, pZ);
GetPlayerFacingAngle(playerid, pA);

MiscInfo[SetSpawnX] = pX;
MiscInfo[SetSpawnY] = pY;
MiscInfo[SetSpawnZ] = pZ;
MiscInfo[SetSpawnA] = pA;

new INI:MiscIni = INI_Open(SpawnPath);
INI_SetTag(MiscIni, "SpawnPosition");
INI_WriteFloat(MiscIni, "SetSpawnX", MiscInfo[SetSpawnX]);
INI_WriteFloat(MiscIni, "SetSpawnY", MiscInfo[SetSpawnY]);
INI_WriteFloat(MiscIni, "SetSpawnZ", MiscInfo[SetSpawnZ]);
INI_WriteFloat(MiscIni, "SetSpawnA", MiscInfo[SetSpawnA]);
INI_Close(MiscIni);

SendClientMessage(playerid, WHITE, "* Spawn changed.");

SetPlayerMapIcon( playerid, 1, MiscInfo[SetSpawnX], MiscInfo[SetSpawnY], MiscInfo[SetSpawnZ], 48, 0, MAPICON_LOCAL );
return 1;
}

return 0;
}
In .ini file coordinates change everytime when i write /setspawn
Код:
[SpawnPosition]
SetSpawnX = -360.577514
SetSpawnY = 1169.943359
SetSpawnZ = 19.742187
SetSpawnA = 3.658856
Reply
#2

Whats actually ur problem?
Reply
#3

When i go in server its spawns me at 0,0,0 cordinates. But in .ini file is right cordinates where i need to spawn. I dont know why, but its after every server restart.
Reply
#4

Someone please?
Reply
#5

You are saving spawn cordinates to a MiscInfo array but OnPlayerSpawn you are using PlayerInfo[playerid][pPos1]
Reply
#6

Ok. That was my bad.
But anyway its spawns me at 0,0,0

Код:
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin],  MiscInfo[SetSpawnX],  MiscInfo[SetSpawnY],  MiscInfo[SetSpawnZ],  MiscInfo[SetSpawnA], 0, 0, 0, 0, 0, 0 );
Reply
#7

Anyone?
Reply
#8

Solved
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)