Hierzu öffnet ihr die Datei “core/config/fn_varToStr.sqf
hier gebt ihr euren life Items einen Namen
Aussehen sollte dies so:
{ //Virtual Inventory Items case "life_inv_zyankali": {"Zyankalikapsel"}; .... };
Nun öffnet ihr die core/config/fn_Handle.sqf
und fügt folgendes ein:
case 0: { switch (_var) do { case "zyankali": {"life_inv_zyankali"}; .... .... .... case 1: { switch (_var) do { case "life_inv_zyankali": {"zyankali"};
Nun habt ihr das Item erstellt.
Wir müssen nun festlegen, wo dieses Item zu kaufen ist.
Dazu benötigen wir die Datei: core/config/fn_virtShops.sqf
ergänzt werden muss:
"zyankali"
Wenn ihr es im normalen Markt kaufbar machen wollt, sieht dies so aus:
case "market": {["Markt",["water","redgull","tbacon","lockpick","pickaxe","fuelE","apple","peach","zyankali"]]};
Alternativ könnt ihr auch einen neuen Verkaufsstand eröffnen.
Dazu müsst ihr einfach einen neuen case hinzufügen:
case "NEUER NAME": {["ANGEZEIGTER NAME",["ITEM","ITEM","ITEM"]]};
Dann im Mapeditor natürlich noch einen NPC oder was auch immer erstellen und diesem folgende Zeile hinzufügen:
this allowDamage false; this enableSimulation false; this addAction[""ANGEZEIGTER NAME"",life_fnc_virt_menu,""NEUER NAME""];
Der nächste Schritt ist es, für das neue Item auch einen Preis festzulegen.
Dafür brauchen wir die configuration.sqf
hinzufügen:
life_inv_items = [ "life_inv_zyankali", <<< solltet ihr es als letztes Item einfügen muss das Komma weg!!! ];
Soll es nicht verkaufbar sein, lasst diesen Pasus einfach weg.
sell_array = [ ["zyankali",5000], <<< solltet ihr es als letztes Item einfügen, muss das Komma weg!!! ];
buy_array = [ ["zyankali",30000], <<< solltet ihr es als letztes Item einfügen, muss das Komma weg!!! ];
Nun habt ihr ein Item, was an jedem Markt für einen Preis von 30.000 gekauft werden kann.
Das Ganze lässt sich umwandeln für jedes Item. Ihr könnt auf die selbe Weise Schmerzmittel einbauen, neue Job-Items, etc..
Weiter geht es damit, dass wir Zyankali auch benutzen können, sprich, dass die User in der Lage sind es im Z-Inventar anzuwählen und zu benutzen.
== 3. Item benutzbar machen:
Öffnet hierzu die core/pmenu/fn_useItem.sqf
Hier findet ihr alle Items, die anwählbar und benutzbar sind. Die Items, die nicht hier aufgeführt werden, sind dank der Zeile:
default { hint "Das kannst du nicht benutzen."; };
case (_item == "zyankali"): { if(([false,_item,1] call life_fnc_handleInv)) then { hint "Du Feigling!!"; []spawn life_fnc_zyankali //sleep 3; //player setdamage 100; }; };
Was dort ausgeklammert ist (//), war ein erster Versuch. Ihr könntet das ganze hier abschließen und die Klammern (//), sowie “[]spawn life_fnc_zyankali” entfernen und hättet folgenden Effekt:
Bei Einnahme des Zyankalis bekommt der Spieler eine Hinweismeldung “Du Feigling!” …nach 3 Sekunden würde er dann tot umfallen, weil seinem “Damage-Konto” 100 Punkte, sprich Maximalschaden, hinzugefügt wurden!
Das kann man aber beispielsweise so noch verfeinern.
Nun müsst ihr im Ordner core/items/ eine Datei erstellen mit dem Namen “fn_zyankali.sqf”. Der Name kann verändert werden. Dabei ist dann aber zu beachten, dass ihr bei dem obigen Code diesen dann auch verändert, sprich diese Zeile:
[]spawn life_fnc_zyankali zu []spawn life_fnc_NEUER-NAME
In diesem File fügt ihr folgendes ein:
////////////////// //Author: Toto///// //abetterworld.de// ////////////////// [[0,format["%1 der Feigling wird nun elendlich an Zyankali verenden!",player getVariable["realname",name player]]], "life_fnc_broadcast",true,false] spawn life_fnc_MP;// globale nachricht an alle spieler enableCamShake true;// kamera gewackle addCamShake [10, 45, 10]; player setFatigue 1;// erschöpfung bei 100% ... sprich der rennt erstma nirgends hin player setDamage (0.1 + (damage player));//+10 schaden sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player)); sleep 3; player setDamage (0.1 + (damage player));// das 10. mal +10 schaden ... 100% also Exitus sleep 3; resetCamShake;// weil tod muss hier auch nichts mehr wackeln player setFatigue 0;// damit er nicht ohne ausdauer spawned
Dafür benötigen wir die letzte File: “functions.h”
dort hinzufügen:
class Items { file = "coreitems"; class zyankali {}; .... };
<span id="Dateien,_die_bearbeitet_werden"> </span> <span id="Dateien.2C_die_bearbeitet_werden" class="mw-headline"> Dateien, die bearbeitet werden </span>
<span id="Dateien,_die_neu_erstellt_werden"> </span> <span id="Dateien.2C_die_neu_erstellt_werden" class="mw-headline"> Dateien, die neu erstellt werden </span>
<span id="1._Erstellen_des_neuen_Items" class="mw-headline"> 1. Erstellen des neuen Items </span>
<span id="2._Item_kauf-/verkaufbar_machen"> </span> <span id="2._Item_kauf-.2Fverkaufbar_machen" class="mw-headline"> 2. Item kauf-/verkaufbar machen </span>
<span id="4._Extra_Effekt_für_Zyankali"> </span> <span id="4._Extra_Effekt_f.C3.BCr_Zyankali" class="mw-headline"> 4. Extra Effekt für Zyankali </span>
<span id="5._Dem_Server_sagenm_wo_er_die_Funktion_"zyankali"_findet"> </span> <span id="5._Dem_Server_sagenm_wo_er_die_Funktion_.22zyankali.22_findet" class="mw-headline"> 5. Dem Server sagenm wo er die Funktion “zyankali” findet </span>