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
Mo: 19 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] BlackJack

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

      Hallo GG Community,

      Hier noch ein passendes Script zu [Tutorial] Slot Maschine (Spielautomat)

      Ich bin nicht der Author, sondern PapaBear. Also habt so viel respekt, und entfernt ihn nicht als Author!

      Fangen wir mal an.

      1. Öffnet euren dialog Ordner und erstellt eine neue Datei namens blackjack.hpp mit folgendem Inhallt:

      Code
      #define GUI_GRID_X    (0)
      #define GUI_GRID_Y    (0)
      #define GUI_GRID_W    (0.025)
      #define GUI_GRID_H    (0.04)
      #define GUI_GRID_WAbs    (1)
      #define GUI_GRID_HAbs    (1)
      class BlackjackGUI
      {
          idd = 5980;
          name="black_jack";
          movingEnabled = 0;
          enableSimulation = 1;
          onLoad = "";
      
          class controlsBackground
          {
      
              class RscFrame_1800: life_RscText
              {
                  idc = 5981;
                  colorBackground[] = {0,0,0,0.7};
                  x = 3 * GUI_GRID_W + GUI_GRID_X;
                  y = 1.5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 31 * GUI_GRID_W;
                  h = 20.5 * GUI_GRID_H;
              };
      
              class RscText_1000: life_RscText
              {
                  idc = 5988;
                  text = "Gegner"; //--- ToDo: Localize;
                  x = 5 * GUI_GRID_W + GUI_GRID_X;
                  y = 3 * GUI_GRID_H + GUI_GRID_Y;
                  w = 5 * GUI_GRID_W;
                  h = 2 * GUI_GRID_H;
              };
              class RscText_1001: life_RscText
              {
                  idc = 5989;
                  text = "Du"; //--- ToDo: Localize;
                  x = 20 * GUI_GRID_W + GUI_GRID_X;
                  y = 3 * GUI_GRID_H + GUI_GRID_Y;
                  w = 6 * GUI_GRID_W;
                  h = 2 * GUI_GRID_H;
              };
      
              class RscText_1012: life_RscText
              {
                  idc = 5999;
                  text = "BLACKJACK"; //--- ToDo: Localize;
                  x = 9 * GUI_GRID_W + GUI_GRID_X;
                  y = 1 * GUI_GRID_H + GUI_GRID_Y;
                  w = 18.5 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
                  sizeEx = 3 * GUI_GRID_H;
              };
              class RscText_1013: life_RscText
              {
                  idc = 6000;
                  text = "Gewonnen: $"; //--- ToDo: Localize;
                  x = 5.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 15 * GUI_GRID_H + GUI_GRID_Y;
                  w = 5 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
          };
      
          class controls
          {
              class STAY_BTN: life_RscButtonMenu
              {
                  idc = 5982;
                  text = "Keine Karte"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "[] spawn life_fnc_BJstay;";
                  x = 20 * GUI_GRID_W + GUI_GRID_X;
                  y = 14.5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class HIT_BTN: life_RscButtonMenu
              {
                  idc = 5983;
                  text = "Eine Karte"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "[] spawn life_fnc_BJhit;";
                  x = 27 * GUI_GRID_W + GUI_GRID_X;
                  y = 14.5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class TOTAL: life_RscText
              {
                  idc = 6007;
                  text = "Total: "; //--- ToDo: Localize;
                  x = 28 * GUI_GRID_W + GUI_GRID_X;
                  y = 10.5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class BET_5K: life_RscButtonMenu
              {
                  idc = 5984;
                  text = "5000$"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "[5000] spawn life_fnc_BJbet;";
                  x = 6 * GUI_GRID_W + GUI_GRID_X;
                  y = 19 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class BET_10K: life_RscButtonMenu
              {
                  idc = 5985;
                  text = "10000$"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "[10000] spawn life_fnc_BJbet;";
                  x = 13 * GUI_GRID_W + GUI_GRID_X;
                  y = 19 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class BET_25K: life_RscButtonMenu
              {
                  idc = 5986;
                  text = "25000$"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "[25000] spawn life_fnc_BJbet;";
                  x = 20 * GUI_GRID_W + GUI_GRID_X;
                  y = 19 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class BET_50K: life_RscButtonMenu
              {
                  idc = 5987;
                  text = "50000$"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "[50000] spawn life_fnc_BJbet;";
                  x = 27 * GUI_GRID_W + GUI_GRID_X;
                  y = 19 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
      
              class Dealer_Card_1: life_RscText
              {
                  idc = 5990;
                  x = 5 * GUI_GRID_W + GUI_GRID_X;
                  y = 5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Dealer_Card_2: life_RscText
              {
                  idc = 5991;
                  x = 9.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Player_Card_1: life_RscText
              {
                  idc = 5992;
                  x = 20.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Player_Card_2: life_RscText
              {
                  idc = 5993;
                  x = 24.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Player_Card_3: life_RscText
              {
                  idc = 5994;
                  x = 28.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Dealer_Card_4: life_RscText
              {
                  idc = 5995;
                  x = 5 * GUI_GRID_W + GUI_GRID_X;
                  y = 8 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Dealer_Card_5: life_RscText
              {
                  idc = 5996;
                  x = 9.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 8 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Player_Card_4: life_RscText
              {
                  idc = 5997;
                  x = 20.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 8 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class Player_Card_5: life_RscText
              {
                  idc = 5998;
                  x = 24.5 * GUI_GRID_W + GUI_GRID_X;
                  y = 8 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
      
              class Winnings: life_RscText
              {
                  idc = 6001;
                  x = 11 * GUI_GRID_W + GUI_GRID_X;
                  y = 15 * GUI_GRID_H + GUI_GRID_Y;
                  w = 5 * GUI_GRID_W;
                  h = 2.5 * GUI_GRID_H;
              };
              class EXIT_BTN: life_RscButtonMenu
              {
                  idc = 6002;
                  text = "EXIT"; //--- ToDo: Localize;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "closeDialog 0;";
                  x = 30 * GUI_GRID_W + GUI_GRID_X;
                  y = 1.5 * GUI_GRID_H + GUI_GRID_Y;
                  w = 4 * GUI_GRID_W;
                  h = 1 * GUI_GRID_H;
              };
              class RscText_1015: life_RscText
              {
                  idc = 6003;
                  text = "Bet"; //--- ToDo: Localize;
                  x = 7 * GUI_GRID_W + GUI_GRID_X;
                  y = 18 * GUI_GRID_H + GUI_GRID_Y;
                  w = 2 * GUI_GRID_W;
                  h = 1 * GUI_GRID_H;
              };
              class RscText_1016: life_RscText
              {
                  idc = 6004;
                  text = "Bet"; //--- ToDo: Localize;
                  x = 14 * GUI_GRID_W + GUI_GRID_X;
                  y = 18 * GUI_GRID_H + GUI_GRID_Y;
                  w = 2 * GUI_GRID_W;
                  h = 1 * GUI_GRID_H;
              };
              class RscText_1017: life_RscText
              {
                  idc = 6005;
                  text = "Bet"; //--- ToDo: Localize;
                  x = 21 * GUI_GRID_W + GUI_GRID_X;
                  y = 18 * GUI_GRID_H + GUI_GRID_Y;
                  w = 2 * GUI_GRID_W;
                  h = 1 * GUI_GRID_H;
              };
              class RscText_1018: life_RscText
              {
                  idc = 6006;
                  text = "Bet"; //--- ToDo: Localize;
                  x = 28 * GUI_GRID_W + GUI_GRID_X;
                  y = 18 * GUI_GRID_H + GUI_GRID_Y;
                  w = 2 * GUI_GRID_W;
                  h = 1 * GUI_GRID_H;
              };
          };
      };
      Alles anzeigen

      2. Öffnet im selben Ordner die Datei masterhandler und fügt folgendes hinzu:

      Code
      #include "blackjack.hpp"

      3. Öffnet eure function.h und fügt folgendes unter class shops hinzu:

      Code
      class blackjack {};
      class BJbet {};
      class BJhit {};
      class BJstay {};

      4. Öffnet euren Ordner core\shops und erstellt eine neue Datei namens fn_blackjack.sqf mit folgendem Inhallt:

      Code
      /*
          File: fn_blackjack.sqf
          Description: Blackjack
          Created by Blacklistgaming.org
              Coder: PapaBear
      */
      
      
      
      
      if(!dialog) then {
          createDialog "BlackjackGUI";
      };
      disableSerialization;
      
      
      
      
      _display = findDisplay 5980;
      _Hit = _display displayCtrl 5983;
      _Stay = _display displayCtrl 5982;
      
      
      
      
      _Hit ctrlEnable false;
      _Stay ctrlEnable false;
      
      
      
      
      _bet1 = _display displayCtrl 5984;
      _bet2 = _display displayCtrl 5985;
      _bet3 = _display displayCtrl 5986;
      _bet4 = _display displayCtrl 5987;
      
      
      
      
      _bet1 ctrlEnable true;
      _bet2 ctrlEnable true;
      _bet3 ctrlEnable true;
      _bet4 ctrlEnable true;
      Alles anzeigen

      5. Im selben Ordner eine neue Datei erstellen namens fn_BJbet.sqf mit folgendem Inhallt:

      Code
      /*
          File: fn_BJbet.sqf
          Description: Blackjack
          Created by Blacklistgaming.org
              Coder: PapaBear
      */
      
      
      
      
      private ["_betamt"];
      _betamt = [_this,0,1,[0]] call BIS_fnc_param;
      disableSerialization;
      _display = findDisplay 5980;
      
      
      
      
      if(life_cash < _betamt) exitWith {hint format["You don't have enough money to play (%1$)",_betamt];};
      life_cash = life_cash - _betamt;
      
      
      
      
      _Pcard1 = _display displayCtrl 5992;
      _Pcard2 = _display displayCtrl 5993;
      _Pcard3 = _display displayCtrl 5994;
      _Pcard4 = _display displayCtrl 5997;
      _Pcard5 = _display displayCtrl 5998;
      _Dcard1 = _display displayCtrl 5990;
      _Dcard2 = _display displayCtrl 5991;
      _Dcard3 = _display displayCtrl 5995;
      _Dcard4 = _display displayCtrl 5996;
      _bet1 = _display displayCtrl 5984;
      _bet2 = _display displayCtrl 5985;
      _bet3 = _display displayCtrl 5986;
      _bet4 = _display displayCtrl 5987;
      _Stay = _display displayCtrl 5982;
      _Hit = _display displayCtrl 5983;
      _TOTALTXT = _display displayCtrl 6007;
      
      
      
      
          _Pcard1 ctrlSetText "";
          _Pcard2 ctrlSetText "";
          _Pcard3 ctrlSetText "";
          _Pcard4 ctrlSetText "";
          _Pcard5 ctrlSetText "";
          _Dcard1 ctrlSetText "";
          _Dcard2 ctrlSetText "";
          _Dcard3 ctrlSetText "";
          _Dcard4 ctrlSetText "";
          _TOTALTXT ctrlSetText "Total: ";
      
      
      
      
      _bet5KTEXT = _display displayCtrl 6003;
      _bet10KTEXT = _display displayCtrl 6004;
      _bet25KTEXT = _display displayCtrl 6005;
      _bet50KTEXT = _display displayCtrl 6006;
      _total = 0;
      _bet1 ctrlEnable false;
      _bet2 ctrlEnable false;
      _bet3 ctrlEnable false;
      _bet4 ctrlEnable false;
      _Hit ctrlEnable false;
      _Stay ctrlEnable false;
      
      
      
      
      switch ( _betamt ) do 
      {
          case 5000:  { _bet10KTEXT ctrlSetText ""; _bet25KTEXT ctrlSetText ""; _bet50KTEXT ctrlSetText ""; };
          case 10000: { _bet5KTEXT ctrlSetText ""; _bet25KTEXT ctrlSetText ""; _bet50KTEXT ctrlSetText ""; };
          case 25000: { _bet10KTEXT ctrlSetText ""; _bet5KTEXT ctrlSetText ""; _bet50KTEXT ctrlSetText ""; };
          case 50000: { _bet10KTEXT ctrlSetText ""; _bet25KTEXT ctrlSetText ""; _bet5KTEXT ctrlSetText ""; };
          default { _bet10KTEXT ctrlSetText ""; _bet25KTEXT ctrlSetText ""; _bet50KTEXT ctrlSetText ""; }
      };
      
      
      
      
      // give dealer 1 card, other is XX 
      // give player 2 cards
      
      
      
      
      _number = ceil(random 11);
      _number = _number + 2;
      
      
      
      
      if ( _number == 11 OR _number == 12 ) then
      {
          _number = 10;
      
      
      
      
      }
      else 
      {
          if( _number == 13 ) then
          {
              _number = "ACE";
          };
      
      
      
      
      };
      
      
      
      
      _Pcard1 ctrlSetText format["%1",_number];
      
      
      
      
      sleep 0.5;
      
      
      
      
      _number = ceil(random 11);
      _number = _number + 2;
      
      
      
      
      if ( _number == 11 OR _number == 12 ) then
      {
          _number = 10;
      
      
      
      
      }
      else 
      {
          if( _number == 13 ) then
          {
              _number = "ACE";
          };
      
      
      
      
      };
      
      
      
      
      _Dcard1 ctrlSetText format["%1",_number];
      
      
      
      
      sleep 0.5;
      
      
      
      
      _number = ceil(random 11);
      _number = _number + 2;
      
      
      
      
      if ( _number == 11 OR _number == 12 ) then
      {
          _number = 10;
      
      
      
      
      }
      else 
      {
          if( _number == 13 ) then
          {
              _number = "ACE";
          };
      
      
      
      
      };
      
      
      
      
      _Pcard2 ctrlSetText format["%1",_number];
      
      
      
      
      _P1 = ctrlText _Pcard1;
      _P2 = ctrlText _Pcard2;
      _D1 = ctrlText _Dcard1;
      
      
      
      
      sleep 0.5;
      _winnings = _display displayCtrl 6001;
      _total = 0;
      if( _P1 == "ACE" ) then
      {
          if( _P2 == "10" ) then
          {
              _total = 21;
          }else
          {
              if( _P2 == "ACE" ) then
              {
                  _total = 12;
              }
              else
              {
                  _total = 11 + (parseNumber _P2);
              };
          };
      }
      else
      {
          if( _P2 == "ACE" ) then
          {
              if( _P1 == "10" ) then 
              {
                  _total = 21;
              }
              else
              {
                  if( _P1 == "ACE" ) then
                  {
                      _total = 12;
                  }
                  else
                  {
                      _total = 11 + (parseNumber _P1);
                  };
      
              };
          }
          else
          {
              _total = (parseNumber _P1) + (parseNumber _P2);
      
          };
      
      
      
      
      };
      
      
      
      
      _TOTALTXT ctrlSetText format["%1",_total];
      
      
      
      
      if( _total == 21 ) then 
      { 
          _win = 4 * _betamt;
          life_cash = life_cash + _win;
          _winnings ctrlSetText format["%1",_win];
      
          _bet1 ctrlEnable true;
          _bet2 ctrlEnable true;
          _bet3 ctrlEnable true;
          _bet4 ctrlEnable true;
      }
      else
      {
      
      
      
      
          _number = ceil(random 11);
          _number = _number + 2;
      
      
      
      
          //check if dealer got ace and then a 10.
          //10 then ace?
      
          if( _number == 13 ) then
          {
              _number = "ACE";
              if( _D1 == "10" ) then
              {        
                  _Dcard2 ctrlSetText format["%1",_number];
                  _winnings = _display displayCtrl 6001;
                  _winnings ctrlSetText "You Lose. Dealer got Black Jack.";
                  _bet1 ctrlEnable true;
                  _bet2 ctrlEnable true;
                  _bet3 ctrlEnable true;
                  _bet4 ctrlEnable true;
              }
              else
              {
                  _Dcard2 ctrlSetText "XX";
              };
          }
          else
          {
              if( _D1 == "ACE" ) then 
              {
                  if( _number == 10 ) then 
                  {
                      _Dcard2 ctrlSetText format["%1",_number];
                      _winnings = _display displayCtrl 6001;
                      _winnings ctrlSetText "You Lose. Dealer got Black Jack.";
                      _bet1 ctrlEnable true;
                      _bet2 ctrlEnable true;
                      _bet3 ctrlEnable true;
                      _bet4 ctrlEnable true;
                  }
                  else
                  {
                      _Dcard2 ctrlSetText "XX";
                  };
      
              }
              else
              {
                  _Dcard2 ctrlSetText "XX";
              };
      
          };
      
      
      
      
          _Hit ctrlEnable true;
          _Stay ctrlEnable true;
      
      
      
      
      };
      Alles anzeigen

      6. immernoch im gleichen Ordner eine neue Datei erstellen namens fn_BJstay.sqf mit folgendem Inhallt:

      Code
      /*
          File: fn_BJstay.sqf
          Description: Blackjack
          Created by Blacklistgaming.org
              Coder: PapaBear
      */
      //stay
      //calculate value of player
      //reveal dealer
      //if dealer higher, lose
      //if dealer lower, dealer hit.
      //check dealer value, win/lose hits.
      
      
      
      
      disableSerialization;
      _display = findDisplay 5980;
      
      
      
      
      //setup variables
      _Pcard1 = _display displayCtrl 5992;
      _Pcard2 = _display displayCtrl 5993;
      _Pcard3 = _display displayCtrl 5994;
      _Pcard4 = _display displayCtrl 5997;
      _Dcard1 = _display displayCtrl 5990;
      _Dcard2 = _display displayCtrl 5991;
      _Dcard3 = _display displayCtrl 5995;
      _Dcard4 = _display displayCtrl 5996;
      _TOTALTXT = _display displayCtrl 6007;
      _bet5KTEXT = _display displayCtrl 6003;
      _bet10KTEXT = _display displayCtrl 6004;
      _bet25KTEXT = _display displayCtrl 6005;
      _bet50KTEXT = _display displayCtrl 6006;
      _betamt = 0;
      
      
      
      
      if( (ctrlText _bet5KText) != "" ) then
      {
          _betamt = 5000;
      }
      else
      {
          if( (ctrlText _bet10KText) != "" ) then
          {
              _betamt = 10000;
          }
          else
          {
              if( (ctrlText _bet25KText) != "" ) then
              {
                  _betamt = 25000;
              }
              else
              {
                  _betamt = 50000;
              };
          };
      };
      
      
      
      
      _bet1 = _display displayCtrl 5984;
      _bet2 = _display displayCtrl 5985;
      _bet3 = _display displayCtrl 5986;
      _bet4 = _display displayCtrl 5987;
      _Stay = _display displayCtrl 5982;
      _Hit = _display displayCtrl 5983;
      _winnings = _display displayCtrl 6001;
      _bet1 ctrlEnable false;
      _bet2 ctrlEnable false;
      _bet3 ctrlEnable false;
      _bet4 ctrlEnable false;
      _Hit ctrlEnable false;
      _Stay ctrlEnable false;
      
      
      
      
      _P1T = ctrlText _Pcard1;
      _P2T = ctrlText _Pcard2;
      _P3T = ctrlText _Pcard3;
      _P4T = ctrlText _Pcard4;
      _D1T = ctrlText _Dcard1;
      
      
      
      
      _gameover = false;
      _totalPlayer = 0;
      _totalDealer = 0;
      _totalDealer2 = 0;
      _totalDealer3 = 0;
      _totalDealer4 = 0;
      _totalPlayer = ctrlText _TOTALTXT;
      _totalPlayer = parseNumber _totalPlayer;
      _totalDealer = 0;
      _win = 0;
      
      
      
      
      _number = ceil(random 11);
      _number = _number + 2;
      
      
      
      
      if ( _number == 11 OR _number == 12 ) then
      {
          _number = 10;
      
      
      
      
      }
      else 
      {
          if( _number == 13 ) then
          {
              _number = 10;
          };
      
      
      
      
      };
      
      
      
      
      _Dcard2 ctrlSetText format["%1",_number];
      
      
      
      
      if( _D1T == "ACE" ) then 
      {
          if( _number == 10 ) then 
          {
              _totalDealer = 21;
          }
          else
          {
              _totalDealer = 11 + _number;
          };
      }
      else
      {
          _totalDealer = _number + (parseNumber _D1T);
      };
      
      
      
      
      if( _totalDealer > _totalPlayer ) then 
      {
          //dealer beat player
          //dealer wins
          //no money for player
          _gameover = true;
      }
      else
      {
          if( _totalDealer == _totalPlayer ) then 
          {
              //tie, betamt won back
              _win = 1;
              _gameover = true;
          }
          else 
          {
              _gameover = false;
      
          };
      
      };
      
      
      
      
      if( !_gameover ) then 
      {
          _number = ceil(random 11);
          _number = _number + 2;
      
      
      
      
          if ( _number == 11 OR _number == 12 ) then
          {
              _number = 10;
              _Dcard3 ctrlSetText  format["%1",_number];
      
      
      
      
          }
          else 
          {
              if( _number == 13 ) then
              {
                  _Dcard3 ctrlSetText "ACE";
              }
              else
              {
                  _Dcard3 ctrlSetText  format["%1",_number];
              };
      
          };
      
      
      
      
          
      
          if( _number == 13 ) then 
          {
              _totalTemp = _totalDealer + 11;
              _totalTemp2 = _totalDealer + 1;
      
              if( _totalTemp == 21 OR _totalTemp2 == 21 ) then 
              {
                      _gameover = true;            
              }
              else
              {
                  if( _totalTemp > 21 AND _totalTemp2 > 21 ) then 
                  {
                      _gameover = true;
                      _win = 2;
                  };
      
      
      
      
              };
      
              if( !_gameover ) then 
              {
                  if( _totalTemp > _totalPlayer ) then 
                  {
                      if( _totalTemp < 21 ) then 
                      {
                          _gameover = true;
                      };
                  }
                  else
                  {
                      if( _totalTemp2 > _totalPlayer ) then 
                      {
                          if( _totalTemp2 < 21 ) then 
                          {
                              _gameover = true;
                          };
                      };
      
                  };
      
              };
          }
          else
          {
              //should check for aces... but ya
              _totalDealer = _totalDealer + _number;
      
              if( _totalDealer > 21 ) then 
              {
                  //player wins
                  //dealer bust
                  _gameover = true;
                  _win = 2;
              }
              else
              {
                  if( _totalDealer > _totalPlayer ) then 
                  {
                      //dealer beats player
      
                      _gameover = true;
                  }
                  else 
                  {
                      if( _totalDealer == _totalPlayer ) then 
                      {
                          _gameover = true;
                          _win = 1;
                      }
                      else
                      {
                          _gameover = false;
                      };
      
                  };
      
              };
      
          };
      
      
      
      
      };
      
      
      
      
      //draw another card for dealer... card 4. fuck this shit....
      if( !_gameover ) then 
      {
          _win = 2;
      };
      
      
      
      
      //last check to see if they lose, win,still playing
      
      
      
      
      if( _win != 0 ) then 
      {
          _cash = _betamt * _win;
          life_cash = life_cash + _cash;
          _winnings ctrlSetText  format["%1",_cash];
          //you win, give money
          //set text 
          //free up bet buttons
      }
      else
      {
          _winnings ctrlSetText "You lose. Dealer Wins.";
      
      
      
      
          //you lose
          //set text
          //free up bet buttons
      };
      
      
      
      
          _bet1 ctrlEnable true;
          _bet2 ctrlEnable true;
          _bet3 ctrlEnable true;
          _bet4 ctrlEnable true;
          _bet5KTEXT  ctrlSetText "BET";
          _bet10KTEXT ctrlSetText "BET";
          _bet25KTEXT ctrlSetText "BET";
          _bet50KTEXT ctrlSetText "BET";
      Alles anzeigen

      7. ALs letztes noch eine neue Datei erstellen im gleichen Ordner namens fn_BJhit.sqf mit folgendem Inhallt:

      Code
      /*
          File: fn_BJhit.sqf
          Description: Blackjack
          Created by Blacklistgaming.org
              Coder: PapaBear
      */
      //hit phase
      //check value of cards
      //stop if bust
      //if 5th hit and still good win
      
      
      
      
      disableSerialization;
      _display = findDisplay 5980;
      
      
      
      
      //setup variables
      _Pcard1 = _display displayCtrl 5992;
      _Pcard2 = _display displayCtrl 5993;
      _Pcard3 = _display displayCtrl 5994;
      _Pcard4 = _display displayCtrl 5997;
      _Pcard5 = _display displayCtrl 5998;
      _TOTALTXT = _display displayCtrl 6007;
      _bet5KTEXT = _display displayCtrl 6003;
      _bet10KTEXT = _display displayCtrl 6004;
      _bet25KTEXT = _display displayCtrl 6005;
      _bet50KTEXT = _display displayCtrl 6006;
      _betamt = 0;
      
      
      
      
      if( (ctrlText _bet5KText) != "" ) then
      {
          _betamt = 5000;
      }
      else
      {
          if( (ctrlText _bet10KText) != "" ) then
          {
              _betamt = 10000;
          }
          else
          {
              if( (ctrlText _bet25KText) != "" ) then
              {
                  _betamt = 25000;
              }
              else
              {
                  _betamt = 50000;
              };
          };
      };
      
      
      
      
      _gameover = false;
      _bet1 = _display displayCtrl 5984;
      _bet2 = _display displayCtrl 5985;
      _bet3 = _display displayCtrl 5986;
      _bet4 = _display displayCtrl 5987;
      _Stay = _display displayCtrl 5982;
      _Hit = _display displayCtrl 5983;
      _winnings = _display displayCtrl 6001;
      _bet1 ctrlEnable false;
      _bet2 ctrlEnable false;
      _bet3 ctrlEnable false;
      _bet4 ctrlEnable false;
      _Hit ctrlEnable false;
      _Stay ctrlEnable false;
      
      
      
      
      _P1T = ctrlText _Pcard1;
      _P2T = ctrlText _Pcard2;
      _P3T = ctrlText _Pcard3;
      _P4T = ctrlText _Pcard4;
      _P5T = ctrlText _Pcard5;
      
      
      
      
      _ACES = false;
      _ACE1 = 0;
      _ACE2 = 0;
      _ACE3 = 0;
      _ACE4 = 0;
      _total = 0;
      _win = 0;
      _cash = 0;
      
      
      
      
      //figure out which card is next to be dealt
      _NextCard = 0;
      if(_P3T != "" ) then
      {
          if(_P4T != "" ) then
          {        
              _NextCard = 5;
          }
          else
          {
              _NextCard = 4;
          };
      }
      else
      {
          _NextCard = 3;
      };
      
      
      
      
      //deal next card
      _number = ceil(random 11);
      _number = _number + 2;
      if ( _number == 11 OR _number == 12 ) then
      {
          _number = 10;
      
      
      
      
      }
      else 
      {
          if( _number == 13 ) then
          {
              _number = "ACE";
          };
      
      
      
      
      };
      
      
      
      
      //assign card to its place
      switch ( _NextCard ) do
      {
          case 3: { _Pcard3 ctrlSetText format["%1",_number]; _P3T = ctrlText _Pcard3; };
          case 4: { _Pcard4 ctrlSetText format["%1",_number]; _P4T = ctrlText _Pcard4; };
          case 5: { _Pcard5 ctrlSetText format["%1",_number]; _P5T = ctrlText _Pcard5; };
          default { _Pcard3 ctrlSetText format["%1",_number]; _P3T = ctrlText _Pcard3; }
      };
      
      
      
      
      _totalAces = 0;
      //check if there are any aces
      //and where they are
      if( _P1T == "ACE" ) then
      {
          _ACES = true;
          _ACE1 = 1;
          _totalAces = 1;
      };
      
      
      
      
      if( _P2T == "ACE" ) then
      {
          _ACES = true;
          if( _ACE1 == 0 ) then
          {
              _ACE1 = 2;
              _totalAces = 1;
          }
          else
          {
              _ACE2 = 2;
              _totalAces = 2;
          };
      
      };
      
      
      
      
      if( _P3T == "ACE" ) then
      {
          _ACES = true;
          if( _ACE1 == 0 ) then
          {
              _ACE1 = 3;
              _totalAces = 1;
          }
          else
          {
              if( _ACE2 == 0 ) then
              {
                  _ACE2 = 3;
                  _totalAces = 2;
              }
              else
              {
                  _ACE3 = 3;
                  _totalAces = 3;
              };
      
          };
      
      };
      
      
      
      
      if( _P4T == "ACE" ) then
      {
          _ACES = true;
          if( _ACE1 == 0 ) then
          {
              _ACE1 = 4;
              _totalAces = 1;
          }
          else
          {
              if( _ACE2 == 0 ) then
              {
                  _ACE2 = 4;
                  _totalAces = 2;
              }
              else
              {
                  if( _ACE3 == 0 ) then
                  {
                      _ACE3 = 4;
                      _totalAces = 3;
                  }
                  else
                  {
                      _ACE4 = 4;
                      _totalAces = 4;
                  };
              };
      
          };
      
      };
      
      
      
      
      if( _P5T == "ACE" ) then 
      {    
          _ACES = true;
          if( _ACE1 == 0 ) then
          {
              _ACE1 = 5;
              _totalAces = 1;
          }
          else
          {
              if( _ACE2 == 0 ) then
              {
                  _ACE2 = 5;
                  _totalAces = 2;
              }
              else
              {
                  if( _ACE3 == 0 ) then
                  {
                      _ACE3 = 5;
                      _totalAces = 3;
                  }
                  else
                  {        
                      _ACE4 = 5;
                      _totalAces = 4;
                  };
              };
          };
      };
      
      
      
      
          _temp1 = 0;
          _temp2 = 0;
      //aces check complete.
      //now we need total the players cards
      //if there are aces we need to compare
      // 11 vs 1 totals
      // the total values of whether is 21 or under
      if( _ACES ) then 
      {
          if( _ACE4 != 5 OR _ACE3 != 5 OR _ACE2 != 5 OR _ACE1 != 5 ) then 
          {
              _total = _total + (parseNumber _P5T);
          };
      
          if( _ACE4 != 4 OR _ACE3 != 4 OR _ACE2 != 4 OR _ACE1 != 4 ) then 
          {
              _total = _total + (parseNumber _P4T);
          };
      
          if( _ACE3 != 3 OR _ACE2 != 3 OR _ACE1 != 3 ) then 
          {
              _total = _total + (parseNumber _P3T);
          };
      
          if( _ACE2 != 2 OR _ACE1 != 2 ) then 
          {
              _total = _total + (parseNumber _P2T);
          };
      
          if( _ACE1 != 1 ) then 
          {
              _total = _total + (parseNumber _P1T);
          };
      
      
      
      
      
          switch ( _totalAces ) do 
          {
              case 4:
              {
                  //11,1,1,1 
                  _temp1 = 14;
                  //1,1,1,1
                  _temp2 = 4;
              };
              case 3:
              {
                  //11,1,1
                  _temp1 = 13;
                  //1,1,1
                  _temp2 = 3;
              };
              case 2:
              {
                  //11,1
                  _temp1 = 12;
                  //1,1
                  _temp2 = 2;
              };
              case 1:
              {
                  //11
                  _temp1 = 11;
                  //1
                  _temp2 = 1;
              };
              default {_temp1 = 0; _temp2 = 0;}
      
          };
      
          _totalTemp = _total + _temp2;
          _total = _total + _temp1;
      
          //if player hit 21 then he wins 4X
          if( _total == 21 ) then
          {
              _TOTALTXT ctrlSetText format["%1",_total];
              _win = 4;
          }
          else
          {
              //player didnt hit 21
              //now check if he went bust using the 11
              //if he didnt then can keep playing
              if( _total > 21 ) then 
              {
                  //using 11 he went over 21
                  //lets check if he is still over using a 1 instead
                  //if over 21 he loses, else keeps playing                        
                  if( _totalTemp > 21 ) then
                  {
                      _TOTALTXT ctrlSetText format["%1",_totalTemp];
                      _gameover = true;
                  }
                  else
                  {
                      //if using 1 in total and still under 21
                      //while using 5 cards, player wins 3X
                      if( _NextCard == 5 ) then 
                      {
                          _win = 4;
                      }
                      else
                      {                
                          _TOTALTXT ctrlSetText format["%1",_totalTemp];
                      };
                  };
              }
              else
              {
                  _TOTALTXT ctrlSetText format["%1",_total];
              };
          }; 
      }
      else
      {    
          // NO ACES!!!! Total all cards
          _total = (parseNumber _P1T) + (parseNumber _P2T) + (parseNumber _P3T) + (parseNumber _P4T) + (parseNumber _P5T);
          _TOTALTXT ctrlSetText format["%1",_total];
          //if hit 21, win
          if( _total == 21 ) then
          {
              _win = 4;
              _gameover = true;
          }
          else
          {
              if( _total > 21 ) then 
              {
                  _gameover = true;
              };
          };
      };
      
      
      
      
      //last check to see if they lose, win,still playing
      if( _gameover ) then 
      {
          if( _win != 0 ) then 
          {
              _cash = _betamt * _win;
              life_cash = life_cash + _cash;
              _winnings ctrlSetText  format["%1",_cash];
      
              //you win, give money
              //set text 
              //free up bet buttons
          }
          else
          {
              _winnings ctrlSetText "You lose. BUST";
      
              //you lose
              //set text
              //free up bet buttons
          };
      
          _bet1 ctrlEnable true;
          _bet2 ctrlEnable true;
          _bet3 ctrlEnable true;
          _bet4 ctrlEnable true;
          _bet5KTEXT  ctrlSetText "BET";
          _bet10KTEXT ctrlSetText "BET";
          _bet25KTEXT ctrlSetText "BET";
          _bet50KTEXT ctrlSetText "BET";
          _Hit ctrlEnable false;
          _Stay ctrlEnable false;
      
      
      
      
      }
      else
      {
      
      
      
      
          
          //below 21, can still play
              //free up hit/stay buttons.
      
              _Hit ctrlEnable true;
              _Stay ctrlEnable true;
      };
      Alles anzeigen

      8. Öffnet euren Arma3 Editor, und fügt einen npc (Oder ein Objekt) hinzu mit folgendem Init befehl:

      Code
      this allowdamage false; this enablesimulation false; this addAction ["Play BlackJack", life_fnc_blackjack];

      Viel spaß :thumbup:

      MfG
      Noldy

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von Native-Servers.com? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Benutzerkonto erstellen

    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™