testing a few fixes

Attempt to prevent duping of player bodies, and if player isnt moved
into body after set amount of time they are kicked to new player screen.
This commit is contained in:
happydayz 2016-07-26 18:58:35 +10:00
parent 4c47e82da0
commit a9ddf89831
3 changed files with 43 additions and 16 deletions

View File

@ -291,6 +291,7 @@ _extDB2Message call ExileServer_system_database_query_fireAndForget;
if (_reviveused > MaxRevivesAllowed) then if (_reviveused > MaxRevivesAllowed) then
{ {
_bambiPlayer setVariable ["REVIVE", false, true]; _bambiPlayer setVariable ["REVIVE", false, true];
_player setVariable ["REVIVE", false, true];
}; };
_msg = format ["%1 has been stabilised! You have been rewarded 100 Respect!",_name]; _msg = format ["%1 has been stabilised! You have been rewarded 100 Respect!",_name];
@ -337,7 +338,22 @@ call ExileServer_system_network_send_to;
_ownerID publicVariableClient "EnigmaRevive"; _ownerID publicVariableClient "EnigmaRevive";
_player allowDamage true; _player allowDamage true;
}; };
}; };
}; };
//test to see if this stops duping
[] spawn
{
uiSleep 4;
if !(isPlayer _player) then
{
diag_log "EnigmaRevive - Something went horribly wrong!";
[_player] joinSilent ExileServerGraveyardGroup;
deleteVehicle _player;
};
};

View File

@ -67,18 +67,29 @@ player setVariable["antidupe", 1, true];
private["_newPlayerObject","_oldPlayerObject","_packet","_weapon","_reviver"]; private["_newPlayerObject","_oldPlayerObject","_packet","_weapon","_reviver"];
_packet = _this select 1; _packet = _this select 1;
_newPlayerObject = _packet select 0; _newPlayerObject = _packet select 0;
cutText ["","BLACK IN",20]; if (alive _newPlayerObject) then
[100] call BIS_fnc_bloodEffect; {
"Reviving player..." call ExileClient_util_log; cutText ["","BLACK IN",20];
_layer = "BIS_fnc_respawnCounter" call bis_fnc_rscLayer; [100] call BIS_fnc_bloodEffect;
_layer cutText ["", "plain"]; "Reviving player..." call ExileClient_util_log;
"Removing bleed out thread..." call ExileClient_util_log; _layer = "BIS_fnc_respawnCounter" call bis_fnc_rscLayer;
[ExileClientBleedOutThread] call ExileClient_system_thread_removeTask; _layer cutText ["", "plain"];
ExileClientBleedOutThread = -1; "Removing bleed out thread..." call ExileClient_util_log;
player setVariable ['EnigmaRevivePermitted', false, true]; [ExileClientBleedOutThread] call ExileClient_system_thread_removeTask;
false call ExileClient_gui_postProcessing_toggleDialogBackgroundBlur; ExileClientBleedOutThread = -1;
true call ExileClient_gui_hud_toggle; player setVariable ['EnigmaRevivePermitted', false, true];
player setVariable["antidupe", 1, true]; //remove the antidupe from the revived player! false call ExileClient_gui_postProcessing_toggleDialogBackgroundBlur;
true call ExileClient_gui_hud_toggle;
["endBambiStateRequest"] call ExileClient_system_network_send; //remove bambi status (changed in some previous version to clientside control)
[ExileClientEndBambiStateThread] call ExileClient_system_thread_removeTask;
ExileClientPlayerIsBambi = false;
false call ExileClient_gui_hud_toggleBambiIcon;
player setVariable["antidupe", 1, true]; //remove the antidupe from the revived player!
}
else
{
call ExileClient_object_player_death_forceRespawn;
};
}; };
"EnigmaReviveFail" addPublicVariableEventHandler { "EnigmaReviveFail" addPublicVariableEventHandler {
@ -86,8 +97,8 @@ player setVariable["antidupe", 1, true];
_requestingPlayer = _packet select 0; _requestingPlayer = _packet select 0;
_revivername = _packet select 1; _revivername = _packet select 1;
systemChat Format ["%1 bungled your revive and killed you!",_revivername]; systemChat Format ["%1 bungled your revive and killed you!",_revivername];
player setVariable["antidupe", 1, true]; //remove the antidupe from the revived player! player setVariable["antidupe", 1, true]; //remove the antidupe from the revived player!
[] call ExileClient_gui_escape_respawn; //force kill player call ExileClient_object_player_death_forceRespawn; //force kill player
}; };
"EnigmaReviveMSG" addPublicVariableEventHandler { "EnigmaReviveMSG" addPublicVariableEventHandler {