Moin,
da wir gestern nach dem Update ein paar Probleme hatten möchte ich zu mindestens die Lösung für das Bot Spawn Problem hier mal dokumentieren. Wir nutzen die 3.1.4.8 und dort ist es so, dass beim Spieler disconnect die "Leichen" der Spieler aufgeräumt werden. Allerdings hat sich das Verhalten mit dem Update geändert und es es werden keine Leichen mehr erzeugt sondern die KI übernimmt den Spieler. Ist grundsätzlich erstmal nicht schlimm, allerdings werden beim Killen der Bots die Waffen gedroppt und man kann diese aufnehmen.
Wie immer gilt, dass das Tutorial ohne meine Zustimmung nicht weitergegeben bzw. in andere Foren übertragen werden darf.
Gut fangen wir mal an. Es sind 2 Ändrerungen im life_server für den Fix notwendig.
1. Änderung in der fn_clientDisconnect.sqf
/*
Author: Bryan "Tonic" Boardwine
modified by moeck
Description:
When a player disconnect it goes through the all the dead bodies
and removes bodies owned by the server. This is built for the new
medical / EMS system.
*/
private["_uid","_name","_unit","_side","_id"];
_unit = _this select 0;
if (isNull _unit) exitWith {};
_id = _this select 1;
_uid = _this select 2;
_name = _this select 3;
_side = side _unit;
{
_pid = _x getVariable["steam64ID",""];
if(_uid == _pid OR _pid == "" OR owner _x < 3) then {
_containers = nearestObjects[_x,["WeaponHolderSimulated"],5]; //Fetch list of containers (Simulated = weapons)
{deleteVehicle _x;} foreach _containers; //Delete the containers.
deleteVehicle _x; //Get rid of the corpse.
};
} foreach allDeadMen;
{
_pid = _x getVariable["steam64ID",""];
if(_uid == _pid OR _pid == "" OR owner _x < 3) then {
_containers = nearestObjects[_x,["WeaponHolderSimulated"],5]; //Fetch list of containers (Simulated = weapons)
{deleteVehicle _x;} foreach _containers; //Delete the containers.
deleteVehicle _x; //Get rid of the corpse.
}
} foreach playableUnits;
_weapons = nearestObjects[_unit,["WeaponHolderSimulated"],5];
{deleteVehicle _x;} forEach _weapons;
deleteVehicle _unit;
_uid spawn TON_fnc_houseCleanup;
//Empty group cleanup - Spectator bug fix
{
if(count units _x == 0) then {
deleteGroup _x;
};
} forEach allGroups;
Alles anzeigen
Geändert habe ich hier die Variablendefinition, durch hinzufügen von _unit, _side, id. Des Weiteren habe ich die Zeilen 35 - 37 hinzugefügt.
2. Anpassung in der init.sqf
Sucht nach der Zeile:
_onDisconnect = addMissionEventHandler ["HandleDisconnect",{[_uid,_id,_name,_unit] call TON_fnc_clientDisconnect}]; //Colin's Merge
und ersetzt diese durch
addMissionEventHandler ["HandleDisconnect",{_this call TON_fnc_clientDisconnect; false;}];
So und schon sind wir fertig . Wir haben das Ganze bereits erfolgreich heute Nacht getestet.
In diesem Sinne noch einen schönen Tag und viel Erfolg falls ihr den Fix benötigt.
Gruß,
moeck