Skip to content

A Basic Introduction To Updating The AChat GUI

- Not logged in to forum -

Home 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 GUI 2_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 GUI 2_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 GUI 2_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 GUI 2_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 GUI 2_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 GUI 2_radio_button_s.ate
    UNCHECKED_BOX_TEX GUI 2_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 GUI 2_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 GUI 2_radio_button_s.ate
    UNCHECKED_RADIO_TEX GUI 2_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 GUI 2_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.