EQ2Interface.com
Search Downloads


Go Back   EQ2Interface > Developer Discussion > UI Developer Discussion

Reply
Thread Tools Search this Thread Display Modes
  #1  
Unread 08-04-2006, 09:12 PM
Mathias Mathias is offline
A Young Mystail Rat
 
Join Date: May 2005
Server: Antonia Bayle
Posts: 6
Default How to develop an UI, please: some questions

Greetings all!

I'm a C# programmer and I want to try to create my own EQ2 UI.

So, I've been reading the official documentation found in the ZIP file "UIBuilder.zip".

After reading it I've been looking at the default skin code and what I found was XML.

I don't understand very well how to code your own UI... what programming language you've to use in order to code an UI? Is it all made using XML?

Thank you in advance!
Reply With Quote
  #2  
Unread 08-05-2006, 02:19 AM
dragowulf's Avatar
dragowulf dragowulf is offline
A man among men
This person is a EQ2Map developer.
Interface Author - Click to view interfaces
 
Join Date: Dec 2004
Server: Nagafen
Posts: 934
Default

You use UIBuilder, a program that SOE created... knowing xml is very useful too. Play around with UIBuilder, you'll get the hang of it within a day or two

Start with opening it up, and then going to Open, go to the default UI folder, and chose eq2ui.xml, it loads all the other .xml UI pieces, from their it should be very simple.

Keep in touch!
__________________
May Jesus Have Mercy On Us
Reply With Quote
  #3  
Unread 08-05-2006, 04:09 AM
Mathias Mathias is offline
A Young Mystail Rat
 
Join Date: May 2005
Server: Antonia Bayle
Posts: 6
Default

Yeah, thank you, that's ok... but I'm not meaning how to modificate an existing UI.

I want to create an UI from the beginning because I'm going to redefine all.

Playing around the UI Builder doesn't help me since I don't see any window to scripting or whatever.

Can you really help me? I promise you'll remember these words when you'll be playing with my UI *cof cof* (j/k!!).

Thank you
Reply With Quote
  #4  
Unread 08-05-2006, 07:32 AM
lordebon lordebon is offline
Fetish Core author
This person is a EQ2Map developer.
Featured
 
Join Date: Jun 2005
Server: Crushbone
Posts: 2,667
Default

If I think I know where you're going...

You can't. The only thing you can do is modify the xml files (maybe make some of your own) and use the scripts and data SOE gives you. The UI's base is hard-coded into the game: you can't redefine it in any way other than the modification of the xml files.
Reply With Quote
  #5  
Unread 08-05-2006, 10:24 AM
dragowulf's Avatar
dragowulf dragowulf is offline
A man among men
This person is a EQ2Map developer.
Interface Author - Click to view interfaces
 
Join Date: Dec 2004
Server: Nagafen
Posts: 934
Default

Aye, the way people make their own Complete Sets is by editing the default windows, because of the hardcoded stuff, it has to be exact. You don't start editing .xml's, maybe after your done you could add an "onshow" command, or something, but EQII's UI is very limited, rather than WoW's for the fact that the EQII Devs don't want us to have every single piece of info their is in the game, like WoW.
__________________
May Jesus Have Mercy On Us
Reply With Quote
  #6  
Unread 08-05-2006, 10:40 AM
instant instant is offline
A Young Mystail Rat
 
Join Date: Dec 2004
Server: Antonia Bayle
Posts: 5
Default

Quote:
Originally Posted by Mathias
Greetings all!

I'm a C# programmer and I want to try to create my own EQ2 UI.

So, I've been reading the official documentation found in the ZIP file "UIBuilder.zip".

After reading it I've been looking at the default skin code and what I found was XML.

I don't understand very well how to code your own UI... what programming language you've to use in order to code an UI? Is it all made using XML?

Thank you in advance!
The EQ2UI is so basic and limited it is hardly worth the trouble to do anything with it. (And very frustrating if you come from the WoW UI scene).

If you want a good place to start, take a look at Profit Reborn v2 and modify some of their files (.xml only) and see what you can come up with.
Reply With Quote
  #7  
Unread 08-05-2006, 01:10 PM
Mathias Mathias is offline
A Young Mystail Rat
 
Join Date: May 2005
Server: Antonia Bayle
Posts: 6
Default

Ok. Thank you for your answers.

I'll check it and if I start creating a new UI you'll have news very soon!
Reply With Quote
  #8  
Unread 08-05-2006, 04:36 PM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default

What most have said is true but it's not as limited as they make out. The only thing to keep in mind is you have to stay with their naming scheme of the UI tree. Other then that you are free to do what ever.

Most onscreen windows are in the module MainHud. Also keep in mind; just because you are editing the target window doesn't mean it has to be the target window, you can make the player window the target window. It all depends on what gamedata you use in the root node of a window.

Every window is made up of objects. The most common object is the page object. <page name="blah" /> Each object has a set of event handlers, such as OnShow, OnHide, OnActivated, Ondeactivated and ect.. Through these event handlers you can add your script.

The Script engine SOE has provided IS very limited. You can't do any manipulation of strings you have basic math operation. Scripts are executed top to bottom right to left.

Through scripts you can modify any property of any object in the UI but you have to call it from where you are in the UI. Example;

<page name="PageOne" OnShow="PageTwo.b1.localtext=Blah" Size="1,1">
<page name="PageTwo" Size="5,5">
<button localtext="Hrmm" name="b1" OnPress="Parent.Parent.Size=2,2"/>
</page>
</page>

Look at the OnShow event handler;

PageTwo.b1.localtext=Blah

See how I got through the layers/child object to get to where I want to go. I access each child object by its name.

Look at the OnPress envent handler.

Parent.Parent.Size='2,2'

I have to go up 2 object via the Parent directive to access PageOne's size. If I wanted to access PageTwo's Size I would of only use on Parent directive. So kind of look at the UI tree as a directory tree and you have navigate it that way replace .. with parent. :P

Prophet was brought up and he might use some advanced scripting I don't know never looked but you should take a look eq2map's code, eXteme's group and start button has some good script to look at for controlling what images are displayed based on class. Fetish's mods have some nice advanced scripting in them also.

The best thing to do is download some of the top mods, rip them apart to see what makes them tick.
__________________
Landiin's EQ2MAP Updater Discussion Download

Last edited by Landiin : 08-05-2006 at 04:42 PM.
Reply With Quote
  #9  
Unread 08-05-2006, 06:30 PM
Mathias Mathias is offline
A Young Mystail Rat
 
Join Date: May 2005
Server: Antonia Bayle
Posts: 6
Default

Thank you for the information.

BTW, I'm surprised about how SOE did the "scripting", using an XML dialect.

I believe they had to create a real scripting engine using a syntax like C (such as NWN Scripting, you know?).

I'll have to study hard the XML dialect because I've never seen something like this and I usually code using C#... =\

Well, I'll take your words! Thank you again

EDIT: I've been reading your post again and now I understand how it works better than before.

It's something like a very light object-oriented XML-based programming, where you can get the object properties data and show them where you need to.

If I'm understanding how it works well, I guess the work of an UI designer is to create a skin for every data found in the game, from the player stats, to the quest journal, or whatever.

Oh yeah!

Last edited by Mathias : 08-05-2006 at 06:40 PM.
Reply With Quote
  #10  
Unread 08-05-2006, 09:28 PM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default

Quote:
Originally Posted by Mathias
It's something like a very light object-oriented XML-based programming, where you can get the object properties data and show them where you need to.!
Exactly that is a good summation of it.
__________________
Landiin's EQ2MAP Updater Discussion Download
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 10:44 AM.


Our Network
EQInterface | EQ2Interface | WoWInterface | LoTROInterface | ESOUI | MMOUI