04.02.2015, 15:27
(
Последний раз редактировалось Nezinuu; 05.02.2015 в 15:25.
)
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.
In .ini file coordinates change everytime when i write /setspawn
Код:
#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;
}
Код:
[SpawnPosition] SetSpawnX = -360.577514 SetSpawnY = 1169.943359 SetSpawnZ = 19.742187 SetSpawnA = 3.658856

