Hallo!
Da ich aktuell kaum was an meinen laufenden Projekten zu tun habe habe ich mich entschieden hier auch mal ein Tutorial zu machen
Vorab ein paar Informationen.
Ich bin kein Profi
Schwierigkeitsgrad 1 (einfach)
Tutorial: Wie erstelle ich eine Waffen "Whitelist" für Ed´s Gungame
Ist vllt. nicht so gefragt wie Arma 3 Life, es gibt jedoch viele Gungame Server die sich verbessern könnten. *hust*
Also fangen wir an hi
Schritt 1
Ihr öffnet die dynamicWeapons.sqf die sich im Normalfall in eurem Missionsverzeichnis befindet und ersetzt die Zeilen 65 und 67 die wie folgt aussehen sollten:
case 1: {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};
case 2: {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};
mit dem hier:
case 1: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};};
case 2: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};};
Schritt 2
Ihr fügt in der dynamicWeapons.sqf die sich im Normalfall in eurem Missionsverzeichnis befindet folgendes in Zeile 58 ein:
_whitelist = ["Waffe1", "Waffe2",...]; //Waffe1 etc. mit den Waffen Classnames versehen die ihr ERLAUBEN möchtet. Es werden keine anderen Waffen verfügbar sein.
Hierbei ersetzt ihr Waffe1, 2 etc. mit den Waffenclassnames die ihr im Spiel haben möchtet. Weder im Votingsystem noch in der WaffenGeneration werden andere Waffen zu finden sein, also alle fleißig eintragen!
EDIT!!
Für die Blacklist sollte der Eintrag in der Zeile 65 und 67 der dynamicWeapons.sqf so aussehen (ungetestet, sollte aber klappen)
Dann die Waffen die Verboten werden sollten einfach wieder in die Whitelist schreiben.
case 1: {if((_x select 0) in _whitelist) then {}; else {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};};
case 2: {if((_x select 0) in _whitelist) then {}; else {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};};
FERTIG! hail
Ich hoffe euch hat mein Tutorial gefallen, bei Fragen könnt ihr euch jeder Zeit an mich wenden.
Da es mein erstes Tutorial war, wäre Kritik sehr nett gamerico
Vielen Dank fürs Lesen.
Ich wünsche euch viel Spaß :3
Zum Vergleich:
VORHER
_weaponArray = []; //classname, description, type, [magazine class, magazine description, magazine icon], picture, attachments
_weaponsConfig = configFile >> "CfgWeapons";
for[{_i = 0},{_i < count(_weaponsConfig)},{_i = _i + 1}] do
{
_currentWeapon = _weaponsConfig select _i;
if(isClass _currentWeapon) then {
if(getNumber(_currentWeapon >> "scope") == 2) then {
if(count(_currentWeapon >> "LinkedItems") == 0) then {
_className = configName(_currentWeapon);
_description = getText(_currentWeapon >> "displayName");
_type = getNumber(_currentWeapon >> "type");
_muzzles = getArray(_currentWeapon >> "muzzles");
_magazines = [];
{
_currentMagazinesArray = [];
if(_x != "this") then
{
_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> _x >> "magazines");
}
else
{
_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> "magazines");
};
for[{_k = 0}, {_k < count(_currentMagazinesArray)}, {_k = _k + 1}] do
{
_currentMagazine = _currentMagazinesArray select _k;
_magazineClass = configName(configFile >> "cfgMagazines" >> _currentMagazine);
_magazineDescription = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "displayName");
_magazineIcon = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "picture");
_magazines = _magazines + [_magazineClass, _magazineDescription, _magazineIcon];
};
}foreach (_muzzles);
_ammo = getText(configFile >> "CfgMagazines" >> (_magazines select 0) >> "ammo");
if(!isNil "_ammo") then {
_damage = getNumber(configFile >> "CfgAmmo" >> _ammo >> "hit");
_picture = getText(_currentWeapon >> "picture");
_attachments = [getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"),
getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"),
getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems")];
if(_damage > 0) then {
_weaponArray = _weaponArray + [[_className, _description, _type, _magazines, _picture, _attachments]];
};
};
};
};
};
};
ED_dynamicWeapons_ThrowPut = []; //0
ED_dynamicWeapons_Primary = []; //1
ED_dynamicWeapons_HandGun = []; //2
ED_dynamicWeapons_LaunchersDetectors = []; //4
ED_dynamicWeapons_MGunCore = []; //5 (mounted on vehicles)
ED_dynamicWeapons_VehicleWeapons = []; //65536 (mounted on vehicles)
ED_dynamicWeapons_Items = []; //131072 (all items like radios, maps, binoculars, clothing, hats, belts)
{
_type = _x select 2;
switch (_type) do
{
case 0: {ED_dynamicWeapons_ThrowPut = ED_dynamicWeapons_ThrowPut + [_x];};
case 1: {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};
case 2: {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};
case 4: {ED_dynamicWeapons_LaunchersDetectors = ED_dynamicWeapons_LaunchersDetectors + [_x];};
case 5: {ED_dynamicWeapons_MGunCore = ED_dynamicWeapons_MGunCore + [_x];};
case 65536: {ED_dynamicWeapons_VehicleWeapons = ED_dynamicWeapons_VehicleWeapons + [_x];};
case 131072: {ED_dynamicWeapons_Items = ED_dynamicWeapons_Items + [_x];};
};
}foreach _weaponArray;
Alles anzeigen
NACHHER
_weaponArray = []; //classname, description, type, [magazine class, magazine description, magazine icon], picture, attachments
_weaponsConfig = configFile >> "CfgWeapons";
for[{_i = 0},{_i < count(_weaponsConfig)},{_i = _i + 1}] do
{
_currentWeapon = _weaponsConfig select _i;
if(isClass _currentWeapon) then {
if(getNumber(_currentWeapon >> "scope") == 2) then {
if(count(_currentWeapon >> "LinkedItems") == 0) then {
_className = configName(_currentWeapon);
_description = getText(_currentWeapon >> "displayName");
_type = getNumber(_currentWeapon >> "type");
_muzzles = getArray(_currentWeapon >> "muzzles");
_magazines = [];
{
_currentMagazinesArray = [];
if(_x != "this") then
{
_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> _x >> "magazines");
}
else
{
_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> "magazines");
};
for[{_k = 0}, {_k < count(_currentMagazinesArray)}, {_k = _k + 1}] do
{
_currentMagazine = _currentMagazinesArray select _k;
_magazineClass = configName(configFile >> "cfgMagazines" >> _currentMagazine);
_magazineDescription = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "displayName");
_magazineIcon = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "picture");
_magazines = _magazines + [_magazineClass, _magazineDescription, _magazineIcon];
};
}foreach (_muzzles);
_ammo = getText(configFile >> "CfgMagazines" >> (_magazines select 0) >> "ammo");
if(!isNil "_ammo") then {
_damage = getNumber(configFile >> "CfgAmmo" >> _ammo >> "hit");
_picture = getText(_currentWeapon >> "picture");
_attachments = [getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"),
getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"),
getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems")];
if(_damage > 0) then {
_weaponArray = _weaponArray + [[_className, _description, _type, _magazines, _picture, _attachments]];
};
};
};
};
};
};
ED_dynamicWeapons_ThrowPut = []; //0
ED_dynamicWeapons_Primary = []; //1
ED_dynamicWeapons_HandGun = []; //2
ED_dynamicWeapons_LaunchersDetectors = []; //4
ED_dynamicWeapons_MGunCore = []; //5 (mounted on vehicles)
ED_dynamicWeapons_VehicleWeapons = []; //65536 (mounted on vehicles)
ED_dynamicWeapons_Items = []; //131072 (all items like radios, maps, binoculars, clothing, hats, belts)
_whitelist = ["Waffe1", "Waffe2",...];
{
_type = _x select 2;
switch (_type) do
{
case 0: {ED_dynamicWeapons_ThrowPut = ED_dynamicWeapons_ThrowPut + [_x];};
case 1: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};};
case 2: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};};
case 4: {ED_dynamicWeapons_LaunchersDetectors = ED_dynamicWeapons_LaunchersDetectors + [_x];};
case 5: {ED_dynamicWeapons_MGunCore = ED_dynamicWeapons_MGunCore + [_x];};
case 65536: {ED_dynamicWeapons_VehicleWeapons = ED_dynamicWeapons_VehicleWeapons + [_x];};
case 131072: {ED_dynamicWeapons_Items = ED_dynamicWeapons_Items + [_x];};
};
}foreach _weaponArray;
Alles anzeigen