Mitspieler Online

· Gäste: 28

· Mitspieler Online: 0

Login

Benutzername

Passwort



Passwort vergessen?
Um ein neues Passwort anzufordern klicke hier.

Ereignisse

<< Mai 2024 >>
Mo Di Mi Do Fr Sa So
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Social

Thema ansehen

 Thema drucken
FETT_CfgLoadouts
14.06.2015 um 13:36

Top  #1  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

FETT CfgLoadouts v0.2.60


------------------------------
FETT Loadouts Einleitung
------------------------------

Dieses configbasierte Loadoutsystem erlaubt es Missionsbauern schnell Loadouts zu erstellen und auf häufige Redundanzen zu verzichten.

------------------------------
Funktionsweise
------------------------------

Um mit diesen Loadouts umgehen zu können sollte man rudimentär mit Configs unter ArmA umgehen können. Wer das nicht kann, wirft besser einen schnellen Blick auf das COnfigtutorial am Ende dieser Datei.

Jedes Loadout spiegelt eine Klasse wieder und besteht aus vier Unterklassen:
1. Container - Enthält die Uniform, Weste und Rucksack
2. Gear - Hier wird gespeichert, was für Ausrüstung das Loadout beinhaltet, Dinge wie z.B. Helm, Karte, Fernglas, etc.
3. Weapons - Diese Klasse enthält die drei Unterklassen nämlich die primaryWeapon (Gewehr), die secondaryWeapon (z.B. Raketenwerfer) und die handGun (Pistole). Jeder dieser drei Klassen ist vom Typ der WeaponClass, mehr Erklärung dazu später.
4. Items - Diese Klasse speichert alle weiteren Items des Loadouts, Granaten, Medic Material und sonstiges.

Wie diese Klassen aufgebaut sind, kann in der CfgDefines gesehen werden. Die meisten Variablen sind vom Namen her selbsterklärend. Der Suffix "_pool" bedeutet, dass nicht der gesamte Inhalt des Arrays dem Soldaten gegeben wird, sondern eines der Elemente ausgewählt wird. Daher dürfen in diesen Arrays nur Strings enthalten sein, die Classnames der Items darstellen.
Alle weiteren Arrays werden dem Loadout komplett hinzugefügt und können folgendes enthalten: Entweder einen String, der den Classname eines Items direkt darstellt, oder ein Array nach der Struktur {"CLASSNAME",ANZAHL}, das vom gegebenen Typ CLASSNAME ANZAHL Items hinzufügt.

Ein besonderer Blick sollte aber auf den Aufbau der WeaponClass gelegt werden. Die Variable weapon_pool[] beinhaltet die Waffen, aus denen ausgewählt werden soll. Es ist nicht möglich Waffen verschiedener Kaliber einzubauen, bzw. man sollte es nicht tun, weil das Magazin ebenfalls definiert wird und dazu kein Pool zur Verfügung steht. Dieser weapon_pool[] dient eher dazu, z.B. verschiedene Waffenskins zufällig auswählen zu lassen.
Diese vier Pools wählen die Attachments für die Waffe aus: muzzleAttachment_pool[], weaponRestingAttachment_pool[], barrelAttachment_poo[] und der scope_pool[], dazu sollte keine weitere Erklärung notwendig sein.
magazine definiert das Magazin, magazineTracer das Tracer Magazin. magazinesMax definiert die maximale Anzahl an Magazinen inklusive Tracern. magazinesTracersEvery definiert das "Tracer-Intervall". Ist magazinesTracersEvery auf 3 gesetzt, bedeutet das, dass jedes dritte Magazin ein Tracer Magazin wird.
Es ist lediglich möglich eine Maximalanzahl von Magazinen anzugeben, weil das Loadout sich automatisch darum kümmern wird, die Anzahl an Magazinen auszugleichen. Dazu werden die Magazine für alle Waffen gleichmäßig verteilt. Sollte der Soldat also zu wenig Platz im Rucksack (oder sonstigen Containern) haben, dann wird er trotzdem alle Arten von Magazinen erhalten. Nur von allen anteilsmäßig weniger.

------------------------------
Aufbau eines Loadouts & Verwendung
------------------------------

Um ein Loadout zu erstellen, muss an nur alle Variablen entsprechend setzen.
Jeder Configeintrag, der in der CfgDefines.hpp gelistet ist, muss in jedem Loadout enthalten sein. Um sicherzugehen, dass jeder Eintrag enthalten ist, sollte immer mit Vererbungen gearbeitet werden.

Alle Loadouts, die verwendet werden sollen, müssen in der description.ext in der class CfgLoadouts {}; und als Unterklasse in der entsprechenden Fraktion enthalten sein.
Der Name der Fraktion wird durch den Namen der Unterklasse in der CfgLoadouts definiert.

------------------------------
Loadout anwenden
------------------------------

Um ein Loadout anzuwenden, muss man lediglich folgenden Funktionsaufruf verwenden:
["NAME DES LOADOUTS","NAME DER FRATKION",OBJEKT] call FETT_fnc_applyCfgLoadout;
Dabei stellt "NAME DES LOADOUTS" einen Eintrag in der CfgLoadouts dar. Wird er ausgelassen, wird der Classname des Objekts verwendet, dem das Loadout zugeteilt wird.
"NAME DER FRAKTION" die entsprechende Fraktion. Wird er ausgelassen, wird die Fraktion in den CfgVehicles des Objekts verwendet, dem das Loadout zugeteilt wird.
OBJEKT ist ein optionaler Parameter, der das Objekt darstellt, dem das Loadout hnizugefügt werden soll. Wird dieser Parameter weggelassen, wird player verwendet.

------------------------------
Kleines Cfg Tutorial
------------------------------

Configs sind nichts als Daten. Aber sie haben ein paar Vorteile, die den Aufbau und die Strukturierung dieser Daten erheblich vereinfachen.

Es gibt zwei Arten von Datentypen: Klassen und Elementardaten.
Klassen werden folgendermaßen definiert:
class NAME {};
Eine Klasse enthält mehrere weitere Klassen oder andere Elementardaten, die ihr untergeordnet sind, sodass man mittels eines Pfades darauf zugreifen kann.
Elementardaten werden wiefolgt definiert:
NAME = DATEN;
Ein paar Unterschiede zu Datentypen in .sqf gibt es dennoch, denn Arrays müssen definiert werden. Will man Arrays darstellen, muss man dies darstellen indem man [] hinter den Namen des Arrays schreibt. Außerdem werden Arrays mit geschweiften Klammern umschlossen, hier ein kleines Beispiel:
ichBinEinArray[] = {1,2,3,"viertesElement"};

Ein wichtiger Teil von Configs ist die Vererbung. Eine andere Klasse kann von einer weiteren erbenund das sieht ungefähr so aus:

class ParentClass {
string = "abc";
number = 1;
array[] = {1, 2, 3};
};
class ChildClass : ParentClass {
number = 2;
};

Bei der Vererbung passiert folgendes: Die ChildClass "erbt" alle Inhalte der ParentClass. Sie werden einfach reinkopiert. Und ihr könnt sie überschreiben, indem ihr sie einfach neu schreibt. So könnt ihr komplexe Beziehungen aufbauen und somit Redundanzen vermeiden und den Code sicherer gestalten.

GitHub
(Zum Download unten rechts auf Download ZIP klicken)
Bearbeitet von Anonymer Benutzer am 07.10.2015 um 00:25
14.06.2015 um 13:45

Top  #2  Beitrag drucken

JeremiahRose

Benutzeravatar
Ordensmann

Die Macht an dich gerissen

Forenprofi


Beiträge: 2329

Registriert am: 09.05.12

[img]http://i.imgur.com/Dat8mUu.jpg[/img] is not a valid Image.
14.06.2015 um 14:23

Top  #3  Beitrag drucken

BlauBaer

Benutzeravatar
W-ichtigtuer


Beiträge: 832

Registriert am: 06.02.15

Ich weiß ja nicht, das System klingt sehr umfangreich, aber auch etwas nach overkill. Ich persönlich kenne und benutze folgendes System das ähnlich, aber deutlich einfacher arbeitet und auch einfacher zu benutzen ist:
https://github.co...g-loadout/
Es erlaubt den direkten Export aus dem Virtual Arsenal, arbeitet auch mit Configs und erlaubt Vererbung, Generalisierung, Spezialisierung uvm. Ich kann es nur empfehlen.
14.06.2015 um 15:23

Top  #4  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

Dein System ist halt schön, weil es exportiert werden kann.
Aber was ich halt schön finde ist, dass man seine Waffen z.B. einzeln definieren kann.
Bei dir sind die Vererbungen nur unter den gesamten Loadouts möglich, richtig?
14.06.2015 um 16:32

Top  #5  Beitrag drucken

BlauBaer

Benutzeravatar
W-ichtigtuer


Beiträge: 832

Registriert am: 06.02.15

Ich weiß nicht genau was du jetzt meinst mit Waffen einzeln definieren? Meinst du mit Attachments usw.? Nein, das geht nicht wirklich. Eine Waffe mit Attachments zu definieren geht allerdings mit zwei Zeilen.

Vererbung sind nur über die gesamten Loadouts möglich, ja, macht aber wirklich keine Arbeit. Ich mache immer ein normales Loadout mit AllBlufor welches den Standard Rifleman darstellt. Die einzelnen Klassen erben dann davon, sind oft nur kleine Änderungen wie Waffe und Magazine. Ich kann heute abend mal ein kleines Beispiel posten, dann sieht man eher wie viel bzw. wenig Arbeit das ist.
14.06.2015 um 16:34

Top  #6  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

Ne, musst du nicht, habe ich schon verstanden.
Aber ich kann einfach die Waffen einzeln definieren, d.h. ich sage einfach
class MX : WeaponClass {
   weapon[] = {"arifle_MX_F"};
   barrelAttachment[] = {"acc_pointer_IR"};
   scope[] = {"optic_Aco"};
        magazine = "30Rnd_65x39_caseless_mag";
   magazineTracer = "30Rnd_65x39_caseless_mag_Tracer";
   magazinesMax = 15;
        magazinesTracerEvery = 3;
};


Und jetzt kann ich jedem, der eine MX bekommen soll, einfach diese Waffe geben!
14.06.2015 um 18:16

Top  #7  Beitrag drucken

BlauBaer

Benutzeravatar
W-ichtigtuer


Beiträge: 832

Registriert am: 06.02.15

Ich weiß nicht, klar dein System ist ziemlich mächtig in dem Bereich, ob das wirklich nötig ist ist eine andere Sache - ich glaube ein komplettes Loadout für eine ganze Mission wird bei dir einfach sehr sehr groß (das meinte ich mit Overkill) da es extrem detailliert ist. Vielleicht wäre ein Skript das ein VA Loadout in dein Format umwandelt sinnvoll.

Abgesehen davon, vielleicht kann man irgendwie kennzeichnen welche Einträge einen Pool darstellen, aus dem zufällig gewählt wird und welche das komplette Array übernehmen? Vielleicht wenn der erste Eintrag "select all" ist oder so?
14.06.2015 um 18:28

Top  #8  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

Das habe ich mir auch schon überlegt. Ich glaube, ich werde alle Arrays, aus denen ausgewählt wird mit dem Suffix _pool versehen.
15.06.2015 um 20:40

Top  #9  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

Bumms, da ist der Release. Ein wenig überarbeitet und mit einer kompletten Erklärung!
15.06.2015 um 23:19

Top  #10  Beitrag drucken

JeremiahRose

Benutzeravatar
Ordensmann

Die Macht an dich gerissen

Forenprofi


Beiträge: 2329

Registriert am: 09.05.12

Mein Vorschlag noch: Erweiterung um eine Fahrzeug-Sektion
15.06.2015 um 23:28

Top  #11  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

Meiner Meinung nach nicht notwendig, weil Fahrzeuge nicht so dedizierten Kram brauchen. Das ist ja alles ein Container und eben ein paar Items. Die bekommen keine Uniformen, Westen, Waffen, etc.
10.09.2015 um 11:26

Top  #12  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

FETT_CfgLoadouts auf v0.1.1 geupdatet!

Änderung:
  • Bugfix, der Kram funktioniert wieder (da es aber eh keinem von euch aufgefallen ist, denke ich, dass es keiner benutzt hat - außer Hawk Wink)
10.09.2015 um 18:28

Top  #13  Beitrag drucken

Aebian

Benutzeravatar
Rudelführer

An 150 Events bei Gruppe W teilgenommen

W-ichtigtuer


Beiträge: 664

Registriert am: 07.03.15

Schönes Ding!

Ваш человек еще до того, как вы знаете, что это!
I may look calm. But inside my mind I have killed you 20 times in 5 minutes in 20 different ways.
Abteilung Mods Tracker | My website | Just a normal Aebian day | Meine Hardware
11.09.2015 um 11:27

Top  #14  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

FETT_CfgLoadouts auf v0.2.0 geupdatet!

Änderung:
  • Bugfix, Pfade korrigiert
  • Mehrere Loadouts hinzugefügt
11.09.2015 um 11:45

Top  #15  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

FETT_CfgLoadouts auf v0.2.1 geupdatet!

Änderung:
  • Loadout hinzugefügt
11.09.2015 um 11:58

Top  #16  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

FETT_CfgLoadouts auf v0.2.2 geupdatet!

Änderung:
  • Loadout hinzugefügt (jetzt aber wirklich)
11.09.2015 um 18:02

Top  #17  Beitrag drucken

Aebian

Benutzeravatar
Rudelführer

An 150 Events bei Gruppe W teilgenommen

W-ichtigtuer


Beiträge: 664

Registriert am: 07.03.15

Vorschlag für dein Script: Auch auf Github verfügbar machen :>

Man kann im Repo suchen, usw. ^^

Ваш человек еще до того, как вы знаете, что это!
I may look calm. But inside my mind I have killed you 20 times in 5 minutes in 20 different ways.
Abteilung Mods Tracker | My website | Just a normal Aebian day | Meine Hardware
11.09.2015 um 19:05

Top  #18  Beitrag drucken

OmniMan

Benutzeravatar
Alpha-Wolf

An 100 Events bei Gruppe W teilgenommen

W-ichtigtuer


Beiträge: 596

Registriert am: 05.12.14

......Beziehungen aufbauen und somit Redundanzen vermeiden und den Code sicherer gestalten.

Download<-----
"Nobody in the history of fucking warfare has said, hey we're being ambushed, slow down!" -Dslyecxi
Situational Awareness is Everything[Guide]
Der Umgang mit Kriegsgefangenen [Guide]
Willkommen im Team Soldat! [Squadbriefing]
11.09.2015 um 19:14

Top  #19  Beitrag drucken

Aebian

Benutzeravatar
Rudelführer

An 150 Events bei Gruppe W teilgenommen

W-ichtigtuer


Beiträge: 664

Registriert am: 07.03.15

@Omniman:

Dropbox != Github

Ваш человек еще до того, как вы знаете, что это!
I may look calm. But inside my mind I have killed you 20 times in 5 minutes in 20 different ways.
Abteilung Mods Tracker | My website | Just a normal Aebian day | Meine Hardware
11.09.2015 um 21:22

Top  #20  Beitrag drucken

Anonymer Benutzer

Anonymer Benutzer
Laborratte

Eine ArmA-3 Modifikation für Gruppe W erstellt

Forenprofi


Beiträge: 1694

Registriert am: 20.01.13

Downloadlink zu GitHub geändert.
Springe ins Forum:
Seitenaufbau in 0.19 Sekunden
Serverzeit: 22:51:03 Uhr , 54,769,971 eindeutige Besuche