Jump to content

Creation Kit Questions


Relight

Recommended Posts

Sorry for the post that's slightly off-topic, but I hoped it would be okay/allowed to have such a topic here for basic questions that UFO4P contributors might have.

 

My current question concerns the loading screening text, which is in the Creation Kit under Miscellaneous / LoadScreen.

 

However, I don't see an export for that text, and in the data that the CK displays, I also don't see the VDSG # that appears on the loading screen.

 

Any ideas about where those VDSG numbers are stored? Or maybe the engine just uses a random number generator?

Link to comment
Share on other sites

Thank you for the idea! I had a look and I don't understand all of the ActionScript, but I don't see them there.

 

I have an old question that perhaps some experts here might advise about - this one is a New Vegas question. Starting with New Vegas GECK 1.3, the option File / Export / Form Component Data for all non-World Forms was mysteriously removed. The previous version 1.1 - which had this option (as do all other GECKs / Creation Kits) - cannot be used on the latest version of the game. Any ideas regarding any options for the functionality of this export?

 

What I believe is the relevant part of LoadingMenu.swf:

        public function SetLoadingText(arg1:uint, arg2:String, arg3:String):*
        {
            var loc3:*=null;
            var loc4:*=0;
            this.InMinimalMode = false;
            this.BlackRect_mc.visible = false;
            this.LeftText_mc.VDSGText_tf.visible = true;
            this.LeftText_mc.LoadScreenText_tf.visible = true;
            var loc1:*=this.LeftText_mc.LoadScreenText_tf.numLines;
            Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, "$VDSGPrepend", false);
            Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, this.LeftText_mc.VDSGText_tf.text + arg1.toString(), false);
            Shared.GlobalFunc.SetText(this.LeftText_mc.LoadScreenText_tf, arg3, false);
            var loc2:*;
            if ((loc2 = (this.LeftText_mc.LoadScreenText_tf.length - 1)) >= 0)
            {
                loc3 = this.LeftText_mc.LoadScreenText_tf.getCharBoundaries(loc2);
                loc4 = this.LeftText_mc.LoadScreenText_tf.numLines;
                this.LeftText_mc.LoadScreenText_tf.y = this.LeftText_mc.LoadScreenText_tf.y - (loc4 - loc1) * loc3.height;
                this.LeftText_mc.VDSGText_tf.y = this.LeftText_mc.LoadScreenText_tf.y - this.SLIDE_NUMBER_SPACER;
                this.LeftText_mc.LevelMeter_mc.y = this.LeftText_mc.VDSGText_tf.y - this.LEVEL_METER_SPACER;
                this.LeftText_mc.LevelText_tf.y = this.LeftText_mc.LevelMeter_mc.y - this.LEVEL_TEXT_SPACER;
                if (this.BorderRectangle != null)
                {
                    this.LeftText_mc.removeChild(this.BorderRectangle);
                    this.BorderRectangle = null;
                }
                this.BorderRectangle = new flash.display.MovieClip();
                this.BorderRectangle.graphics.lineStyle(2, 16777215);
                this.BorderRectangle.graphics.beginFill(0, 0);
                this.BorderRectangle.graphics.drawRect(0, 0, this.LeftText_mc.LoadScreenText_tf.width + this.BORDER_BUFFER.x + this.BORDER_BUFFER.width, loc3.y + loc3.height + this.BORDER_BUFFER.y + this.BORDER_BUFFER.height);
                this.BorderRectangle.graphics.endFill();
                this.BorderRectangle.x = this.LeftText_mc.LoadScreenText_tf.x - this.BORDER_BUFFER.x;
                this.BorderRectangle.y = this.LeftText_mc.LoadScreenText_tf.y - this.BORDER_BUFFER.y;
                this.LeftText_mc.addChild(this.BorderRectangle);
            }
            return;
        }
Link to comment
Share on other sites

Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, "$VDSGPrepend", false);
Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, this.LeftText_mc.VDSGText_tf.text + arg1.toString(), false);

Those are the related lines (arg1 being an uint). The first set the "VSDG" part based on the translation strings files (i.e. localized string), the second append the number to it.

 

Now to figure out how is this number is changed/decided, you'll need to find the part of code that's actually calling this function, and see how it generate the uint passed as argument. If I were a Beth' dev, I'd probably compute a number based on the FormID of the loadscreen's form, if the actionscript had access to such data. That would ensure consistent numbering accross multiple game sessions while ensuring every different loading screen have a different number.

Link to comment
Share on other sites

Thanks for the help so far, I appreciate it!

 

The ActionScript itself - at least as far as I can see within LoadingMenu.swf - doesn't call the function SetLoadingText.

 

When I installed the Creation Kit, it asked for me to unzip Base.zip, which I did - I don't find this function called in those scripts either.

 

So I'm afraid I'm stuck on where to go next with this one.

 

If I were a Beth' dev, I'd probably compute a number based on the FormID of the loadscreen's form, if the actionscript had access to such data.

 

Hmm, here's a handful of VDSG numbers paired with Form IDs from screenshots I had previously taken:

38   - 001F9616 - Rad-X significantly increases...
56   - 001F9628 - Adhesive is rare, and used to create...
2788 - 001E6854 - Diamond City's non-denominational...
5851 - 001CEDAB - One of the Wasteland's most disgusting creatures...
8446 - 002498EE - Every issue of Taboo Tattoos...
8479 - 001E095F - Inside every snyth Courser...
9689 - 001F6DA9 - If the conspiracy theorists are to be believed...
9697 - 001F6DB1 - Melee attacks on enemies can stagger...
9710 - 001F6DBE - Laser rifles and pistols deal powerful...
Link to comment
Share on other sites

 

Thanks for the help so far, I appreciate it!

 

The ActionScript itself - at least as far as I can see within LoadingMenu.swf - doesn't call the function SetLoadingText.

 

When I installed the Creation Kit, it asked for me to unzip Base.zip, which I did - I don't find this function called in those scripts either.

 

So I'm afraid I'm stuck on where to go next with this one.

 

 

Hmm, here's a handful of VDSG numbers paired with Form IDs from screenshots I had previously taken:

38   - 001F9616 - Rad-X significantly increases...
56   - 001F9628 - Adhesive is rare, and used to create...
2788 - 001E6854 - Diamond City's non-denominational...
5851 - 001CEDAB - One of the Wasteland's most disgusting creatures...
8446 - 002498EE - Every issue of Taboo Tattoos...
8479 - 001E095F - Inside every snyth Courser...
9689 - 001F6DA9 - If the conspiracy theorists are to be believed...
9697 - 001F6DB1 - Melee attacks on enemies can stagger...
9710 - 001F6DBE - Laser rifles and pistols deal powerful...

 

Then the executable is doing the calls on the actionscript. Not sure where the F4SE guys are at into decoding this part yet, but there should be some things in here since expired already managed to do a few stuffs for the character menu.

 

As for the relation, glad to see I was right :) Beth really went the cheap way with this. Convert those hexadecimal formID into their decimal equivalent (with this for instance), and that should be pretty obvious to you ;)

(The first 4 digits of the decimal value of the FormID are what is used as VDSG number).

Link to comment
Share on other sites

LOL awesome, that's fun to know :) Thank you InsanePlumber and Kesta for helping to figure it out!

 

(By the way, if a mod wants to move this into "Modding Support and Discussion," feel free - that's probably where I should have posted it in the first place :) Thanks!)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...