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
Di: 05 Mai 2026
  • Anmelden oder registrieren
  • Suche
Alles
  • Alles
  • 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. Mitglieder
    3. blackfisch

    Beiträge von blackfisch

    • Straßensperren und Straßenkegel

      • blackfisch
      • 18. September 2016 um 18:34

      Du kannst mal hier schauen, wenn du das so nicht hin bekommst: [TUTORIAL][Altis Life 4.0+] Cop/Medic Absperrungen per Menü

      Ist zwar ohne Items, aber funktioniert auch super ^^

    • [TUTORIAL][Altis Life 4.4r3] RyanTTs Dynamic Market System

      • blackfisch
      • 18. September 2016 um 12:53

      Hab das grade nochmal gecheckt, in den angehängten Files stehts mit remoteExec drin. Wie gesagt überarbeite ich das Tut sowieso nochmal

    • [TUTORIAL][Altis Life 4.4r3] RyanTTs Dynamic Market System

      • blackfisch
      • 18. September 2016 um 12:39
      Code
      11:32:03 Error in expression <[0],"life_fnc_update",true,false] spawn life_fnc_MP;
      sleep 5;
      [] spawn TON_fnc_c>
      11:32:03   Error position: <life_fnc_MP;
      sleep 5;
      [] spawn TON_fnc_c>
      11:32:03   Error Undefined variable in expression: life_fnc_mp
      11:32:03 File life_server\Functions\DynMarket\fn_sleeper.sqf, line 15
      11:32:09 Error in expression <py],"life_fnc_update",true,false] spawn life_fnc_MP;>
      11:32:09   Error position: <life_fnc_MP;>
      11:32:09   Error Undefined variable in expression: life_fnc_mp
      11:32:09 File life_server\Functions\DynMarket\fn_calculatePrices.sqf, line 129
      Alles anzeigen

      Die Funktion life_fnc_MP gibt es in der 4.4r3 nicht mehr. Sicher dass du meine Files verwendest?

    • [TUTORIAL][Altis Life 4.4r3] RyanTTs Dynamic Market System

      • blackfisch
      • 18. September 2016 um 12:17

      Das ist völlig egal, da das im Endeffekt das Gleiche ist.

    • [TUTORIAL] Rucksäcke unsichtbar machen (Cop/Medics)

      • blackfisch
      • 18. September 2016 um 11:47
      Zitat von br1zey

      wobei seit der 4.4 extra eine fn_playerSkin.sqf eingefürt wurde die meiner meinung nach Sehr Sehr gut Funktioniert


      Die fn_playerSkins.sqf wird aber nur aufgerufen, wenn du im Kleidungsshop warst/nachdem die Loadout.sqf ausgeführt wurde. Deswegen gibt's da hin und wieder mal untexturierte Geschichten. Da ist die Lösung aus der init_survival vielleicht nicht schöner, aber dann ist der Rucksack zu 100% unsichtbar ^^

    • Spyglass Kick

      • blackfisch
      • 18. September 2016 um 11:45
      Zitat von br1zey

      wo zum Teufel gibt es die Version 4.5 ... ???

      4.4r3 heißt "inoffiziell" schon 4.5. Alle entsprechenden Dateien und Label wurden schon angepasst, es läuft nur noch unter der Bezeichnng 4.4r3 da es noch nicht offiziell releast ist

    • Geld vom Konto abbuchen

      • blackfisch
      • 18. September 2016 um 11:43

      fn_virt_buy.sqf
      fn_virt_sell.sqf
      fn_weaponShopBuySell.sqf
      fn_vehicleShopBuy.sqf
      fn_buyClothes.sqf
      fn_chopShopSell.sqf

      (alle Dateien im Ordner core\shops)

      Einfach überall life_cash ersetzen mit life_atmcash und das Geld wird von der Bank abgezogen und drauf eingezahlt automatisch.

    • [TUTORIAL][Altis Life] Automatische Nachrichten im Spiel (mit Bildern)

      • blackfisch
      • 18. September 2016 um 11:10

      Jajaja, hetz mich nicht :p es war spät und ich inkompetent xD

      #updated

    • [TUTORIAL][ALTIS LIFE] Schlangen entfernen

      • blackfisch
      • 18. September 2016 um 11:07

      Hab nicht gesagt das ist Sehr gut von der [lexicon]Performance[/lexicon] ;p

      Ne, das geht sogar. Musst die überlegen, die init_survival hat ein while (true) do mit sleep 1 drin, hier sind es 10

    • [TUTORIAL][Altis Life 4.4r3] RyanTTs Dynamic Market System

      • blackfisch
      • 18. September 2016 um 11:05

      Tutorial wird im Laufe des heutigen Tages nochmal komplett überarbeitet!

    • [TUTORIAL][Altis Life 4.4r3] Fahrzeug Versicherungen

      • blackfisch
      • 18. September 2016 um 00:24

      Oh... Ehm.. Ja gut xD Meinte das wäre nur für die 4.4 gewesen... my bad lol

      #MirFehltSchlafIchPosteAllesDoppeltHeute

    • [TUTORIAL][Altis Life] Automatische Nachrichten im Spiel (mit Bildern)

      • blackfisch
      • 18. September 2016 um 00:19

      Script: Automatische Nachrichten
      Version: Alle Versionen
      Schiwerigkeitsgrad: Einfach (Copy & Paste)
      Funktionen:
      ~ anpassbare Nachrichten (per Hint) an den Spieler
      ~ optional mit Bild/Sound

      Rechtliche Hinweise (Copyright):
      Dieses Script stammt aus dem altisliferpg.com Forum und wurde dort von winter veröffentlicht. Alle Credits gehen an ihn, ich übersetze das Tutorial lediglich.
      Zum ursprünglichen Tutorial: http://www.altisliferpg.com/index.php?/top…tomatic-message


      Nun zum eigentlichen Teil dieses Posts...

      Anleitung:

      • Erstellt einen neuen Ordner scripts mit einer neuen Datei autoMessages.sqf mit folgendem Inhalt:
        C
        /*  
            File: autoMessages.sqf  
            Author: BenjaminSansNom  
            Edited by: blackfisch for Native-Network.net
            Description:  
            Auto messages in game every X minutes 
        */  
        
        // Add a line in this array to add a message  
        _messages = [  
            "Besucht doch unseren Server auch im Internet:<br/> <t color='#e32828' size='1.5'>www.mein-toller-server.de</t>",  
            "Kommt doch auf unseren TeamSpeak:<br/><t color='#e32828' size='1.5'>ts.mein-toller-server.de</t>",
            "Für die dritte Nachricht fällt mir nichts mehr ein und ich habe keinen Bock auf Formatieren..."        
        ];  
        _refreshTime = 5; // Time between each message (in minutes)  
        _i = 0;
        for "_u" from 0 to 1 step 0 do {  
            _count = (count _messages) - 1;  
            _message = _messages select _i;  
            hint parseText format["<t color='#ffffff' size='2'>Mein toller</t><t color='#c45454' size='2'>Servername</t><br/><br/><img shadown='false' size='6' image='images\logo.paa'/><br/><br/>%1", _message];  
            uisleep (_refreshTime*60);  
            if (_i isEqualTo _count) then {  
                _i = 0;
            } else {  
                _i = _i + 1;
            };  
        };
        Alles anzeigen
      • Öffnet eure init.sqf und fügt unter [] execVM "briefing.sqf"; folgendes ein:
        C
        [] execVM "scripts\autoMessages.sqf";


      Fertig!
      Das war's schon!

      Sieht Ingame etwa so aus:

      Spoiler anzeigen


      Für weitere Informationen zur Formatierung schau hier:
      BI Community Wiki - Structured Text Operatoren: https://community.bistudio.com/wiki/Structured_Text#Operators
      BI Community Wiki - format: https://community.bistudio.com/wiki/format
      BI Community Wiki - hint: https://community.bistudio.com/wiki/hint
      BI Community Wiki - image: https://community.bistudio.com/wiki/image
      BI Community Wiki - parseText: https://community.bistudio.com/wiki/parseText


      Ich wünsche euch Viel Spaß mit dem Script :thumbup:

    • [TUTORIAL][ALTIS LIFE] Schlangen entfernen

      • blackfisch
      • 18. September 2016 um 00:04

      Script: Schlangen entfernen
      Version: Alle Versionen
      Schiwerigkeitsgrad: Sehr einfach (Copy & Paste)
      Funktionen:
      ~ löscht im 10 Sekunden Rhythmus alle Schlangen

      Rechtliche Hinweise (Copyright):
      Dieses Script stammt aus dem altisliferpg.com Forum und wurde dort von suffer4real veröffentlicht. Alle Credits gehen an ihn, ich übersetze das Tutorial lediglich.
      Zum ursprünglichen Tutorial: http://www.altisliferpg.com/index.php?/top…emoving-snakes/


      Nun zum eigentlichen Teil dieses Posts...

      Anleitung:

      Erstellt einen neuen Ordner scripts mit einer neuen Datei removeSnakes.sqf mit folgendem Inhalt:

      C
      /*
      	File: removeSnakes.sqf
      	Author: unknown, published by suffer4real
      	Modified by: blackfisch
      
      
      
      
      	Description:
      	Remove all snakes
      */
      
      
      
      
      0 spawn 
      {
      	for "_i" from 0 to 1 step 0 do 
      	{
              {
                  if ((agent _x isKindOf "Snake_random_F")) then { deleteVehicle agent _x; };
              } forEach agents;
              sleep 10;
          };
      };
      Alles anzeigen

      Öffnet eure init.sqf und fügt unter [] execVM "briefing.sqf"; folgendes ein:

      C
      [] execVM "scripts\removeSnakes.sqf";


      Fertig!
      Das war's schon!


      Ich wünsche euch Viel Spaß mit dem Script :thumbup:

    • [TUTORIAL][Altis Life 4.4r3] Fahrzeug Versicherungen

      • blackfisch
      • 17. September 2016 um 23:52

      Jetzt zum Teil in der @life_server und der @life_hc!

      • Öffne die config.cpp und füge bei class TON_System folgendes ein (sowohl bei life_server & life_hc!):
        C
        class insureCar {};
      • Öffne die Functions\Systems\fn_spawnVehicle.sqf
        C
        _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];
        
        
        
        
        ersetzen mit
        
        
        
        
        _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist, insure FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];
        Alles anzeigen
        C
        _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7)],true];
        
        
        
        
        ersetzen mit
        
        
        
        
        _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7),(_vInfo select 14)],true];
        Alles anzeigen
        C
        [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
        serv_sv_use deleteAt _servIndex;
        
        
        
        
        ersetzen mit
        
        
        
        
        if ((_vInfo select 14) isEqualTo 1) then {
        [1,"Votre véhicule est disponible et il est assuré!"] remoteExecCall ["life_fnc_broadcast",_unit];
        }else{
        [1,"Votre véhicule est disponible mais il n'est pas assuré!"] remoteExecCall ["life_fnc_broadcast",_unit];
        };
        serv_sv_use deleteAt _servIndex;
        Alles anzeigen
        C
        [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
        serv_sv_use deleteAt _servIndex;
        
        
        
        
        ersetzen mit
        
        
        
        
        if ((_vInfo select 14) isEqualTo 1) then {
        [1,"Votre véhicule est disponible et il est assuré!"] remoteExecCall ["life_fnc_broadcast",_unit];
        }else{
        [1,"Votre véhicule est disponible mais il n'est pas assuré!"] remoteExecCall ["life_fnc_broadcast",_unit];
        };
        serv_sv_use deleteAt _servIndex;
        Alles anzeigen
      • Erstelle eine Datei fn_insureCar.sqf in life_server\functions\Systems mit folgendem Inhalt:
        C
        /*
        File: fn_insureCar.sqf
        Author: Guit0x "Lintox"
        
        
        
        
        Description:
        Insure a vehicle from the garage.
        */
        private["_vid","_pid","_query","_sql","_unit","_insurancePrice","_thread"];
        
        
        
        
        _vid = [_this,0,-1,[0]] call BIS_fnc_param;
        _pid = [_this,1,"",[""]] call BIS_fnc_param;
        _unit = [_this,2,ObjNull,[ObjNull]] call BIS_fnc_param;
        _insurancePrice = [_this,3,0,[0]] call BIS_fnc_param;
        
        
        
        
        _query = format["UPDATE vehicles SET insure='1' WHERE pid='%1' AND id='%2'",_pid,_vid];
        
        
        
        
        waitUntil {!DB_Async_Active};
        _thread = [_query,1] call DB_fnc_asyncCall;
        Alles anzeigen
      • Erstelle eine Datei fn_insureCar.sqf in life_hc\functions\Systems mit folgendem Inhalt:
        C
        /*
        File: fn_insureCar.sqf
        Author: Guit0x "Lintox"
        Description:
        Insure a vehicle from the garage.
        */
        private["_vid","_pid","_query","_sql","_unit","_insurancePrice","_thread"];
        _vid = [_this,0,-1,[0]] call BIS_fnc_param;
        _pid = [_this,1,"",[""]] call BIS_fnc_param;
        _unit = [_this,2,ObjNull,[ObjNull]] call BIS_fnc_param;
        _insurancePrice = [_this,3,0,[0]] call BIS_fnc_param;
        _query = format["UPDATE vehicles SET insure=‘1' WHERE pid='%1' AND id='%2'",_pid,_vid];
        waitUntil {!DB_Async_Active};
        _thread = [_query,1] call HC_fnc_asyncCall;
        Alles anzeigen
      • life_server\FSM\cleanup.fsm ersetzen mit:
        C
        /*%FSM<COMPILE "D:\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Server-Side Cleanup">*/
        /*%FSM<HEAD>*/
        /*
        item0[] = {"init",0,250,-65.004578,-391.651611,24.995417,-341.651672,0.000000,"init"};
        item1[] = {"true",8,218,-62.976639,-315.185364,27.023363,-265.185364,0.000000,"true"};
        item2[] = {"Share__Work_load",2,250,-64.183350,-224.681931,25.816656,-174.681931,0.000000,"Share " \n "Work-load"};
        item3[] = {"true",8,218,-54.709698,75.189262,35.290302,125.189262,0.000000,"true"};
        item4[] = {"Time_Check",4,218,-219.425827,-133.310532,-129.425964,-83.310455,0.000000,"Time Check"};
        item5[] = {"Delete_Dead_Cars",2,4346,-220.186951,-29.248400,-130.187195,20.751413,0.000000,"Delete" \n "Dead" \n "Cars"};
        item6[] = {"",7,210,-312.538239,95.295059,-304.538239,103.295059,0.000000,""};
        item7[] = {"",7,210,-311.750000,-203.033707,-303.750000,-195.033707,0.000000,""};
        link0[] = {0,1};
        link1[] = {1,2};
        link2[] = {2,4};
        link3[] = {3,6};
        link4[] = {4,5};
        link5[] = {5,3};
        link6[] = {6,7};
        link7[] = {7,2};
        globals[] = {0.000000,0,0,0,0,640,480,1,46,6316128,1,-629.444153,611.207214,293.309357,-434.050568,1243,885,1};
        window[] = {2,-1,-1,-1,-1,985,225,1868,225,3,1261};
        *//*%FSM</HEAD>*/
        class FSM
        {
        fsmName = "Server-Side Cleanup";
        class States
        {
        /*%FSM<STATE "init">*/
        class init
        {
        name = "init";
        init = /*%FSM<STATEINIT""">*/"private[""_impound"",""_cars"",""_objs"",""_totCars"",""_thread""];" \n
        "_impound = time;" \n
        "_cars = time;" \n
        "_objs = time;"/*%FSM</STATEINIT""">*/;
        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
        class Links
        {
        /*%FSM<LINK "true">*/
        class true
        {
        priority = 0.000000;
        to="Share__Work_load";
        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        };
        };
        /*%FSM</STATE>*/
        /*%FSM<STATE "Share__Work_load">*/
        class Share__Work_load
        {
        name = "Share__Work_load";
        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
        class Links
        {
        /*%FSM<LINK "Time_Check">*/
        class Time_Check
        {
        priority = 0.000000;
        to="Delete_Dead_Cars";
        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
        condition=/*%FSM<CONDITION""">*/"((time - _cars) > (3 * 60))"/*%FSM</CONDITION""">*/;
        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        };
        };
        /*%FSM</STATE>*/
        /*%FSM<STATE "Delete_Dead_Cars">*/
        class Delete_Dead_Cars
        {
        name = "Delete_Dead_Cars";
        init = /*%FSM<STATEINIT""">*/"{" \n
        " if(!alive _x) then {" \n
        "_dbInfo = _x getVariable[""dbInfo"",[]];" \n
        "if(count _dbInfo > 0) then {" \n
        "_uid = _dbInfo select 0;" \n
        "_plate = _dbInfo select 1;" \n
        "_insureSystem = _dbInfo select 2;" \n
        "            diag_log "" destroy vehicule !"";" \n
        "diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "if(_insureSystem == 1) then " \n
        "                 { " \n
        "                     diag_log "" Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query_0 = format[""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n
        "                     _query_0 spawn " \n
        "                     {" \n
        "                         waitUntil {!DB_Async_Active};" \n
        "                         _thread_0 = [_this,1] call DB_fnc_asyncCall;" \n
        "                     };" \n
        "                  } " \n
        "                  else  " \n
        "                  {  " \n
        "                     diag_log "" Not insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate];  " \n
        "                     _query spawn " \n
        "                     {" \n
        "                          waitUntil {!DB_Async_Active};" \n
        "                         _thread = [_this,1] call DB_fnc_asyncCall;" \n
        "                     };      " \n
        "                 }; " \n
        "        };" \n
        "if(!isNil ""_x"" && {!isNull _x}) then {" \n
        "deleteVehicle _x;" \n
        "};" \n
        " };" \n
        "} foreach allMissionObjects ""LandVehicle"";" \n
        "" \n
        "{" \n
        " if(!alive _x) then {" \n
        "_dbInfo = _x getVariable[""dbInfo"",[]];" \n
        "if(count _dbInfo > 0) then {" \n
        "_uid = _dbInfo select 0;" \n
        "_plate = _dbInfo select 1;" \n
        "_insureSystem = _dbInfo select 2;" \n
        "            diag_log "" destroy vehicule !"";" \n
        "diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "if(_insureSystem == 1) then " \n
        "                 { " \n
        "                     diag_log "" Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query_0 = format[""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n
        "                     _query_0 spawn " \n
        "                     {" \n
        "                         waitUntil {!DB_Async_Active};" \n
        "                         _thread_0 = [_this,1] call DB_fnc_asyncCall;" \n
        "                     };" \n
        "                  } " \n
        "                  else  " \n
        "                  {  " \n
        "                     diag_log "" Not Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate];  " \n
        "                     _query spawn " \n
        "                     {" \n
        "                          waitUntil {!DB_Async_Active};" \n
        "                         _thread = [_this,1] call DB_fnc_asyncCall;" \n
        "                     };      " \n
        "                 }; " \n
        "        };" \n
        "if(!isNil ""_x"" && {!isNull _x}) then {" \n
        "deleteVehicle _x;" \n
        "};" \n
        " };" \n
        "} foreach allMissionObjects ""Air"";" \n
        "" \n
        "_cars = time;" \n
        "" \n
        "//Group cleanup." \n
        "{" \n
        " if(count units _x == 0 && local _x) then {" \n
        "deleteGroup _x;" \n
        " };" \n
        "} foreach allGroups;"/*%FSM</STATEINIT""">*/;
        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
        class Links
        {
        /*%FSM<LINK "true">*/
        class true
        {
        priority = 0.000000;
        to="Share__Work_load";
        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        };
        };
        /*%FSM</STATE>*/
        };
        initState="init";
        finalStates[] =
        {
        };
        };
        /*%FSM</COMPILE>*/
        Alles anzeigen
      • life_hc\FSM\cleanup.fsm ersetzen mit:
        C
        /*%FSM<COMPILE "D:\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Server-Side Cleanup">*/
        /*%FSM<HEAD>*/
        /*
        item0[] = {"init",0,250,-65.004578,-391.651611,24.995417,-341.651672,0.000000,"init"};
        item1[] = {"true",8,218,-62.976639,-315.185364,27.023363,-265.185364,0.000000,"true"};
        item2[] = {"Share__Work_load",2,250,-64.183350,-224.681931,25.816656,-174.681931,0.000000,"Share " \n "Work-load"};
        item3[] = {"true",8,218,-54.709698,75.189262,35.290302,125.189262,0.000000,"true"};
        item4[] = {"Time_Check",4,218,-219.425827,-133.310532,-129.425964,-83.310455,0.000000,"Time Check"};
        item5[] = {"Delete_Dead_Cars",2,4346,-220.186951,-29.248400,-130.187195,20.751413,0.000000,"Delete" \n "Dead" \n "Cars"};
        item6[] = {"",7,210,-312.538239,95.295059,-304.538239,103.295059,0.000000,""};
        item7[] = {"",7,210,-311.750000,-203.033707,-303.750000,-195.033707,0.000000,""};
        link0[] = {0,1};
        link1[] = {1,2};
        link2[] = {2,4};
        link3[] = {3,6};
        link4[] = {4,5};
        link5[] = {5,3};
        link6[] = {6,7};
        link7[] = {7,2};
        globals[] = {0.000000,0,0,0,0,640,480,1,46,6316128,1,-629.444153,611.207214,293.309357,-434.050568,1243,885,1};
        window[] = {2,-1,-1,-1,-1,985,225,1868,225,3,1261};
        *//*%FSM</HEAD>*/
        class FSM
        {
        fsmName = "Server-Side Cleanup";
        class States
        {
        /*%FSM<STATE "init">*/
        class init
        {
        name = "init";
        init = /*%FSM<STATEINIT""">*/"private[""_impound"",""_cars"",""_objs"",""_totCars"",""_thread""];" \n
        "_impound = time;" \n
        "_cars = time;" \n
        "_objs = time;"/*%FSM</STATEINIT""">*/;
        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
        class Links
        {
        /*%FSM<LINK "true">*/
        class true
        {
        priority = 0.000000;
        to="Share__Work_load";
        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        };
        };
        /*%FSM</STATE>*/
        /*%FSM<STATE "Share__Work_load">*/
        class Share__Work_load
        {
        name = "Share__Work_load";
        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
        class Links
        {
        /*%FSM<LINK "Time_Check">*/
        class Time_Check
        {
        priority = 0.000000;
        to="Delete_Dead_Cars";
        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
        condition=/*%FSM<CONDITION""">*/"((time - _cars) > (3 * 60))"/*%FSM</CONDITION""">*/;
        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        };
        };
        /*%FSM</STATE>*/
        /*%FSM<STATE "Delete_Dead_Cars">*/
        class Delete_Dead_Cars
        {
        name = "Delete_Dead_Cars";
        init = /*%FSM<STATEINIT""">*/"{" \n
        " if(!alive _x) then {" \n
        "_dbInfo = _x getVariable[""dbInfo"",[]];" \n
        "if(count _dbInfo > 0) then {" \n
        "_uid = _dbInfo select 0;" \n
        "_plate = _dbInfo select 1;" \n
        "_insureSystem = _dbInfo select 2;" \n
        "            diag_log "" destroy vehicule !"";" \n
        "diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "if(_insureSystem == 1) then " \n
        "                 { " \n
        "                     diag_log "" Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query_0 = format[""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n
        "                     _query_0 spawn " \n
        "                     {" \n
        "                         _thread_0 = [_this,1] call HC_fnc_asyncCall;" \n
        "                     };" \n
        "                  } " \n
        "                  else  " \n
        "                  {  " \n
        "                     diag_log "" Not Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate];  " \n
        "                     _query spawn " \n
        "                     {" \n
        "                         _thread = [_this,1] call HC_fnc_asyncCall;" \n
        "                     };      " \n
        "                 }; " \n
        "        };" \n
        "if(!isNil ""_x"" && {!isNull _x}) then {" \n
        "deleteVehicle _x;" \n
        "};" \n
        " };" \n
        "} foreach allMissionObjects ""LandVehicle"";" \n
        "" \n
        "{" \n
        " if(!alive _x) then {" \n
        "_dbInfo = _x getVariable[""dbInfo"",[]];" \n
        "if(count _dbInfo > 0) then {" \n
        "_uid = _dbInfo select 0;" \n
        "_plate = _dbInfo select 1;" \n
        "_insureSystem = _dbInfo select 2;" \n
        "            diag_log "" destroy vehicule !"";" \n
        "diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "if(_insureSystem == 1) then " \n
        "                 { " \n
        "                     diag_log "" Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query_0 = format[""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n
        "                     _query_0 spawn " \n
        "                     {" \n
        "                         _thread_0 = [_this,1] call HC_fnc_asyncCall;" \n
        "                     };" \n
        "                  } " \n
        "                  else  " \n
        "                  {  " \n
        "                     diag_log "" Not Insured !"";" \n
        "                     diag_log format[""insureSystem = %1 "", _insureSystem];" \n
        "                     _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate];  " \n
        "                     _query spawn " \n
        "                     {" \n
        "                         _thread = [_this,1] call HC_fnc_asyncCall;" \n
        "                     };      " \n
        "                 }; " \n
        "        };" \n
        "if(!isNil ""_x"" && {!isNull _x}) then {" \n
        "deleteVehicle _x;" \n
        "};" \n
        " };" \n
        "} foreach allMissionObjects ""Air"";" \n
        "" \n
        "_cars = time;" \n
        "" \n
        "//Group cleanup." \n
        "{" \n
        " if(count units _x == 0 && local _x) then {" \n
        "deleteGroup _x;" \n
        " };" \n
        "} foreach allGroups;"/*%FSM</STATEINIT""">*/;
        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
        class Links
        {
        /*%FSM<LINK "true">*/
        class true
        {
        priority = 0.000000;
        to="Share__Work_load";
        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        };
        };
        /*%FSM</STATE>*/
        };
        initState="init";
        finalStates[] =
        {
        };
        };
        /*%FSM</COMPILE>*/
        Alles anzeigen
      • Functions\Systems\fn_getVehicles.sqf (sowohl life_hc und life_server)
        C
        _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color FROM vehicles WHERE pid='%1' AND alive=‘1' AND active=‘0' AND side='%2' AND type='%3'",_pid,_side,_type];
        
        
        
        
        ersetzen mit
        
        
        
        
        _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, insure FROM vehicles WHERE pid='%1' AND alive='1' AND active='0' AND side='%2' AND type='%3'",_pid,_side,_type];
        Alles anzeigen
      • Zu guter letzt noch folgende SQL in der Datenbank ausführen:
        SQL
        ALTER TABLE vehicles ADD insure INT(1) NOT NULL DEFAULT ‘0';


      Fertig!
      Das war's schon!


      Sieht Ingame etwa so aus:

      Spoiler anzeigen


      Ich wünsche euch Viel Spaß mit dem Script
      :thumbup:

    • [TUTORIAL][Altis Life 4.4r3] Fahrzeug Versicherungen

      • blackfisch
      • 17. September 2016 um 23:51

      Script: Fahrzeug Versicherungen
      Version: Altis Life 4.4r3/4.5
      Schiwerigkeitsgrad: Medium
      Funktionen:
      ~ Fahrzeuge versichern (bei Zerstörung wieder in der Garage)

      Rechtliche Hinweise (Copyright):
      Dieses Script stammt aus dem altisliferpg.com Forum und wurde dort von Shakir Darwish veröffentlicht. Alle Credits gehen an ihn, ich übersetze das Tutorial lediglich.
      Zum ursprünglichen Tutorial: http://www.altisliferpg.com/index.php?/top…insurance-44r3/


      Nun zum eigentlichen Teil dieses Posts...

      Anleitung:

      • Öffnet eure dialog\impound.hpp und fügt nach class SellCar folgendes ein:
        C
        class InsureCar : life_RscButtonMenu  
            {  
                idc = 97480;  
                text = "Assurer";  
                onButtonClick = "[] call life_fnc_insureCar;";  
                x = 0.43 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));  
                y = 0.9 - (1 / 25);  
                w = (6.25 / 40);  
                h = (1 / 25);  
            };
      • Erstellt eine neue Datei fn_insureCar.sqf im Ordner dialog\function mit folgendem Inhalt:
        C
        #include "..\..\script_macros.hpp"  
        /*  
        	File: fn_insureCar.sqf  
        	Author: Guit0x "Lintox"  
        	Description:  
        	Insure a vehicle from the garage.  
        */  
        private["_vehicle","_vehicleLife","_vid","_pid","_unit","_multiplier","_price","_purchasePrice","_insurancePrice"];  
        disableSerialization;  
        if ((lbCurSel 2802) isEqualTo -1) exitWith {hint localize "STR_Global_NoSelection"};  
        _vehicle = lbData[2802,(lbCurSel 2802)];  
        _vehicle = (call compile format["%1",_vehicle]) select 0;  
        _vehicleLife = _vehicle;  
        _vid = lbValue[2802,(lbCurSel 2802)];  
        _pid = getPlayerUID player;  
        _unit = player;  
        if(isNil "_vehicle") exitWith {hint localize "STR_Garage_Selection_Error"};  
        if ((time - life_action_delay) < 1.5) exitWith {hint localize "STR_NOTF_ActionDelay";};  
        if (!isClass (missionConfigFile >> "LifeCfgVehicles" >> _vehicleLife)) then {  
            _vehicleLife = "Default"; //Use Default class if it doesn't exist  
            diag_log format["%1: LifeCfgVehicles class doesn't exist",_vehicle];  
        };  
        _price = M_CONFIG(getNumber,"LifeCfgVehicles",_vehicleLife,"price");  
        switch (playerSide) do {  
            case civilian: {  
                _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_CIVILIAN");  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");  
            };  
            case west: {  
                _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_COP");  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");  
            };  
            case independent: {  
                _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_MEDIC");  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");  
            };  
            case east: {  
                _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_OPFOR");  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");  
            };  
        };  
        _insurancePrice = _purchasePrice * _multiplier;  
        if(!(_insurancePrice isEqualType 0) || _insurancePrice < 1) then {_insurancePrice = 500};  
        if(BANK < _insurancePrice) exitWith {hint format[(localize "STR_GNOTF_NotEnoughMoney"),[_insurancePrice] call life_fnc_numberText];};  
        if (life_HC_isActive) then {  
            [_vid,_pid,_insurancePrice,player,life_garage_type] remoteExecCall ["HC_fnc_insureCar",HC_Life];  
        } else {  
            [_vid,_pid,_insurancePrice,player,life_garage_type] remoteExecCall ["TON_fnc_insureCar",RSERV];  
        };  
        hint localize "STR_InsuranceApply";  
        BANK = BANK - _insurancePrice;  
        life_action_delay = time;  
        closeDialog 0;
        Alles anzeigen
      • Geht in eure Functions.hpp und fügt bei class Dialog_Controls folgendes ein:
        C: Functions.hpp
        class Dialog_Controls
        	{
        		file = "dialog\function";
        		[...]
        		class insureCar {};
        		[...]
        	};
      • Öffnet eure dialog/function/fn_garageLBChange.sqf

        C
        private["_control","_index","_className","_classNameLife","_dataArr","_vehicleColor","_vehicleInfo","_trunkSpace","_sellPrice","_retrievePrice","_sellMultiplier","_price","_storageFee","_purchasePrice"];
        
        
        
        
        ersetzen mit
        
        
        
        
        private["_control","_index","_className","_classNameLife","_dataArr","_vehicleColor","_vehicleInfo","_trunkSpace","_sellPrice","_retrievePrice","_sellMultiplier","_insurance","_insuranceMultiplier","_price","_storageFee","_purchasePrice","_insurancePrice"];
        Alles anzeigen


        Außerdem:

        C
        unter 
        
        
        
        
        _classNameLife = _className;
        
        
        
        
        hinzufügen:
        
        
        
        
        _insurance = (_dataArr select 2);
        Alles anzeigen


        Und:

        C
        switch (playerSide) do {  
            case civilian: {  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");  
                _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN");  
            };  
            case west: {  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");  
                _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP");		  
            };  
            case independent: {  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");  
                _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC");		  
            };  
            case east: {  
                _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");  
                _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR");		  
            };  
        };
        
        
        
        
        
        
        
        ersetzen mit
        
        
        
        
        switch (playerSide) do {
        	case civilian: {
        		_purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");
        		_sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN");
        		_insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_CIVILIAN");
        	};
        	case west: {
        		_purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");
        		_sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP");
        		_insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_COP");
        	};
        	case independent: {
        		_purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");
        		_sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC");
        		_insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_MEDIC");
        	};
        	case east: {
        		_purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");
        		_sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR");
        		_insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_OPFOR");
        	};
        };
        Alles anzeigen


        Sowie:

        C
        unter 
        
        
        
        
        _sellPrice = _purchasePrice * _sellMultiplier;
        
        
        
        
        hinzufügen:
        
        
        
        
        _insurancePrice = _purchasePrice * _insuranceMultiplier;
        Alles anzeigen


        Weiterhin:

        C
        unter 
        
        
        
        
        if (!(_retrievePrice isEqualType 0) || _retrievePrice < 1) then {_retrievePrice = 500;};
        
        
        
        
        hinzufügen:
        
        
        
        
        if (!(_insurancePrice isEqualType 0) || _insurancePrice < 1) then {_insurancePrice = 500;};
        Alles anzeigen


        Und:

        C
        (CONTROL(2800,2803)) ctrlSetStructuredText parseText format[  
            (localize "STR_Shop_Veh_UI_RetrievalP")+ " <t color='#8cff9b'>$%1</t><br/>  
            " +(localize "STR_Shop_Veh_UI_SellP")+ " <t color='#8cff9b'>$%2</t><br/>  
            " +(localize "STR_Shop_Veh_UI_Color")+ " %8<br/>  
            " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " %3 km/h<br/>  
            " +(localize "STR_Shop_Veh_UI_HPower")+ " %4<br/>  
            " +(localize "STR_Shop_Veh_UI_PSeats")+ " %5<br/>  
            " +(localize "STR_Shop_Veh_UI_Trunk")+ " %6<br/>  
            " +(localize "STR_Shop_Veh_UI_Fuel")+ " %7  
            ",
        
        
        
        
        ersetzen durch:
        
        
        
        
        (CONTROL(2800,2803)) ctrlSetStructuredText parseText format[
        (localize "STR_Shop_Veh_UI_RetrievalP")+ " <t color='#8cff9b'>$%1</t><br/>
        " +(localize "STR_Shop_Veh_UI_SellP")+ " <t color='#8cff9b'>$%2</t><br/>
        Prix de l'assurance: <t color='#8cff9b'>$%9</t><br/>
        Etat de l'assurance: %10<br/>
        " +(localize "STR_Shop_Veh_UI_Color")+ " <t color='#8cff9b'>%8</t><br/>
        " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " <t color='#8cff9b'>%3 km/h</t><br/>
        " +(localize "STR_Shop_Veh_UI_HPower")+ " <t color='#8cff9b'>%4</t><br/>
        " +(localize "STR_Shop_Veh_UI_PSeats")+ " <t color='#8cff9b'>%5</t><br/>
        " +(localize "STR_Shop_Veh_UI_Trunk")+ " <t color='#8cff9b'>%6</t><br/>
        " +(localize "STR_Shop_Veh_UI_Fuel")+ " <t color='#8cff9b'>%7</t>
        ",
        Alles anzeigen


        Weiter gehts:

        C
        (_vehicleInfo select 12),
        _vehicleColor
        ];
        
        
        
        
        ersetzen durch:
        
        
        
        
        (_vehicleInfo select 12),
        _vehicleColor,
        [_insurancePrice] call life_fnc_numberText,
        if(_insurance == 1) then {"<t color='#8cff9b'>Assuré</t>"} else {"<t color='#FF0000'>Pas d'assurance</t>"},
        (_vehicleInfo select 9)
        ];
        
        
        
        
        if(_insurance == 1) then {
        ctrlShow [97480,False];
        }else{
        ctrlShow [97480,True];
        };
        Alles anzeigen

        Fertige Datei zum Vergleich: fn_garageLBChange.sqf

      • Öffnet eure dialog\function\fn_impoundMenu.sqf
        C
        _tmp = [(_x select 2),(_x select 8)];
        
        
        
        
        ersetzen mit
        
        
        
        
        _tmp = [(_x select 2),(_x select 8),(_x select 9)];
        Alles anzeigen
      • Öffnet eure CfgRemoteExec.hpp und fügt folgendes unter F(TON_fnc_handleBlastingCharge,SERVER) ein:
        C
        F(TON_fnc_insureCar,SERVER)


        Und unter F(HC_fnc_wantedRemove,HC):

        C
        F(HC_fnc_insureCar,HC)
      • Öffnet eure stringtable.xml und fügt folgendes unter <Key ID="STR_pInAct_SellGarage"> ein:
        C
        <Key ID="STR_InsuranceApply">  
        		<Original>You just insure your vehicle you are now protected against explosions!</Original>  
        		<Czech>Právě jste pojistit své vozidlo se nyní chráněna proti výbuchu!</Czech>  
                <Spanish>Usted acaba de asegurar su vehículo que ahora está protegido contra explosiones!</Spanish>  
                <Italian>Basta assicurare il vostro veicolo si sono ora protetti contro le esplosioni!</Italian>  
                <Polish>Po prostu ubezpieczyć swój pojazd jesteś teraz zabezpieczona przed wybuchem!</Polish>  
                <Russian>Вы просто застраховать свой автомобиль, вы теперь защищены от взрывов!</Russian>  
                <French>Vous venez d'assurer votre véhicule vous êtes maintenant protégé contre les explosions!</French>  
                <Portuguese>Você só segurar o seu veículo que você está actualmente protegida contra explosões!</Portuguese>  
                <German>Sie versichern nur Ihr Fahrzeug, das Sie jetzt vor Explosionen geschützt sind!</German>  
        	</Key>
        Alles anzeigen
      • Öffnet eure Config_Master.hpp und fügt unter Vehicle Sell Prices folgendes ein:
        C
        /* Vehicle Insurance Prices */  
        vehicle_insurance_multiplier_CIVILIAN = .25; //Civilian Vehicle Insurance Price = Vehicle Buy Price * multiplier  
        vehicle_insurance_multiplier_COP = .1; //Cop Vehicle Insurance Price = Vehicle Buy Price * multiplier  
        vehicle_insurance_multiplier_MEDIC = .1; //Medic Vehicle Insurance Price = Vehicle Buy Price * multiplier  
        vehicle_insurance_multiplier_OPFOR = -1; // -- NOT IN USE -- Simply left in for east support.

      Das war es schon an der Mission!

    • [TUTORIAL] BEC Auto Neustart alle 6 Stunden + Nachrichten

      • blackfisch
      • 17. September 2016 um 22:33

      Echt? Okay, dann ich nix gesagt ^^

    • [TUTORIAL] BEC Auto Neustart alle 6 Stunden + Nachrichten

      • blackfisch
      • 17. September 2016 um 22:30
      Zitat von Exodoos

      Port = HIER DEN SERVER PORT

      Korrigiere, muss der BattlEye Port sein, wie in der beserver.cfg definiert

    • Fahrzeuge nicht mehr kauf/mietbar. 4.4.R3

      • blackfisch
      • 17. September 2016 um 20:51

      Irgendwie stimmt bei dir was nicht... 4.4r3er Config_Vehicles und 4.0er Shop Dateien... Was istn da kaputt? xD Versuch mal die

      C: fn_vehicleShopMenu.sqf
      #include "..\..\script_macros.hpp"
      /*
      	File: fn_vehicleShopMenu.sqf
      	Author: Bryan "Tonic" Boardwine
      
      
      
      
      	Description:
      	Blah
      */
      private["_shop","_sideCheck","_spawnPoints","_shopFlag","_shopTitle","_disableBuy"];
      (SEL(_this,3)) params [
      	["_shop","",[""]],
      	["_sideCheck",sideUnknown,[civilian]],
      	["_spawnPoints","",["",[]]],
      	["_shopFlag","",[""]],
      	["_shopTitle","",[""]],
      	["_disableBuy",false,[true]]
      ];
      
      
      
      
      disableSerialization;
      //Long boring series of checks
      if(dialog) exitWith {};
      if(_shop == "") exitWith {};
      if(_sideCheck != sideUnknown && {playerSide != _sideCheck}) exitWith {hint localize "STR_Shop_Veh_NotAllowed"};
      if(!createDialog "Life_Vehicle_Shop_v2_3D") exitWith {};
      
      
      
      
      life_veh_shop = [_shop,_spawnpoints,_shopFlag,_disableBuy]; //Store it so so other parts of the system can access it.
      
      
      
      
      ctrlSetText [2301,_shopTitle];
      
      
      
      
      if(_disableBuy) then {
      	//Disable the buy button.
      	ctrlEnable [2309,false];
      };
      
      
      
      
      //Fetch the shop config.
      _vehicleList = M_CONFIG(getArray,"CarShops",_shop,"vehicles");
      
      
      
      
      _control = CONTROL(2300,2302);
      lbClear _control; //Flush the list.
      ctrlShow [2330,false];
      ctrlShow [2304,false];
      
      
      
      
      //Loop through
      {
          _className = _x select 0;
          _levelAssert = _x select 1;
          _levelName = _levelAssert select 0;
          _levelType = _levelAssert select 1;
          _levelValue = _levelAssert select 2;
          _showall = true;
      
      
      
      
          if (!(_levelValue isEqualTo -1)) then {
              _level = missionNamespace getVariable _levelName;
              if (_level isEqualType {}) then {_level = FETCH_CONST(_level);};
      
      
      
      
              _showall = switch (_levelType) do {
                  case "SCALAR": {_level >= _levelValue};
                  case "BOOL": {_level};
                  case "EQUAL": {_level isEqualTo _levelValue};
                  default {false};
              };
          };
      
      
      
      
          if (_showall) then {
              _vehicleInfo = [_className] call life_fnc_fetchVehInfo;
              _control lbAdd (_vehicleInfo select 3);
              _control lbSetPicture [(lbSize _control)-1,(_vehicleInfo select 2)];
              _control lbSetData [(lbSize _control)-1,_className];
              _control lbSetValue [(lbSize _control)-1,_ForEachIndex];
          };
      } forEach _vehicleList;
      
      
      
      
      [] call life_fnc_vehicleShopInit3DPreview;
      ((findDisplay 2300) displayCtrl 2302) lbSetCurSel 0;
      Alles anzeigen
    • Fahrzeuge nicht mehr kauf/mietbar. 4.4.R3

      • blackfisch
      • 17. September 2016 um 20:15

      Bitte deine Config_Vehicles.hpp da scheint ein Array falsch zu sein :p

      Korrigierte init im Anhang

      Dateien

      init.sqf 5,24 kB – 190 Downloads
    • Fahrzeuge nicht mehr kauf/mietbar. 4.4.R3

      • blackfisch
      • 17. September 2016 um 19:57

      core\init.sqf Da ist ein Fehler
      core\shops\fn_vehicleShopLBChange.sqf ebenfalls
      core\shops\fn_vehicleShopMenu.sqf Auch

      beides schicken pls

    Registrieren oder Einloggen

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

    Registrieren

    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-2026©
    Community-Software: WoltLab Suite™