Hi,
eigentlich schreibe ich nichts unter Vorstellungsbeiträge, aber seid so gut und schau euch euer Forum noch mal aus allen Perspektiven an. Also auch aus allen Rollen. Ich kann als Besucher die internen Bereiche alle sehen, betreten und lesen.
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
Hi,
eigentlich schreibe ich nichts unter Vorstellungsbeiträge, aber seid so gut und schau euch euer Forum noch mal aus allen Perspektiven an. Also auch aus allen Rollen. Ich kann als Besucher die internen Bereiche alle sehen, betreten und lesen.
UPDATE
Habe die fn_fetchDeadGear.sqf ins Tutorial eingefügt, auch im Anhang. Die fn_vehTakeAllItem.sqf befindet sich jetzt auch im Anhang und mit dem Begriff "Erweiterung" am Ende des Tutorials für all die, die das nutzen.
So wie es mit dem heutigen Datum aussieht haben wir nun alles fertig und wünschen alle viel Spaß damit.
TheFireRunner Felix na dann such lieber mal nach der fn_openInventory, dann haste auch die richtige und die solltest du haben
Edit: Okay man muss auch andere Dinge mal mit lesen hab nix gesagt
AvirexDE hast du in der config/Config_Master.hpp den drop_weapons_onDeath auf true oder false? Nur bei true werden die Sachen auch in die Kiste getan. Das mit den Magazinen, und daher warscheinlich auch mit dem Zubehört, habe ich ja seit der letzten Anpassung mit der fn_dropItem.sqf auch. Wie ich das sehe waren das eher Performanceanpassungen, weshalb du die, die jetzt noch im Anhang von Tutorial ist, erst mal nehmen kannst, bis ich das mit moeck berichtigt habe.
Wie gesagt sitzen wir an der TakeAll Geschichte, die dir den HUD Fehler warscheinlich auswirft, das sie ja daran weiter geleitet wird. Manchmal sind die Logs ein wenig witzig Aber im Endeffekt scheint es für mich daher zu kommen. Bisher habe ich noch keine Lösung dafür. Aber da ist moeck doch auch um einiges besser als ich
Du lässt das Geld auch im HUD anzeigen, kann das sein? Warscheinlich sieht er deswegen den Fehler dort bei dir und bei mir in der fn_vehTakeAllItem.sqf, da bei mir keine Weiterleitung zum HUD mehr besteht. Habe jetzt genau das, was moeck zuletzt gepostet hat. Hau sie dir aber gerne noch mal rein. Schaue auch grade schon wie ich den Fehler behebe.
TheFireRunner Felix was moeck sagt ist genau so richtig. Das Tut machen und die fn_fetchDeadGear.sqf wie er sagte ändern. Tut passe ich erst an, wenn das mit dem TakeAll geklärt ist, damit wir nicht jeden Tag 5Updates haben
moeck also folgender Fehler tritt beim TakeAll nun auf:
17:40:31 Error in expression <index,[_ctrl,(_value - _num)]];
};
if !(isNumber _num) then {parseNumber (_num) >
17:40:31 Error position: <isNumber _num) then {parseNumber (_num) >
17:40:31 Error isnumber: Typ Zahl, erwartet Config entry
17:40:31 File core\vehicle\fn_vehTakeAllItem.sqf [life_fnc_vehTakeAllItem], line 110
17:40:48 Error in expression <index,[_ctrl,(_value - _num)]];
};
if !(isNumber _num) then {parseNumber (_num) >
17:40:48 Error position: <isNumber _num) then {parseNumber (_num) >
17:40:48 Error isnumber: Typ Zahl, erwartet Config entry
17:40:48 File core\vehicle\fn_vehTakeAllItem.sqf [life_fnc_vehTakeAllItem], line 110
Alles anzeigen
Und natürlich hatte ich auch deine überarbeitete fn_dropItems.sqf und die fn_fetchDeadGear.sqf geändert, es funktioniert soweit alles ABER die Magazine werden weder im Player noch in der Kiste gespeichert. Weder beim Revive noch beim Respawn.
Noch ein UPDATE
Dieses Update dient dazu, dass man Dinge angeben kann, die NICHT in die Lootbox gespeichert werden sollen und somit beim Tod verschwinden. Gilt für V- und I-Items.
die fn_dropItems.sqf ersetzen mit (dabei auch im Anhang verfügbar):
#include "..\..\script_macros.hpp"
/*
File: fn_dropItems.sqf
Author: moeck
Description:
Called on death, Player drops any 'virtual' items and items. They are stored in a plastic case.
*/
params [
["_unit",objNull,[objNull]]
];
private _restricted_items = LIFE_SETTINGS(getArray,"drop_restricted_vitems");
private _pos = _unit modelToWorld[0,3,0];
_pos = [(_pos select 0),(_pos select 1),0];
private _obj = "Land_PlasticCase_01_small_F" createVehicle _pos; //Solltet ihr ein anderes Objekt wollen, den Classname in allen für diese Funktion benötigten Scripts ändern.
clearWeaponCargoGlobal _obj;
clearItemCargoGlobal _obj;
clearMagazineCargoGlobal _obj;
clearBackpackCargoGlobal _obj;
_name = format ["%1's Lootbox",name _unit];
_obj setVariable ["Name",_name,true]; // %1 bewirkt die Anzeige des Namens des verstorbenen Spielers an, so dass ihr das "'s Lootbox" ändern könnt falls gewünscht.
private _trunk =[];
private _weight = 0;
{
private _value = 0;
private _iweight = 0;
private _itemName= "";
private _item = "";
if (_x isEqualType "") then {_item = _x;} else {_item = configName _x};
if (_item isEqualTo "life_cash") then {
_value = CASH;
_itemName = "CASH";
_item = "money";
} else {
_value = ITEM_VALUE(_item);
_iweight = (([_item] call life_fnc_itemWeight) * _value);
_itemName = ITEM_VARNAME(_item);
};
_weight = _weight + _iweight;
if (_value > 0 && !(_item in _restricted_items)) then {
_trunk pushBack [_item,_value];
};
missionNamespace setVariable [_itemName,0];
} forEach (("true" configClasses (missionConfigFile >> "VirtualItems")) + ["life_cash"]);
_obj setVariable["Trunk",[_trunk,_weight],true];
if (LIFE_SETTINGS(getNumber,"drop_iitems_onDeath") isEqualTo 1) then {
if (!(uniform _unit isEqualTo "")) then {
{_obj addItemCargoGlobal [_x, 1];_unit removeItem _x} forEach (uniformItems _unit);
};
if (!(backpack _unit isEqualTo "")) then {
{_obj addItemCargoGlobal [_x, 1];_unit removeItem _x} forEach (backpackItems _unit);
};
if (!(vest _unit isEqualTo "")) then {
{_obj addItemCargoGlobal [_x, 1];_unit removeItem _x} forEach (vestItems _unit);
};
if (count (primaryWeaponItems _unit) > 0) then {
{_obj addItemCargoGlobal [_x, 1];_unit removeItem _x} forEach (primaryWeaponItems _unit);
};
if (count (handgunItems _unit) > 0) then {
{_obj addItemCargoGlobal [_x, 1];_unit removeItem _x} forEach (handGunItems _unit);
};
if !(primaryWeapon _unit isEqualTo "") then {_obj addItemCargoGlobal [(primaryWeapon _unit), 1]};
if !(handgunWeapon _unit isEqualTo "") then {_obj addItemCargoGlobal [(handgunWeapon _unit), 1]};
removeAllWeapons _unit;
{player removeMagazine _x;} forEach (magazines _unit);
};
[_obj] spawn {
params ["_obj"];
_timer = LIFE_SETTINGS(getNumber,"lootbox_timer");
uisleep (_timer*60);
deleteVehicle _obj
}; //Zeit, bis die Kiste weg ist. Kann durch ändern der 10 (= 10 Minuten) geändert werden.
Alles anzeigen
in config/Config_Master.hpp nach drop_weapons_onDeath tragt ihr folgende Sachen ein
drop_restricted_vitems[]={"apple","peach","tbacon","donuts"}; // V-Items die bei Tod nicht in die Box gelegt werden sollen.
lootbox_timer = 3; // //Zeit, bis die Kiste weg ist. Kann durch ändern der 3 (= 3 Minuten) geändert werden.
drop_iitems_onDeath = true; // true = I-Items (Waffen etc.) werden in die Box gelegt, false = I-Items werden nicht in die Box gelegt.
Alle Änderungen wurden dem Tutorial hinzugefügt.
UPDATE
Na da haben sich ja doch ein paar kleine Fehlerchen eingeschlichen.
In Schritt 1 in der fn_dropItems.sqf muss die Zeile 19 hiermit ersetzt werden:
_name = format ["%1's Lootbox", name _unit]; // %1 bewirkt die Anzeige des Namens des verstorbenen Spielers, so dass ihr das "'s Lootbox" ändern könnt falls gewünscht.
_obj setVariable ["BoxName",_name,true];
Punkt 3 war nicht klar genug ausgedrückt und wurde geändert. Hier haben die meisten ein }; vergessen. Hier wurde auch noch eine Korrektur vorgenommen, ersetzt also bitte alles nach der else Abfrage (mit Tutorial vergleichen):
if (_vehicle isKindOf "Land_PlasticCase_01_small_F") then {
ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",(_vehicle getVariable ["BoxName",""])]];
} else {
ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
};
};
Alle Sachen wurden im Tutorial angepasst.
Das haben wir nicht probiert, aber die Kiste spawnt ein Stück vor einem. Und lieber Risk um niemanden zu verwirren solltest du evtl. noch drauf hinweisen, dass in deinem Beispiel eine andere Kiste verwendet wird, die entsprechend angepasst werden muss Ich werde mal testen ob es im Auto spawnt und das Auto kaputt macht oder sowas, falls ja werd ich den Codeschnipsel von Risk mal einbauen und das austesten und euch die überarbeitete Version reinhauen.
Hey, na das kann und darf mal passieren. Wir beide hatten unseren Spaß dabei und freuen uns, dass du und alle anderen euch die 20 € sparen könnt. Hier geht es dann also für dich direkt zum Tutorial (klick mich :) Viel Spaß damit. Hoffe und denke ich habe es gut erklärt. Wenn du was nicht verstehst gerne unterm Tutorial fragen.