Skip to content

A Basic Introduction To Updating The AChat GUI

- Not logged in to forum -

The forums Templates A Basic Introduction To Updating The AChat GUI

Viewing 15 posts - 1 through 15 (of 24 total)
  • Author
    Posts
  • #6252
    AnnieMay
    Participant

      The GUI is made up of two parts. You have .win and .dds. And can be located in the folder “AppDataLocalAChatGUI”

      .win file can be opened in any regular text editor. Its just text.

      .dds will need a plugin for your favorite graphics editor. Links to them are below.

          .dds for GIMP : http://registry.gimp.org/node/70
          .dds for PS/Corel : https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop

      In this simple introduction I will only explain a edit made to “a_volume02.win”. This is an example only. Not a intended change. Though it could be with work, or desire for change.

      Sample Structure:

      Code:
      BEGIN
      TITLE 553
      X0 240
      Y0 85
      WIDTH 398
      HEIGHT 318
      DEFAULT_FONT_COLOR 0xffffffff
      OPTIONS 0x00000344
      END

      *************close
      BEGIN
      TYPE BUTTON
      OBJID 0
      X0 383
      Y0 -16
      WIDTH 10
      HEIGHT 10
      PICTURE GUI2_close
      END

      ********sound
      BEGIN
      TYPE TEXT
      OBJID 0
      X0 20
      Y0 5
      WIDTH 0
      HEIGHT 0
      SELECTABLE FALSE
      FONT_COLOR 0xffffcc00
      TEXT Sound
      FONT_SIZE 20
      END

      ********_bar1
      BEGIN
      TYPE BAR
      TEXT 554
      OBJID 1
      X0 41
      Y0 47
      WIDTH 140
      HEIGHT 12
      FONT_SIZE 17
      VAL1_COLOR 0xd0800000
      VAL2_COLOR 0xd0800000
      VAL3_COLOR 0xd0ff2020
      VAL4_COLOR 0xd0ff2020
      BLINK FALSE
      END

      ********_increase_volume
      BEGIN
      TYPE BUTTON
      OBJID 11
      X0 178
      Y0 46
      WIDTH 25
      HEIGHT 15
      TEXT +
      TEXT_X0 0
      TEXT_Y0 -4
      FONT_SIZE 23
      PICTURE GUI2_invisible
      TEXT_OVER_COLOR 0xffff0000
      OPTION OP_EATCLICK
      END

      ********_decrease_volume
      BEGIN
      TYPE BUTTON
      OBJID 12
      X0 21
      Y0 45
      WIDTH 25
      HEIGHT 15
      TEXT –
      TEXT_X0 0
      TEXT_Y0 -5
      FONT_SIZE 23
      PICTURE GUI2_invisible
      TEXT_OVER_COLOR 0xffff0000
      OPTION OP_EATCLICK
      END

      ********_bar2
      BEGIN
      TYPE BAR
      TEXT 555
      OBJID 2
      X0 222
      Y0 47
      WIDTH 145
      HEIGHT 12
      FONT_SIZE 17
      VAL1_COLOR 0xd0800000
      VAL2_COLOR 0xd0800000
      VAL3_COLOR 0xd0ff2020
      VAL4_COLOR 0xd0ff2020
      BLINK FALSE
      END

      ********_increase_volume
      BEGIN
      TYPE BUTTON
      OBJID 21
      X0 364
      Y0 46
      WIDTH 25
      HEIGHT 15
      TEXT +
      TEXT_X0 0
      TEXT_Y0 -4
      FONT_SIZE 23
      PICTURE GUI2_invisible
      TEXT_OVER_COLOR 0xffff0000
      OPTION OP_EATCLICK
      END

      ********_decrease_volume
      BEGIN
      TYPE BUTTON
      OBJID 22
      X0 202
      Y0 45
      WIDTH 25
      HEIGHT 15
      TEXT –
      TEXT_X0 0
      TEXT_Y0 -5
      FONT_SIZE 23
      PICTURE GUI2_invisible
      TEXT_OVER_COLOR 0xffff0000
      OPTION OP_EATCLICK
      END

      ********graphics
      BEGIN
      TYPE TEXT
      OBJID 0
      X0 20
      Y0 80
      WIDTH 0
      HEIGHT 0
      SELECTABLE FALSE
      FONT_COLOR 0xffffcc00
      TEXT Graphics
      FONT_SIZE 20
      END

      ********_advanced_shader
      BEGIN
      TYPE CHECKBOXGROUP
      OBJID 30
      X0 12
      Y0 105
      WIDTH 180
      HEIGHT 15
      HELPTEXT 572
      MODE CHECKBOX
      CHECKED_BOX_TEX GUI2_radio_button_s.ate
      UNCHECKED_BOX_TEX GUI2_radio_button_uns.ate
      CHECK_TEXT_DIST 6
      CHECK_SIZE 9
      CHECK_DELTA_Y 3
      ITEM_START_X 20
      ITEM_START_Y 0
      ITEM_COL_DIST 55
      CAPTION1 569
      VALUE1 0
      COLNUMBER -1
      TITLE_COLOR 0xffffffff
      TITLE_SIZE 17
      ITEM_COLOR 0xffffffff
      ITEM_SIZE 17
      OPTION OP_RIGHTALIGN
      END

      ****low_high_detail
      *BEGIN
      TYPE TEXT
      OBJID 0
      X0 199
      Y0 145
      WIDTH 0
      HEIGHT 0
      SELECTABLE FALSE
      TEXT 571
      OPTION OP_CENTERED
      END

      *BEGIN
      TYPE TEXT
      OBJID 0
      X0 199
      Y0 165
      WIDTH 0
      HEIGHT 0
      SELECTABLE FALSE
      TEXT 572
      OPTION OP_CENTERED
      END

      BEGIN
      TYPE BUTTON
      OBJID 31
      HELPTEXT 571
      X0 220
      Y0 102
      WIDTH 99
      HEIGHT 22
      TEXT_X0 6
      TEXT_Y0 3
      TEXT 573
      FONT_SIZE 16
      TEXT_OUT_COLOR 0xffffffff
      TEXT_OVER_COLOR 0xffffffff
      TEXT_DOWN_COLOR 0xffffffff
      PICTURE GUI2_button-L
      END

      ********state
      BEGIN
      TYPE TEXT
      OBJID 0
      X0 20
      Y0 155
      WIDTH 0
      HEIGHT 0
      SELECTABLE FALSE
      FONT_COLOR 0xffffcc00
      TEXT State
      FONT_SIZE 20
      END

      ********_busy_type
      BEGIN
      TYPE CHECKBOXGROUP
      OBJID 6
      X0 32
      Y0 176
      WIDTH 20
      HEIGHT 160
      MODE RADIO
      BACKGROUND_COLOR 0x00000000
      CHECKED_RADIO_TEX GUI2_radio_button_s.ate
      UNCHECKED_RADIO_TEX GUI2_radio_button_uns.ate
      CHECK_SIZE 9
      CHECK_DELTA_Y 3
      ITEM_START_X 0
      ITEM_START_Y 2
      CHECK_TEXT_DIST 10
      OBJNAME reason
      TITLE _
      CAPTION1 590
      VALUE1 1
      CAPTION2 591
      VALUE2 2
      CAPTION3 592
      VALUE3 3
      COLNUMBER 1
      TITLE_COLOR 0xffffffff
      TITLE_SIZE 17
      ITEM_COLOR 0xffffffff
      ITEM_SIZE 17
      ITEM_ROW_DIST 20
      END

      ************background
      BEGIN
      TYPE IMAGE
      OBJID 0
      X0 1
      Y0 70
      WIDTH 396
      HEIGHT 5
      SELECTABLE FALSE
      COLOR 0x95555555
      TEXTURE GUIwhite_solid
      END

      BEGIN
      TYPE IMAGE
      OBJID 0
      X0 1
      Y0 0
      WIDTH 396
      HEIGHT 70
      SELECTABLE FALSE
      COLOR 0x95333333
      TEXTURE GUIwhite_solid
      END

      BEGIN
      TYPE IMAGE
      OBJID 0
      X0 1
      Y0 145
      WIDTH 396
      HEIGHT 5
      SELECTABLE FALSE
      COLOR 0x95555555
      TEXTURE GUIwhite_solid
      END

      BEGIN
      TYPE IMAGE
      OBJID 0
      X0 1
      Y0 75
      WIDTH 396
      HEIGHT 70
      SELECTABLE FALSE
      COLOR 0x95333333
      TEXTURE GUIwhite_solid
      END

      BEGIN
      TYPE IMAGE
      OBJID 0
      X0 1
      Y0 240
      WIDTH 396
      HEIGHT 5
      SELECTABLE FALSE
      COLOR 0x95555555
      TEXTURE GUIwhite_solid
      END

      BEGIN
      TYPE IMAGE
      OBJID 0
      X0 1
      Y0 150
      WIDTH 396
      HEIGHT 90
      SELECTABLE FALSE
      COLOR 0x95333333
      TEXTURE GUIwhite_solid
      END

      *********************_OK_********************
      BEGIN
      TYPE BUTTON
      OBJID 9
      X0 172
      Y0 273
      WIDTH 56
      HEIGHT 22
      TEXT 212
      TEXT_X0 20
      TEXT_Y0 3
      FONT_SIZE 16
      PICTURE GUI2_button-s
      END

      Sample Window:
      5etuhe.jpg

      Now have I ever worked with editing .win files .. no. Do I like to script and program .. yes. The structure is like a very crude xml. I have also found that while .xml should have been used .win was used instead. In the creation of a GUI. That means a lot of features .win files will not support, such as embeding. One my loves for .xml is the ability to embed other .xml into one .xml. Well anyways on to more things ..

      * BEGIN is the start of a given element and END is the close. Open and close tags if you will.
      * TITLE references the elements name. It can be named here like “MyTitle” or pulled from “AppDataLocalAChatprog_datatexts”.
      * X0 & Y0 defines where the element will be placed within the window.
      * WIDTH & HEIGHT is reflective of their given names for the element.
      * SELECTABLE is a reference to whether or not the element is selectable (TRUE / FALSE)
      * FONT_COLOR uses 8 digits which represent opacity then hex color. IE 95333333 would be 95 opacity with a color of 333333. For solid use ff. Using earlier example would be ff333333.
      * FONT_SIZE is reflective of its name.
      * DEFAULT_FONT_COLOR is the base color to be used for the element.
      * TYPE is the element type from button,bar,text etc
      * HELPTEXT is the mouseover text displayed for the element. See TITLE.
      * TEXT is the text to use for an element. See TITLE.
      * TEXTURE is the .dds texture to use for the element.
      * PICTURE see TEXTURE.

      And more … While I could go down the line for everything, this is just to get people a bit more familiar with it. Now as far as ID's go .. I haven't fully gathered which elements are localized or globalized variables. It seems many are localized. Thus if you place a element from one form to another. It will cause a sort of unlinking. Unless there is a globalized reference to items as well, still looking into that. And doing so via the text files and learning. Not by interfering or reversing code. I find learning how something does something, to be fun.

      In the end please expand, edit, remove any and all information as it becomes clearer to you or others. It allows people to have a correct reference point in editing the GUI.

      #82793
      Lover
      Participant

        Thanks for a more detailed instruction Annie.

        Would you mind if I move this to Support/templates? Perhaps we get more ideas and help and then we have one single board for it.

        #82794
        AnnieMay
        Participant

          Thanks for a more detailed instruction Annie.

          Would you mind if I move this to Support/templates? Perhaps we get more ideas and help and then we have one single board for it.

          Sure hun. =)  I figure even if they are .win files least it gives us something to modify on a GUI scale. And could potentially allow for many diffent people to make their own skinned versions of the AChat interface.

          On a side note I want to do a version of the GUI myself as I get more time. Currently that would be fairly slow. I have many ideas on how to do a re-design. I am a digital painter as well as a scripter/programmer. All of them self taught. So don't think I'm amazing. -heh- Though I do have an AA for when I used to do graphic design. Only schooling I really had ..

          #82795
          AnnieMay
          Participant

            I was just thinking to myself here. If a great many of the variables are localized. This would then greatly hinder the capacity to how they are used. In that they can only ever exist in the form they were localized to. And placement anywhere else would only see a unlinking, or inactive element. While this still would allow for GUI restructuring. It would hinder the ability of a modder to come up with better ways to manage elements or sets of elements. That enabling them on a globalized scale would do.

            With that said I would hope the Achat developers would globalize a set of variables for modders to use. Maybe even afford modders a list of globalized variables. Along with the localized variables and to what windows they exist within. This would greatly take the guess work out for modders, and allow a sort of list  of things they can play with functionally.

            The other thing being the following. While I do know how to do graphics and the like on a visual scale. If there is to be a modded AChat. It should be developed in part as a community mod. I will then say I will opt to assist with editing the .win files.

            Roles for a mod would include (not a complete list) :
            * Someone to edit and design elements into .win file(s)
                – An easier way would to assign a few modders to this task. Giving each one specific .win files in which they are to manage.
            * Someone to edit and design .dds elements in a graphics editor
                – Understanding of design is also key when doing graphics.
            * Someone to edit and design workable layouts using both .dds and .win files.
                – They do not mod the .win files. Only figure out ways to put it all together, and know it will work. knowledge of .win structure is helpful.
                – Simply someone who designs a layout and tells the modders who do the .win edits or .dds graphics this is what they want, and get to it =).

            #82796
            Lover
            Participant

              I will send your ideas and this link to the A-Team. Perhaps they don't want it, as there is also the danger of hiding virus or trojan or just making it instable. But perhaps they like the idea and say “Great, let's do it!” We'll see.

              #82797
              AnnieMay
              Participant

                I will send your ideas and this link to the A-Team. Perhaps they don't want it, as there is also the danger of hiding virus or trojan or just making it instable. But perhaps they like the idea and say “Great, let's do it!” We'll see.

                You can't hide a virus in a plain text file. Now .dds can as soon as it is opened. If its a community mod, before its made public for available download. It can be checked by the modders as well as staff. Before making its way to the end user. The only way they could stop modding of AChat is to redo their entire source in a completely different structure. And as much work as I have seen thus far. That may be more time then they are willing to invest. Even nesting these files into the application would still cause them to be plain text in a executable, it would not be compiled. Though frankly I hope they leave it as they have it. And allow people the freedom to mod it. There are many softwares where modding is openly welcomed and accepted. And feel Achat should be happy someone would take time and effort to say “hey this is a version of AChat, what do you think?” And to shy away from a idea because a “virus could be added”, then nothing on the internet would really, if ever, be shared. That is why you check whats submitted, you check and re-check if needed, you then mark it safe. Place it on a server for download and say its been tested for viruses. And then also place a notice that the end user should always have a current virus scanner installed. Not because they should trust the download less, but that they should always keep themselves safe.

                And with any community mod. Forgive my noting here only doing so if you are unaware. A community mod is a mod done by the community for a project. Often reviewed by the developers of a product. And determined if it should be supported by them. Otherwise a modded application will say something like “unofficial or unsupported mod”. I'd very much like this one to be a “supported mod”. Which means the developers and future modders would work together. Developers only in ways to allowing and telling modders what they want. And modders to be their creative selves in working with what they are given.

                If modding was such a bad thing. You would not have community maps to favorite games you may like. Community mods to games you like, like say a “Christmas Mod”. You would be without a themed variant to many applications and games, SecondLife, Mozilla (Firefox), World of Warcraft via LUA, even your phones allow modders. Modders actually are often used by companies as free labor and ideas -heh-, that they are. Because a mod might later be a standard within that application.

                As far as modding AChat what is allowed and not allowed is all based on the localization or globalization of the used variables. If a variable is not wanting to be used outside a form. Localizing it means it'll only ever remain effective in the given form. All you would be able to do is pretty that form up as a modder. Globalizing a variable would allow further edits. Though as mentioned before thats entirely in Achat developer control.

                #82798
                AnnieMay
                Participant

                  Just a little side bit. =)

                  “… some companies actively encourage modding of their products. In cases such as TiVo and Google, there has been an informal agreement between the modders and the company in which the modders agree not to do anything that destroys the company's business model and the company agrees to support the modding community by providing technical specifications and information. Some commercial video games thrive through a modding community. In the case of Half-Life, a mod called Counter-Strike drove sales of the original software for years.”

                  That is exactly the sort of community mod I am speaking of. A mod directly connected between AChat developers and a community. Working together to make something better. Together.

                  #82799
                  Lover
                  Participant

                    You don't have to convince me. I believe, I know that giving access to special people IS helpful for games, software and programs. What we're doing in forum is not very different, just we don't do the implementation.
                    We collect and bundle ideas – like a think tank. Then there is the other side – the programmers. Usually in compare to the user they do have the know how but not the ideas ;)

                    Best is to have symbiosis – both “fertilize” each other and the outcome is great.

                    #82800
                    AnnieMay
                    Participant

                      You don't have to convince me. I believe, I know that giving access to special people IS helpful for games, software and programs. What we're doing in forum is not very different, just we don't do the implementation.
                      We collect and bundle ideas – like a think tank. Then there is the other side – the programmers. Usually in compare to the user they do have the know how but not the ideas ;)

                      Best is to have symbiosis – both “fertilize” each other and the outcome is great.

                      Mhms I agree dear, as my post above also says. I want it to be done together. And it is possible. Even my sample shows a tiny bit of what can be done. I have done more than this when modding it as I was learning. I also learned some variables may be localized to a form and not accessable to another. Or that it has a internal reference that would be hard to guess. Thats where the developer comes in saying hey thats , so and so. Or hey I'll add it in globally and see what you can do. =)

                      #82801
                      stray
                      Participant

                        Hi there, could someone show me how to make the chat window darker? I've problems to see few letters on particular backgrounds.. ^^

                        #82802
                        old_goat
                        Participant

                          I would like to see an option to help a red/green colorblind person with the gui.
                          the status indicator is useless.
                          i can take 3d glasses and tell the difference by closing one eye then the other.
                          PLEASE.

                          #82803
                          stray
                          Participant

                            you should tell this to A-Team with a support ticket I thought

                            #82804
                            Lover
                            Participant

                              Stray, there is no way to make the chat window darker. You only can use your own settings but i'm sure you know it.

                              #82805
                              stray
                              Participant

                                Oh, ok thanks.

                                #82806
                                AnnieMay
                                Participant

                                  I have been away for a bit. And was looking in past threads I replied in. It is very possible to change the chat window color. As far as within the program itself .. no. Though, through edits yes you can. You would just need to find the applicable file. then change the supplied color to a more prefered. Save and done. Though its always best to work with a copy. Just to be sure if anything blows up, you can revert.

                                  I think the reason why few know this. Is that few care to mod. Though Achats interface is completely modable. And if it makes it easier for you a good reason to do it.

                                  You can try yourself, or when I can I can look for you. Though, may be some time as I am busy.

                                Viewing 15 posts - 1 through 15 (of 24 total)
                                • You must be logged in to reply to this topic.

                                Optimizing new Forum... Try it, and report bugs to support.

                                The forums Templates A Basic Introduction To Updating The AChat GUI