Add suicide command handler
This commit is contained in:
@@ -74,6 +74,42 @@ function toggleMouseCursorCommand(command, params, client) {
|
|||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
|
function suicideCommand(command, params, client) {
|
||||||
|
if (!isPlayerSpawned(client)) {
|
||||||
|
messagePlayerError(client, getLocaleString(client, "MustBeSpawned"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPlayerSurrendered(client)) {
|
||||||
|
messagePlayerError(client, getLocaleString(client, "UnableToDoThat"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPlayerRestrained(client)) {
|
||||||
|
messagePlayerError(client, getLocaleString(client, "UnableToDoThat"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getPlayerCurrentSubAccount(client).inJail) {
|
||||||
|
messagePlayerError(client, getLocaleString(client, "UnableToDoThat"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPlayerInPaintBall(client)) {
|
||||||
|
messagePlayerError(client, getLocaleString(client, "UnableToDoThat"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPlayerInAnyVehicle(client)) {
|
||||||
|
removePlayerFromVehicle(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
processPlayerDeath(client);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
function toggleMouseCameraCommand(command, params, client) {
|
function toggleMouseCameraCommand(command, params, client) {
|
||||||
if (getGame() != AGRP_GAME_GTA_VC) {
|
if (getGame() != AGRP_GAME_GTA_VC) {
|
||||||
sendPlayerMouseCameraToggle(client);
|
sendPlayerMouseCameraToggle(client);
|
||||||
@@ -829,4 +865,94 @@ function deletePlayerBlip(client) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
function processPlayerDeath(client) {
|
||||||
|
getPlayerData(client).pedState = AGRP_PEDSTATE_DEAD;
|
||||||
|
updatePlayerSpawnedState(client, false);
|
||||||
|
setPlayerControlState(client, false);
|
||||||
|
setTimeout(function () {
|
||||||
|
if (isFadeCameraSupported()) {
|
||||||
|
fadeCamera(client, false, 1.0);
|
||||||
|
}
|
||||||
|
setTimeout(function () {
|
||||||
|
if (isPlayerInPaintBall(client)) {
|
||||||
|
respawnPlayerForPaintBall(client);
|
||||||
|
} else {
|
||||||
|
if (getPlayerCurrentSubAccount(client).inJail) {
|
||||||
|
let closestJail = getClosestPoliceStation(getPlayerPosition(client));
|
||||||
|
despawnPlayer(client);
|
||||||
|
getPlayerCurrentSubAccount(client).interior = closestJail.interior;
|
||||||
|
getPlayerCurrentSubAccount(client).dimension = closestJail.dimension;
|
||||||
|
|
||||||
|
if (isPlayerWorking(client)) {
|
||||||
|
stopWorking(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getGame() == AGRP_GAME_MAFIA_ONE) {
|
||||||
|
spawnPlayer(client, getGameConfig().skins[getGame()][getPlayerCurrentSubAccount(client).skin][0], closestJail.position, closestJail.heading);
|
||||||
|
} else {
|
||||||
|
spawnPlayer(client, closestJail.position, closestJail.heading, getGameConfig().skins[getGame()][getPlayerCurrentSubAccount(client).skin][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isFadeCameraSupported()) {
|
||||||
|
fadeCamera(client, true, 1.0);
|
||||||
|
}
|
||||||
|
updatePlayerSpawnedState(client, true);
|
||||||
|
makePlayerStopAnimation(client);
|
||||||
|
setPlayerControlState(client, true);
|
||||||
|
resetPlayerBlip(client);
|
||||||
|
} else {
|
||||||
|
let closestHospital = getClosestHospital(getPlayerPosition(client));
|
||||||
|
despawnPlayer(client);
|
||||||
|
getPlayerCurrentSubAccount(client).interior = closestHospital.interior;
|
||||||
|
getPlayerCurrentSubAccount(client).dimension = closestHospital.dimension;
|
||||||
|
|
||||||
|
if (isPlayerWorking(client)) {
|
||||||
|
stopWorking(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getGame() == AGRP_GAME_MAFIA_ONE) {
|
||||||
|
spawnPlayer(client, getGameConfig().skins[getGame()][getPlayerCurrentSubAccount(client).skin][0], closestHospital.position, closestHospital.heading);
|
||||||
|
} else {
|
||||||
|
spawnPlayer(client, closestHospital.position, closestHospital.heading, getGameConfig().skins[getGame()][getPlayerCurrentSubAccount(client).skin][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isFadeCameraSupported()) {
|
||||||
|
fadeCamera(client, true, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
updatePlayerSpawnedState(client, true);
|
||||||
|
makePlayerStopAnimation(client);
|
||||||
|
setPlayerControlState(client, true);
|
||||||
|
resetPlayerBlip(client);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 2000);
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
let queryData = [
|
||||||
|
["log_death_server", getServerId()]
|
||||||
|
["log_death_who_died", getPlayerCurrentSubAccount(client).databaseId],
|
||||||
|
["log_death_when_died", getCurrentUnixTimestamp()],
|
||||||
|
["log_death_pos_x", position.x],
|
||||||
|
["log_death_pos_y", position.y],
|
||||||
|
["log_death_pos_z", position.x],
|
||||||
|
];
|
||||||
|
let queryString = createDatabaseInsertQuery("log_death", queryData);
|
||||||
|
queryDatabase(queryString);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
function isPlayerSurrendered(client) {
|
||||||
|
return (getPlayerData(client).pedState == AGRP_PEDSTATE_TAZED || getPlayerData(client).pedState == AGRP_PEDSTATE_HANDSUP);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
function isPlayerRestrained(client) {
|
||||||
|
return (getPlayerData(client).pedState == AGRP_PEDSTATE_BINDED);
|
||||||
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
Reference in New Issue
Block a user