Jump to content

Any of you experienced with leveled creatures?


prideslayer

Recommended Posts

There's a "leveled creature" in the geck called "EncSuperMutantMeleeCentaur" that appears to spawn either a super mutant OR a centaur depending on the players level.. is this what it's actually doing?

 

Is the base ID for the creature that is spawned the ID of the leveled creature, or for the creature appearing in the list at that level?

Link to comment

Does that actually have any users in the game or is it just garbage that's in there? Sounds like it's something they'd use to test back when they were transitioning from Oblivion to Fallout.

Link to comment

It's used heavily; not that one in particular, but the ILikeOblivion... thing is.

 

My best guess is it's used to provide a 'chance' that a spawn will create a creature or not. They add say two of those and one centaur, so whenever the trigger occurs there's a 1/3 chance a centaur will spawn, and a 2/3 chance nothing (a ghost you can't see, that also can't hurt you) will spawn.

 

I'm more concerned about the baseID question. That's going to really muck up determining the creature type for animations if it comes from the leveled creature rather than the template creature.

 

Also I've found that some particular NPCs are just going to have to go unsupported for a while, like Jason Bright and the NCR ranger ghouls. These ghouls use the human skeleton, not the ghoul skeleton.

 

For everything to be done correctly for them, they must:

 

1. Play human animations, not creature animations. I don't know if IsCreature returns 'true' for them or not.

 

2. Exist in a 'creature' formlist, in order for pregnancy to work properly with them.

 

It's kind of complicated to explain. I should be able to deal with it in a later version as long as it's only ghouls that have this particular 'problem'. That should be the case, I'm unaware of any other NPCs that aren't human but use the human skeleton.

 

 

Link to comment

It's used' date=' you can see it in the CrCentaur list. Looks like one of the things it does is calculates the muties and the chance of centaurs around BRM.

[/quote']

 

If it spawns, do you know what the baseID of the spawned creature will be? Will it be the CrCentuar, or will it be the marker (the 'leveled creature') itself?

Link to comment

If it spawns' date=' do you know what the baseID of the spawned creature will be? Will it be the CrCentuar, or will it be the marker (the 'leveled creature') itself?

[/quote']

It should be CrCentuar. The leveledlist only determins the level and randomness. The creature form itself determines everything else about how it spawns, and where it gets the data from.

 

Bah I'm getting tired, don't mind the spelling mistakes. :P

 

Link to comment

Well despite changes to the formlists, still no luck with those REPCON ferals -- at least not when trying in the console with placeatme, though they may well work under 'normal' circumstances @ repconn. Going to try that out next.

 

The main leveled creature is "EncFeralGhoul" (000235a7).

 

That in turn has two other leveled creatures in its list, and one normal creature.

VarFeralGhoul1 (0009FB3E) (leveled)

VarFeralGhoul2 (0009FB3F) (leveled)

CrFeralGhoulGlowingOne (0001CF7B)

 

VarFeralGhoul1 and 2 each have four normal creature baseIDs. CrFeralGhoul1A (x3) and 1B, or 2A (x3) and 2B, respectively.

 

PlaceAtMe results in a refid and a baseid that are nowhere near the IDs of any of these things; even the BaseID is dynamic (starts with FF).

 

If they work in game, the lesson is basically that sex isn't going to work when using placeatme with leveled creatures, though placeatme does work fine with normal (non-leveled) creatures, as the baseID returned is correct.

Link to comment

No good in game @ the repconn site either. They're showing a refID that looks normal "e.g. 000CD284" but a dynamic baseID, e.g. FF00130E.

 

That baseID is showing up both in my debugging print for the 9.2 which comes from "set actorBase to actor.GetBaseObject", and from just doing "getbaseobject" in the console after clicking one of them.

 

Neither of those fragments (130e or cd284) produces any results in the object window filter. Argh.

Link to comment

I gotta say it's been pretty funny watching pride slip slowly into madness over the last few days. The new avatar is great.

 

I probably wouldn't find it so funny if I were trying to do the near impossible like him.

Link to comment

I gotta say it's been pretty funny watching pride slip slowly into madness over the last few days. The new avatar is great.

 

I probably wouldn't find it so funny if I were trying to do the near impossible like him.

 

between this and the skyrim animation bullshit, I want to fly to maryland and just start punching people in the face.

Link to comment

TBH, Prideslayer, I'd avoid use of placeatme with a creature and use placeatme with an initially disabled spawn marker and then enable it. Or use my holding cell/moveto suggestion I went at great length about lol. Either way, you'll get a persistent reference spawning a critter the "normal" way and not an FFxxxxxx id'd temp ref.

 

But, I think all spawned leveled creatures use a dynamic Base ID.

Link to comment

TBH' date=' Prideslayer, I'd avoid use of placeatme with a creature and use placeatme with an initially disabled spawn marker and then enable it. Or use my holding cell/moveto suggestion I went at great length about lol. Either way, you'll get a persistent reference spawning a critter the "normal" way and not an FFxxxxxx id'd temp ref.

 

But, I think all spawned leveled creatures use a dynamic Base ID.

[/quote']

 

I was only doing the placeatme's for testing before I went to repconn in person. The vanilla ghouls there behave in exactly the same (bad) way, with a normal looking formid but a crappy baseid.

 

What this means is 9.2's for any sex with a creature that comes from a leveled list.. not cool.

Link to comment

TBH' date=' Prideslayer, I'd avoid use of placeatme with a creature and use placeatme with an initially disabled spawn marker and then enable it. Or use my holding cell/moveto suggestion I went at great length about lol. Either way, you'll get a persistent reference spawning a critter the "normal" way and not an FFxxxxxx id'd temp ref.

 

But, I think all spawned leveled creatures use a dynamic Base ID.

[/quote']

 

I was only doing the placeatme's for testing before I went to repconn in person. The vanilla ghouls there behave in exactly the same (bad) way, with a normal looking formid but a crappy baseid.

 

What this means is 9.2's for any sex with a creature that comes from a leveled list.. not cool.

 

Well, maybe we'll have to review why and what you need to know about a creature in order to apply animations. Perhaps a new formid list containing the leveled creatures that you can compare formid's to instead of trying to obtain the baseid... or once you obtain a base id that begins with FF, then compare formid's to a formid list of leveled actors.

 

And yes, I know that's hack-ish and won't work with mod added leveled creatures... unless they add their leveled critters to your list.

Link to comment

That isn't going to work either as far as I can tell.. the two IDs I get when sex tries to start (refID and baseID) are both unrelated to anything I can find anywhere in the geck.

 

Short of actually spawning one myself and getting its baseID, I don't see any way for me to turn either of the IDs I do have into something I can compare against.

 

There is only one thing I need to know to do an animation: I need to know the skeleton the actor is using. Doesn't matter if it's a creature or human, all that matters is the skeleton.

 

That information is well beyond my grasp though, which blows, because it's plainly available in the geck. Just scroll the window to the right for any creature and there's a column with the name of the skeleton file it uses.

 

So this is a constant struggle to find the next best thing.

 

Now that I've finally purchased a copy of VS and am not subject to the limitations of the express edition, I may try my hand at creating an NVSE plugin that can just tell me the skeleton file name given the reference.

 

A function to tell me the creature type would help as well, but beth doesn't follow their own rules there. There are creatures of every time in multiple groups; cazadores in both "mutated insects" and "animals", same with geckos, and again with dogs and coyotes.

 

This is a problem that causes issues with pregnancy mod and stuff like that though that *actually* cares about the creature type. I don't, I'm just trying to figure out what skeleton the actor has.

Link to comment

That isn't going to work either as far as I can tell.. the two IDs I get when sex tries to start (refID and baseID) are both unrelated to anything I can find anywhere in the geck.

 

Short of actually spawning one myself and getting its baseID' date=' I don't see any way for me to turn either of the IDs I do have into something I can compare against.

 

There is only one thing I need to know to do an animation: I need to know the skeleton the actor is using. Doesn't matter if it's a creature or human, all that matters is the skeleton.

 

That information is well beyond my grasp though, which blows, because it's plainly available in the geck. Just scroll the window to the right for any creature and there's a column with the name of the skeleton file it uses.

 

So this is a constant struggle to find the next best thing.

 

Now that I've finally purchased a copy of VS and am not subject to the limitations of the express edition, I may try my hand at creating an NVSE plugin that can just tell me the skeleton file name given the reference.

 

A function to tell me the creature type would help as well, but beth doesn't follow their own rules there. There are creatures of every time in multiple groups; cazadores in both "mutated insects" and "animals", same with geckos, and again with dogs and coyotes.

 

This is a problem that causes issues with pregnancy mod and stuff like that though that *actually* cares about the creature type. I don't, I'm just trying to figure out what skeleton the actor has.

[/quote']

 

Yeah, I know the pain you're feeling. FOSE\NVSE has not even remotely caught up with OBSE for features. Just something as simple as RunBatchScript would make your life a TON easier. But yeah, Beth did not keep any consistency in their critter lists and yes, Cazadores and others will return true for different creature types with calling GetIsCreatureType. Gonna have to think about this a while...

Link to comment

The NVSE solution seems like the smartest as far as what *I* need. The project converted from their VS2k8 to VS2k10 no problem, haven't tried to compile yet, but I'm about to HULK SMASH again anyway.. ;)

 

The documentation says to look at the included example plugin, create a new project from it, and just flesh it out. But there is no included example plugin. Not in the current version or any archived version of NVSE. Not in FOSE either. SKSE has one that i'll peek at if needed.

 

Going to try to just brute force my way into adding a simple "prides stupid plugin initialized" string to the console to know it's working, and if I can get that far, then the rest should be "cake." Having a custom LL plugin for NVSE will open a lot of doors anyway.

Link to comment

Here's a little more rage for you..

 

The only NVSE plugin I know of, geck power up, comes with source. Thought I'd start there since there's no example file.

 

The asshat that wrote the thing included source allright. In x86 assembly. I haven't touched assembler in years. I can read it well enough, but the only reason I can see to do this is to comply with the "letter of the law" without complying with the spirit. I have serious doubts that the guy WROTE the DLL in assembler.

Link to comment

The NVSE solution seems like the smartest as far as what *I* need. The project converted from their VS2k8 to VS2k10 no problem' date=' haven't tried to compile yet, but I'm about to HULK SMASH again anyway.. ;)

 

The documentation says to look at the included example plugin, create a new project from it, and just flesh it out. But there is no included example plugin. Not in the current version or any archived version of NVSE. Not in FOSE either. SKSE has one that i'll peek at if needed.

 

Going to try to just brute force my way into adding a simple "prides stupid plugin initialized" string to the console to know it's working, and if I can get that far, then the rest should be "cake." Having a custom LL plugin for NVSE will open a lot of doors anyway.

[/quote']

 

TBH, you might have better luck with the OBSE sample plugin than the SKSE sample plugin. The hooks should be the same... but meh, you know how it is hehe.

 

Link to comment

Here's a little more rage for you..

 

The only NVSE plugin I know of' date=' geck power up, comes with source. Thought I'd start there since there's no example file.

 

The asshat that wrote the thing included source allright. In x86 assembly. I haven't touched assembler in years. I can read it well enough, but the only reason I can see to do this is to comply with the "letter of the law" without complying with the spirit. I have serious doubts that the guy WROTE the DLL in assembler.

[/quote']

 

Sorry to have to say this, but his code HAS to be in assembler. he's basically recreating Intellisense for the GECK from scratch and the original Intellisense was a massive assembler hack as well, even the MS version that was official and part of VB IDE and eventually made it into every MS language product (and the rest of the world adopted, gotta love Intellisense).

Link to comment

Here's a little more rage for you..

 

The only NVSE plugin I know of' date=' geck power up, comes with source. Thought I'd start there since there's no example file.

 

The asshat that wrote the thing included source allright. In x86 assembly. I haven't touched assembler in years. I can read it well enough, but the only reason I can see to do this is to comply with the "letter of the law" without complying with the spirit. I have serious doubts that the guy WROTE the DLL in assembler.

[/quote']

 

Sorry to have to say this, but his code HAS to be in assembler. he's basically recreating Intellisense for the GECK from scratch and the original Intellisense was a massive assembler hack as well, even the MS version that was official and part of VB IDE and eventually made it into every MS language product (and the rest of the world adopted, gotta love Intellisense).

 

Some parts of it are probably easier to write in asm, but nothing *has* to be written in asm, least of all a DLL. The stuff where he's doing in memory patching is probably easier to writein asm in order to be the right size, match offsets, etc. That however is all in the actual powerup DLL, which the NVSE DLL loads. There's no reason to write the entire thing in assembler.

 

The interfaces and stuff can all still be C or C++, even if the guts of some of the functions were in inline assembler.

 

I haven't seen powerup do anything intellisensey anyway, where is that stuff at?

Link to comment

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...