HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Arma 3 GUI-Editor Textbox Tutorial? (https://hx3.de/editing-scripting-187/arma-3-gui-editor-textbox-tutorial-23992/)

Keksi43 23.06.2014 14:42

Arma 3 GUI-Editor Textbox Tutorial?
 
Servus,
da ich mitlerweile bereits ein wenig gescriptet habe, möchte ich mich nun an das Thema Dialoge rantasten.

Die Tutorials von wegen "Do you like my picture?" habe ich bereits hinter mir.
Jetzt würde ich gerne erfahren wie es möglich ist, dass ein Spieler in einer Textbox irgendetwas reinkloppt z.B: "I like your pictures", und wie man dan innerhalb eines Scripts an das geschriebene drankommt.

Kennt jemand von euch eventuell ein Tutorial mit diesem Inhalt bzw. kann mir etwas Hilfestellung geben?

Hoffe mein Anliegen war halbwegs verständlich und einer von euch Veteranen kann mir unter die Arme greifen.

mfG. Keksi43

Drunken Officer 23.06.2014 19:00

In den Basis Definitionen gibt es edit Felder. Das sind Input Möglichkeiten. Die Daten bekommst du dann auf der IDC. Das Ganze übergibst du dann via Array und Script z.B. bei deinem Action knopf

Keksi43 23.06.2014 20:33

Servus,
ich habe leider folgende Probleme:

1. In meine defines.hpp die ich vom "Dialog Tutorial for Noobs" von Iceman77 habe ist RscEdit leider nicht definiert. Wie füge ich das ein?

2. Wie komme ich jetzt genau an das Eingegebene? Das habe ich bei deinem Post leider nicht ganz verstanden.
Gibt es vielleicht ein Beispiel dazu?

ACHTUNG: Ich habe leider keine Spoilerfunktion aufspüren können deswegen wirds jetzt lang. Sry.

Die defines.hpp
Code:

// Control types
#define CT_STATIC          0
#define CT_BUTTON          1
#define CT_EDIT            2
#define CT_SLIDER          3
#define CT_COMBO            4
#define CT_LISTBOX          5
#define CT_TOOLBOX          6
#define CT_CHECKBOXES      7
#define CT_PROGRESS        8
#define CT_HTML            9
#define CT_STATIC_SKEW      10
#define CT_ACTIVETEXT      11
#define CT_TREE            12
#define CT_STRUCTURED_TEXT  13
#define CT_CONTEXT_MENU    14
#define CT_CONTROLS_GROUP  15
#define CT_SHORTCUTBUTTON  16
#define CT_XKEYDESC        40
#define CT_XBUTTON          41
#define CT_XLISTBOX        42
#define CT_XSLIDER          43
#define CT_XCOMBO          44
#define CT_ANIMATED_TEXTURE 45
#define CT_OBJECT          80
#define CT_OBJECT_ZOOM      81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
#define CT_LINEBREAK        98
#define CT_USER            99
#define CT_MAP              100
#define CT_MAP_MAIN        101
#define CT_LISTNBOX        102

// Static styles
#define ST_POS            0x0F
#define ST_HPOS          0x03
#define ST_VPOS          0x0C
#define ST_LEFT          0x00
#define ST_RIGHT          0x01
#define ST_CENTER        0x02
#define ST_DOWN          0x04
#define ST_UP            0x08
#define ST_VCENTER        0x0C
#define ST_GROUP_BOX      96
#define ST_GROUP_BOX2      112
#define ST_ROUNDED_CORNER  ST_GROUP_BOX + ST_CENTER
#define ST_ROUNDED_CORNER2 ST_GROUP_BOX2 + ST_CENTER

#define ST_TYPE          0xF0
#define ST_SINGLE        0x00
#define ST_MULTI          0x10
#define ST_TITLE_BAR      0x20
#define ST_PICTURE        0x30
#define ST_FRAME          0x40
#define ST_BACKGROUND    0x50
#define ST_GROUP_BOX      0x60
#define ST_GROUP_BOX2    0x70
#define ST_HUD_BACKGROUND 0x80
#define ST_TILE_PICTURE  0x90
#define ST_WITH_RECT      0xA0
#define ST_LINE          0xB0

#define ST_SHADOW        0x100
#define ST_NO_RECT        0x200
#define ST_KEEP_ASPECT_RATIO  0x800

#define ST_TITLE          ST_TITLE_BAR + ST_CENTER

// Slider styles
#define SL_DIR            0x400
#define SL_VERT          0
#define SL_HORZ          0x400

#define SL_TEXTURES      0x10

// progress bar
#define ST_VERTICAL      0x01
#define ST_HORIZONTAL    0

// Listbox styles
#define LB_TEXTURES      0x10
#define LB_MULTI          0x20

// Tree styles
#define TR_SHOWROOT      1
#define TR_AUTOCOLLAPSE  2

// MessageBox styles
#define MB_BUTTON_OK      1
#define MB_BUTTON_CANCEL  2
#define MB_BUTTON_USER    4


////////////////
//Base Classes//
////////////////

class RscText
{
    access = 0;
    idc = -1;
    type = CT_STATIC;
    style = ST_CENTER;
    linespacing = 1;
    colorBackground[] = {0,0,0,0};
    colorText[] = {0.3,0.6,0.4,.8};
    text = "";
    shadow = 2;
    font = "EtelkaNarrowMediumPro";
    SizeEx = 0.02100;
    fixedWidth = 0;
    x = 0;
    y = 0;
    h = 0;
    w = 0;
 
};

class RscPicture
{
    access = 0;
    idc = -1;
    type = CT_STATIC;
    style = ST_PICTURE;
    colorBackground[] = {0,0,0,0};
    colorText[] = {1,1,1,1};
    font = "Bitstream";
    sizeEx = 0;
    lineSpacing = 0;
    text = "";
    fixedWidth = 0;
    shadow = 0;
    x = 0;
    y = 0;
    w = 0.2;
    h = 0.15;
};

class RscButton
{
   
    access = 0;
    idc = -1;
    type = CT_BUTTON;
    text = "";
    colorText[] = {0.5,0.3,0.9,.9};
    colorDisabled[] = {0.6,0.1,0.3,0};
    colorBackground[] = {0.35,0.55,0.15,0.9};
    colorBackgroundDisabled[] = {0,0.0,0};
    colorBackgroundActive[] = {0.15,0.35,0.55,0.7};
    colorFocused[] = {0.75,0.75,0.75,.5};
    colorShadow[] = {0.023529,0,0.0313725,1};
    colorBorder[] = {0.023529,0,0.0313725,1};
    soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1};
    soundPush[] = {"\ca\ui\data\sound\new1",0,0};
    soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1};
    soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1};
    style = 2;
    x = 0;
    y = 0;
    w = 0.055589;
    h = 0.039216;
    shadow = 2;
    font = "Bitstream";
    sizeEx = 0.02921;
    offsetX = 0.003;
    offsetY = 0.003;
    offsetPressedX = 0.002;
    offsetPressedY = 0.002;
    borderSize = 0;
};

class RscFrame
{
    type = CT_STATIC;
    idc = -1;
    style = ST_FRAME;
    shadow = 2;
    colorBackground[] = {1,1,1,1};
    colorText[] = {1,1,1,0.9};
    font = "Bitstream";
    sizeEx = 0.03;
    text = "";
};

class BOX
{
    type = CT_STATIC;
    idc = -1;
    style = ST_CENTER;
    shadow = 2;
    colorText[] = {1,1,1,1};
    font = "Bitstream";
    sizeEx = 0.02;
    colorBackground[] = { 0.5,0.7,0.2, 0.9 };
    text = "";

};

Die dialogs.hpp
Code:

class Textbox
{
    idd = -1;
    movingenable = false;
 
   
    class Controls
    {
        class _textfeld: RscEdit
        {
        idc = 1400;
        x = 8 * GUI_GRID_W + GUI_GRID_X;
        y = 5.5 * GUI_GRID_H + GUI_GRID_Y;
        w = 25.5 * GUI_GRID_W;
        h = 4.5 * GUI_GRID_H;
        };
        class ok_button: RscButton
        {
        idc = 1600;
        text = "OK"; //--- ToDo: Localize;
        x = 29 * GUI_GRID_W + GUI_GRID_X;
        y = 10.5 * GUI_GRID_H + GUI_GRID_Y;
        w = 4.5 * GUI_GRID_W;
        h = 2 * GUI_GRID_H;
        action = "closeDialog 0; _nil=[]ExecVM ""OK.sqf""";
        };
    };
};

Die OK.sqf:
Code:

hint format ["Du hast folgendes eingegeben: %1", dasEingegebeneVariable];
Ich hoffe Jemand kann mir helfen,
Keksi43

Drunken Officer 23.06.2014 21:11

Du hast doch die RscEdit! Aber einen Klassennamen mit _ beginnen lassen ist unklug. A
Hier mein Beispiel:
Als erstes in der Definitionen.hpp die RscEdit mit definieren.
Code:

class DOFARTY_RscEdit
{
        access = 0;
        type = CT_EDIT;
        style = ST_LEFT+ST_FRAME;
        x = 0;
        y = 0;
        h = 0.04;
        w = 0.2;
        colorBackground[] = {1,0,0,1};
        colorText[] = {0.804,0.773,0.749,1};
        colorSelection[] = {1,1,1,0.25};
        colorDisabled[] = {1, 1, 1, 0.500000};
        font = "TahomaB";
        sizeEx = 0.04;
        autocomplete = "";
        text = "";
        size = 0.2;
        shadow = 0;
};

Und in der Dialog.hpp ableiten

Code:

class DOF_Input_field_x_achse : DOFARTY_RscEdit
               
                {
                        idc = 101;
                        x = 0.598000; y = 0.280000;
                        w = 0.1378809; h = 0.0614761;
                        sizeEx = 0.04;
                        font = TahomaB;
                        text = "00000.00";
                        autocomplete = false;
                        tooltip = "Example for:02840.80 // 028 < map x-coordinats, 40 is bit left of the middle of this square, .88 fine tuning";
                        colorSelection[] = {0,0,0,1}; //0,0,0,0 ist transparent
                };

Und dann mach das z.B. so:
Bezogen auf MEIN Beispiel wäre es:
action = "[ctrlText 101] execVM ""holadieWaldfee.sqf""; closeDialog 0;";

bei dir
action = "[ctrlText 1400] execVM ""holadieWaldfee.sqf""; closeDialog 0;";

HoladieWaldfee.sqf
Code:

Hint format ["meine Eingabe %1", (_this select 0)];

Das habe ich so nach 4 Tagen hinbekommen:
https://www.youtube.com/watch?v=LZuFazN05j8

Wobei ich mich vorher schon mit Artilleriescripten usw. beschäftigt habe. Momentan hänge ich daran, eine Karte einzubinden. Das ist echt ätzend... :confused:


Edit:
Jetzt erst gesehen. Erst das Script starten und dann den Dialog schliessen. Sonst nix Werte.... Das hat mich auch sehr viel Zeit gekostet, bis ich dahinter gekommen bin.

Keksi43 24.06.2014 11:51

Liste der Anhänge anzeigen (Anzahl: 1)
Hey, erstmal riesen Dank.

Kannst du mir jetzt auch noch sagen warum mein Spiel jedes mal wenn ich die Mission mit dem Dialog im Editor laden will abschmiert?

Folgende Fehlermeldung ploppt dann auf:

Drunken Officer 24.06.2014 14:06

Weil du von einer RscEdit ableitetst, die du nicht definiert hast. Schau mal einen deinen Basisdefinitonen nach

Keksi43 24.06.2014 18:56

Hey,
vielen lieben Dank!
Jetzt klappt alles.
Darauf kann ich jetzt aufbauen.

Danke,
Keksi43

Hier ein virtueller Keks für dich *keks*.

Keksi43 25.06.2014 12:12

Ach ja!
Woher weis man welche Zahlen welche Farben ergeben?
Durch rumprobieren?

Außerdem haben meine Buttons keinen Text, egal ob ich ihn in der dialog.hpp oder der defines.hpp dazuschreib. ??

mfG.
Keksi43

Drunken Officer 25.06.2014 13:18

Farbe = Farbtabelle im Internet suchen

Text mit Text = "blabla" definieren

Edit: Ich habe die Karte in meinem Ari Dialog drin.... *hüpf hüpf*

Nokman 25.06.2014 18:49

für die Farben kanst du ZB dieses Tool Verwenden von KillzoneKid

KK's blog – HEX 2 ArmA GUI Colour Converter


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120