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
Do: 22 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] Erweitertes PayCheck System

      • Altis Life
    • Risk
    • 18. Juni 2018 um 10:19
    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 18. Juni 2018 um 10:19
      • #1

      Moin Leute!

      Heute gebe ich euch mein Paycheck System.

      Ihr könnt hiermit Sachen in eurem Steam Namen abfragen und bekommt damit doppelt so viel Einkommen und eure Fraktionen haben noch einen Bonus der Pro Level geht sowohl auch der Multiplikator pro Level.


      Ich untersage die Verbreitung dieser Daten und die des von mir verfassten Tutorials in anderen Foren ohne vorher mein Einverständnis dazu einzuholen.

      erstellt eine Neue Datei Namens fn_steamName,sqf

      Spoiler anzeigen
      Code
      /*
          author: Risk
          description: Fragt den Namen des Spielers ab ob er _steamName auch in seinem Namen hat.
          returns: true/false
      */
      //true/false Funktion um Name abzufragen
      private _steamNameGet = profileNameSteam find "thelastgamer.de";
      
      !(_steamNameGet isEqualTo -1)

      ersetzt eure Client.fsm mit folgendem Inhalt. (core/fsm/Client.fsm)

      Spoiler anzeigen
      Code
      /*%FSM<COMPILE "scriptedFSM.cfg, Life Client FSM">*/
      /*%FSM<HEAD>*/
      /*
      item0[] = {"Main_Init",0,250,-40.348839,-141.279068,49.651161,-91.279068,0.000000,"Main Init"};
      item1[] = {"true",8,218,-39.994308,-65.712906,50.005692,-15.712896,0.000000,"true"};
      item2[] = {"Split",2,250,-39.994308,10.874098,50.005707,60.874100,0.000000,"Split"};
      item3[] = {"Time_to_pay_",4,4314,-169.516037,11.566972,-79.516006,61.567024,0.000000,"Time to pay?"};
      link0[] = {0,1};
      link1[] = {1,2};
      link2[] = {2,3};
      link3[] = {3,2};
      globals[] = {0.000000,0,0,0,0,640,480,1,26,6316128,1,-456.200378,358.065338,379.837494,-151.171021,1032,646,1};
      window[] = {0,-1,-1,-32000,-32000,870,52,1492,52,1,1050};
      *//*%FSM</HEAD>*/
      class FSM
      {
              fsmName = "Life Client FSM";
              class States
              {
                      /*%FSM<STATE "Main_Init">*/
                      class Main_Init
                      {
                              name = "Main_Init";
                              itemno = 0;
                              init = /*%FSM<STATEINIT""">*/"private [""_lastcheck"",""_food"",""_water"",""_lastsync""];" \n
                               "_lastcheck = time;" \n
                               "_food = time;" \n
                               "_water = time;" \n
                               "_lastsync = time;"/*%FSM</STATEINIT""">*/;
                              precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                              class Links
                              {
                                      /*%FSM<LINK "true">*/
                                      class true
                                      {
                                              itemno = 1;
                                              priority = 0.000000;
                                              to="Split";
                                              precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                              condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                              action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                      };
                                      /*%FSM</LINK>*/
                              };
                      };
                      /*%FSM</STATE>*/
                      /*%FSM<STATE "Split">*/
                      class Split
                      {
                              name = "Split";
                              itemno = 2;
                              init = /*%FSM<STATEINIT""">*/"systemChat format [localize ""STR_FSM_Paycheck"",(getNumber(missionConfigFile >> ""Life_Settings"" >> ""paycheck_period""))];"/*%FSM</STATEINIT""">*/;
                              precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                              class Links
                              {
                                      /*%FSM<LINK "Time_to_pay_">*/
                                      class Time_to_pay_
                                      {
                                              itemno = 3;
                                              priority = 0.000000;
                                              to="Split";
                                              precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                              condition=/*%FSM<CONDITION""">*/"(time - _lastcheck) > ((getNumber(missionConfigFile >> ""Life_Settings"" >> ""paycheck_period"")) * 60)"/*%FSM</CONDITION""">*/;
                                              action=/*%FSM<ACTION""">*/"/*" \n
                                               "    author: Risk" \n
                                               "    description: Adds Steamname check, Bonus Money & Multiplikator" \n
                                               "    returns: nothing" \n
                                               "*/" \n
                                               "" \n
                                               "if (!alive player) then {" \n
                                               "    systemChat localize ""STR_FSM_MissedPay"";" \n
                                               "} else {" \n
                                               "    if(playerSide in [west,independent,east])then{" \n
                                               "        private ""_bonus"";" \n
                                               "        private ""_multiplikator"";" \n
                                               "        if (playerSide isEqualTo west)then{" \n
                                               "            //private _payCheckConfig = missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_cop"" >> format[""level_%1_cop"", call life_coplevel];" \n
                                               "            _bonus = getNumber (missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_cop"" >> format[""level_%1_cop"", call life_coplevel] >> ""bonus"");" \n
                                               "            _multiplikator = getNumber (missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_cop"" >> format[""level_%1_cop"", call life_coplevel] >> ""multiplikator"");" \n
                                               "        };" \n
                                               "        if (playerSide isEqualTo independent)then{" \n
                                               "            //private _payCheckConfig = missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_medic"" >> format[""level_%1_medic"", call life_mediclevel];" \n
                                               "            _bonus = getNumber (missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_medic"" >> format[""level_%1_medic"", call life_mediclevel] >> ""bonus"");" \n
                                               "            _multiplikator = getNumber (missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_medic"" >> format[""level_%1_medic"", call life_mediclevel] >> ""multiplikator"");" \n
                                               "        };" \n
                                               "        if (playerSide isEqualTo east)then{" \n
                                               "           //private _payCheckConfig = missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_adac"" >> format[""level_%1_adac"", call life_adaclevel];" \n
                                               "            _bonus = getNumber (missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_adac"" >> format[""level_%1_adac"", call life_adaclevel] >> ""bonus"");" \n
                                               "            _multiplikator = getNumber (missionConfigFile >> ""Life_Settings"" >> ""payCheck_Config_adac"" >> format[""level_%1_adac"", call life_adaclevel] >> ""multiplikator"");" \n
                                               "        };" \n
                                               "        //Cop,Medic,ADAC" \n
                                               "        if (call life_fnc_steamName) then{" \n
                                               "             hint ""Da du unsere Homepage in unserem Namen stehen hast, bekommst du doppelt so viel Einkommen!"";" \n
                                               "             private _paycheck = (call life_paycheck) * _multiplikator;" \n
                                               "             life_atmbank = life_atmbank + _paycheck + _bonus;" \n
                                               "             systemChat format [""Du hast ein Einkommen in h�he von %1 bekommen und einen Bonus vom Staat in h�he von %2."",[_paycheck] call life_fnc_numberText, [_bonus] call life_fnc_numberText];" \n
                                               "        }else{" \n
                                               "             hint parseText format[""Wenn du <t font='RobotoCondensedBold'>thelastgamer.de</t> in deinen Steam Namen machst, dann bekommst du doppelt so viel einkommen!""];" \n
                                               "             life_atmbank = life_atmbank + (call life_paycheck) + _bonus;" \n
                                               "             systemChat format [""Du hast ein Einkommen in h�he von %1 bekommen und einen Bonus vom Staat in h�he von %2."",[(call life_paycheck)] call life_fnc_numberText, [_bonus] call life_fnc_numberText];" \n
                                               "        };" \n
                                               "    };" \n
                                               "    if(playerSide isEqualTo civilian)then{" \n
                                               "        //Civilian" \n
                                               "        if (call life_fnc_steamName) then{" \n
                                               "            hint ""Da du unsere Homepage in unserem Namen stehen hast, bekommst du doppelt so viel Einkommen!"";" \n
                                               "            private _paycheck = (call life_paycheck) * 1.5;" \n
                                               "            life_atmbank = life_atmbank + _paycheck;" \n
                                               "            systemChat format [localize ""STR_FSM_ReceivedPay"",[_paycheck] call life_fnc_numberText];" \n
                                               "        }else{" \n
                                               "            hint parseText format[""Wenn du <t font='RobotoCondensedBold'>thelastgamer.de</t> in deinen Steam Namen machst, dann bekommst du doppelt so viel einkommen!""];" \n
                                               "            life_atmbank = life_atmbank + (call life_paycheck);" \n
                                               "            systemChat format [localize ""STR_FSM_ReceivedPay"",[(call life_paycheck)] call life_fnc_numberText];" \n
                                               "        };" \n
                                               "    };" \n
                                               "};" \n
                                               "" \n
                                               "_lastcheck = time;" \n
                                               "" \n
                                               "//Group clean (Local)" \n
                                               "{" \n
                                               "    if (local _x && {(units _x isEqualTo [])}) then {" \n
                                               "        deleteGroup _x;" \n
                                               "    };" \n
                                               "} forEach allGroups;"/*%FSM</ACTION""">*/;
                                      };
                                      /*%FSM</LINK>*/
                              };
                      };
                      /*%FSM</STATE>*/
              };
              initState="Main_Init";
              finalStates[] =
              {
              };
      };
      /*%FSM</COMPILE>*/
      Alles anzeigen

      Danach tragt ihr noch in eurer Config_Master folgendes ein.

      Spoiler anzeigen
      Code
      //Polizei Config
          class payCheck_Config_cop {
              class level_1_cop{
                  bonus = 500;
                  multiplikator = 1.5;
              };
              class level_2_cop{
                  bonus = 500;
                  multiplikator = 1.5;
              };
              class level_3_cop {
                  bonus = 750;
                  multiplikator = 1.5;
              };
              class level_4_cop {
                  bonus = 750;
                  multiplikator = 1.5;
              };
              class level_5_cop {
                  bonus = 1000;
                  multiplikator = 1.5;
              };
              class level_6_cop {
                  bonus = 1000;
                  multiplikator = 1.5;
              };
              class level_7_cop {
                  bonus = 1250;
                  multiplikator = 1.5;
              };
              class level_8_cop {
                  bonus = 1250;
                  multiplikator = 1.5;
              };
              class level_9_cop {
                  bonus = 1500;
                  multiplikator = 1.5;
              };
              class level_10_cop {
                  bonus = 1500;
                  multiplikator = 1.5;
              };
          };
          //Medic Config
          class payCheck_Config_medic {
              class level_1_medic{
                  bonus = 500;
                  multiplikator = 1.5;
              };
              class level_2_medic{
                  bonus = 500;
                  multiplikator = 1.5;
              };
              class level_3_medic{
                  bonus = 750;
                  multiplikator = 1.5;
              };
              class level_4_medic{
                  bonus = 750;
                  multiplikator = 1.5;
              };
              class level_5_medic{
                  bonus = 1000;
                  multiplikator = 1.5;
              };
              class level_6_medic{
                  bonus = 1000;
                  multiplikator = 1.5;
              };
              class level_7_medic{
                  bonus = 1250;
                  multiplikator = 1.5;
              };
              class level_8_medic{
                  bonus = 1250;
                  multiplikator = 1.5;
              };
              class level_9_medic{
                  bonus = 1500;
                  multiplikator = 1.5;
              };
              class level_10_medic{
                  bonus = 1500;
                  multiplikator = 1.5;
              };
          };
          //ADAC Config
          class payCheck_Config_adac {
              class level_1_adac{
                  bonus = 500;
                  multiplikator = 1.5;
              };
              class level_2_adac{
                  bonus = 500;
                  multiplikator = 1.5;
              };
              class level_3_adac{
                  bonus = 750;
                  multiplikator = 1.5;
              };
              class level_4_adac{
                  bonus = 750;
                  multiplikator = 1.5;
              };
              class level_5_adac{
                  bonus = 1000;
                  multiplikator = 1.5;
              };
              class level_6_adac{
                  bonus = 1000;
                  multiplikator = 1.5;
              };
              class level_7_adac{
                  bonus = 1250;
                  multiplikator = 1.5;
              };
              class level_8_adac{
                  bonus = 1250;
                  multiplikator = 1.5;
              };
              class level_9_adac{
                  bonus = 1500;
                  multiplikator = 1.5;
              };
              class level_10_adac{
                  bonus = 1500;
                  multiplikator = 1.5;
              };
          };
      Alles anzeigen

      Die FSM als SQF Datei damit ihr sie anpassen könnt.

      Spoiler anzeigen
      Code
      /*
          author: Risk
          description: Adds Steamname check, Bonus Money & Multiplikator
          returns: nothing
      */
      
      if (!alive player) then {
          systemChat localize "STR_FSM_MissedPay";
      } else {
          if(playerSide in [west,independent,east])then{
              private "_bonus";
              private "_multiplikator";
              if (playerSide isEqualTo west)then{
                  //private _payCheckConfig = missionConfigFile >> "Life_Settings" >> "payCheck_Config_cop" >> format["level_%1_cop", call life_coplevel];
                  _bonus = getNumber (missionConfigFile >> "Life_Settings" >> "payCheck_Config_cop" >> format["level_%1_cop", call life_coplevel] >> "bonus");
                  _multiplikator = getNumber (missionConfigFile >> "Life_Settings" >> "payCheck_Config_cop" >> format["level_%1_cop", call life_coplevel] >> "multiplikator");
              };
              if (playerSide isEqualTo independent)then{
                  //private _payCheckConfig = missionConfigFile >> "Life_Settings" >> "payCheck_Config_medic" >> format["level_%1_medic", call life_mediclevel];
                  _bonus = getNumber (missionConfigFile >> "Life_Settings" >> "payCheck_Config_medic" >> format["level_%1_medic", call life_mediclevel] >> "bonus");
                  _multiplikator = getNumber (missionConfigFile >> "Life_Settings" >> "payCheck_Config_medic" >> format["level_%1_medic", call life_mediclevel] >> "multiplikator");
              };
              if (playerSide isEqualTo east)then{
                 //private _payCheckConfig = missionConfigFile >> "Life_Settings" >> "payCheck_Config_adac" >> format["level_%1_adac", call life_adaclevel];
                  _bonus = getNumber (missionConfigFile >> "Life_Settings" >> "payCheck_Config_adac" >> format["level_%1_adac", call life_adaclevel] >> "bonus");
                  _multiplikator = getNumber (missionConfigFile >> "Life_Settings" >> "payCheck_Config_adac" >> format["level_%1_adac", call life_adaclevel] >> "multiplikator");
              };
              //Cop,Medic,ADAC
              if (call TLG_Client_fnc_steamName) then{
                   ["Da du unsere Homepage in unserem Namen stehen hast, bekommst du doppelt so viel Einkommen!","fast","blue"] spawn TLG_Client_fnc_msgHandle;
                   private _paycheck = (call life_paycheck) * _multiplikator;
                   life_atmbank = life_atmbank + _paycheck + _bonus;
                   systemChat format ["Du hast ein Einkommen in höhe von %1 bekommen und einen Bonus vom Staat in höhe von %2.",[_paycheck] call life_fnc_numberText, [_bonus] call life_fnc_numberText];
              }else{
                   [parseText format["Wenn du <t font='RobotoCondensedBold'>thelastgamer.de</t> in deinen Steam Namen machst, dann bekommst du doppelt so viel einkommen!"],"fast","red"] spawn TLG_Client_fnc_msgHandle;
                   life_atmbank = life_atmbank + (call life_paycheck) + _bonus;
                   systemChat format ["Du hast ein Einkommen in höhe von %1 bekommen und einen Bonus vom Staat in höhe von %2.",[(call life_paycheck)] call life_fnc_numberText, [_bonus] call life_fnc_numberText];
              };
          };
          if(playerSide isEqualTo civilian)then{
              //Civilian
              if (call TLG_Client_fnc_steamName) then{
                  ["Da du unsere Homepage in unserem Namen stehen hast, bekommst du doppelt so viel Einkommen!","fast","blue"] spawn TLG_Client_fnc_msgHandle;
                  private _paycheck = (call life_paycheck) * 1.5;
                  life_atmbank = life_atmbank + _paycheck;
                  systemChat format [localize "STR_FSM_ReceivedPay",[_paycheck] call life_fnc_numberText];
              }else{
                  [parseText format["Wenn du <t font='RobotoCondensedBold'>thelastgamer.de</t> in deinen Steam Namen machst, dann bekommst du doppelt so viel einkommen!"],"fast","red"] spawn TLG_Client_fnc_msgHandle;
                  life_atmbank = life_atmbank + (call life_paycheck);
                  systemChat format [localize "STR_FSM_ReceivedPay",[(call life_paycheck)] call life_fnc_numberText];
              };
          };
      };
      
      _lastcheck = time;
      
      //Group clean (Local)
      {
          if (local _x && {(units _x isEqualTo [])}) then {
              deleteGroup _x;
          };
      } forEach allGroups;
      Alles anzeigen

      mfg Risk

      https://www.twitch.tv/theriskarma

      Einmal editiert, zuletzt von Risk (18. Juni 2018 um 23:14)

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 18. Juni 2018 um 23:14
      • #2

      Hab mal die FSM als sqf beigelegt.

      Natürlich ist das nicht die ganze fsm sondern speziell nur der Teil der benötigt wird.

      mfg Risk

      https://www.twitch.tv/theriskarma

    • MauGi_LP
      Fortgeschrittener
      Reaktionen
      57
      Trophäen
      9
      Beiträge
      374
      • 16. Januar 2019 um 22:27
      • #3

      Kann man auch einfügen dass man nur je nach lvl verschiede paycheks hat? Oder muss ich dann halt einfach die steamname abfrage rausnehmen?

    • Philip123
      Schüler
      Reaktionen
      11
      Trophäen
      9
      Beiträge
      164
      • 6. Februar 2019 um 18:11
      • #4
      Zitat von MauGi_LP

      Kann man auch einfügen dass man nur je nach lvl verschiede paycheks hat? Oder muss ich dann halt einfach die steamname abfrage rausnehmen?

      Probier mal das in deiner fn_initCop

      Code
      switch(FETCH_CONST(life_coplevel)) do
      {
      case 1: {life_paycheck = life_paycheck + 4000;};
      case 2: {life_paycheck = life_paycheck + 4500;};
      case 3: {life_paycheck = life_paycheck + 5000;};
      case 4: {life_paycheck = life_paycheck + 5500;};
      case 5: {life_paycheck = life_paycheck + 6000;};
      case 6: {life_paycheck = life_paycheck + 6500;};
      case 7: {life_paycheck = life_paycheck + 7000;};
      case 8: {life_paycheck = life_paycheck + 8000;};
      case 9: {life_paycheck = life_paycheck + 9000;};
      case 10: {life_paycheck = life_paycheck + 10000;};
      case 11: {life_paycheck = life_paycheck + 15000;};
      };
      Alles anzeigen

    Registrieren oder Einloggen

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

    Registrieren

    Ähnliche Themen

    • USA.Life Servervorstellung (+ v2.0 Info)

      • Larry
      • 29. Juli 2017 um 17:27
      • Archiv

    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™