void SPlayer::PlayerPulse() { for (int i = 0; i < sizeof(playerData) / sizeof(*playerData); i++) { if (playerData[i].used == true) { if (playerData[i].pedHealth <= 0 && playerData[i].dead == false) { OnPlayerDeath(sLUA, playerData[i].playerid); playerData[i].dead = true; } if (playerData[i].pedHealth > 0 && playerData[i].dead == true) { float closest = 0; int spawnid = 0; for (int s = 0; s < sizeof(spawnData) / sizeof(*spawnData); s++) { if (spawnData[s].used == true) { float tempd = Distance(playerData[i].x, spawnData[s].x, playerData[i].y, spawnData[s].y, playerData[i].z, spawnData[s].z); if (s == 0 || closest > tempd) { closest = tempd; spawnid = s; } } } playerData[i].dead = false; SpawnPlayer(i, spawnid); } } } }
static cell AMX_NATIVE_CALL n_OnPlayerDeath( AMX* amx, cell* params ) { return OnPlayerDeath(params[1], params[2], params[3]); }