Hallo GG Community,
Hier ein funktionierendes Script, was euch ermöglicht die 4. Fraktion einzufügen.
Hier wird komplett aller erklärt. 4. Fraktion inkl Markt Genstore Clothing Auto/Heli Shop und Garage.
Vorher bitte ein Backup machen!
MPMissions
1. Erstellt im Ordner core einen neuen Ordner namens adac
2. Erstellt im Ordner core\adac eine neue sqf namens fn_adacLoadout.sqf mit folgendem inhallt:
/*
File: fn_adacLoadout.sqf
Author: Bryan "Tonic" Boardwine
Edited: Itsyuka
Description:
Loads the ADAC out with the default gear.
*/
private["_handle"];
_handle = [] spawn life_fnc_stripDownPlayer;
waitUntil {scriptDone _handle};
//Load player with default adac gear.
player forceAddUniform "U_Rangemaster";
/* 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";
player addItem "ItemRadio";
player assignItem "ItemRadio";
[] call life_fnc_saveGear;
Alles anzeigen
3. Erstellt im Ordner core\adac eine neue sqf namens fn_adacMarkers.sqf mit folgendem Inhallt: (Dies müsst ihr nicht unbedingt machen, aber ihr dürft)
/*
File: fn_adacMarkers.sqf
Author: Bryan "Tonic" Boardwine
Description:
Marks cops on the map for other cops. 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 cops / blufor
//Create markers
{
_marker = createMarkerLocal [format["%1_marker",_x],visiblePosition _x];
_marker setMarkerColorLocal "ColorGreen";
_marker setMarkerTypeLocal "Mil_dot";
_marker setMarkerTextLocal format["%1", name _x];
_markers set[count _markers,[_marker,_x]];
} foreach _adac;
while {visibleMap} do
{
{
private["_marker","_unit"];
_marker = _x select 0;
_unit = _x select 1;
if(!isNil "_unit") then
{
if(!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
4. Öffnet euren core Ordner, und erstellt darin eine neue sqf namens fn_initAdac.sqf mit folgendem Inhallt:
#include <macro.h>
/*
File: fn_initAdac.sqf
Author: Bryan "Tonic" Boardwine
Description:
Initializes the PMC
*/
private["_end"];
player addRating 99999999;
waitUntil {!(isNull (findDisplay 46))};
if((__GETC__(life_adaclevel)) < 1) 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
5. Öffnet euren core\vehicle Ordner, und erstellt darin eine neue sqf namens fn_adacVInteractionMenu.sqf mit folgendem Inhallt:
/*
File: fn_adacVInteractionMenu.sqf
Author: Bryan "Tonic" Boardwine
Description:
Replaces the mass addactions for various vehicle actions
*/
#define Btn1 37450
#define Btn2 37451
#define Btn3 37452
#define Btn4 37453
#define Btn5 37454
#define Btn6 37455
#define Title 37401
private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6"];
if(!dialog) then {
createDialog "vInteraction_Menu";
};
disableSerialization;
_curTarget = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
_isVehicle
= if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf
"Ship") OR (_curTarget isKindOf "Air")) then {true} else {false};
if(!_isVehicle) exitWith {closeDialog 0;};
_display = findDisplay 37400;
_Btn1 = _display displayCtrl Btn1;
_Btn2 = _display displayCtrl Btn2;
_Btn3 = _display displayCtrl Btn3;
_Btn4 = _display displayCtrl Btn4;
_Btn5 = _display displayCtrl Btn5;
_Btn6 = _display displayCtrl Btn6;
life_vInact_curTarget = _curTarget;
//Button 1 - Set vehicle repair action
_Btn1 ctrlSetText localize "STR_vInAct_Repair";
_Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck;";
if("ToolKit" in (items player) && (damage _curTarget < 1)) then
{
_Btn1 ctrlEnable true;
} else {
_Btn1 ctrlEnable false;
};
//Button 2 - Set pushboat action if curTarget is a boat else if curTarget is a kart displays some kart actions
if(_curTarget isKindOf "Ship") then
{
_Btn2 ctrlSetText localize "STR_vInAct_PushBoat";
_Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
if(_curTarget isKindOf "Ship" && {local _curTarget} && {count crew _curTarget == 0}) then
{
_Btn2 ctrlEnable true;
} else {
_Btn2 ctrlEnable false
};
} else {
if(typeOf (_curTarget) in ["C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Fuel_F","C_Kart_01_Vrana_F"]) then
{
_Btn2 ctrlSetText localize "STR_vInAct_GetInKart";
_Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 0}) then
{
_Btn2 ctrlEnable true;
} else {
_Btn2 ctrlEnable false
};
} else {
_Btn2 ctrlSetText localize "STR_vInAct_Unflip";
_Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos
life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1,
(getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
if(count crew _curTarget == 0 && {canMove _curTarget}) then
{
_Btn2 ctrlEnable false;
} else {
_Btn2 ctrlEnable true;
};
};
};
//Button 3 - undefined
_Btn3 ctrlShow false;
//Button 4 - undefined
_Btn4 ctrlShow false;
//Button 5 - undefined
_Btn5 ctrlShow false;
//Button 6 - undefined
_Btn6 ctrlShow false;
Alles anzeigen
6. Öffnet eure function.h und sucht nach class Master_Directory und fügt folgendes darunter in die { };
Nun sucht ihr class Vehicle und fügt folgendes in die { };
danach fügt ihr am besten unter class Dialog_Controls folgendes hinzu: (Bitte eine neue class anlegen, nicht in die { }; von class Dialog_Controls)
Das ganze müsste so aussehen:
Spoiler anzeigen
class Dialog_Controls
{
file = "dialog\function";
class setMapPosition {};
class displayHandler {};
class spawnConfirm {};
class spawnMenu {};
class spawnPointCfg {};
class spawnPointSelected {};
class progressBar {};
class impoundMenu {};
class unimpound {};
class sellGarage {};
class bankDeposit {};
class bankWithdraw {};
class bankTransfer {};
class garageLBChange {};
class safeInventory {};
class safeOpen {};
class safeTake {};
class safeFix {};
class vehicleGarage {};
class gangDeposit {};
class introScreen {};
};
class Adac
{
file = "core\adac";
class adacLoadout {};
class adacMarkers {};;
};
7. Öffnet eure core\functions\fn_actionKeyHandler.sqf und sucht nach if(_isVehicle) then {if(!dialog) then { das müsste etwa linie 76 sein und fügt folgenden Text darunter:
if(playerSide
== east && player distance _curTarget < (((boundingBox
_curTarget select 1) select 0) + 2)) then {
[_curTarget] call life_fnc_adacVInteractionMenu;
};
Das ganze müsste so aussehen:
Spoiler anzeigen
//It's a vehicle! open the vehicle interaction key!
if(_isVehicle) then {
if(!dialog) then {
if(playerSide == east && player distance _curTarget <
(((boundingBox _curTarget select 1) select 0) + 2)) then {
[_curTarget] call life_fnc_adacVInteractionMenu;
};
if(player distance _curTarget < ((boundingBox _curTarget select 1) select 0) + 2) then {
[_curTarget] call life_fnc_vInteractionMenu;
};
};
8. Öffnet eure core\init.sqf und fügt folgendes dazu:
case east:
{
//Initialize ADAC
_handle = [] spawn life_fnc_initAdac;
waitUntil {scriptDone _handle};
};
9. Öffnet eure configuration.sqf und fügt folgendes dazu:
case east:
{
life_atmcash = 50000; //Starting Bank Money
life_paycheck = 2000; //Paycheck Amount
};
10. Öffnet eure core\functions\fn_loadGear.sqf und fügt folgendes hinzu:
11. Öffnet eure core\functions\fn_saveGear.sqf und fügt folgendes hinzu:
Das ganze sollte so aussehen:
Spoiler anzeigen
if(playerSide == west playerSide == civilian playerSide == east && {(call life_save_civ)}) then {
12. Öffnet eure core\shops\fn_atmMenu.sqf und fügt folgendes hinzu:
13. Öffnet eure core\pmenu/fn_cellphone.sqf und fügt folgendes hinzu:
14. Öffnet eure core\medical\fn_respawned.sqf und fügt folgendes hinzu:
15. Öffnet eure description.ext und fügt folgendes ganz unten ein:
class AdacMessage
{
title = "Adac Message";
iconPicture = "icons\messagenew.paa";
description = "%1";
duration = 10;
priority = 5;
};
16. Öffnet eure dialog\cell_phone.hpp und fügt folgendes unter class EMSRequest : life_RscButtonMenu ein:
class AdacRequest : life_RscButtonMenu
{
idc = 3023;
text = "$STR_CELL_AdacRequest";
colorBackground[] = {"(profilenamespace getvariable
['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable
['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable
['GUI_BCG_RGB_B',0.8862])", 0.5};
onButtonClick = "[] call TON_fnc_cell_adacrequest";
x = 0.32;
y = 0.45;
w = 0.2;
h = (1 / 25);
};
Alles anzeigen
17. Öffnet eure stringable.xml und fügt folgendes unter "STR_CELL_EMSRequest" ein:
Das ganze sollte so aussehen: (Dürft ihr natürlich gerne auch auf Deutsch schreiben)
Spoiler anzeigen
<Key ID="STR_CELL_EMSRequest">
<Original>Request EMS</Original>
</Key>
<Key ID="STR_CELL_AdacRequest">
<Original>Request ADAC</Original>
</Key>
18. Öffnet eure dialog\function\fn_spawnPointCfg.sqf und fügt folgendes hinzu:
case east:
{
_return = [
["adac_spawn_1","ADAC Kavala","\a3\ui_f\data\map\MapControl\watertower_ca.paa"]
];
};
19. Öffnet eure core\session\fn_updateRequest.sqf und fügt folgendes hinzu:
20. Öffnet eure core\session\fn_updatePartial.sqf und fügt folgendes hinzu:
21. Öffnet eure core\session\fn_requestReceived.sqf und fügt folgende sachen ein:
Unter case west
Unter case civilian
Unter case independent
Und zum schluß eine neue case anlegen:
case east: {
__CONST__(life_adaclevel, parseNumber(_this select 7));
__CONST__(life_coplevel,0);
__CONST__(life_medicLevel,0);
};
Das ganze sollte so aussehen:
Spoiler anzeigen
switch(playerSide) do {
case west: {
__CONST__(life_coplevel, parseNumber(_this select 7));
__CONST__(life_medicLevel,0);
__CONST__(life_adaclevel,0); //ADD THIS
life_blacklisted = _this select 9;
};
case civilian: {
life_is_arrested = _this select 7;
__CONST__(life_coplevel, 0);
__CONST__(life_medicLevel, 0);
__CONST__(life_adaclevel,0); //ADD THIS
life_houses = _this select 9;
{
_house = nearestBuilding (call compile format["%1", _x select 0]);
life_vehicles pushBack _house;
} foreach life_houses;
life_gangData = _This select 10;
if(count life_gangData != 0) then {
[] spawn life_fnc_initGang;
};
[] spawn life_fnc_initHouses;
};
case independent: {
__CONST__(life_medicLevel, parseNumber(_this select 7));
__CONST__(life_coplevel,0);
__CONST__(life_adaclevel,0); //ADD THIS
};
case east: {
__CONST__(life_adaclevel, parseNumber(_this select 7));
__CONST__(life_coplevel,0);
__CONST__(life_medicLevel,0);
};
};
22. Öffnet eure core\pmenu\fn_p_openMenu.sqf und fügt folgendes dazu:
23. Öffnet eure core\pmenu\fn_p_updateMenu.sqf und fügt folgendes bei _side hinzu:
So sollte das aussehen:
Spoiler anzeigen
_side = switch(playerSide) do {case west:{"cop"}; case civilian:{"civ"}; case independent:{"med"}; case east:{"adac"};};
Life_Server
1. Öffnet eure init.sqf und fügt folgendes unter life_medicLevel = 0; dazu:
etwas weiter unten das hier:
2.Öffnet eure functions.sqf und fügt nach TON_fnc_cell_adminmsgall dazu:
TON_fnc_cell_adacrequest =
compileFinal "
private[""_msg"",""_to""];
ctrlShow[3023,false];
_msg = ctrlText 3003;
_to = ""ADAC Units"";
if(_msg == """") exitWith {hint ""You must enter a Message!"";ctrlShow[3023,true];};
[[_msg,name player,6],""TON_fnc_clientMessage"",east,false] spawn life_fnc_MP;
[] call life_fnc_cellphone;
hint format[""You have sent a message to all ADAC Units."",_to,_msg];
ctrlShow[3022,true];
";
Alles anzeigen
Direkt darunter das hier einfügen:
Und zum schluß, eine neue case anlegen:
case 6: {
private[""_message""];
_message = format[""!!!ADAC REQUEST: %1"",_msg];
hint parseText format [""<t color='#FFCC00'><t
size='2'><t align='center'>ADAC
Request<br/><br/><t color='#33CC33'><t
align='left'><t size='1'>To: <t
color='#ffffff'>You<br/><t color='#33CC33'>From: <t
color='#ffffff'>%1<br/><br/><t
color='#33CC33'>Message:<br/><t
color='#ffffff'>%2"",_from,_msg];
[""TextMessage"",[format[""ADAC Request from %1"",_from]]] call bis_fnc_showNotification;
};
Alles anzeigen
3. Öffnet eure Functions\MySQL\fn_insertRequest.sqf und überschreibt folgendes:
_query
= format["INSERT INTO players (playerid, name, cash, bankacc, aliases,
cop_licenses, med_licenses, adac_licenses, civ_licenses, civ_gear,
cop_gear, med_gear, adac_gear) VALUES('%1', '%2', '%3', '%4',
'%5','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""')",
4. Öffnet eure Functions\MySQL\fn_queryRequest.sqf und fügt folgendes hinzu:
case
east: {_returnCount = 9; format["SELECT playerid, name, cash, bankacc,
adminlevel, donatorlvl, adac_licenses, adaclevel, adac_gear FROM players
WHERE playerid='%1'",_uid];};
5. Öffnet eure Functions\MySQL\fn_updatePartial.sqf und fügt folgendes unter case 2 hinzu:
case east: {_query = format["UPDATE players SET adac_licenses='%1' WHERE playerid='%2'",_value,_uid];};
Das unter case 3:
case east: {_query = format["UPDATE players SET adac_gear='%1' WHERE playerid='%2'",_value,_uid];};
6. Öffnet eure Functions\MySQL\fn_updateRequest.sqf und fügt folgendes hinzu:
case
east: {_query = format["UPDATE players SET name='%1', cash='%2',
bankacc='%3', adac_licenses='%4', adac_gear='%6' WHERE
playerid='%5'",_name,_cash,_bank,_licenses,_uid,_gear];};
7. Öffnet eure Functions\Systems\fn_getVehicles.sqf und fügt folgendes dazu:
8. Öffnet eure Functions\Systems\fn_vehicleCreate.sqf und fügt folgendes dazu:
9. Öffnet eure Functions\Systems\fn_managesc.sqf und füge folgendes hinzu:
case east:
{
if(_bool) then
{
life_radio_east radioChannelAdd [_unit];
}
else
{
life_radio_east radioChannelRemove [_unit];
};
};
Alles anzeigen
Arma 3 Editor
1. Nun platzieren wir die Fraktion east. Platziert eine east Einheit auf eure Spawninsel:
SEITE: Opfor
GRUPPIERUNG: CSAT
KLASSE: Männer
EINHEIT: Sanitäter
SPEZIELL: Keine
NAME: adac_1
KONTROLLE: Spielbar
BESCHREIBUNG: Whitelist | ADAC 1
Die 2. Einheit genau gleich, ausser bei Name: adac_2 und bei Beschreibung Whitelist | ADAC 2
Wenn ihr 6 Einheiten erstellt, habt ihr auch 6 Slots für den ADAC auf eurer Map.
(Kopiert die Einheiten nicht. DIe müssen alle verbunden sein. Immer selber ohne copy paste eine EInheit setzen)
2. Erstellt auf eurer Map irgentwo wo ihr wollt einen Marker namens:
Speichern, und den Editor verlassen.
Logt euch in eurer Datenbank ein, und klickt eure Datenbank an. Klickt auf sql und fügt folgenden Code ein:
ALTER TABLE `players` ADD (
`adac_licenses` TEXT NULL DEFAULT NULL
);
ALTER TABLE `players` ADD (
`adac_gear` TEXT NOT NULL
);
ALTER TABLE `players` ADD (
`adaclevel` enum('0','1','2','3','4','5') NOT NULL DEFAULT '0'
);
Alles anzeigen
Hier noch ein Bild dazu:
Adac Kleidershop
1. Öffnet eure core\config und erstellt eine neue sqf namens fn_clothing_adac mit folgendem Inhallt:
/*
File: fn_clothing_adac.sqf
Author: Bryan "Tonic" Boardwine
Description:
Master configuration file for adac Outfits.
*/
private["_filter"];
_filter = [_this,0,0,[0]] call BIS_fnc_param;
//Classname, Custom Display name (use nil for Cfg->DisplayName, price
//Shop Title Name
ctrlSetText[3103,"Adac Kleidershop"];
switch (_filter) do
{
//Uniforms
case 0:
{
[
["U_C_Poloshirt_blue","Poloshirt Blue",250],
["U_C_Poloshirt_burgundy","Poloshirt Burgundy",275],
["U_C_Poloshirt_redwhite","Poloshirt Red/White",150],
["U_C_Poloshirt_salmon","Poloshirt Salmon",175]
];
};
//Hats
case 1:
{
[
["H_Bandanna_camo","Camo Bandanna",120],
["H_Bandanna_surfer","Surfer Bandanna",130],
["H_Bandanna_gry","Grey Bandanna",150],
["H_Bandanna_cbr",nil,165],
["H_Bandanna_surfer",nil,135]
];
};
//Glasses
case 2:
{
[
["G_Shades_Black",nil,25],
["G_Shades_Blue",nil,20],
["G_Sport_Blackred",nil,20]
];
};
//Vest
case 3:
{
[
];
};
//Backpacks
case 4:
{
[
["B_AssaultPack_cbr",nil,2500],
["B_Kitbag_mcamo",nil,4500],
["B_TacticalPack_oli",nil,3500]
];
};
};
Alles anzeigen
Eine Kleiderliste findet ihr hier: Arma 3 CfgWeapons Equipment - Bohemia Interactive Community
2. Öffnet eure core\shops\fn_clothingFilter und fügt folgendes hinzu:
3. Öffnet eure core\config\fn_clothingMenu und fügt folgendes hinzu:
if((_this
select 3) in ["adac"] && playerSide != east) exitWith {hint "Du
bist kein ADAC!"; closeDialog 0;};
4. Öffnet eure function.h uund fügt folgendes unter class Config ein:
5. NPC Init:
this allowDamage false; this enableSimulation false; this addAction["Kleidung Shop",life_fnc_clothingMenu,"adac"];
Auto/Heli Shop inkl Garage
1. Öffnet eure core\config\fn_vehicleListCfg und fügt folgendes hinzu:
case "adac_car":
{
_return =
[
["C_SUV_01_F",35000],
["B_Truck_01_transport_F",275000],
["B_Truck_01_mover_F",250000],
["C_Offroad_01_F",1500]
];
};
case "adac_air":
{
_return =
[
["O_Heli_Light_02_unarmed_F",100000],
["I_Heli_Transport_02_F",100000]
];
};
Alles anzeigen
Eine komplette Auto/Heliliste findet ihr hier: ARMA 3 Vehicles - 7th Cavalry Regiment Wiki
2. Erstellt 2 Marker:
3. NPC Init:
this
enableSimulation false; this allowDamage false; this
addAction[format["%1 ($%2)",["license_adac_car"] call
life_fnc_varToStr,[(["car"] call life_fnc_licensePrice)] call
life_fnc_numberText],life_fnc_buyLicense,"car",0,false,false,"",'
!license_adac_car && playerSide == east ']; this
addAction[format["%1 ($%2)",["license_adac_air"] call
life_fnc_varToStr,[(["air"] call life_fnc_licensePrice)] call
life_fnc_numberText],life_fnc_buyLicense,"air",0,false,false,"",'
!license_adac_air && playerSide == east ']; this
addAction["Auto
Shop",life_fnc_vehicleShopMenu,["adac_car",east,"adac_car_1","adac","ADAC
Autoshop"]]; this addAction["Helicopter
Shop",life_fnc_vehicleShopMenu,["adac_air",east,"adac_air_1","adac","ADAC
Helicopter Shop"]]; this addAction["Auto Garage", {
[[getPlayerUID
player,playerSide,"Car",player],"TON_fnc_getVehicles",false,false] spawn
life_fnc_MP; createDialog "Life_impound_menu";
disableSerialization; ctrlSetText[2802,"Fetching Vehicles...."];
life_garage_sp = "adac_car_1"; life_garage_type = "Car";
},"",0,false,false,"",'playerSide == east']; this
addAction["Helicopter Garage", { [[getPlayerUID
player,playerSide,"Air",player],"TON_fnc_getVehicles",false,false] spawn
life_fnc_MP; createDialog "Life_impound_menu";
disableSerialization; ctrlSetText[2802,"Fetching Vehicles...."];
life_garage_sp = "adac_air_1"; life_garage_type = "Air";
},"",0,false,false,"",'playerSide == east']; this addAction["Fahrzeug
einparken",life_fnc_storeVehicle,"",0,false,false,"",'!life_garage_store'];
Alles anzeigen
Adac Markt und Genstore:
1. Öffnet eure core\congif\fn_virt_shops und fügt folgendes hinzu:
case "adacmarkt": {["ADAC Markt",["apple","peach","tbacon","rabbit","water","redgull","fuelF"]]};
2. Öffnet eure core\congif\fn_weaponShopCfg und fügt folgendes hinzu:
case "adacgen":
{
switch(true) do
{
case (playerSide != east): {"Du bist kein ADAC!"};
default
{
["ADAC Zubehör",
[
["Binocular",nil,150],
["ItemGPS",nil,100],
["ToolKit",nil,250],
["FirstAidKit",nil,150],
["NVGoggles",nil,2000]
]
];
};
};
};
Alles anzeigen
3. NPC Init:
this
enableSimulation false; this allowDamage false; this addAction["ADAC
Markt",life_fnc_virt_menu,"adacmarkt"]; this addAction["ADAC Zubehör
Shop",life_fnc_weaponShopMenu,"adacgen"];
Adac Lizenz:
1. Öffnet eure Configuration.sqf und fügt unter life_licenses = folgendes ein:
Achtet hier auf das ,
2. Öffnet eure core\config\fn_licenseType.sqf und fügt folgendes bei case 0: ein:
unter case 1: das hier:
3. Öffnet eure core\config\fn_licensePrice.sqf und fügt folgendes hinzu:
Hier könnt ihr natürlich selbst der Preis bestimmen.
4. Öffnet eure core\congif\fn_varToStr.sqf und fügt folgendes unter //License Block ein:
case "license_adac_car": {"ADAC Führerschein"};
case "license_adac_air": {"ADAC Pilotenschein"};
5. Öffnet eure core\congif\fn_vehShopLicenses.sqf und fügt folgendes unter case "reb_car": {_ret = license_civ_rebel;}; ein:
6. Init des NPCs steht schon beim Auto/Heli Shop mitbei.
Nun sind wir am ende angekommen.
Falls ich etwas vergessen habe, bitte bescheid geben.
Viel spaß mit der 4. Fraktion.
MfG
Noldy