1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Fr: 23 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

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.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Tutorials & Releases

    [Tutorial] Organ Script

      • Altis Life
    • Noldy
    • 9. August 2015 um 05:16
    • Noldy
      Amateur
      Reaktionen
      100
      Trophäen
      11
      Beiträge
      166
      • 9. August 2015 um 05:16
      • #1

      Hallo,

      Heute werde ich euch zeigen, wie ihr Organe anderen Spieler klauen könnt und diese beim Organ Dealer verkaufen könnt.

      Fangen wir mal an.

      1. Erstellt eine neue sqf namens fn_takeOrgans.sqf mit folgendem Inhallt:

      Spoiler anzeigen

      /*
      file: fn_takeOrgans.sqf
      author: [midgetgrimm] - A Grimm Life | Altis Life • Index page

      taken from the same idea of robbing script by tonic
      */
      private["_unit"];
      _unit = cursorTarget;
      if(isNull _unit) exitWith {}; //if unit is null, than NO
      if((_unit getVariable ["missingOrgan",FALSE])) exitWith {};//must not be missing organ already
      if((player getVariable ["hasOrgan",FALSE])) exitWith {};//thief must not have already robbed an organ within last 5 mintues
      if((animationState _unit != "Incapacitated")) exitWith {};//victim must be knocked out
      if(player == _unit) exitWith {};//if the thief is the cursor target(dafuq) than NO
      if(!isPlayer _unit) exitWith {};//iff the cursor target is not a player than NO
      if(life_inv_kidney >= 2) exitWith {hint "You can't possibly need that many organs!"};//if you already have 2 kidneys, then go sell them already, no stockpiling
      if(!([true,"kidney",1] call life_fnc_handleInv)) exitWith {hint "You don't have room to store any organs!"};//if no room for kidney, you cannot take their kidney, duh, waste not want not
      life_action_inUse = true;//sets action to true as to prevent kidney spammming!!!!!!!!
      player setVariable["hasOrgan",true,true];//sets variable on thief, so as not to consistently take organs, set to 5 minute cooldown
      player playMove "AinvPknlMstpSnonWnonDnon_medic";//makes the thief do an animation as to seem like they are doing surgery
      sleep 3;//length of action, had weird results with any higher - obv not realistic, but whatever
      _unit setVariable["missingOrgan",true,true];//sets the missing organ variable so effects can take place
      life_action_inUse = false;//once variables are set, and actions stop, then you can use scrolly wheely
      [[player], "life_fnc_hasOrgan", _unit, false] spawn life_fnc_MP;//this then calls the fn_hasOrgan.sqf on the thief


      Und fügt die unter core\actions ein.

      2. Erstellt wieder eine neue sqf namens fn_hasOrgan.sqf mit folgendem Inhallt:

      Spoiler anzeigen

      /*
      file: fn_hasOrgan.sqf
      author: [midgetgrimm] - A Grimm Life | Altis Life • Index page

      */
      private["_organThief"];
      _organThief = [_this,0,Objnull,[Objnull]] call BIS_fnc_param;
      if(isNull _organThief) exitWith {}; //if not the thief get bent

      [[1,format["%1 has cut out a kidney from %2.",name _organThief,name player]],"life_fnc_broadcast",nil,false] spawn life_fnc_MP;//lets people know you are stealing kidneys
      [_organThief,"kidney",1] call life_fnc_handleInv;//put stolen kidney into inventory of thief
      [[getPlayerUID _organThief,name _organThief,"919"],"life_fnc_wantedAdd",false,false] spawn life_fnc_MP;//add to wanted list
      sleep 300;//no more organ theft for at least 5 minutes, so they cant just do it over and over, can do whatever time you want
      _organThief setVariable["hasOrgan",false,true];//allow them to be able to take organs again- setting a variable


      Und fügt die unter core\civilian ein.

      3. Geht in eure functions.h und fügt bei class actions folgendes ein:

      Code
      class takeOrgans {};


      und bei class Civilian

      Code
      class hasOrgan {};

      4. Geht in eure core\fn_setupActions.sqf und fügt folgendes bei civilian ein:

      Code
      // take them organs
      		life_actions = life_actions + [player addAction["Harvest Organs",life_fnc_takeOrgans,"",0,false,false,"",'!isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget getVariable ["missingOrgan",FALSE]) && !(player getVariable "Escorting") && !(player getVariable "hasOrgan") && !(player getVariable "transporting") && animationState cursorTarget == "Incapacitated"']];

      5. Geht in eure core\init_survival.sqf und fügt folgendes ganz unten ein:

      Code
      [] spawn  {
      	while{true} do
      	{
      		waitUntil {(player getVariable "missingOrgan")};
      		life_max_health = .50;
      		while{(player getVariable "missingOrgan")} do {
      			life_thirst =  50;
      			life_hunger =  50;
      			if(damage player < (1 - life_max_health)) then {player setDamage (1 - life_max_health);};
      			"dynamicBlur" ppEffectEnable true;
      			"dynamicBlur" ppEffectAdjust [2];
      			"dynamicBlur" ppEffectCommit 1;
      			sleep 5;
      		};
      		"dynamicBlur" ppEffectEnable false;
      		life_max_health = 1;
      	};
      };
      Alles anzeigen

      6. Geht in eure core\pmenu\fn_useItem.sqf und fügt folgendes ein:

      Code
      case (_item == "kidney"):
      	{
      		if(([false,_item,1] call life_fnc_handleInv)) then
      		{
      			player setVariable["missingOrgan",false,true];
      			life_thirst = 100;
      			life_hunger = 100;
      			player setFatigue .5;
      		};
      	};

      7. Geht in eure core\init.sqf und fügt folgendes unter den player setVariablen ein:

      Code
      player setVariable["missingOrgan",false,true];//sets variables to false on start
      player setVariable["hasOrgan",false,true];

      Sollte ca so aussehen:

      Code
      player setVariable["restrained",false,true];
      player setVariable["Escorting",false,true];
      player setVariable["transporting",false,true];
      player setVariable["missingOrgan",false,true];
      player setVariable["hasOrgan",false,true];

      8. Geht in eure core/medical/fn_onPlayerKilled.sqf und fügt folgendes unter _unit ein:

      Code
      _unit setVariable["missingOrgan",FALSE,TRUE];
      _unit setVariable["hasOrgan",FALSE,TRUE];


      9. Geht in euren core/medical/fn_onPlayerRespawn.sqf und fügt wieder unter _unit dies ein:

      Code
      _unit setVariable["missingOrgan",FALSE,TRUE];
      _unit setVariable["hasOrgan",FALSE,TRUE];

      10. Öffnet eure core\config\fn_itemWeight.sqf und fügt folgendes ein:

      Code
      case "kidney": {15};

      11. Öffnet eure core\config\fn_varHandle.sqf und fügt folgendes ein:
      case: 0

      Code
      case "kidney": {"life_inv_kidney"};


      case:1

      Code
      case "life_inv_kidney": {"kidney"};

      12. Geht in eure core\config\fn_varToStr.sqf und fügt folgendes ein:

      Code
      case "life_inv_kidney": {"Niere"};

      13. Geht in eure core\config\fn_virt_shops.sqf und fügt einen neuen Shop hinzu mit diesem Code:

      Code
      case "organ": {["Organ Dealer",["kidney"]]};

      14. Geht in eure core\configuration.sqf und fügt folgendes ein:
      Unter life_inv_items

      Code
      "life_inv_kidney"


      Unter life_illegal_items

      Code
      ["kidney",5000]


      Unter sell_array

      Code
      ["kidney",50000]


      Unter buy_array

      Code
      ["kidney",75000]

      Als letztes müsst ihr noch in eure @life_server eine änderung vornehmen.

      15. Geht in eure life_server\Functions\WantedSystem\fn_wantedAdd.sqf und fügt folgendes hinzu:

      Code
      case "919": {_type = ["Organ Dealing",20000]};

      So, das war es.

      Zum schluß noch einen NP erstellen mit folgendem INIT befehl:

      Code
      this addAction["Organ Dealer",life_fnc_virt_menu,"organ",0,false,false,"",' vehicle player == player && player distance _target < 5 && playerSide == civilian '];

      Mal kurz und knapp erklären, was das Script macht:

      Ihr müsst jemmand niederhauen, und aud ihn Scrollen. Dann könnt ihr die Niere von diesem Spieler klauen. Dieser erleitet 50 Damage, und hat ein leicht verschwomenes Bild. Er muß also zum Organ Dealer gehen, und sich eine neue Niere kaufen und diese benutzen. Damit geht das leicht verschwomene Bild wieder weg. Danach könnt ihr ins Hospital gehen, und euch wieder auf 100 Heilen.
      Ihr könnt euch nicht auf 100 Heilen, wenn ihr keine Niere habt. Und euch kann auch nur eine Niere geklaut werden, wenn ihr mehr wie 50 Leben habt. Habt ihr z.b. 49 Leben, kann man euch keine Niere Klauen.

      Hoffe ihr habt spaß am Script.

      Wenn ihr probleme habt, einfach nachfragen. :thumbup:

      Wie versprochen, hier noch ein Tutorial das ihr nur ein Organ klauen könnt wenn ihr auch ein Scalpel bei euch habt.

      1. Geht in eure core/configuration.sqf und fügt folgende sachen hinzu:

      life_inv_items =

      Code
      "life_inv_scalpel"

      sell_array =

      Code
      ["scalpel",500]

      buy_array =

      Code
      ["scalpel",5000]

      Bitte achtet überall, das euer letztes Item kein Komma haben darf.
      Wenn ihr wollt, das das Scalpel Illegal ist, so fügt dies unter life_illegal_items = ein.

      2. Öffnet eure core/config/fn_itemWeight.sqf und fügt folgendes hinzu:

      Code
      case "scalpel": {2};

      3. Öffnet eure core/config/fn_varHandle.sqf und fügt folgendes hinzu bei case: 0

      Code
      case "scalpel": {"life_inv_scalpel"};


      Und bei case: 1

      Code
      case "life_inv_scalpel": {"scalpel"};

      4. Geht in eure core/config/fn_varToStr.sqf und fügt folgendes hinzu:

      Code
      case "life_inv_scalpel": {"Scalpel"};

      5. Zum schluß fügt ihr noch das Scalpel in einen Shop ein. In diesem Tut nehmen wir mal als Beispiel der Markt. Öffnet eure core/config/fn_virt_shops.sqf und fügt folgendes hinzu:

      Code
      case "market": {["Markt",["scalpel"]]};

      6. Öffnet eure fn_takeOrgans.sqf im actions Ordner und ersetzt alles mit diesem Text:

      Code
      /*
          file: fn_takeOrgans.sqf
          author: [midgetgrimm] - www.grimmlife.com
      
          taken from the same idea of robbing script by tonic
      */
      private["_unit"];
      _unit = cursorTarget;
      if(isNull _unit) exitWith {};
      if((_unit getVariable ["missingOrgan",FALSE])) exitWith {};
      if((player getVariable ["hasOrgan",FALSE])) exitWith {};
      if((animationState _unit != "Incapacitated")) exitWith {};
      if(!([false,"scalpel",1] call life_fnc_handleInv)) exitWith {hint "Du hast kein Scalpel!"};
      if(player == _unit) exitWith {};
      if(!isPlayer _unit) exitWith {};
      if(life_inv_kidney >= 2) exitWith {hint"Dieser Spieler hat keine Niere mehr!"};
      if(!([true,"kidney",1] call life_fnc_handleInv)) exitWith {hint "Kein Platz für eine Niere."};
      life_action_inUse = true;
      player setVariable["hasOrgan",true,true];
      player playMove "AinvPknlMstpSnonWnonDnon_medic";
      [player,"punch_break"] call life_fnc_globalSound;
      sleep 3;
      _unit setVariable["missingOrgan",true,true];
      life_action_inUse = false;
      [[player], "life_fnc_hasOrgan", _unit, false] spawn life_fnc_MP;
      Alles anzeigen

      Nun braucht ihr ein Scalpel, um überhaupt ein Organ klauen zu können. Ein Sound habe ich ebenfalls noch eingefügt, der abgespielt wird wenn ihr mit einem Scalpel von jemmandem ein Organ klaut.

      Bitte bedenkt, das die Sounddatei nur geht wenn ihr dieses Tutorial befolgt habt: [Tutorial] Sounds einfügen Global/-und Player +- 3.1.4
      Wenn ihr also keinen Sound wollt, sucht in der datei nach:

      Code
      [player,"punch_break"] call life_fnc_globalSound;


      und löscht es einfach.

      Wenn ihr keinen Sound wollt, so Ignoriert das unten einfach ;)

      Zum schluß geht ihr noch in eure description.ext und fügt folgendes ein bei class CfgSounds:

      Code
      class punch_break
            {
              name = "punch_break";
              sound[] = {"\sounds\punch_break.ogg", 1.0, 1};
              titles[] = {};
            };

      Ladet die Sounddatei herunter im Anhang und fügt diese in euer Ordner sounds ein.

      Fertig.

      MfG
      Noldy

      Dateien

      punch_break.zip 38,81 kB – 269 Downloads

    • Saturin78
      Profi
      Reaktionen
      409
      Trophäen
      10
      Beiträge
      1.340
      • 5. April 2016 um 22:37
      • #2

      Hallo,

      also ich habe das Script bei mir in die Altis Life 4.0 eingebaut. Es funktioniert fast alles. Das einzige was nicht geht, man erhält keinen Schaden wenn einem die Niere rausgenommen wurde. Weiß vielleicht jemand an was das liegen könnte? Bei Mit gibt es auch die init_survival.sqf nicht, da gibt es nur die fn_survival.sqf. Diese sieht auch so aus:

      Bash: fn_survival.sqf
      #include <macro.h>
      /*
      	Author: Bryan "Tonic" Boardwine
      	Description:
      	All survival? things merged into one thread.
      */
      private["_fnc_food","_fnc_water","_foodTime","_waterTime","_bp","_walkDis","_lastPos","_curPos"];
      _fnc_food =  {
      	if(life_hunger < 2) then {player setDamage 1; hint localize "STR_NOTF_EatMSG_Death";}
      	else
      	{
      		SUB(life_hunger,10);
      		//[] call life_fnc_hudUpdate;
      		if(life_hunger < 2) then {player setDamage 1; hint localize "STR_NOTF_EatMSG_Death";};
      		switch(life_hunger) do {
      			case 30: {hint localize "STR_NOTF_EatMSG_1";};
      			case 20: {hint localize "STR_NOTF_EatMSG_2";};
      			case 10: {
      				hint localize "STR_NOTF_EatMSG_3";
      				if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      			};
      		};
      	};
      };
      _fnc_water = {
      	if(life_thirst < 2) then {player setDamage 1; hint localize "STR_NOTF_DrinkMSG_Death";}
      	else
      	{
      		SUB(life_thirst,10);
      		//[] call life_fnc_hudUpdate;
      		if(life_thirst < 2) then {player setDamage 1; hint localize "STR_NOTF_DrinkMSG_Death";};
      		switch(life_thirst) do  {
      			case 30: {hint localize "STR_NOTF_DrinkMSG_1";};
      			case 20: {
      				hint localize "STR_NOTF_DrinkMSG_2";
      				if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      			};
      			case 10: {
      				hint localize "STR_NOTF_DrinkMSG_3";
      				if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      			};
      		};
      	};
      };
      
      
      
      
      [] spawn
      {
      	while {true} do
      	{
      		waitUntil {(life_drink > 0)};
      		while{(life_drink > 0)} do {
      
      
      
      
      			if(life_drink > 0.08) then {
      			"radialBlur" ppEffectEnable true;
      			"radialBlur" ppEffectAdjust[0.08, 0,0.35,0.37];
      			"radialblur" ppEffectCommit 3;
      			sleep 240;
      			life_drink = life_drink - 0.02;
      		} else {
      			"radialBlur" ppEffectEnable true;
      			"radialBlur" ppEffectAdjust[0.05, 0,0.36,0.38];
      			"radialBlur" ppEffectCommit 1;
      			sleep 180;
      			life_drink = life_drink - 0.02;
      		};
      	};
      
      
      
      
      	"radialBlur" ppEffectAdjust [0,0,0,0];
      	"radialblur" ppEffectCommit 5;
      	"radialblur" ppEffectEnable false;
      	life_drink = 0;
      	};
      }; 
      
      
      
      
      //Setup the time-based variables.
      _foodTime = time;
      _waterTime = time;
      _walkDis = 0;
      _bp = "";
      _lastPos = visiblePosition player;
      _lastPos = (SEL(_lastPos,0)) + (SEL(_lastPos,1));
      _lastState = vehicle player;
      
      
      
      
      while {true} do {
      	/* Thirst / Hunger adjustment that is time based */
      	if((time - _waterTime) > 600) then {[] call _fnc_water; _waterTime = time;};
      	if((time - _foodTime) > 850) then {[] call _fnc_food; _foodTime = time;};
      	/* Adjustment of carrying capacity based on backpack changes */
      	if(EQUAL(backpack player,"")) then {
      		life_maxWeight = life_maxWeightT;
      		_bp = backpack player;
      	} else {
      		if(!(EQUAL(backpack player,"")) && {!(EQUAL(backpack player,_bp))}) then {
      			_bp = backpack player;
      			life_maxWeight = life_maxWeightT + (round(FETCH_CONFIG2(getNumber,CONFIG_VEHICLES,_bp,"maximumload") / 4));
      		};
      	};
      	/* Check if the player's state changed? */
      	if(vehicle player != _lastState OR {!alive player}) then {
      		[] call life_fnc_updateViewDistance;
      		_lastState = vehicle player;
      	};
      	/* Check if the weight has changed and the player is carrying to much */
      	if(life_carryWeight > life_maxWeight && {!isForcedWalk player}) then {
      		player forceWalk true;
      		if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      		hint localize "STR_NOTF_MaxWeight";
      	} else {
      		if(isForcedWalk player) then {
      			player forceWalk false;
      		};
      	};
      	/* Travelling distance to decrease thirst/hunger which is captured every second so the distance is actually greater then 650 */
      	if(!alive player) then {_walkDis = 0;} else {
      		_curPos = visiblePosition player;
      		_curPos = (SEL(_curPos,0)) + (SEL(_curPos,1));
      		if(!(EQUAL(_curPos,_lastPos)) && {(vehicle player == player)}) then {
      			ADD(_walkDis,1);
      			if(EQUAL(_walkDis,650)) then {
      				_walkDis = 0;
      				SUB(life_thirst,5);
      				SUB(life_hunger,5);
      				//[] call life_fnc_hudUpdate;
      			};
      		};
      		_lastPos = visiblePosition player;
      		_lastPos = (SEL(_lastPos,0)) + (SEL(_lastPos,1));
      	};
      	uiSleep 1;
      };
      [] 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;
      			};
      		};
      	};
      };	
      [] spawn  {
      	while{true} do
      	{
      		waitUntil {(player getVariable "missingOrgan")};
      		life_max_health = .50;
      		while{(player getVariable "missingOrgan")} do {
      			life_thirst =  50;
      			life_hunger =  50;
      			if(damage player < (1 - life_max_health)) then {player setDamage (1 - life_max_health);};
      			"dynamicBlur" ppEffectEnable true;
      			"dynamicBlur" ppEffectAdjust [2];
      			"dynamicBlur" ppEffectCommit 1;
      			sleep 5;
      		};
      		"dynamicBlur" ppEffectEnable false;
      		life_max_health = 1;
      	};
      };
      Alles anzeigen

      In den Log Files steht kein Fehler drin. Es kommt der Sound beim rausschneiden, ich hab dann auch die Niere im Inventar usw. Aber der Nieren-Lose rennt einfach normal weiter :) Ok, vielleicht sollte man die 2. auch raun nehmen :) Ne Spaß bei Seite, weiß zufällig jemand was das sein könnte?

      Besten Dank

      Saturin78

      Tapse mich wieder ins Arma3 xxx-Life rein :D

    • John_Parker
      Fortgeschrittener
      Reaktionen
      37
      Trophäen
      10
      Beiträge
      338
      • 8. Juni 2016 um 05:07
      • #3

      Funktioniert dies auch bei der 4.4 ?

      d4ccfe34e7e85df1132cf7f0832e56.gif

    • SirFluffyVonKitten
      Nerd
      Reaktionen
      407
      Trophäen
      11
      Beiträge
      798
      Bilder
      3
      • 8. Juni 2016 um 06:02
      • #4
      Zitat von Saturin78

      Hallo,

      also ich habe das Script bei mir in die Altis Life 4.0 eingebaut. Es funktioniert fast alles. Das einzige was nicht geht, man erhält keinen Schaden wenn einem die Niere rausgenommen wurde. Weiß vielleicht jemand an was das liegen könnte? Bei Mit gibt es auch die init_survival.sqf nicht, da gibt es nur die fn_survival.sqf. Diese sieht auch so aus:

      Bash: fn_survival.sqf
      #include <macro.h>
      /*
      	Author: Bryan "Tonic" Boardwine
      	Description:
      	All survival? things merged into one thread.
      */
      private["_fnc_food","_fnc_water","_foodTime","_waterTime","_bp","_walkDis","_lastPos","_curPos"];
      _fnc_food =  {
      	if(life_hunger < 2) then {player setDamage 1; hint localize "STR_NOTF_EatMSG_Death";}
      	else
      	{
      		SUB(life_hunger,10);
      		//[] call life_fnc_hudUpdate;
      		if(life_hunger < 2) then {player setDamage 1; hint localize "STR_NOTF_EatMSG_Death";};
      		switch(life_hunger) do {
      			case 30: {hint localize "STR_NOTF_EatMSG_1";};
      			case 20: {hint localize "STR_NOTF_EatMSG_2";};
      			case 10: {
      				hint localize "STR_NOTF_EatMSG_3";
      				if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      			};
      		};
      	};
      };
      _fnc_water = {
      	if(life_thirst < 2) then {player setDamage 1; hint localize "STR_NOTF_DrinkMSG_Death";}
      	else
      	{
      		SUB(life_thirst,10);
      		//[] call life_fnc_hudUpdate;
      		if(life_thirst < 2) then {player setDamage 1; hint localize "STR_NOTF_DrinkMSG_Death";};
      		switch(life_thirst) do  {
      			case 30: {hint localize "STR_NOTF_DrinkMSG_1";};
      			case 20: {
      				hint localize "STR_NOTF_DrinkMSG_2";
      				if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      			};
      			case 10: {
      				hint localize "STR_NOTF_DrinkMSG_3";
      				if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      			};
      		};
      	};
      };
      
      
      
      
      [] spawn
      {
      	while {true} do
      	{
      		waitUntil {(life_drink > 0)};
      		while{(life_drink > 0)} do {
      
      
      
      
      			if(life_drink > 0.08) then {
      			"radialBlur" ppEffectEnable true;
      			"radialBlur" ppEffectAdjust[0.08, 0,0.35,0.37];
      			"radialblur" ppEffectCommit 3;
      			sleep 240;
      			life_drink = life_drink - 0.02;
      		} else {
      			"radialBlur" ppEffectEnable true;
      			"radialBlur" ppEffectAdjust[0.05, 0,0.36,0.38];
      			"radialBlur" ppEffectCommit 1;
      			sleep 180;
      			life_drink = life_drink - 0.02;
      		};
      	};
      
      
      
      
      	"radialBlur" ppEffectAdjust [0,0,0,0];
      	"radialblur" ppEffectCommit 5;
      	"radialblur" ppEffectEnable false;
      	life_drink = 0;
      	};
      }; 
      
      
      
      
      //Setup the time-based variables.
      _foodTime = time;
      _waterTime = time;
      _walkDis = 0;
      _bp = "";
      _lastPos = visiblePosition player;
      _lastPos = (SEL(_lastPos,0)) + (SEL(_lastPos,1));
      _lastState = vehicle player;
      
      
      
      
      while {true} do {
      	/* Thirst / Hunger adjustment that is time based */
      	if((time - _waterTime) > 600) then {[] call _fnc_water; _waterTime = time;};
      	if((time - _foodTime) > 850) then {[] call _fnc_food; _foodTime = time;};
      	/* Adjustment of carrying capacity based on backpack changes */
      	if(EQUAL(backpack player,"")) then {
      		life_maxWeight = life_maxWeightT;
      		_bp = backpack player;
      	} else {
      		if(!(EQUAL(backpack player,"")) && {!(EQUAL(backpack player,_bp))}) then {
      			_bp = backpack player;
      			life_maxWeight = life_maxWeightT + (round(FETCH_CONFIG2(getNumber,CONFIG_VEHICLES,_bp,"maximumload") / 4));
      		};
      	};
      	/* Check if the player's state changed? */
      	if(vehicle player != _lastState OR {!alive player}) then {
      		[] call life_fnc_updateViewDistance;
      		_lastState = vehicle player;
      	};
      	/* Check if the weight has changed and the player is carrying to much */
      	if(life_carryWeight > life_maxWeight && {!isForcedWalk player}) then {
      		player forceWalk true;
      		if(EQUAL(LIFE_SETTINGS(getNumber,"enable_fatigue"),1)) then {player setFatigue 1;};
      		hint localize "STR_NOTF_MaxWeight";
      	} else {
      		if(isForcedWalk player) then {
      			player forceWalk false;
      		};
      	};
      	/* Travelling distance to decrease thirst/hunger which is captured every second so the distance is actually greater then 650 */
      	if(!alive player) then {_walkDis = 0;} else {
      		_curPos = visiblePosition player;
      		_curPos = (SEL(_curPos,0)) + (SEL(_curPos,1));
      		if(!(EQUAL(_curPos,_lastPos)) && {(vehicle player == player)}) then {
      			ADD(_walkDis,1);
      			if(EQUAL(_walkDis,650)) then {
      				_walkDis = 0;
      				SUB(life_thirst,5);
      				SUB(life_hunger,5);
      				//[] call life_fnc_hudUpdate;
      			};
      		};
      		_lastPos = visiblePosition player;
      		_lastPos = (SEL(_lastPos,0)) + (SEL(_lastPos,1));
      	};
      	uiSleep 1;
      };
      [] 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;
      			};
      		};
      	};
      };	
      [] spawn  {
      	while{true} do
      	{
      		waitUntil {(player getVariable "missingOrgan")};
      		life_max_health = .50;
      		while{(player getVariable "missingOrgan")} do {
      			life_thirst =  50;
      			life_hunger =  50;
      			if(damage player < (1 - life_max_health)) then {player setDamage (1 - life_max_health);};
      			"dynamicBlur" ppEffectEnable true;
      			"dynamicBlur" ppEffectAdjust [2];
      			"dynamicBlur" ppEffectCommit 1;
      			sleep 5;
      		};
      		"dynamicBlur" ppEffectEnable false;
      		life_max_health = 1;
      	};
      };
      Alles anzeigen

      In den Log Files steht kein Fehler drin. Es kommt der Sound beim rausschneiden, ich hab dann auch die Niere im Inventar usw. Aber der Nieren-Lose rennt einfach normal weiter :) Ok, vielleicht sollte man die 2. auch raun nehmen :) Ne Spaß bei Seite, weiß zufällig jemand was das sein könnte?

      Besten Dank

      Saturin78

      Probiere es einfach mal aus... Sollte es nicht gehen wirst du das Script wohl umschreiben müssen :)

    • bloody
      Frischling
      Trophäen
      8
      Beiträge
      1
      • 6. März 2017 um 19:10
      • #5

      Hallo ich habe eine frage habe das Organ Script kriege aber folgende meldung aus der setvariable.log

      Code
      06.03.2017 18:59:15: Haruka Tenkai (86.83.61.157:2304) - #0 "bis_fnc_selectrespawntemplate_respawned" = true 2:5202 C_man_1
      06.03.2017 18:59:36: Haruka Tenkai (86.83.61.157:2304) - #0 "restrained" = false 2:5202 C_man_1
      06.03.2017 18:59:36: Haruka Tenkai (86.83.61.157:2304) - #0 "escorting" = false 2:5202 C_man_1
      06.03.2017 18:59:36: Haruka Tenkai (86.83.61.157:2304) - #0 "transporting" = false 2:5202 C_man_1
      06.03.2017 18:59:36: Haruka Tenkai (86.83.61.157:2304) - #0 "missingorgan" = false 2:5202 C_man_1
      06.03.2017 18:59:36: Haruka Tenkai (86.83.61.157:2304) - #1 "missingorgan" = false 2:5202 C_man_1

      Meine Setvariable.txt sieht so aus

      Code
      1 ""
      5 "" !bis_disabled_Door_[1-6] !=BIS_fnc_(selectRespawnTemplate_respawned|setVehicleMass) !=chargeplaced !container_(id|owner) !=containers !=currentlyEscorting !=dbInfo !=Escorting !=escortingPlayer !fuelTank(Work)? !gang_(bank|id|maxMembers|members|name|owner) !=gangOwner !=gbank_in_use_by !house_(id|owned|owner|sold) !houses_.+ !=inCapture !=inUse !=isEscorting !=item !life_(clientID|VEH_color) !=lights !=lightSource !=locked !=mining !(real)?name !=NPC !=playerSurrender !=rank !=restrained !=Revive !=Reviving !=robbed !safe(_open)? !=sellers !=siren !=slots !=spikeDeployed !=steam64id !=transporting !Trunk(_in_use(_by)?)? !=uid !=vehicle_info_owners !="(true|false) [\d]:[\d]+ (C_man_1|B_RangeMaster_F)" !=#var

      Ich hoffe ihr könnt mir helfen

      MFG

    • Zeilord
      Fortgeschrittener
      Reaktionen
      71
      Trophäen
      8
      Beiträge
      333
      Bilder
      24
      • 21. September 2017 um 23:46
      • #6

      Lauft das auch mit Ace?

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Ähnliche Themen

    • [GTA5] Infinity Reallife - Dein GTA V Roleplay Server mit Qualität! - www.inf-reallife.de

      • JohnHarvey
      • 22. August 2017 um 04:20
      • Archiv
    • [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

      • vabene1111
      • 3. August 2017 um 10:07
      • Tutorials & Releases
    • Organ Script

      • jeremypapa
      • 1. März 2017 um 05:52
      • Hilfeforum

    Benutzer online in diesem Thema

    • 1 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™