Allgemeines:
Es ist zwar nichts besonderes, aber dennoch kann es einen Server bereichern. Es fügt nur die Zigarette als Z-Item hinzu und erzeugt Rauch bei dessen Verwendung.
Zu bearbeitende Dateien:
- configuration.sqf
- fn_varToStr.sqf
- fn_varHandle.sqf
- fn_itemWeight.sqf
- fn_useItem.sqf
- fn_virt_shops.sqf
- functions.h
Zu ergänzende Datei:
- fn_usetobacco.sqf
Ort der Dateien:
Spoiler anzeigen
configuration.sqf
Altis_Life.Altis\core
fn_varToStr.sqf
Altis_Life.Altis\core\config
fn_varHandle.sqf
Altis_Life.Altis\core\config
fn_itemWeight.sqf
Altis_Life.Altis\core\config
fn_useItem.sqf
Altis_Life.Altis\core\pmenu
fn_virt_shops.sqf
Altis_Life.Altis\core\config
functions.h
Altis_Life.Altis\
fn_usetobacco.sqf
Altis_Life.Altis\core\actions
1. Configuration.sqf
Öffnet die configuration.sqf und fügt in die life_inv_items Sektion das Tobacco hinzu:
"life_inv_tobacco"
1.1 Fügt in den buy_array ebenfalls das Tobacco hinzu:
["tobacco",150]
Tipp 1:
Spoiler anzeigen
Den Kaufpreis könnt ihr selbst bestimmen, bei mir liegt er bei 150€.
Tipp 2:
Spoiler anzeigen
Vergesst ebenfalls nicht ein Komma beim vorletzten Item zusetzen, da ansonsten der Array nicht mehr funktioniert!
Hier ein Beispiel für ein Buy_Array:
Spoiler anzeigen
buy_array =
[
["apple",65],
["rabbit",75],
["salema",55],
["ornate",50],
["mackerel",200],
["tuna",900],
["mullet",300],
["catshark",350],
["water",10],
["turtle",4000],
["turtlesoup",2500],
["donuts",120],
["coffee",10],
["tbacon",75],
["lockpick",150],
["pickaxe",1200],
["redgull",1500],
["fuelF",850],
["peach",68],
["spikeStrip",2500],
["blastingcharge",35000],
["boltcutter",7500],
["defusekit",2500],
["storagesmall",75000],
["gpstracker",2000], //GPS
["diaper",100],
["storagebig",150000],
["tobacco",150]
];
Alles anzeigen
Und hier nochmal eins für den life_inv_items Sektor:
Spoiler anzeigen
life_inv_items =
[
"life_inv_oilu",
"life_inv_oilp",
"life_inv_heroinu",
"life_inv_heroinp",
"life_inv_cannabis",
"life_inv_marijuana",
"life_inv_apple",
"life_inv_rabbit",
"life_inv_salema",
"life_inv_ornate",
"life_inv_mackerel",
"life_inv_tuna",
"life_inv_mullet",
"life_inv_catshark",
"life_inv_turtle",
"life_inv_fishingpoles",
"life_inv_water",
"life_inv_donuts",
"life_inv_turtlesoup",
"life_inv_coffee",
"life_inv_fuelF",
"life_inv_fuelE",
"life_inv_pickaxe",
"life_inv_copperore",
"life_inv_ironore",
"life_inv_ironr",
"life_inv_copperr",
"life_inv_sand",
"life_inv_salt",
"life_inv_saltr",
"life_inv_glass",
"life_inv_tbacon",
"life_inv_lockpick",
"life_inv_redgull",
"life_inv_peach",
"life_inv_diamond",
"life_inv_coke",
"life_inv_cokep",
"life_inv_diamondr",
"life_inv_spikeStrip",
"life_inv_rock",
"life_inv_cement",
"life_inv_goldbar",
"life_inv_blastingcharge",
"life_inv_boltcutter",
"life_inv_defusekit",
"life_inv_storagesmall",
"life_inv_storagebig",
"life_inv_diaper",
"life_inv_dirtydiaper",
"life_inv_mais",
"life_inv_zucker",
"life_inv_brenn",
"life_inv_raff",
"life_inv_schnaps",
"life_inv_benzin",
"life_inv_diesel",
"life_inv_bauma",
"life_inv_gpstracker", //GPS
"life_inv_tobacco"
];
Alles anzeigen
2. fn_varToStr.sqf
Öffnet die fn_varToStr.sqf und fügt in die Virtual Inventory Items Sektion folgendes ein:
case "life_inv_tobacco": {"Zigaretten"};
3. fn_varHandle.sqf
Öffnet die fn_varHandle.sqf und fügt Folgendes hinzu:
case 0:
case "tobacco": {"life_inv_tobacco"};
case 1:
case "life_inv_tobacco": {"tobacco"};
4. fn_itemWeight.sqf
Öffnet die fn_itemWeight.sqf und fügt euer Tobacco am Ende (unter dem letzten Case) ein:
case "tobacco": {2};
Tipp 3:
Spoiler anzeigen
Ihr könnt das Item Gewicht beliebig anpassen. Je nachdem, wie schwer bzw. leicht es ist, nimmt es mehr oder weniger Platz im Spielerinventar ein.
5. fn_usetobacco.sqf
Geht in euren Actions Ordner. Dieser befindet sich in core\actions . Dort erstellt ihr die Datei namens fn_tobacco.sqf und fügt folgendes hinzu:
/* File: fn_usetobacco.sqf
Author: jakesmithey
Description: An effect for smoking a cigarette.
*/
cutText ["Du hast dir eine Zigarette aus der Packung genommen..","PLAIN",2];
sleep 3;
cutText ["Mmmm...Ich werde diese erfrischende, leckere Zigarette geniessen.","PLAIN",2];
_smoke = "SmokeShell" createVehicle position player;
if (vehicle player != player) then
{
_smoke attachTo [vehicle player, [-0.6,-1,0]];
}
else
{
_smoke attachTo [player, [0,-0.1,1.5]];
};
Alles anzeigen
6. fn_useItem.sqf
Öffnet die fn_useItem.sqf und fügt folgendes hinzu:
case (_item == "tobacco"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
[] spawn life_fnc_usetobacco;
};
};
Tipp 4:
Spoiler anzeigen
Hier zum Verlgeich meine fn_useItem.sqf
/*
File: fn_useItem.sqf
Author: Bryan "Tonic" Boardwine
Description:
Main function for item effects and functionality through the player menu.
*/
private["_item"];
disableSerialization;
if((lbCurSel 2005) == -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";};
_item = lbData[2005,(lbCurSel 2005)];
switch (true) do
{
case (_item == "water" or _item == "coffee"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
life_thirst = 100;
player setFatigue 0;
};
};
case (_item == "boltcutter"): {
[cursorTarget] spawn life_fnc_boltcutter;
closeDialog 0;
};
case (_item == "blastingcharge"): {
player reveal fed_bank;
(group player) reveal fed_bank;
[cursorTarget] spawn life_fnc_blastingCharge;
};
case (_item == "defusekit"): {
[cursorTarget] spawn life_fnc_defuseKit;
};
case (_item in ["storagesmall","storagebig"]): {
[_item] call life_fnc_storageBox;
};
case (_item == "redgull"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
life_thirst = 100;
player setFatigue 0;
[] spawn
{
life_redgull_effect = time;
titleText[localize "STR_ISTR_RedGullEffect","PLAIN"];
player enableFatigue false;
waitUntil {!alive player OR ((time - life_redgull_effect) > (3 * 60))};
player enableFatigue true;
};
};
};
case (_item == "spikeStrip"):
{
if(!isNull life_spikestrip) exitWith {hint localize "STR_ISTR_SpikesDeployment"};
if(([false,_item,1] call life_fnc_handleInv)) then
{
[] spawn life_fnc_spikeStrip;
};
};
case (_item == "fuelF"):
{
if(vehicle player != player) exitWith {hint localize "STR_ISTR_RefuelInVehicle"};
[] spawn life_fnc_jerryRefuel;
};
case (_item == "lockpick"):
{
[] spawn life_fnc_lockpick;
};
case (_item in ["apple","rabbit","salema","ornate","mackerel","tuna","mullet","catshark","turtle","turtlesoup","donuts","tbacon","peach"]):
{
[_item] call life_fnc_eatFood;
};
case (_item == "pickaxe"):
{
[] spawn life_fnc_pickAxeUse;
};
case (_item == "gpstracker"):
{
[cursorTarget] spawn life_fnc_gpsTracker;
};
case (_item == "diaper"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
life_toilet = 100;
[true,"dirtydiaper",1] call life_fnc_handleInv;
hint "You put a new diaper on, and you just let it flow. Now you have a dirty diaper - you should better get rid of it before questions get asked.";
};
};
case (_item == "brenn"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
[] spawn life_fnc_usebrenn;
};
};
case (_item == "raff"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
[] spawn life_fnc_useraff;
};
};
case (_item == "tobacco"):
{
if(([false,_item,1] call life_fnc_handleInv)) then
{
[] spawn life_fnc_usetobacco;
};
};
default
{
hint localize "STR_ISTR_NotUsable";
};
};
[] call life_fnc_p_updateMenu;
[] call life_fnc_hudUpdate;
Alles anzeigen
7. fn_virt_shops.sqf
Öffnet die fn_virt_shops.sqf und fügt folgendes zum case "market" hinzu:
"tobacco"
Tipp 5:
Spoiler anzeigen
Achtet darauf, dass ihr ein Komma nach dem letzten Item setzt, da ansonsten der Array nicht mehr funktioniert.
Dann kann sowas ungefähr so aussehen:
8. functions.h
Öffnet die functions.h und fügt zur Sektion actions eure usetobacco Funktion hinzu:
class usetobacco {};
Übersetzung und Ausarbeitung nach: CptPanther
Scripting: jacksmithey