Guten Tag liebe Gemeinde,
Dieses Tutorial Richtet sich an alle einsteiger in der "A3 Life Serie"
Ich erkläre wie ihr
1. Eine neue Lizenz einfügt
2. diese Kaufbar macht
3. und einen davon abhängigen Spawnpunkt erstellt
4. ebenso wie man einen Shop erstellt der diese Lizenz benötigt
ACHTUNG:
1. Ich selbst erkläre es anhand der Version 4.4 R3 allerdings sind die Dateien ab der 4.0 gleich lediglich befinden sie sich manchmal an einem anderen Ort.
2. Ebenso rate ich allen Anfängern ein Backup eurer Missionsdatei zu erstellen.
3. Ich übernehme keine Haftung für Fehler die ihr anhand des Tutorials begeht.
4. Ich verbiete die Verbreitung des Tutorial ohne meine Zustimmung.
5. Ich reagiere nicht auf Kommentare wie "Hilfe jetzt geht es nicht mehr". Nennt mir einen klaren Fehler oder schickt mir den RPT Log.
6. Ja es ist viel Text weil ich jede Zeile etc. erkläre damit ihr wirklich Alles versteht den größten Teil kann man aber einfach Kopieren!
7. Im Turorial sind manche Schritte Doppelt allerdings für verschiedene Versionen (Diese sind Rot gekennzeichnet)
8. Das Tutorial funktioniert zu 100% für die 4.4 sowie 4.4 R3 je nach dem. Es sollte allerding auch für Versionen ab 4.X
gehen allerdings unterscheidet sich manchmal der Aufbau der Dateien, sowie der Ort der Datei.
Kapitel 1 - Eine neue Lizenz einfügen
Schritt 1.
Ihr Öffnet die "Config_Licenses.hpp" im "config" Ordner.
Schritt 2.
Nun erstellt ihr an einer passende Stelle eine neue Klasse.
class tutorial { Klassenname
variable = "tutorial"; Variablenname
displayName = "STR_License_Tutorial"; Stringname
price = 1500; Preis
illegal = true; Ist die Lizenz Legal? Wenn nein fann false
side = "civ"; Welche Fraktion besitzt diese Lizenz civ / cop / med
};
Schritt 3.
Nun öffnet ihr die "stringtable.xml" im Hauptverzeichniss.
Schritt 4.
Ihr erstellt ebenfalls ein neuen Key an einer passenden Stelle.
<Key ID="STR_License_Tutorial"> Dein Stringname aus der Config_Licenses
<Original>Tutorial License</Original> Meistens die Englische Übersetzung
<German>Test Lizenz</German> Deutsche Übersetzung (Optional)
<French>Je ne parle francais</French> Französische Übersetzung (Optional)
</Key>
Schritt 5.
Öffnet eure Datenbank
Schritt 6.
Tragt je nach Fraktion die Lizenz in die Spalten cop_Licenses / civ_Licenses / med_Licenses am ende ein das es so aussieht:
...[`license_civ_cocaine`,0],[`license_civ_rebel`,0],[`license_civ_tutorial`,0]]" Achtet darauf das am ende eine Doppelklammer ohne komma ist! Sowie das "-Zeichen!
also immer ,[`license_fraktion_variablenname`,0], <- Das Komma nur wenn danach noch eine Lizenz kommt ansonsten muss das ende so aussehen: ...,0]]"
Kapitel 1 ist nun abgeschlossen man kann diese Lizenz nur per Datenbankeintag bekommen. Ändert die 0 zu eine 1 um dem Spieler die Lizenz zu geben.
Kapitel 2 - Lizenz Kaufbar machen
Schritt 1.
Ihr öffnet euren Map Editor und wählt ein Objekt an dem man später die Lizenz kaufen soll. (Meistens ein NPC oder ein Schild)
Schritt 2.
Nachdem ihr das Objekt gesetzt habt macht ihr Doppelklick drauf und trag Folgendes in die Init ein:
und
sowie
this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "tutorial" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "tutorial" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"tutorial",0,false,false,"",' !license_civ_tutorial && playerSide isEqualTo civilian '];
"tutorial" <- Änderbar in deinen Variablennamen
"!licencse_civ_tutorial" entspricht "!license_fraktion_variablenname" Fraktionen: civ/cop/med
"isEqualTo civilian" <- "civillian" = Zivilisten "west" = Polizei/Bluefor "independent" = Medic
und am ende sieht es wie folgt aus
this allowDamage false; this enableSimulation false; this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "tutorial" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "tutorial" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"tutorial",0,false,false,"",' !license_civ_tutorial && playerSide isEqualTo civilian '];
Kapitel 2 ist nur abgeschlossen. Man kann die Lizenz nur per Mausradmenü an dem Objekt kaufen.
Kapitel 3 - Einen Lizenzabhängigen Spawnpunkt erstellen
Schritt 1.
Ihr erstellt im MapEditor einen Marker. Ihr müsst euch den Namen des Markers nicht den Text merken Beispiel: "tutorial_spawn"
Schritt 2. Version 4.4 R3
Ihr öffnet nun die Config_SpawnPoints.hpp im Config Ordner.
Geht dann in die gewünschte Mapklasse wie "class Altis" oder "class [lexicon]Tanoa[/lexicon]"
Und fügt entweder unter "class Cop" (Polizei) / "class Civilian" (Zivilisten) / "class Medic" (Sanitäter)
folgendes ein:
class Turoial { Belibiger Klassenname
displayName = "Tutorial Spawn"; Name der im Spawnmenü
spawnMarker = "tutorial_spawn"; Markername den ihr erstellt habt
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa"; Belibiges Icon (Beispiel=Bunker)
conditions = "license_civ_tutorial"; Eure Lizenz
};
Das sieht dan ungefähr so aus:
class Altis {
class Civilian {
class Kavala {
displayName = "Sicherheitszone";
spawnMarker = "civ_airport";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class RebelN {
displayName = "Versteck Nord";
spawnMarker = "Rebelop";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelS {
displayName = "Versteck Süd";
spawnMarker = "Rebelop_1";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class Turoial {
displayName = "Tutorial Spawn";
spawnMarker = "tutorial_spawn";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_tutorial";
}; <- Endklammer für die Spawnpunktklasse
}; <- Endklammer für den Zivilisten bereich
class Cop {
class Kavala {
displayName = "Camp Alpha";
spawnMarker = "cop_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
};
class Medic {
class Kavala {
displayName = "Camp Alpha";
spawnMarker = "medic_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
};
};
Alles anzeigen
Schritt 2. Version bis 4.4
Ihr öffnet nun die fn_SpawnPintCfg.sqf unter Dialog / Function...
Fügt nun unter "case west" (Polizei) / "case civilian" (Zivilisten) / "case indipendant" (Sanitäter)
folgendes ein:
if(license_civ_turorial && playerSide == civilian) then {
_return = _return + [
["tutorial_spawn","Tutorial Spawn","\a3\ui_f\data\map\MapControl\bunker_ca.paa"]
];
};
Das ganze is so aufgebaut:
if(license_fraktion_lizenz && playerSide == civilian/west/indipendant) then {
_return = _return + [
["Markername","Name im Spawnmenü","Pfad zu einem belibigen Icon"]
];
};
Alles anzeigen
Am ende Sollte eure Spawnpunkt CFG wie folgt aussehen:
/*
File: fn_spawnPointCfg.sqf
Author: Bryan "Tonic" Boardwine
Description:
Master configuration for available spawn points depending on the units side.
Return:
[Spawn Marker,Spawn Name,Image Path]
*/
private["_side","_return"];
_side = [_this,0,civilian,[civilian]] call BIS_fnc_param;
//Spawn Marker, Spawn Name, PathToImage
switch (_side) do
{
case west:
{
_return = [
["cop_spawn_1","Zentrale","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["cop_spawn_2","CP Alpha","\a3\ui_f\data\map\MapControl\fuelstation_ca.paa"],
["cop_spawn_3","CP Bravo","\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa"],
["cop_spawn_4","CP Charlie","\a3\ui_f\data\map\Markers\NATO\b_air.paa"],
["cop_spawn_5","SEK Zentrale","\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa"]
];
};
case civilian:
{
_return = [
["civ_spawn_1","Kavala","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["civ_spawn_2","Pyrgos","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["civ_spawn_3","Athira","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["civ_spawn_4","Sofia","\a3\ui_f\data\map\MapControl\watertower_ca.paa"]
];
if(license_civ_turorial && playerSide == civilian) then {
_return = _return + [
["tutorial_spawn","Tutorial Spawn","\a3\ui_f\data\map\MapControl\bunker_ca.paa"]
];
};
if(count life_houses > 0) then {
{
_pos = call compile format["%1",_x select 0];
_house = nearestBuilding _pos;
_houseName = getText(configFile >> "CfgVehicles" >> (typeOf _house) >> "displayName");
_return pushBack [format["house_%1",_house getVariable "uid"],_houseName,"\a3\ui_f\data\map\MapControl\lighthouse_ca.paa"];
} foreach life_houses;
};
};
case independent: {
_return = [
["fw_spawn","Leiststelle Kavala","\a3\ui_f\data\map\MapControl\hospital_ca.paa"]
];
};
};
_return;
Alles anzeigen
Kapitel 3 ist nurn abgeschlossen ihr habt einen Spawnpunkt erstellt den man nur mit der Lizenz benutzen kann.
Kapitel 4 - Einen Lizenzabhängigen Shop erstellen
Ich erkläre es anhand eines Waffenschops aber es ist generell verwendbar.
Schritt 1.
Ihr öffnet die Shop Config
Schritt 2. Version 4.4 R3
Erstellt nun eine Shopklasse im jeweiligen Bereich
class Tutorial { Shopklasse (wichtig)
name = "Turotial"; Name im Oberen Shopfenster
side = "civ"; Fraktion entwerder civ/med/cop
conditions = "license_civ_tutorial"; Lizenz
items[] = {
{ "Klassenname", "", Kaufpreis, Verkaufspreis, "" },
{ "hgun_Pistol_heavy_02_F", "", 2500, 100, "" },
{ "Waffe 2", "Freilassen wenn du keinen eigenen Namen verwendest", 4500, 100, "" },
{ "Klassenname", "Taser", 100, 10, "" }
};
mags[] = { <- Magazine im Shop
{ "Magazin", "Eigener Name", 125, 100, "" },
{ "Magazin_Taser", "Magazin", 150, 100, "" },
{ "Magazin 2", "Freilassen wenn du keinen eigenen Namen verwendest", 4500, 100, "" },
{ "30Rnd_9x21_Mag", "", 250, 100, "" }
};
accs[] = { <- Aufsätze im Shop
{ "optic_ACO_grn_smg", "", 950, 100, "" }
};
};
Alles anzeigen
Schritt 2. Version 4.4
Öffnet die Config_Weapons.hpp im Hauptverzeichniss
Dann erstellt eine neue Klasse wie folgt:
class Tutorial { Klassenname (Wichtig)
name = "Hypervee's Shop"; Name im Shopdisplay
side = "civ"; Fraktion civ/cop/med
license = "tutorial"; benötigte Lizenzvariable
level[] = { "", "", -1, "" };
items[] = { <- Im Shop erhältliche Items wie Werkzeugkasten oder Waffen
{ "Klassenname", "Eigener Name oder Freilassen", Kaufpreis, Verkaufspreis },
{ "Waffe", "Taser",1000, 100 },
{ "hgun_ACPC2_F", "", 11500, -1 },
{ "hgun_PDW2000_F", "", 20000, -1 },
{ "optic_ACO_grn_smg", "", 2500, 250 } <- Immer am ende das Komma weglassen!
};
mags[] = { <- Dazugehörige Magazine
{ "Klassenname", "Eigener Name oder Freilassen", Kaufpreis},
{ "Magazin", "Revolver 6 Schuss", 50 },
{ "9Rnd_45ACP_Mag", "", 45 },
{ "30Rnd_9x21_Mag", "", 75 } <- Immer am ende das Komma weglassen!
};
};
Alles anzeigen
Schritt 3.
Ihr öffnet euren Map Editor und wählt ein Objekt an dem man später den Shop benutzen können Soll.
Schritt 4.
Nachdem ihr das Objekt gesetzt habt macht ihr Doppelklick drauf und trag Folgendes in die Init ein:
und
sowie der Shop
this addAction["Tutroial Shop",life_fnc_weaponShopMenu,"tutorial"];
der Aufbau ist wie folgt:
this addAction["Name der im Scrollmenü angezeigt wird",life_fnc_weaponShopMenu,"eurer Klassenname"];
Achtung:
life_fnc_weaponShopMenu funktioniert nur beim Waffenshop!
Für einen Kleiderladen müsst ihr life_fnc_clothingMenu benutzen und die Klasse in der Config_Clothing.hpp erstellen!
this addAction["Tutroial Kleidung",life_fnc_clothingMenu,"tutorial"];
und am ende sollte es so aussehen:
this allowDamage false; this enableSimulation false; this addAction["Tutroial Shop",life_fnc_weaponShopMenu,"tutorial"];
Nun ist auch Kapitel 4. abgeschlossen du hast einen Shop mit einer benötigten Lizenz erstellt.
Schlusswort
Ich habe mir für diese Tutorial viel Zeit genommen (etwas über 3 Stunden)
und hoffe das ich euch damit helfen konnte
Bei fragen oder Problemen stehe ich gerne unter diesem Post zur verfügung!
mfg. HyperVee - Penta Mediaworks