Modding the GUI

Post » Tue May 15, 2012 6:48 am

I've tested whether Skyrim will load arbitrary Flash files and it does! (One notable thing is that Flash audio doesn't play. I can only guess that the Flash uses an interface to the main game engine to play sound effects through a central mixer.) For an admittedly-absurd demonstration:

  • Download http://web.archive.org/web/20100114094539/http://www.castlemountains.net/flashmar/A_Cup_Of_Joy.swf. (It's a good test file since it's self-contained, needing no server data or browser cookies to work. Finding such a test file wasn't easy!)
  • Rename it to tweenmenu.swf and drop it in Data/Interface/
  • Run Skyrim and press Tab to open the tween menu. The animation will play.

Given that arbitrary Flash works just fine, it may be a shorter path to a UI replacement to rewrite it from scratch than to try to get decompiles to recompile without compile errors or CTDs. If Socrates can help the decompilers to document the Flash<->game data interface, they can be used to create clean UI replacements that do more than play silly mouse animations. ;)

Edit: I spoke too soon: This doesn't work for inventorymenu.swf which just CTDs as soon as it tries to load this .swf file. Clearly the game is expecting something from this menu that an arbitrary Flash file doesn't provide. Hopefully that will be cleared up as the external interface is discovered/documented.
User avatar
Nathan Barker
 
Posts: 3554
Joined: Sun Jun 10, 2007 5:55 am

Post » Tue May 15, 2012 8:01 am

I wish I knew how to manipulate all this code so that I could contribute something useful. I really, really want to help with de-crapifying the UI, rather than sitting around saying, "Good job, guys!" But apparently DarN and others already know far more about the inner workings of the UI code than I do.

I can do graphic design work, if someone who can code but isn't too handy with Photoshop needs any assistance with that sort of thing. I'm not your typical Photoshop dabbler — I know a lot of genuinely advanced techniques. Something to keep in mind, perhaps? If you're someone who knows how to work with the code and you need graphical elements for your layout, just let me know. No commitment necessary; tell me what you want and I'll make it and send it to you. If you don't like it, you can just tell me to shove off.

That being said, I'm still going to try to learn to work with the code over the next few weeks. A consolidated guide of some sort would be great at in the near/distant future. Making my own UI mod(s) would be ideal.
User avatar
Rach B
 
Posts: 3419
Joined: Thu Mar 08, 2007 11:30 am

Post » Tue May 15, 2012 5:39 am

InventoryMenu.swf seems to be the one everyone is having trouble with. I wonder what's so special about it, as opposed to all the other .swfs?
User avatar
Liv Brown
 
Posts: 3358
Joined: Wed Jan 31, 2007 11:44 pm

Post » Mon May 14, 2012 9:06 pm

I came up with UI concepts a while ago on Skyrim Nexus and I was told to post them here, so here I am. They can be found on this thread

http://www.thenexusforums.com/index.php?/topic/454732-ui-overhaul-concepts/

They aren't perfect, as they are just concepts I made with paint in a few hours. Since those are concepts, just take the good part out of them, and ignore the crap parts.
User avatar
elliot mudd
 
Posts: 3426
Joined: Wed May 09, 2007 8:56 am

Post » Tue May 15, 2012 2:28 am

If you look as the vanilla SWF files, you'll see they do not contain any fonts. Now when you decompile them with Trillix at least, theere are some fonts addition to the FLA to actually display the text I guess and of course you have to change it to any font on your system for the thing to work properly. Now, when you recompile to SWF, you'll notice (in trillix) that your new SWF has some new fonts (which also explain why the size of he vanilla SWF is always smaller than yours). I think we need to find a way for the SWF to refers to font_en.swf and remove the font addition from the conversion. Only then we'll have the correct font displayed. Using default system wont work. As soon a font is in the SWF, it is the one used. The managed to refer to the font without adding it to the FLA and this is what we must do.
User avatar
stacy hamilton
 
Posts: 3354
Joined: Fri Aug 25, 2006 10:03 am

Post » Tue May 15, 2012 12:02 pm

I've updated the OP with information that seemed important from this thread.
Would it be possible to update it at the bottom to also include links to posts/threads with some of the good suggestions for the future UI from the folks like Zeno, Wakeupbrandon, and headbomb? For references when we get to that point.

Just a thought so these great ideas and the work they put into their mockups don't get lost when we move on to subsequent threads.


try to get decompiles to recompile without compile errors
My head is spinning... :sick:
User avatar
Amber Hubbard
 
Posts: 3537
Joined: Tue Dec 05, 2006 6:59 pm

Post » Tue May 15, 2012 4:59 am

Not sure if this has been mentioned yet but I'd love for the menu's (both favourite and the normal items/magic menus) to be search-able, if possible, similar to the Windows 7 start menu. This would make it much simpler to sift through the potential clutter and find what you need.
User avatar
Abel Vazquez
 
Posts: 3334
Joined: Tue Aug 14, 2007 12:25 am

Post » Mon May 14, 2012 11:38 pm

Some off-topic remarks have been removed. Please read the OP carefully: this is not a thread to voice your criticisms of the UI. This is a purely technical discussion for modders actively collaborating on improvements.
User avatar
KIng James
 
Posts: 3499
Joined: Wed Sep 26, 2007 2:54 pm

Post » Tue May 15, 2012 7:54 am

Hello.
There is also a cool util called "URL Action Editor". It allows you to replace the graphics and edit some other params within swf file without decompiling it.
Here's the screenie:
[img]http://img43.imageshack.us/img43/4939/uaew.jpg[/img]
maybe you'll find this useful.

edit: y img tag not working?
User avatar
Je suis
 
Posts: 3350
Joined: Sat Mar 17, 2007 7:44 pm

Post » Tue May 15, 2012 11:15 am

edit: y img tag not working?
It automatically creates a link without the tags, but you can't embed images directly in the forums.
User avatar
Nymph
 
Posts: 3487
Joined: Thu Sep 21, 2006 1:17 pm

Post » Tue May 15, 2012 5:53 am

If you look as the vanilla SWF files, you'll see they do not contain any fonts. Now when you decompile them with Trillix at least, theere are some fonts addition to the FLA to actually display the text I guess and of course you have to change it to any font on your system for the thing to work properly. Now, when you recompile to SWF, you'll notice (in trillix) that your new SWF has some new fonts (which also explain why the size of he vanilla SWF is always smaller than yours). I think we need to find a way for the SWF to refers to font_en.swf and remove the font addition from the conversion. Only then we'll have the correct font displayed. Using default system wont work. As soon a font is in the SWF, it is the one used. The managed to refer to the font without adding it to the FLA and this is what we must do.

My ignorant gut tells me they did it through 'Sharing Library Assets' as the term seems to be called as I read up on it. http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WSd60f23110762d6b883b18f10cb1fe1af6-7dc9a.html, http://www.adobe.com/devnet/flash/quickstart/embedding_fonts.html?PID=4176632 or maybe http://www.communitymx.com/content/article.cfm?page=2&cid=67A61 for those curious. That last one I haven't really looked at properly or compared with existing code yet. I'm not even sure how relevant or useful those articles are because by this hour my brain seriously hurts but that last one twigged my interest for a migraine inducing second. Because the identifiers and URLs are absent on the fonts found in the Libraries, maybe the fonts were called from font_en.swf through just the code instead.

But that's where my train of thought sits at the moment and I'll delve deeper into it tomorrow. Better yet DarN could pike up now and explain how he did it like 8 pages ago. :P
User avatar
Mark Churchman
 
Posts: 3363
Joined: Sun Aug 05, 2007 5:58 am

Post » Mon May 14, 2012 10:02 pm

I love this idea!

From previous thread...


Disagree on the hold button and release. I'm torn about the categories idea. I get where you're coming from, but that would slow the whole thing down. Favorites is all about quick access. If you have 50 items in your favorites compared to like 10 to 20, there's no point, you could just go into your inventory or magic list. What would be more useful than categories in my opinion would be sets. You simply create a left hand / right hand set, and you can name it with a custom name. Then the list of names would appear in your Favorites.
User avatar
Eilidh Brian
 
Posts: 3504
Joined: Mon Jun 19, 2006 10:45 am

Post » Tue May 15, 2012 5:58 am

My ignorant gut tells me they did it through 'Sharing Library Assets' as the term seems to be called as I read up on it. http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WSd60f23110762d6b883b18f10cb1fe1af6-7dc9a.html, http://www.adobe.com/devnet/flash/quickstart/embedding_fonts.html?PID=4176632 or maybe http://www.communitymx.com/content/article.cfm?page=2&cid=67A61 for those curious. That last one I haven't really looked at properly or compared with existing code yet. I'm not even sure how relevant or useful those articles are because by this hour my brain seriously hurts but that last one twigged my interest for a migraine inducing second. Because the identifiers and URLs are absent on the fonts found in the Libraries, maybe the fonts were called from font_en.swf through just the code instead.

But that's where my train of thought sits at the moment and I'll delve deeper into it tomorrow. Better yet DarN could pike up now and explain how he did it like 8 pages ago. :P
Those documents you linked I read already and they don't help very much (helps understand the concept though). The point is that the shared fonts are done through a text file to a file (font_en.swf) without any font in but the glyphs for each letter and morever the last links speaks of ActionScript 3.0 while the actual swf from Beth are in ActionScript 2.0 and from what I read changing version will just break what is acutally working ie everything else but the reference to the fonts.
User avatar
Conor Byrne
 
Posts: 3411
Joined: Wed Jul 11, 2007 3:37 pm

Post » Mon May 14, 2012 11:40 pm

My ignorant gut tells me they did it through 'Sharing Library Assets' as the term seems to be called as I read up on it. http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WSd60f23110762d6b883b18f10cb1fe1af6-7dc9a.html, http://www.adobe.com/devnet/flash/quickstart/embedding_fonts.html?PID=4176632 or maybe http://www.communitymx.com/content/article.cfm?page=2&cid=67A61 for those curious. That last one I haven't really looked at properly or compared with existing code yet. I'm not even sure how relevant or useful those articles are because by this hour my brain seriously hurts but that last one twigged my interest for a migraine inducing second. Because the identifiers and URLs are absent on the fonts found in the Libraries, maybe the fonts were called from font_en.swf through just the code instead.

But that's where my train of thought sits at the moment and I'll delve deeper into it tomorrow. Better yet DarN could pike up now and explain how he did it like 8 pages ago. :P
What did I do? Whatever it was, it was by accident I assure you. I'm still trying to get the environment to work properly. It seems whatever I do, I get errors from all over. This one annoys me to no end:
Spoiler
WARNING: UIComponent.as, Line 95: There is no method with the name 'getFocusBitmask'.WARNING: UIComponent.as, Line 96: The property being referenced does not have the static attribute 'numFocusGroups'.WARNING: UIComponent.as, Line 100: There is no method with the name 'getControllerMaskByFocusGroup'.WARNING: UIComponent.as, Line 182: The property being referenced does not have the static attribute 'numFocusGroups'.WARNING: UIComponent.as, Line 186: There is no method with the name 'getControllerMaskByFocusGroup'.WARNING: UIComponent.as, Line 293: There is no method with the name 'getTopMostEntity'.WARNING: Button.as, Line 164: The property being referenced does not have the static attribute 'text'.WARNING: Button.as, Line 359: The property being referenced does not have the static attribute 'text'.WARNING: Button.as, Line 375: The property being referenced does not have the static attribute 'textWidth'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'safeRect'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'safeRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'safeRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'safeRect'.WARNING: BSScrollingList.as, Line 100: There is no method with the name 'getTopMostEntity'.WARNING: CenteredScrollingList.as, Line 146: There is no method with the name 'getTopMostEntity'.WARNING: CenteredScrollingList.as, Line 220: There is no method with the name 'getTopMostEntity'.WARNING: FocusHandler.as, Line 57: The property being referenced does not have the static attribute 'alwaysEnableArrowKeys'.WARNING: FocusHandler.as, Line 58: The property being referenced does not have the static attribute 'disableFocusKeys'.WARNING: FocusHandler.as, Line 59: The property being referenced does not have the static attribute 'disableFocusAutoRelease'.WARNING: FocusHandler.as, Line 60: The property being referenced does not have the static attribute 'disableFocusRolloverEvent'.WARNING: FocusHandler.as, Line 104: There is no method with the name 'getControllerMaskByFocusGroup'.WARNING: FocusHandler.as, Line 118: There is no method with the name 'getControllerFocusGroup'.WARNING: FocusHandler.as, Line 142: There is no method with the name 'findFocus'.WARNING: FocusHandler.as, Line 182: There is no method with the name 'getControllerFocusGroup'.WARNING: FocusHandler.as, Line 202: There is no method with the name 'getControllerFocusGroup'.WARNING: ItemCard.as, Line 530: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 531: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 543: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 544: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 550: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 558: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 559: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 571: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 585: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 586: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 592: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 601: There is no method with the name '__get__instance'.
I can't figure out if the software I'm using is buggy or the CLIK code is. I've found several instances with missing semi-colons at line endings, etc. Maybe the Quicker compiler is less forgiving than Flash.

Bottom line is I don't know what I'm doing.

This for example:
[InspectableList("disabled", "visible", "enableInitCallback", "soundMap", "bTriggerSoundsOnEvents")][Inspectable(defaultValue="http://forums.bethsoft.com/topic/1267229-modding-the-gui/true", verbose=1)]
I assume this is Flash IDE specific code, and isn't needed for the game? It throws off Quicker so that it generates errors for the subsequent line.

edit: Class paths is as follows:
D:\Skyrim\CLIKD:\Skyrim\QuickerScripts
User avatar
Mark Churchman
 
Posts: 3363
Joined: Sun Aug 05, 2007 5:58 am

Post » Tue May 15, 2012 3:11 am

huh... I decompiled and then recompiled the Skyrim GUI files without any warning the other day. I'm not a flash developer and I've never programmed in actionscript so I had no idea what I was doing, but it seemed to work. :shrug:
User avatar
Jade
 
Posts: 3520
Joined: Mon Jul 10, 2006 6:42 am

Post » Tue May 15, 2012 9:34 am

What did I do? Whatever it was, it was by accident I assure you. I'm still trying to get the environment to work properly. It seems whatever I do, I get errors from all over. This one annoys me to no end:

I can't figure out if the software I'm using is buggy or the CLIK code is. I've found several instances with missing semi-colons at line endings, etc. Maybe the Quicker compiler is less forgiving than Flash.

Bottom line is I don't know what I'm doing.

getFocusBitmask() comes from CLIK's Selection.as, which is slightly expanded from the default Flash Seletion.as. That's an "intrinsic" class, which means it's inside the Scaleform player; the full class definition looks like this:

Spoiler
intrinsic class Selection {	// Methods in the Flash Player	static function addListener(listener:Object):Void;	static function getBeginIndex():Number;	static function getCaretIndex():Number;	static function getEndIndex():Number;	static function getFocus():String;	static function removeListener(listener:Object):Void;	static function setFocus(newFocus:Object):Boolean;	static function setSelection(beginIndex:Number, endIndex:Number):Void;		// GFx Extensions	static var alwaysEnableArrowKeys:Boolean;	static var alwaysEnableKeyboardPress:Boolean;	static function captureFocus(doCapture:Boolean):Void;	static var disableFocusAutoRelease:Boolean;	static var disableFocusKeys:Boolean;	static var disableFocusRolloverEvent:Boolean;	static var modalClip:MovieClip;	static var numFocusGroups:Number;	static function moveFocus(keyToSimmulate:String, startFromMovie:Object):Object;	static function findFocus(keyToSimulate:String, parentMovie:Object, loop:Boolean, startFromMovie:Object, includeFocusEnabledChars:Boolean, controllerIndex:Number):Object;	static function setModalClip(modalClip:Object, controllerIndex:Number):Object;	static function getModalClip(controllerIndex:Number):Void;	static function setControllerFocusGroup(controllerIndex:Number, focusGroupIdx:Number):Boolean;	static function getControllerFocusGroup(controllerIndex:Number):Number;	static function getFocusArray(mc:Object):Array;	static function getFocusBitmask(mc:Object):Number;	static function getControllerMaskByFocusGroup(focusGroupIdx:Number):Number;}
Same for the rest, I think. I'll go through the list and check.

As for the semi-colons: ECMAScript (thus ActionScript and JavaScript) have a concept of "intelligent" semicolon insertion. If you ask me, this is the second-dumbest idea ever implemented in a serious programming language, just after Java's type erasure.

This for example:
[InspectableList("disabled", "visible", "enableInitCallback", "soundMap", "bTriggerSoundsOnEvents")][Inspectable(defaultValue="http://forums.bethsoft.com/topic/1267229-modding-the-gui/true", verbose=1)]
I assume this is Flash IDE specific code, and isn't needed for the game? It throws off Quicker so that it generates errors for the subsequent line.

This is for the Flash/Flex IDE debugger and designer. You can delete those lines if you don't use either.
User avatar
Sarah Knight
 
Posts: 3416
Joined: Mon Jun 19, 2006 5:02 am

Post » Tue May 15, 2012 6:09 am

I assume this is Flash IDE specific code, and isn't needed for the game?

This is a way of exposing variables in the class to the IDE. So when you click those things in the editor you see those fields to edit in the properties window. I'm not sure if it's needed for the game, though things like defaultValue seem important. Would be needed for the .fla to .swf step at least.
User avatar
Quick draw II
 
Posts: 3301
Joined: Thu Nov 08, 2007 4:11 pm

Post » Tue May 15, 2012 3:40 am

Thanks fellas. Works like in VS then.

Could these warnings be considered benign though? As in would they in effect be gone at runtime?

I'm not getting a functional menu with this output. The result is 3kb smaller than the original file as well. I assumed including CLIK would eliminate warnings like these.
User avatar
Nana Samboy
 
Posts: 3424
Joined: Thu Sep 14, 2006 4:29 pm

Post » Tue May 15, 2012 12:45 pm

Thanks fellas. Works like in VS then.

Could these warnings be considered benign though? As in would they in effect be gone at runtime?

Kinda. In principle. Depends.

Ok, a bit of theory (on ECMAScript, JavaScript and ActionScript) ...

In ECMAScript, almost everything is an "Object". Those are just key-value pairs, like this:

var blubb:Object = { key1: "value1", key2: 42 };

The keys are also called "properties". You can access those in a few ways, and they all mean exactly the same:

blubb["key1"]blubb.key1

Functions (actually closures, but let's not go there ...) are first-order types. That means they can be assigned to variables ..

var stuffit:Function = function () { do_something(); }

This is exactly the same as ...

function stuffit() { do_something(); }

(This one will just issue a warning about not declaring a return type ...)

Calling a function is as easy as writing down its name followed by a pair of parenthesis, with arguments inside if it takes any. It looks like a function call in any other language. It isn't. In truth, it's closer to "stuffit.execute();".

Methods are just properties whose values happen to be functions. Attributes (with getters and setters) are just a pair of properties called __get__attributeName and __set__attributeName which happen to both be functions. Everything else is syntactic sugar done by the Flash compiler.

You can extend any class with additional class members or methods simply by assigning them a value.

Now, to finally answer your question:

In general, these are just warnings because the compiler can't find those members or methods in the included files or libraries, but it'll still happily try to access them. If they still aren't there at runtime, the Flash VM will throw a runtime exception (and likely terminate). If they are, it'll access them as if nothing where ever wrong.

Now, if the Scaleform VM or its version for Skyrim works exactly the same, I can't tell. My guess is: It does.
User avatar
Shannon Marie Jones
 
Posts: 3391
Joined: Sun Nov 12, 2006 3:19 pm

Post » Tue May 15, 2012 12:21 am

What did I do? Whatever it was, it was by accident I assure you. I'm still trying to get the environment to work properly. It seems whatever I do, I get errors from all over. This one annoys me to no end:
Spoiler
WARNING: UIComponent.as, Line 95: There is no method with the name 'getFocusBitmask'.WARNING: UIComponent.as, Line 96: The property being referenced does not have the static attribute 'numFocusGroups'.WARNING: UIComponent.as, Line 100: There is no method with the name 'getControllerMaskByFocusGroup'.WARNING: UIComponent.as, Line 182: The property being referenced does not have the static attribute 'numFocusGroups'.WARNING: UIComponent.as, Line 186: There is no method with the name 'getControllerMaskByFocusGroup'.WARNING: UIComponent.as, Line 293: There is no method with the name 'getTopMostEntity'.WARNING: Button.as, Line 164: The property being referenced does not have the static attribute 'text'.WARNING: Button.as, Line 359: The property being referenced does not have the static attribute 'text'.WARNING: Button.as, Line 375: The property being referenced does not have the static attribute 'textWidth'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'safeRect'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 60: The property being referenced does not have the static attribute 'safeRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'safeRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'visibleRect'.WARNING: GlobalFunc.as, Line 61: The property being referenced does not have the static attribute 'safeRect'.WARNING: BSScrollingList.as, Line 100: There is no method with the name 'getTopMostEntity'.WARNING: CenteredScrollingList.as, Line 146: There is no method with the name 'getTopMostEntity'.WARNING: CenteredScrollingList.as, Line 220: There is no method with the name 'getTopMostEntity'.WARNING: FocusHandler.as, Line 57: The property being referenced does not have the static attribute 'alwaysEnableArrowKeys'.WARNING: FocusHandler.as, Line 58: The property being referenced does not have the static attribute 'disableFocusKeys'.WARNING: FocusHandler.as, Line 59: The property being referenced does not have the static attribute 'disableFocusAutoRelease'.WARNING: FocusHandler.as, Line 60: The property being referenced does not have the static attribute 'disableFocusRolloverEvent'.WARNING: FocusHandler.as, Line 104: There is no method with the name 'getControllerMaskByFocusGroup'.WARNING: FocusHandler.as, Line 118: There is no method with the name 'getControllerFocusGroup'.WARNING: FocusHandler.as, Line 142: There is no method with the name 'findFocus'.WARNING: FocusHandler.as, Line 182: There is no method with the name 'getControllerFocusGroup'.WARNING: FocusHandler.as, Line 202: There is no method with the name 'getControllerFocusGroup'.WARNING: ItemCard.as, Line 530: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 531: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 543: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 544: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 550: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 558: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 559: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 571: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 585: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 586: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 592: There is no method with the name '__get__instance'.WARNING: ItemCard.as, Line 601: There is no method with the name '__get__instance'.
I can't figure out if the software I'm using is buggy or the CLIK code is. I've found several instances with missing semi-colons at line endings, etc. Maybe the Quicker compiler is less forgiving than Flash.

Bottom line is I don't know what I'm doing.

This for example:
[InspectableList("disabled", "visible", "enableInitCallback", "soundMap", "bTriggerSoundsOnEvents")][Inspectable(defaultValue="http://forums.bethsoft.com/topic/1267229-modding-the-gui/true", verbose=1)]
I assume this is Flash IDE specific code, and isn't needed for the game? It throws off Quicker so that it generates errors for the subsequent line.

edit: Class paths is as follows:
D:\Skyrim\CLIKD:\Skyrim\QuickerScripts

I was experiencing the same compile issues and realized all these errors were being caused by the decompiled code. Upon further inspection, I noticed the decompiled actionscripts were in fact nearly identical to UDK's scaleform gfx. I fixed it by overwriting the problematic actionscripts with working ones from UDK (C:\UDK\UDK-2011-10\Development\Flash\CLIK\gfx) and was able to compile with 0 errors. Hope this helps.
User avatar
Life long Observer
 
Posts: 3476
Joined: Fri Sep 08, 2006 7:07 pm

Post » Tue May 15, 2012 1:22 pm

Would it be possible to update it at the bottom to also include links to posts/threads with some of the good suggestions for the future UI from the folks like Zeno, Wakeupbrandon, and headbomb? For references when we get to that point.
I can give it a try and see how it works out. Do you have some specific links that you think would be worth including?
User avatar
Genocidal Cry
 
Posts: 3357
Joined: Fri Jun 22, 2007 10:02 pm

Post » Mon May 14, 2012 9:18 pm

Dear Master Dev,
Could you tell us how Skyrim scales font, what property of the font it looks at? It appears to be completely independent from the size of the actual glyphs. I've been playing around with a dozen different fonts, and if I size all of them equally before I embed them, they're all broken in different ways. Some get pushed under variable values, some get cut off, some run off the sides of elements...it makes me sad. I took a font that works in most places, Magic Cards, made it quite large before I embedded it, and then cut out every additional property/table that I could possibly think of in an effort to break it, to figure out what makes it work but I failed. Comparing Futura to these fonts, I can't find any noticeable difference. It makes me sad! I'd love for my replacement fonts to fit inside all the UI elements correctly. Especially shouts. Those love to cut the second line off.
Thank you kindly.
User avatar
Phillip Brunyee
 
Posts: 3510
Joined: Tue Jul 31, 2007 7:43 pm

Post » Tue May 15, 2012 9:32 am

A bit premature, but it seems there was a new thread created http://www.gamesas.com/index.php?/topic/1275750-modding-the-gui/

So I will close this one now ;)


Milt
User avatar
Undisclosed Desires
 
Posts: 3388
Joined: Fri Mar 02, 2007 4:10 pm

Previous

Return to V - Skyrim