Fix Waffen Drop in Altis Life

Aus Nitradopedia
Wechseln zu: Navigation, Suche
Arma3Altis header.png

Miete dir jetzt deinen eigenen prepaid ArmA 3 Altis Life Server auf nitrado.net

Dieser Artikel wurde mit ArmA 3: Altis Life (Version 3.1.2 von Tonic) getestet.

In diesem Artikel wird erläutert, wie der "Waffen Drop Fix" eingebaut wird, wenn ein Cop / Polizist sich vom Server ausloggt..


Folgende Schritte zur Änderung sind notwendig:

  • Wichtiger Hinweis: Eine Sicherung / Backup aller zu veränderten Dateien erstellen
  • Gameserver stoppen
  • Die Datei init.sqf aus dem Verzeichnis /MPMissions/Altis_Life.altis/core öffnen
  • Folgenden Code-Schnipsel am Ende der Datei init.sqf hinzufügen:
onPlayerDisconnected { [_id, _name, _uid] call compile preProcessFileLineNumbers "core\functions\fn_onPlayerDisconnect.sqf" };
  • Die Datei init.sqf aus dem Verzeichnis /@life_server/addons/life_server/ öffnen
  • Folgenden Code-Schnipsel am Ende der Datei init.sqf hinzufügen:
onPlayerDisconnected { [_id, _name, _uid] call compile preProcessFileLineNumbers "core\functions\fn_onPlayerDisconnect.sqf" };
  • Die Datei life_server.pbo aus dem Verzeichnis /@life_server/addons/ herunterladen
  • Die Datei life_server.pbo mit dem PBO Manager öffnen
  • Die Datei init.sqf (aus der Datei life_server.pbo) mit Notepad++ bearbeiten und folgenden Inhalt am Ende der Datei hinzufügen:
onPlayerDisconnected { [_id, _name, _uid] call compile preProcessFileLineNumbers "core\functions\fn_onPlayerDisconnect.sqf" };
  • Die Datei life_server.pbo in das Verzeichnis /@life_server/addons/ (Gameserver) hochladen


  • Erstelle die Datei fn_onPlayerDisconnect.sqf im Verzeichnis /MPMissions/Altis_Life.altis/core/functions/ mit folgendem Inhalt:
/*
	File: fn_onPlayerDisconnect.sqf
	Author: Vampire
	(onPlayerDisconnected example by [KH]Jman on BIStudio Forums)
	
	Description:
	Deletes Weapon Holders within 5m of the disconnecting player.
*/
_id = _this select 0; 
_pname = _this select 1; 
_puid  = _this select 2;

call cleanNearItems;

cleanNearItems = {	
	if (_pname != "__SERVER__") then {
		
		_player = objNull;
		{
			if (getPlayerUID _x == _puid) exitWith
			{
				_player = _x;
			};
		} forEach playableUnits; 
		
		if (!(isNull _player)) then {
			// Player body found, now we can run our code
		
			_player removeWeapon (primaryWeapon _player);
			_player removeWeapon (handGunWeapon _player);

			{
				deleteVehicle _x
			} forEach nearestObjects [_player, ["GroundWeaponHolder"], 5];
		};
	};
};