Hallo liebe Community,
heute will ich euch zeigen, wie ihr die 4.Fraktion (OPFOR) in der 4.4r3 / 4.4r4 Altis Life einfügen könnt.
Das alles hab ich bei mir auf dem Server laufen allerdings kann es immer Fehler geben also bitte Nachsicht.
MPMission
Schritt 1:
Öffnet eure Config_Master.hpp und fügt unter :
das hier ein:
dann unter:
das hier:
Schritt 2:
Öffnet eure /core/init.sqf
und fügt unter:
das hier ein
dann unter:
case independent: {
//Initialize Medics and blah
_handle = [] spawn life_fnc_initMedic;
waitUntil {scriptDone _handle};
};
das hier:
case east: {
//Initialize Adac and blah
_handle = [] spawn life_fnc_initAdac;
waitUntil {scriptDone _handle};
};
Schritt 3:
Geht zur /core/shops/fn_atmMenu.sqf
und fügt unter:
das hier ein:
Schritt 4:
Geht zur /core/session/fn_updateRequest.sqf
und fügt unter:
_flag = switch (playerSide) do {case west: {"cop"}; case civilian: {"civ"}; case independent: {"med"};};
das hier ein:
Schritt 5:
Geht zur /core/session/fn_requestReceived.sqf
und fügt unter:
case independent: {
CONST(life_medicLevel, parseNumber(_this select 7));
CONST(life_coplevel,0);
if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then {
life_hunger = ((_this select 9) select 0);
life_thirst = ((_this select 9) select 1);
player setDamage ((_this select 9) select 2);
};
};
das hier ein:
case east: {
CONST(life_adaclevel, parseNumber(_this select 7));
CONST(life_coplevel,0);
if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then {
life_hunger = ((_this select 9) select 0);
life_thirst = ((_this select 9) select 1);
player setDamage ((_this select 9) select 2);
};
};
Schritt 6:
Geht zur /core/session/fn_updatePartial.sqf
und fügt unter:
_flag = switch (playerSide) do {case west: {"cop"}; case civilian: {"civ"}; case independent: {"med"};};
das hier ein:
Schritt 7:
Geht zur /core/medical/fn_respawned.sqf
und fügt unter:
das hier ein:
Schritt 8:
Geht zur /Functions.hpp
und fügt unter:
das hier ein:
Und diese Class in der selben Datei erstellen:
Schritt 9:
Geht zur /dialog/function/fn_spawnPointCfg.sqf
und fügt unter:
das hier ein:
Schritt 10:
Geht zur /Config_SpawnPoints.hpp
und fügt am Ende das ein:
class Adac {
class Kavala {
displayName = "Base";
spawnMarker = "adac_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
licenses[] = { { "", true } };
level[] = { "", "", -1 };
};
};
Schritt 11:
Geht zur /core/functions/fn_keyHandler.sqf
und fügt unter:
das ein:
Schritt 12:
Geht zur /core/pmenu/fn_p_updateMenu.sqf
und ersetzt das hier:
_side = switch (playerSide) do {case west:{"cop"}; case civilian:{"civ"}; case independent:{"med"};};
durch folgendes:
_side = switch (playerSide) do {case west:{"cop"}; case civilian:{"civ"}; case independent:{"med"}; case east:{"adac"};};
Schritt 13:
Geht zur /core/functions/fn_playerSkins.sqf
Und fügt ganz unten das hinzu:
case east: {
if (uniform player isEqualTo "U_B_CombatUniform_mcam") then {
player setObjectTextureGlobal [0, "textures\adac_uniform.jpg"];
};
};
Schritt 14:
Erstellen sie die Datei /core/fn_initAdac.sqf
und fügen sie folgendes ein:
#include "..\script_macros.hpp"
/*
File: fn_initAdac.sqf
Author: Bryan "Tonic" Boardwine
Description:
Initializes the adac..
*/
private["_end"];
player addRating 99999999;
waitUntil {!(isNull (findDisplay 46))};
if ((FETCH_CONST(life_adacLevel)) < 1 && (FETCH_CONST(life_adminlevel) isEqualTo 0)) exitWith {
["Notwhitelisted",FALSE,TRUE] call BIS_fnc_endMission;
sleep 35;
};
[] call life_fnc_spawnMenu;
waitUntil{!isNull (findDisplay 38500)}; //Wait for the spawn selection to be open.
waitUntil{isNull (findDisplay 38500)}; //Wait for the spawn selection to be done.
Alles anzeigen
Schritt 15:
Erstellen sie den Ordner /core/adac
Schritt 16:
Erstellen sie die Datei /core/adac/fn_adacLoadout.sqf
und fügt das hier ein:
#include "..\..\script_macros.hpp"
/*
File: fn_adacLoadout.sqf
Author: -
Description:
Loads the adac with the default gear.
*/
private["_handle"];
_handle = [] spawn life_fnc_stripDownPlayer;
waitUntil {scriptDone _handle};
/* Load player with default adac gear. */
player addUniform "U_B_CombatUniform_mcam";
player addMagazine "30Rnd_556x45_Stanag";
player addWeapon "arifle_Mk20C_ACO_pointer_F";
player addMagazine "30Rnd_556x45_Stanag";
player addMagazine "30Rnd_556x45_Stanag";
/* ITEMS */
player addItem "ItemMap";
player assignItem "ItemMap";
player addItem "ItemCompass";
player assignItem "ItemCompass";
player addItem "ItemWatch";
player assignItem "ItemWatch";
player addItem "ItemGPS";
player assignItem "ItemGPS";
[] call life_fnc_playerSkins;
[] call life_fnc_saveGear;
Alles anzeigen
Schritt 17:
Erstellen sie die Datei /core/adac/fn_adacMarkers.sqf
und fügen sie folgendes ein:
/*
File: fn_adacMarkers.sqf
Author: -
Description:
Marks adac on the map for other adac. Only initializes when the actual map is open.
*/
private["_markers","_adac"];
_markers = [];
_adac = [];
sleep 0.5;
if(visibleMap) then {
{if(side _x == east) then {_adac pushBack _x;}} foreach playableUnits; //Fetch list of adac / opfor
//Create markers
{
if(_x != player) then {
_marker = createMarkerLocal [format["%1_marker",_x],visiblePosition _x];
_marker setMarkerColorLocal "ColorOPFOR";
_marker setMarkerTypeLocal "Mil_dot";
_marker setMarkerTextLocal format["%1", _x getVariable["realname",name _x]];
_markers pushBack [_marker,_x];
};
} foreach _adac;
while {visibleMap} do {
{
private["_marker","_unit"];
_marker = _x select 0;
_unit = _x select 1;
if(!isNil "_unit" && !isNull _unit) then {
_marker setMarkerPosLocal (visiblePosition _unit);
};
} foreach _markers;
if(!visibleMap) exitWith {};
sleep 0.02;
};
{deleteMarkerLocal (_x select 0);} foreach _markers;
_markers = [];
_adac = [];
};
Alles anzeigen
life_server
Gehen sie zur: /@life_server/addons/life_server/init.sqf
und fügen sie unter:
folgendes ein: