17.07.2016, 00:18
Hey,
Looked all over using the search function, found a few suggested solutions, however can't seem to find any that work.
Basically what I'm looking for is a piece of script that respawns the player to the nearest Hospital upon death. So far I have the following code, however this doesn't work as I constantly respawn at my initial spawn point in the server.
Any help would be greatly appreciated!
Looked all over using the search function, found a few suggested solutions, however can't seem to find any that work.
Basically what I'm looking for is a piece of script that respawns the player to the nearest Hospital upon death. So far I have the following code, however this doesn't work as I constantly respawn at my initial spawn point in the server.
Any help would be greatly appreciated!
Код:
new Dead[MAX_PLAYERS];
Код:
stock SpawnToHospital(playerid)
{
Dead[playerid] = 0;
static const Float:hspawns[8][4] =
{
{2027.77, -1420.52, 15.99, 137.0},
{1180.85, -1325.57, 12.58, 271.4},
{1244.437, 331.2261, 18.5547, 7.5465},
{-2199.719, -2308.075, 29.6181, 322.8928},
{-2670.285, 616.4364, 13.4531, 183.1042},
{-316.3832, 1056.045, 18.7344, 1.6017},
{-1514.823, 2527.119, 54.7443, 2.3546},
{1578.446, 1770.682, 9.8358, 99.7567}
};
new Float:spawndist[8]; // Change to the number of hospital spawnpoints you use.
new Float:distance = 10000.0, closestspawn;
spawndist[0] = GetPlayerDistanceFromPoint(playerid,2027.77, -1420.52, 15.99); // 1st hospital spawn.
spawndist[1] = GetPlayerDistanceFromPoint(playerid,1180.85, -1325.57, 12.58); // 2nd hospital spawn.
spawndist[2] = GetPlayerDistanceFromPoint(playerid,1244.437, 331.2261, 18.5547); // 3rd hospital spawn.
spawndist[4] = GetPlayerDistanceFromPoint(playerid,-2199.719, -2308.075, 29.6181); // 5th hospital spawn.
spawndist[3] = GetPlayerDistanceFromPoint(playerid,-2670.285, 616.4364, 13.4531); // 4th hospital spawn.
spawndist[5] = GetPlayerDistanceFromPoint(playerid,-316.3832, 1056.045, 18.7344); // 6th hospital spawn.
spawndist[6] = GetPlayerDistanceFromPoint(playerid,-1514.823, 2527.119, 54.7443); // 7th hospital spawn.
spawndist[7] = GetPlayerDistanceFromPoint(playerid,1578.446, 1770.682, 9.8358); // 8th hospital spawn.
for(new i = 0; i < sizeof(spawndist); i++)
{
if(spawndist[i] < distance) distance = spawndist[i], closestspawn = i;
}
SetPlayerPos(playerid, hspawns[closestspawn][0], hspawns[closestspawn][1], hspawns[closestspawn][2]);
SetPlayerFacingAngle(playerid, hspawns[closestspawn][3]);
}
Код:
public OnPlayerConnect(playerid)
{
Dead[playerid]=0;
return 1;
}
Код:
public OnPlayerSpawn(playerid)
{
if(Dead[playerid] == 1)
{
SpawnToHospital(playerid);
}
SetPlayerInterior(playerid,0);
TogglePlayerClock(playerid,0);
if(PlayerInfo[playerid][pInJail] == 1)
{
new string[64];
SetPlayerPos(playerid, 1492.2151,-1768.2281,3285.2859);
format(string, sizeof(string), "* Your character is currently is jail for another %d seconds.", PlayerInfo[playerid][pInJailTime]);
SendClientMessage(playerid, COLOR_ADMIN, string);
}
}


