Das Urheberrecht dieses Beitrags liegt bei Backer133, am 5. März 2015!
Zitat von Backer133Alles anzeigenSchwierigkeit: Leicht
Hey
Leute,hiermit zeig ich euch ein TuT wie Ihr Drogeneffekte
hinzufügt.Dieses TUT basiert ein bisschen auf dem TUT von Midgetgrimm
und wurde von mir abgeändert und erweitert. Die Drogen sind Stackbar und
nach einer Gewissen Anzahl von Drogen wird man entweder Abhängig,
stirbt oder man bekommt einen Blackout und spawnt irgendwo nackt auf der
Map. Sollte man Abhängig sein erscheinen alle 5 Minuten gruselige
Effekte und man muss sich von einen Medic behandeln lassen (Therapie).
Die Interaktion für Medics habe ich noch nicht ganz fertig, werd Sie
aber sobald ich Sie fertig habe einfach per Edit hier anhängen.
Natürlich kann man sich dann auch wenn kein Medic on ist beim Arzt im KH
behandeln lassen.
Wie sieht das ganze in schlechter Quali aus?
(sorry musste die Quali so runterschraufen da mein Upload einfach suckt
und ich nicht solange warten wollte)
Cocain Effekt:
Querbeet-Gaming.de Altis Life Cocaine Effekt - YouTube
LSD Effekt:
Querbeet-Gaming.de Altis Life LSD Effekt - YouTube
Weed Effekt:
Querbeet-Gaming.de Altis Life Marijuana Effekt - YouTube
LSD mit überdosis:
Querbeet-Gaming.de Altis Life LSD Effekt + Überdosiseffekt - YouTube
Heroin sowie Abhängigkeits Effekt könnt Ihr selbst heraus"fliegen"
Also lets go:
Nummer 1:
Erstellt eine datei namens fn_Cocainenimm.sqf in einen beliebigen Ordner
Spoiler anzeigen
/*
----------------------------------------------|
Author: Backer
Description: Effekt on Cocaine use!
----------------------------------------------|
*/
closeDialog 0;
player setVariable["Druged",true,true];
[player,"Cocaine_sound", 54] call life_fnc_globalSound;
"dynamicBlur" ppEffectEnable true; // enables ppeffect
"dynamicBlur" ppEffectAdjust [0]; // enables normal vision
"dynamicBlur" ppEffectCommit 20; // time it takes to normal
20 fadeSound 1; //fades the sound back to normal
player setDamage (0.2 + (damage player));
"dynamicBlur" ppEffectEnable true; // enables ppeffect
"dynamicBlur" ppEffectAdjust [9]; // intensity of blur
"dynamicBlur" ppEffectCommit 3; // time till vision is fully blurred
enableCamShake true; // enables camera shake
addCamShake [20, 100, 10]; // sets shakevalues
player setFatigue 1; // sets the fatigue to 100%
5 fadeSound 0.1; // fades the sound to 10% in 5 seconds
sleep 50;
"dynamicBlur" ppEffectEnable true; // enables ppeffect
"dynamicBlur" ppEffectAdjust [0]; // enables normal vision
"dynamicBlur" ppEffectCommit 20; // time it takes to normal
20 fadeSound 1; //fades the sound back to normal
player setVariable["Druged",false,true];
Nummer 2:
Erstellt eine datei namens fn_Heroinnimm.sqf in einen beliebigen Ordner
Spoiler anzeigen
/*
----------------------------------------------|
Author: Backer
Description: Effekt on heroin use! If you use to much you get naked and spawn on random positions (markers)
----------------------------------------------|
*/
closeDialog 0;
DrugedMarkers = ["druged1","druged2","druged3","druged4","druged5"] call BIS_fnc_selectRandom;
player setVariable["Druged",true,true];
player allowDamage false;
[player,"Heroin_sound", 46] call life_fnc_globalSound;
_posold = getPos player;
if(life_drug > 0) then {
player setPos [getPos player select 0, getPos player select 1, 20000];
"colorCorrections" ppEffectEnable true;
"colorCorrections"
ppEffectAdjust [1, 1, 0, [0,0,0,0.5], [random 5 - random 5,random 5 -
random 5,random 5 - random 5,random 1], [random 5 - random 5,random 5 -
random 5,random 5 - random 5, random 1]];
"colorCorrections" ppEffectCommit 1;
"chromAberration" ppEffectEnable true;
"chromAberration" ppEffectAdjust [0.01,0.01,true];
"chromAberration" ppEffectCommit 1;
sleep 2.25;
for "_i" from 0 to 23 do {
"colorCorrections" ppEffectEnable true;
"colorCorrections" ppEffectAdjust [1, 1, 0, [0,0,0,0.5], [random 10 -
random 10,random 10 - random 10,random 10 - random 10,random 1], [random
10 - random 10,random 10 - random 10,random 10 - random 10, random 1]];
"colorCorrections" ppEffectCommit 1;
sleep 2.25;
};
"chromAberration" ppEffectEnable false;
"colorCorrections" ppEffectEnable false;
hint "Das war vielleicht mal ein Tripp, BUJAHH";
player setPos _posold;
sleep 5;
};
//3 mal nehmen
if (life_drug > 0.22) then {
titleText [localize "STR_MISC_DrunkBlackOut","BLACK OUT"];
player playMoveNow "Incapacitated";
//titleText[localize "STR_MISC_DrunkBlackOut","BLACK IN"];
sleep 15;
vehicle player setDir 225;vehicle player setVelocity [0, 0, 0]; vehicle player setpos (getmarkerpos DrugedMarkers);
publicVariable "DrugedMarkers";
removeUniform player;removeVest player;
player playMoveNow "AinjPpneMstpSnonWrflDnon_rolltoback";
sleep 10;
titleText[localize "STR_MISC_DrunkBlackOut1","PLAIN"];
player playMoveNow "amovppnemstpsraswrfldnon";
};
player setVariable["Druged",false,true];
player allowDamage true;
Nummer 3: (wenn Ihr LSD am Server habt)
Erstellt eine datei namens fn_LSDnimm.sqf in einen beliebigen Ordner
Spoiler anzeigen
/*
----------------------------------------------|
Author: Backer
Description: LSD Effekt, YES Lets swim and make some funny fishes + Esteregg
----------------------------------------------|
*/
closeDialog 0;
"chromAbberation" ppEffectEnable true;
"radialBlur" ppEffectEnable true;
enableCamShake true;
_fish = "CatShark_F" createVehicle [0,0,0];
_mullet = "Mullet_F" createVehicle [0,0,0];
_turtle = "Turtle_F" createVehicle [0,0,0];
_tuna = "Tuna_F" createVehicle [0,0,0];
_mackerel = "Mackerel_F" createVehicle [0,0,0];
_salema = "Salema_F" createVehicle [0,0,0];
_mullet2= "Mullet_F" createVehicle [0,0,0];
_salem2 = "Salema_F" createVehicle [0,0,0];
_turtle2 = "Turtle_F" createVehicle [0,0,0];
DrugedMarkers = ["druged1","druged2","druged3","druged4","druged5"] call BIS_fnc_selectRandom;
player setVariable["Druged",true,true];
[player,"LSD_sound", 36] call life_fnc_globalSound;
for "_i" from 0 to 36 do
{
if(life_drug > 0) then {
_fish attachTo [player, [-0.1, 2, 0.15], "Pelvis"];
_tuna attachTo [player, [-1, 1, 0.15], "Pelvis"];
_mullet attachTo [player, [-2, 1.5, 0.30], "Pelvis"];
_mackerel attachTo [player, [2, 2, 0.15], "Pelvis"];
_turtle attachTo [player, [1, 1.5, 0.20], "Pelvis"];
_salema attachTo [player, [0, -1.5, - 0.30], "Pelvis"];
_mullet2 attachTo [player, [-2, 1.5, 0.60], "Pelvis"];
_salem2 attachTo [player, [0, -1.5, - 1.0], "Pelvis"];
_turtle2 attachTo [player, [1, 1.5, 0.70], "Pelvis"];
"colorCorrections" ppEffectEnable true;
player playMoveNow "AsswPercMstpSnonWnonDnon_goDown";
"colorCorrections"
ppEffectAdjust [1, 1, 0, [0,0,0,0.5], [random 5 - random 5,random 5 -
random 5,random 5 - random 5,random 1], [random 5 - random 5,random 5 -
random 5,random 5 - random 5, random 1]];
"colorCorrections" ppEffectCommit 1;
"chromAberration" ppEffectEnable true;
"chromAberration" ppEffectAdjust [0.01,0.01,true];
"chromAberration" ppEffectCommit 1;
sleep 1;
} else {
_fish attachTo [player, [-0.1, 2, 0.15], "Pelvis"];
_tuna attachTo [player, [-1, 1, 0.15], "Pelvis"];
_mullet attachTo [player, [-2, 1.5, 0.30], "Pelvis"];
_mackerel attachTo [player, [2, 2, 0.15], "Pelvis"];
_turtle attachTo [player, [1, 1.5, 0.20], "Pelvis"];
_salema attachTo [player, [0, -1.5, - 0.30], "Pelvis"];
_mullet2 attachTo [player, [-2, 1.5, 0.60], "Pelvis"];
_salem2 attachTo [player, [0, -1.5, - 1.0], "Pelvis"];
_turtle2 attachTo [player, [1, 1.5, 0.70], "Pelvis"];
"colorCorrections" ppEffectEnable true;
player playMoveNow "AsswPercMstpSnonWnonDnon_goDown";
"colorCorrections"
ppEffectAdjust [1, 1, 0, [0,0,0,0.5], [random 5 - random 5,random 5 -
random 5,random 5 - random 5,random 1], [random 5 - random 5,random 5 -
random 5,random 5 - random 5, random 1]];
"colorCorrections" ppEffectCommit 1;
"chromAberration" ppEffectEnable true;
"chromAberration" ppEffectAdjust [0.01,0.01,true];
addcamShake[random 3, 1, random 3];
sleep 1;
};
};
//5 mal nehmen
if (life_drug > 0.32) then {
titleText [localize "STR_MISC_DrunkBlackOut","BLACK OUT"];
player playMoveNow "Incapacitated";
//titleText[localize "STR_MISC_DrunkBlackOut","BLACK IN"];
sleep 15;
vehicle player setDir 225;vehicle player setVelocity [0, 0, 0]; vehicle player setpos (getmarkerpos DrugedMarkers);
publicVariable "DrugedMarkers";
removeUniform player;removeVest player;
player playMoveNow "AinjPpneMstpSnonWrflDnon_rolltoback";
sleep 10;
titleText[localize "STR_MISC_DrunkBlackOut1","PLAIN"];
player playMoveNow "amovppnemstpsraswrfldnon";
};
//Stop effects
player setVariable["Druged",false,true];
"chromAberration" ppEffectAdjust [0,0,true];
"chromAberration" ppEffectCommit 5;
"radialBlur" ppEffectAdjust [0,0,0,0];
"radialBlur" ppEffectCommit 5;
sleep 6;
//Deactivate ppEffects
"chromAberration" ppEffectEnable false;
"colorCorrections" ppEffectEnable false;
"radialBlur" ppEffectEnable false;
resetCamShake;
deleteVehicle _fish;
deleteVehicle _mullet;
deleteVehicle _turtle;
deleteVehicle _tuna;
deleteVehicle _mackerel;
deleteVehicle _salema;
deleteVehicle _mullet2;
deleteVehicle _salem2;
deleteVehicle _turtle2;
player switchmove "";
Nummer 4:
Erstellt eine datei namens fn_Weednimm.sqf in einen beliebigen Ordner
Spoiler anzeigen
/*
----------------------------------------------|
Author: ??? edit by Backer
Description: Effekt on Weed use!
----------------------------------------------|
*/
closeDialog 0;
player setVariable["Druged",true,true];
[player,"Weed_sound", 31] call life_fnc_globalSound;
_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]];
};
"chromAberration" ppEffectEnable true;
"radialBlur" ppEffectEnable true;
enableCamShake true;
for "_i" from 0 to 30 do
{
if(life_drug > 0) then {
"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;
};
};
"chromAberration" ppEffectAdjust [0,0,true];
"chromAberration" ppEffectCommit 5;
"radialBlur" ppEffectAdjust [0,0,0,0];
"radialBlur" ppEffectCommit 5;
sleep 6;
"chromAberration" ppEffectEnable false;
"radialBlur" ppEffectEnable false;
resetCamShake;
enableCamShake false;
deleteVehicle _smoke;
player setVariable["Druged",false,true];
Nummer 5:
Erstellt eine datei namens fn_suechtig.sqf in einen beliebigen Ordner
Spoiler anzeigen
/*
----------------------------------------------|
Author: Backer
Description: To much Drugs biatch! Lets start the effekt every 5 Mins. Called in Init Survival!
----------------------------------------------|
*/
closeDialog 0;
player say2D "Abhaengig_Sound";
//Activate ppEffects we need
"radialBlur" ppEffectEnable true;
enableCamShake true;
//Let's go for 36secs of effetcs
for "_i" from 0 to 36 do
{
"radialBlur" ppEffectAdjust [random 1,random 0.5,1,0.5];
"radialBlur" ppEffectCommit 1;
addcamShake[random 10, 1, random 10];
sleep 1;
};
//Stop effects
"radialBlur" ppEffectAdjust [0,0,0,0];
"radialBlur" ppEffectCommit 5;
sleep 6;
//Deactivate ppEffects
"radialBlur" ppEffectEnable false;
resetCamShake;
Nummer 6:
fügt in der Functions.h alle erstellten dateien ein (wo auch immer Ihr Sie gespeichert habt)
Beispiel:
Spoiler anzeigen
class Querdrogen
{
file ="Quer\drogen";
class LSDnimm {};
class Weednimm {};
class Cocainenimm {};
class Heroinnimm {};
class suechtig {};
};
Nummer 7 :
geht in core/pmenu/fn_useItem.sqf und fügt folgendes hinzu:
Spoiler anzeigen
//Drogecase (_item in ["froschlsd"]):
{
if(playerSide in [west,independent]) exitWith {hint "Hallo Sie sind im Dienst!!";};
if((player getVariable ["Druged",FALSE])) exitWith {hint "Du nimmst bereits geiles Zeug";};
if(([false,_item,1] call life_fnc_handleInv)) then
{
if(isNil "life_drug") then {life_drug = 0;};
//Wenn er Drogen nimmt
life_drug = life_drug + 0.08;
if (life_drug < 0.00) exitWith {};
[] spawn life_fnc_LSDnimm;
};
};case (_item in ["heroinp"]):
{
if(playerSide in [west,independent]) exitWith {hint "Hallo Sie sind im Dienst!!";};
if((player getVariable ["Druged",FALSE])) exitWith {hint "Du nimmst bereits geiles Zeug";};
if(([false,_item,1] call life_fnc_handleInv)) then
{
if(isNil "life_drug") then {life_drug = 0;};
//Wenn er Drogen nimmt
life_drug = life_drug + 0.08;
if (life_drug < 0.00) exitWith {};
[] spawn life_fnc_Heroinnimm;
};
};case (_item in ["cocainep"]):
{
if(playerSide in [west,independent]) exitWith {hint "Hallo Sie sind im Dienst!!";};
if((player getVariable ["Druged",FALSE])) exitWith {hint "Du nimmst bereits geiles Zeug";};
if(([false,_item,1] call life_fnc_handleInv)) then
{
if(isNil "life_drug") then {life_drug = 0;};
//Wenn er Drogen nimmt
life_drug = life_drug + 0.08;
if (life_drug < 0.00) exitWith {};
[] spawn life_fnc_Cocainenimm;
};
};case (_item in ["marijuana"]):
{
if(playerSide in [west,independent]) exitWith {hint "Hallo Sie sind im Dienst!!";};
if((player getVariable ["Druged",FALSE])) exitWith {hint "Du nimmst bereits geiles Zeug";};
if(([false,_item,1] call life_fnc_handleInv)) then
{
if(isNil "life_drug") then {life_drug = 0;};
//Wenn er Drogen nimmt
life_drug = life_drug + 0.08;
if (life_drug < 0.00) exitWith {};
[] spawn life_fnc_Weednimm;
};
};
Nummer 8:
geht in core/configuration.sqf und fügt folgendes hinzu:
Wo genau findet Ihr sicher heraus
Nummer 9:
geht in core/init_survival.sqf und fügt folgendes ein:
Spoiler anzeigen
[] spawn
{
while {true} do
{
waitUntil {(life_drug > 0)};
while{(life_drug > 0)} do {if(life_drug > 0.08) then {
sleep 60;
[] spawn life_fnc_suechtig;
hint "Sie sollten bei einen Notarzt vorbei schauen! Sie sind stark Drogensuechtig!";
sleep 240;
};
};
};
};
Nummer 10:
geht in den Map Editor und erstellt folgende Marker an denen man spawnt wenn man ein Blackout bekommt:
druged1,druged2,druged3,druged4,druged5
Nummer11:
Fügt die Sounds vom Anhang in eure Mission ein. Also in den Ordner und in die description.ext unter
class cfgSounds
Spoiler anzeigen
class LSD_sound
{
name = "LSD_sound";
sound[] = {"\sounds\euerParameter\LSD_sound.ogg", 1.0, 1};
titles[] = {};
};class Abhaengig_Sound
{
name = "Abhaengig_Sound";
sound[] = {"\sounds\euerParameter\Abhaengig_Sound.ogg", 1.0, 1};
titles[] = {};
};class Heroin_sound
{
name = "Heroin_sound";
sound[] = {"\sounds\euerParameter\Heroin_sound.ogg", 1.0, 1};
titles[] = {};
};class Cocaine_sound
{
name = "Cocaine_sound";
sound[] = {"\sounds\euerParameter\Cocaine_sound.ogg", 1.0, 1};
titles[] = {};
};class Weed_sound
{
name = "Weed_sound";
sound[] = {"\sounds\euerParameter\Weed_sound.ogg", 1.0, 1};
titles[] = {};
};
Nummer12:
öffnet eure Stringtable.xml und fügt folgendes hinzu
Code<Key ID="STR_MISC_DrunkBlackOut"> <Original>Du hast einen Blackout!</Original> </Key> <Key ID="STR_MISC_DrunkBlackOut1"> <Original>Was zum... - was ist passiert?? Wo bin ich?</Original> </Key>
Nummer13:
Fleißig Drogen nehmen und Spaß haben
MEDIC INTERAKTION:
Nummer14:
erstellt eine Datei namens fn_Therapieaction.sqf
Spoiler anzeigen
/*
----------------------------------------------|
Author: Backer
Description: Starts the therapie!
----------------------------------------------|
*/
private["_unit"];
_unit = cursorTarget;
if(isNull _unit) exitWith {}; //Not valid
if(player == _unit) exitWith {};
if(!isPlayer _unit) exitWith {};
//GIMME MORE
[[player], "life_fnc_therapie", _unit, false] spawn life_fnc_MP;
if(side player == independent) then
{[[0,format["%1 wurde von %2 erfolgreich auf Drogen behandelt!",_unit
getVariable["realname", name _unit], player getVariable["realname",name
player]]],"life_fnc_broadcast",independent,false] spawn life_fnc_MP;
};
Nummer15:
erstellt eine Datei namens fn_therapie.sqf
Spoiler anzeigen
/*
----------------------------------------------|
Author: Backer
Description: Set the drug level to 0 !
----------------------------------------------|
*/
private["_medic","_player"];
_medic = [_this,0,Objnull,[Objnull]] call BIS_fnc_param;
_player = player;
if(isNull _medic) exitWith {};
if(!alive player) exitWith {};
if(!alive _medic) exitWith {};
if (life_drug > 0) then
{
life_drug = 0;
hint "Sie wurden erfolgreich vom Arzt behandelt, die Therapie war erfolgreich!";
}else{
hint "Sie sollten den Notarzt nicht anlügen, dass Sie
abhängig sind, ansonsten wird er Ihnen beim nächsten mal nicht mehr
helfen!";};
Nummer16:
Erstellt eine Datei namens fn_pInteraction_med.sqf
Spoiler anzeigen
#define Btn1 37450
#define Btn2 37451
#define Btn3 37452
#define Btn4 37453
#define Btn5 37454
#define Btn6 37455
#define Btn7 37456
#define Btn8 37457
#define Title 37401
private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5"];
if(!dialog) then {
createDialog "pInteraction_Menu";
};
disableSerialization;
_curTarget = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad targetif(!isPlayer _curTarget && side _curTarget == civilian) exitWith {closeDialog 0;}; //Bad side check?
_display = findDisplay 37400;
_Btn1 = _display displayCtrl Btn1;
_Btn2 = _display displayCtrl Btn2;
_Btn3 = _display displayCtrl Btn3;
_Btn4 = _display displayCtrl Btn4;
_Btn5 = _display displayCtrl Btn5;
life_pInact_curTarget = _curTarget;
//Set Unrestrain Button
_Btn1 ctrlSetText localize "STR_pInAct_Unrestrain";
_Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_unrestrain; closeDialog 0;";
//Set Escort Button
if((_curTarget getVariable["Escorting",false])) then {
_Btn2 ctrlSetText localize "STR_pInAct_StopEscort";
_Btn2 buttonSetAction "[life_pInact_curTarget] call
life_fnc_stopEscorting; [life_pInact_curTarget] call
life_fnc_copInteractionMenu;";
} else {
_Btn2 ctrlSetText localize "STR_pInAct_Escort";
_Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;";
};
//Set Ticket Button
_Btn3 ctrlSetText localize "STR_pInAct_TicketBtn";
_Btn3 buttonSetAction "[life_pInact_curTarget] call life_fnc_ticketAction;";
_Btn4 ctrlSetText localize "STR_pInAct_PutInCar";
_Btn4 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar;";
_Btn5 ctrlSetText "Therapie";
_Btn5 buttonSetAction "[life_pInact_curTarget] spawn life_fnc_Therapieaction;";
Nummer17: fügt alle erstellten Datein in euer Functions.h hinzu (wo auch immer Ihr diese gespeichert habt)
Nummer18:
geht in core/functions/actionkeyhandler.sqf und fügt folgendes nach dem
aufruf des Interaktionsmenüs für Polizisten ein:
Code Alles anzeigenelse { if(playerSide == independent) then { if(_curTarget getVariable["restrained",false]&& (!(player getVariable "restrained"))) then { if(!dialog) then { [_curTarget] call life_fnc_pInteraction_med; } else { hint "Es wird bereits ein Dialog angezeigt."; }; } else { hint "Der andere Spieler muss gefesselt sein."; sleep 3; hint "Oder Sie sind gefesselt!"; }; };
Nummer19 (Nur wenn Ihr wollt das Spieler auch vom Arzt im Krankenhaus behandelt werden sollen)
Fügt in die Init des Arztes folgendes ein:
Und
fertig seit Ihr. Natürlich könnt Ihr alles noch so umschreiben das
Medics Geld dafür bekommen oder das es beim Arzt was kostet!
Dies dient nur als Grundvorlage für euch
Viel Spaß
Dieses Tutorial funktioniert mit dem Alkohol und Drogentester von nic_noc
[Tutorial] Alkohol- und Drogentester
LG Backer