Ahoi liebe NN Community,
heute möchte ich euch ein kleines Script bzw. eine Scripterweiterung präsentieren.
Ich baue auf ein Drug Effect Script auf.
Von diesem sind lediglich die PPEffects, weil ich dazu eventuell zu faul war .
Fangen wir mal an..
Schritt 1.
Wir erstellen ein Item. Hierfür gehen wir in die Config_vItems.hpp diese Befindet sich in /config. Dort erstellen wir unter Class Storagebig folgendes..
class LSD {
variable = "LSD";
displayName = "STR_Item_LSD";
weight = 10;
buyPrice = 15000;
sellPrice = -1;
illegal = true;
edible = -1;
icon = "icons\ico_cannabis.paa";
};
Schritt 2
In der selben Datei fügen wir das erstellte Item noch in einen Shop ein. (Einfach ersetzen)
class market {
name = "STR_Shops_Market";
side = "civ";
conditions = "";
items[] = { "waterBottle", "rabbit", "apple", "redgull", "tbacon", "pickaxe", "toolkit", "fuelFull", "peach", "storagesmall", "storagebig", "rabbit_raw", "hen_raw", "rooster_raw", "sheep_raw", "goat_raw","LSD" };
};
Schritt 3
Als nächstes definieren wir unseren String im Stringtable. Hierfür gehen wir in die Stringtable.xml die sich im Hauptordner befindet. Dort fügen wir unter STR_Item_Lockpick folgendes ein...
<Key ID="STR_Item_LSD">
<Original>LSD</Original>
<Czech>LSD</Czech>
<Spanish>LSD</Spanish>
<Russian></Russian>
<German>LSD</German>
<French>LSD</French>
<Italian>LSD</Italian>
<Portuguese>LSD</Portuguese>
<Polish>LSD</Polish>
</Key>
Alles anzeigen
Schritt 4
Jetzt machen wir unser zukünftiges Item benutzbar. Hierzu gehen wir in core/pmenu und editieren die fn_useItem.sqf dort fügen wir unter dem Case Lockpick folgendes ein.
case (_item isEqualTo "LSD"): {
if(([false,_item,1] call life_fnc_handleInv)) then {
[] spawn life_fnc_lsd;
closeDialog 0;
};
};
Schritt 5
Jetzt Erstellen wir die Function zu unserem Item. Hierfür geht ihr in core/items und erstellt eine Datei. fn_LSD.sqf in diese Schreibt ihr folgendes rein.
/*
Author: PPEffects : AlaskaVet | ChickenPart : Joe Barbaro
///PPEffect von ALTISLIFERPG (https://www.altisliferpg.com/topic/2257-tutorial-effects-for-heroin/)\\\
Description: Ein Drug effect Script
*/
"chromAberration" ppEffectEnable true;
"radialBlur" ppEffectEnable true;
enableCamShake true;
for "_i" from 0 to 20 do
{
"chromAberration" ppEffectAdjust [random 0.25,random 0.25,true];
"chromAberration" ppEffectCommit 1;
"radialBlur" ppEffectAdjust [random 0.02,random 0.02,0.15,0.15];
"radialBlur" ppEffectCommit 1;
addcamShake[random 3, 1, random 3];
sleep 1;
};
//Stop effects
"chromAberration" ppEffectAdjust [0,0,true];
"chromAberration" ppEffectCommit 5;
"radialBlur" ppEffectAdjust [0,0,0,0];
"radialBlur" ppEffectCommit 5;
sleep 5;
//Deactivate ppEffects
"chromAberration" ppEffectEnable false;
"radialBlur" ppEffectEnable false;
resetCamShake;
//Start my Scriptpart :D
player setUnconscious true;
5 cutText ["","BLACK OUT"];
sleep 2;
16 cutText ["Was passiert jetzt?!","PLAIN"];
sleep 5;
private _player = player;
_petdrug = group ANIMAL createUnit ["Cock_white_F", position player, [], 0, "FORM"];
16 cutText ["Alter das Zeug knallt ja mies...","Plain"];
selectPlayer _petdrug;
player allowDamage false;
_petdrug allowDamage false;
5 cutText ["","BLACK IN"];
sleep 120;
selectPlayer _player;
player setUnconscious false;
player allowDamage true;
16 cutText ["Was ein krasser Trip :D... Nochmal...","Plain"];
_petdrug setObjectTextureGlobal [0,"#(rgb,8,8,3)color(1,0,0,1)"];
sleep 20;
private _fire = createVehicle ["test_EmptyObjectForFireBig", position _petdrug, [], 0, "CAN_COLLIDE"];
sleep 2;
deleteVehicle _petdrug;
deleteVehicle _fire;
Alles anzeigen
Schritt 6
Schritt 7
Als letzten Schritt definieren wir unsere Function. Hierfür gehen wir in die Functions.hpp aus dem Hauptordner. Hier fügen wir in der Oberclass Items unter der class storagebig {}; folgendes ein
Wer nicht direkt Zeit zum Testen hat
Verbesserungen sind Erwünscht
Mit freundlichen Grüßen
Joe Barbaro