Repairing the Cogs of Morrowind #23

Post » Fri May 13, 2011 6:03 am

Off-Topic:
Actually, I did manage to get it to work just fine using another method.
Spoiler
Go to where you installed Liztail's Animation Kit.

Find the exe 'Split_kf.exe'.
Drag the Xnewcasting.kf file. (its the only .kf file) and drop it on Split_kf.exe. A window will pop up. Allow it to finish.

It should produce a folder named Xnewcasting. Inside this folder is all the animations from XNewCasting, but you only need the casting animations. So...

Open up the folder and find the files SpellCast; equip, target, and touch. These are should be the only animation files you need, so put them somewhere safe. The remaining files are not needed. From here, its following the Animation Kits readme on creating an animation mod. I might see about uploading it...


On-Topic:
Can't think of any conflicts Hrn. All the vanilla and mod scripts I've look at check for health use a GetHealthRatio check, a GetHealth <= 5, or a similar method. They are already anticipating it not reporting 0 health correctly and many scripts use a double-check with deadState.
User avatar
Quick Draw
 
Posts: 3423
Joined: Sun Sep 30, 2007 4:56 am

Post » Fri May 13, 2011 7:39 am

@Hrnchamd

Is there anyway to prevent the same magic effects from stacking and having only the highest one active? So if you wear some item that gives you +40 fortify STR and then drink a +20 fortify STR potion, you won't have +60 STR. I can already presume that it would be a nightmare to try and make this work, but I thought I would still ask.

I apologize if this has been commented on before, but there are so many posts about the MCP that I was unable to find anything.
User avatar
Damian Parsons
 
Posts: 3375
Joined: Wed Nov 07, 2007 6:48 am

Post » Fri May 13, 2011 6:22 am

@Hrnchamd

While Yacoby's Ownership Detection and Fliggerty's Enhanced Detection do their respective tasks done, they are prone to crashes during game loading and cell transitions. Best to bypass them altogether. Therefore:
1. Is it possible to make crosshair type change while looking at "other people things"?
2. Player detects creatures by Detect Animal, and Werewolf detects NPC's using same effect. Can those be combined? There's a type cmp switch in the works, I bet.
User avatar
Andrew Perry
 
Posts: 3505
Joined: Sat Jul 07, 2007 5:40 am

Post » Fri May 13, 2011 2:10 pm

@Hrnchamd

While Yacoby's Ownership Detection and Fliggerty's Enhanced Detection do their respective tasks done, they are prone to crashes during game loading and cell transitions. Best to bypass them altogether. Therefore:
1. Is it possible to make crosshair type change while looking at "other people things"?
2. Player detects creatures by Detect Animal, and Werewolf detects NPC's using same effect. Can those be combined? There's a type cmp switch in the works, I bet.


I've never seen Ownership Indicator cause a crash to my knowledge....its the only reason I'm still not using MGE XE on the install I actually play. I steal too much and its too much of a bother to not have it on. It would be nice to bake this into the main engine though....
User avatar
Emma Pennington
 
Posts: 3346
Joined: Tue Oct 17, 2006 8:41 am

Post » Fri May 13, 2011 6:01 pm

Is there anyway to prevent the same magic effects from stacking and having only the highest one active? So if you wear some item that gives you +40 fortify STR and then drink a +20 fortify STR potion, you won't have +60 STR. I can already presume that it would be a nightmare to try and make this work, but I thought I would still ask.

I'm trying to do this for potions only. It can only make sense on temporary fortifications, anyway.


@Hrnchamd

While Yacoby's Ownership Detection and Fliggerty's Enhanced Detection do their respective tasks done, they are prone to crashes during game loading and cell transitions. Best to bypass them altogether. Therefore:
1. Is it possible to make crosshair type change while looking at "other people things"?
2. Player detects creatures by Detect Animal, and Werewolf detects NPC's using same effect. Can those be combined? There's a type cmp switch in the works, I bet.

Seeing a crosshair change if someone owns an item is a bit too out-of-world for me. There's too many items in houses without marked ownership, they would become a no consequence steal instead of a measured decision. It's like a quest arrow for thieves, removing the tension of being noticed. I can appreciate it for beds and faction items, because of the possibility of personal items in a faction area.

Second thing can't hurt. Enhanced detection is mostly about the visual indicators though isn't it?
User avatar
Laura Ellaby
 
Posts: 3355
Joined: Sun Jul 02, 2006 9:59 am

Post » Fri May 13, 2011 1:15 pm

Off-Topic:
Actually, I did manage to get it to work just fine using another method.
Spoiler
Go to where you installed Liztail's Animation Kit.

Find the exe 'Split_kf.exe'.
Drag the Xnewcasting.kf file. (its the only .kf file) and drop it on Split_kf.exe. A window will pop up. Allow it to finish.

It should produce a folder named Xnewcasting. Inside this folder is all the animations from XNewCasting, but you only need the casting animations. So...

Open up the folder and find the files SpellCast; equip, target, and touch. These are should be the only animation files you need, so put them somewhere safe. The remaining files are not needed. From here, its following the Animation Kits readme on creating an animation mod. I might see about uploading it...

While this method does work, it causes animation errors when used with the MCP's 'Improved Animation Support' patch, as mentioned in http://www.gamesas.com/index.php?/topic/1071872-animation-mod-list/page__view__findpost__p__17030275.
User avatar
Sebrina Johnstone
 
Posts: 3456
Joined: Sat Jun 24, 2006 12:58 pm

Post » Fri May 13, 2011 8:10 pm

This is pretty difficult. If GetHealth returned zero when the actor reaches its dead state, that could work. Can anyone think of any conflicts this would cause?


not sure if this is relevant, but an actor will die if health reaches 1. for example, if you sethealth to 1, or modhealth down to 1, that specific actor will die. i think any script predicting gethealth 0 won't execute those lines if an actor dies with health greater than 0. i think this might have something to do with getdeadcount too, where an actor isn't registered as dead until the death animation finishes. i wonder if when there's a health regen effect/script, that it's possible for that particular actor to still regen health even though technically "dead".
User avatar
Stu Clarke
 
Posts: 3326
Joined: Fri Jun 22, 2007 1:45 pm

Post » Fri May 13, 2011 5:24 pm

Seeing a crosshair change if someone owns an item is a bit too out-of-world for me. There's too many items in houses without marked ownership, they would become a no consequence steal instead of a measured decision. It's like a quest arrow for thieves, removing the tension of being noticed. I can appreciate it for beds and faction items, because of the possibility of personal items in a faction area.


Its no more out of world than having pick-pocketers able to see what is in somebody's pockets before picking them. I guess we'll have to disagree here.
User avatar
Leticia Hernandez
 
Posts: 3426
Joined: Tue Oct 23, 2007 9:46 am

Post » Fri May 13, 2011 8:38 am

If people like it, I don't mind implementing something. It would be better if there was a more interesting variation of the idea that doesn't have the problems I mentioned.
User avatar
Causon-Chambers
 
Posts: 3503
Joined: Sun Oct 15, 2006 11:47 pm

Post » Fri May 13, 2011 5:49 am

@Hrnchamd
>"mostly about the visual indicators"

Oblivion-like actor illumination is it's primary eyecandy. IMHO, Morrowind's original system of showing actors on minimap has more tactical sense - it's only flaw was that, for some reason NPS's were not considered worthy of being detected( until Bloodmoon - for Werewolves only(blast!)).

>"quest arrow for thieves"

In fact, it's sort of simplification of ownership assessment technique - to avoid constant trial and error(save/reload - which is a problem for Morrowind). Would help smooth the gameplay.

@Jaredh
>"Ownership Indicator cause a crash"

Hmm, try entering/exiting a few houses without resetting the script. Or simply look at many books/bottles in succession.

I've been battling the MWSE instability for 2 years now. The primary problem is the quick change of reference number for the same object - causes crashes in xRefType execution.
User avatar
James Hate
 
Posts: 3531
Joined: Sun Jun 24, 2007 5:55 am

Post » Fri May 13, 2011 12:36 pm

@Hrnchamd

A few additional modules would be much appreciated:

1. Fortify Magicka/Fortify Fatigue effects should behave like fortify maximum magicka/fatigue - right now they are absolutely useless as ability or constant effects.
2. Resist Corprus Disease is pretty much unused. Perhaps, instead of adding armor to creatures, this effect can be transformed into general resistance against all damage types. Current Morrowind armor resistance formula is.. disputable.
3. An additional boolean flag, that remains active while game saving/cell transition is in progress - would really help properly reset active MWSE scripts.
User avatar
Iain Lamb
 
Posts: 3453
Joined: Sat May 19, 2007 4:47 am

Post » Fri May 13, 2011 7:38 am

1. Fortify Magicka/Fortify Fatigue effects should behave like fortify maximum magicka/fatigue - right now they are absolutely useless as ability or constant effects.
2. Resist Corprus Disease is pretty much unused. Perhaps, instead of adding armor to creatures, this effect can be transformed into general resistance against all damage types. Current Morrowind armor resistance formula is.. disputable.
3. An additional boolean flag, that remains active while game saving/cell transition is in progress - would really help properly reset active MWSE scripts.

1. Fortify fatigue is actually useful. If you have current > maximum it can improve your success rate at all mechanics that account for normalized fatigue. Fortify magicka is a difficult one to fix, because the game doesn't synchronize with other effects when readjusting magicka.
2. Meh. Daedric shouldn't be three times as good as the next level down. Adding another armor mechanic is chaotic to mod with.
3. I can't edit the script engine like that. It should be an part of MWSE, which I'm trying to build an extensible version of for MGE.
User avatar
chloe hampson
 
Posts: 3493
Joined: Sun Jun 25, 2006 12:15 pm

Post » Fri May 13, 2011 11:14 am

I take it that difficulty with animation is actually the source of a lot of problems at the moment.

First, there's the quick-casting. Second, I think we had suggested a "potiondrink" animation a few pages back, but the conversation seems to have ended.

There was also my suggestion of a quick-turnaround function (a 'la Resident Evil 3+) that I believe Hrnch said was also hindered by the animation difficulties.

What I'm gathering from this is that we need to recruit an animator, pronto :P
User avatar
Cayal
 
Posts: 3398
Joined: Tue Jan 30, 2007 6:24 pm

Post » Fri May 13, 2011 6:42 pm

1. Fortify fatigue is actually useful. If you have current > maximum it can improve your success rate at all mechanics that account for normalized fatigue. Fortify magicka is a difficult one to fix, because the game doesn't synchronize with other effects when readjusting magicka.
2. Meh. Daedric shouldn't be three times as good as the next level down. Adding another armor mechanic is chaotic to mod with.


1. If Fortify Fatigue is used in constant enchantment or ability it adds nothing to either. And adding value to current status is useless as far as abilities go.
2. Can't see how it's going to be better. Spell effect is to be changed( into percentage based general damage resistance ) and appropriate abilities with that effect can be added to various creatures and some rare armors. Such plugin would definitelty not mess things up.
User avatar
Steve Fallon
 
Posts: 3503
Joined: Thu Aug 23, 2007 12:29 am

Post » Fri May 13, 2011 5:01 pm

Edit: I think this post of mine is irrelevant. Does anyone know, if a mesh refers to a bmp or tga file, and I only have a dds, will the mesh still work?

This idea isn't fully formed but I'm going to look into it further.

If I run http://planetelderscrolls.gamespy.com/View.php?view=Utilities.Detail&id=76 on a vanilla Morrowind - after unpacking the BSA's - I know it will shave off like 10 MB by shrinking various tga's, bmp's, and dds's resulting in better compressed dds's. This is a tiny space savings, but their are very good reasons for doing it*.

But I'm worried that Morrowind.exe will then not work because it has some embedded strings "tga" and "bmp" that might reference no-longer-existing files. It might be necessary to have a patch for Morrwoind.exe to reference dds's in certain cases, and that patch could be an option in MCP for those who are also willing to use Ordenador. Hopefully I can find out which byte offsets need to be changed in Morrowind.exe. If I do get it working, I'll post results here.

* With my current set of 200 or so mods, Ordenador saves like 400MB of disk space and probably RAM and VRAM and CPU time while running a game. If I can run Ordenador on the base game, then I can run Ordenador on each individual mod I enjoy before I make a Wrye mash bain archive out of it. Such an archive will then be compatible with the optimized base esm's as well as with a patched Morrowind.exe. Note that I don't want to just run Ordenador on a fully modded Morrowind directory because: it warns you not to, Ordenador tends to crash, it takes forever (probably an hour or more), and it just seems risky to me.
User avatar
April D. F
 
Posts: 3346
Joined: Wed Mar 21, 2007 8:41 pm

Post » Fri May 13, 2011 6:10 pm

While this method does work, it causes animation errors when used with the MCP's 'Improved Animation Support' patch, as mentioned in http://www.gamesas.com/index.php?/topic/1071872-animation-mod-list/page__view__findpost__p__17030275.


Thank you for this! I had no idea. :sweat: Does the other method mentioned still cause an issue? At the moment, its not an issue for me since I do not use the Improved Animation Support patch (because of a lack of animations that require it).
User avatar
Adam Porter
 
Posts: 3532
Joined: Sat Jun 02, 2007 10:47 am

Post » Fri May 13, 2011 9:08 am

IMHO, Morrowind's original system of showing actors on minimap has more tactical sense - it's only flaw was that, for some reason NPS's were not considered worthy of being detected( until Bloodmoon - for Werewolves only(blast!)).

I know of at least http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=3975. It's a little awkward, though, since it uses Detect Key and Detect Enchantment to work.
User avatar
Smokey
 
Posts: 3378
Joined: Mon May 07, 2007 11:35 pm

Post » Fri May 13, 2011 6:33 pm

Hello again, Hrnchamd!

Thanks for your quick reply.

I had another couple of questions!

1) Is it possible to add new "blank" spell effects to the spell effect list? Like, so a modder could add visuals and a name and then script the actual effects? It svcks how to gain any other spells a modder has to use scripted spells using random "starter" effects (Detect Enchantment, etc.) or one of the unused Bloodmoon spells.

2) The spacebar to exit conversation and such is amazing. Is there a way to expand that to all aspects of menus, so when bringing up the rest menu, you wouldn't have to move your cursor to approve rest. Maybe there's a way to attach keyboard keys to the first letter of each option (e.g., if you had a pop-up/option with "Yes" and "No" as possible responses, the Y key and N key could be used respectively. Or even just the spacebar for the default option...

Thanks again!
User avatar
candice keenan
 
Posts: 3510
Joined: Tue Dec 05, 2006 10:43 pm

Post » Fri May 13, 2011 4:45 pm

MWSE can be used to find out what kind of trader an npc is.
xGetService (details in the spoiler)


using the method pwin listed, you can use a script to get that, then transfer that value to a local variable and use THAT as a dialog conditional. the only problem is you'd have to add this script to everyone you wanted to do this trick to, or add that code to pre-existing scripts on service providing NPCs. just a tad bid tedious for my taste.


Hmm. Do y'all think I could transfer that value to a global variable and then call it out in the service refusal if the variable returns true?

i.e., upon initiating dialogue with an actor, a global script checks if they train (xGetService) and also checks if the PC has trained too many times that level. If both return true, then a value of say, 1, is attached to a global variable, TrainingBlock or something. Under the service refusal dialogue, at the bottom there could be a condition if TrainingBlock returns true. The global script would reset this value to zero upon MenuMode exit.

Though this still blocks all services from said trainer :( if they bartered too, that'd be unfair to the player. Unless I'm missing something--can you call MWSE commands/functions from dialogue? I don't know if that'd solve it, though, because it seems there's no way to actually know what type of service the PC is asking for.
User avatar
Shiarra Curtis
 
Posts: 3393
Joined: Thu Jan 04, 2007 3:22 pm

Post » Fri May 13, 2011 3:41 pm

I know of at least http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=3975. It's a little awkward, though, since it uses Detect Key and Detect Enchantment to work.


Yes, I know this one. Even expanded the idea by turning Detect Key into Detect Keys and Gold( requires Enchanted Editor to pull off ) and adding 1 gold piece to actors with (health > 0) in the vicinity. It was glitchy though. Dead creatures and NPC's can have health > 0, or even, say > 30 for that matter. And area scanning scripts which add items to inventory can easily crash, if creature summoning takes place.

That's why it's best to equalize creatures and NPC's detection on code level by combining normal and werewolf state positive detection conditions.
User avatar
Petr Jordy Zugar
 
Posts: 3497
Joined: Tue Jul 03, 2007 10:10 pm

Post » Fri May 13, 2011 7:01 pm

not sure if this is relevant, but an actor will die if health reaches 1. for example, if you sethealth to 1, or modhealth down to 1, that specific actor will die. i think any script predicting gethealth 0 won't execute those lines if an actor dies with health greater than 0. i think this might have something to do with getdeadcount too, where an actor isn't registered as dead until the death animation finishes. i wonder if when there's a health regen effect/script, that it's possible for that particular actor to still regen health even though technically "dead".

http://www.gamesas.com/index.php?/topic/1122624-scripting-woes/page__view__findpost__p__16525199

i think this is relevant to your point, seems it's a rounding error or something, i dont know.

Hmm. Do y'all think I could transfer that value to a global variable and then call it out in the service refusal if the variable returns true?

i.e., upon initiating dialogue with an actor, a global script checks if they train (xGetService) and also checks if the PC has trained too many times that level. If both return true, then a value of say, 1, is attached to a global variable, TrainingBlock or something. Under the service refusal dialogue, at the bottom there could be a condition if TrainingBlock returns true. The global script would reset this value to zero upon MenuMode exit.

Though this still blocks all services from said trainer :( if they bartered too, that'd be unfair to the player. Unless I'm missing something--can you call MWSE commands/functions from dialogue? I don't know if that'd solve it, though, because it seems there's no way to actually know what type of service the PC is asking for.


i'm not sure, as i dont think dialog editing is really recommended with MWedit. it MIGHT work, worth a shot.

perhaps there is some way to differentiate service types i dont know? if there isnt, that would be a very usefull thing indeed.
User avatar
James Shaw
 
Posts: 3399
Joined: Sun Jul 08, 2007 11:23 pm

Post » Fri May 13, 2011 5:24 am

Thank you for this! I had no idea. :sweat: Does the other method mentioned still cause an issue? At the moment, its not an issue for me since I do not use the Improved Animation Support patch (because of a lack of animations that require it).

Yes, it's the same issue with either method. I've turned off the Animation Support patch for the moment, but it would be nice if the problem could be fixed.
User avatar
Robyn Lena
 
Posts: 3338
Joined: Mon Jan 01, 2007 6:17 am

Post » Fri May 13, 2011 11:48 am

i.e., upon initiating dialogue with an actor, a global script checks if they train (xGetService) and also checks if the PC has trained too many times that level. If both return true, then a value of say, 1, is attached to a global variable, TrainingBlock or something. Under the service refusal dialogue, at the bottom there could be a condition if TrainingBlock returns true. The global script would reset this value to zero upon MenuMode exit.

Though this still blocks all services from said trainer :( if they bartered too, that'd be unfair to the player. Unless I'm missing something--can you call MWSE commands/functions from dialogue? I don't know if that'd solve it, though, because it seems there's no way to actually know what type of service the PC is asking for.

1. Start to save separate info for each skill.
2. Remember each skill of the NPC.
3. Set corresponding NPC skills to a maximum value that you are allowed to train your skills to on that level.
4. Restore NPC's previous skill levels after dialogue.
Should have a major side-effects with skills that are used in dialogues, like mercantile and speechcraft.
So you can just roll skill level back each time player tries to train it beyond your limit. With a text like "training wasn't successful". This way it will be a player's job to do it right.
User avatar
Sarah Bishop
 
Posts: 3387
Joined: Wed Oct 04, 2006 9:59 pm

Post » Fri May 13, 2011 4:51 pm


Though this still blocks all services from said trainer :( if they bartered too, that'd be unfair to the player. Unless I'm missing something--can you call MWSE commands/functions from dialogue? I don't know if that'd solve it, though, because it seems there's no way to actually know what type of service the PC is asking for.

Off-Topic:
Actually, I think you underestimate the usefulness of xGetService. ;P
Spoiler

Using XGetService you can filter it for whatever particular service or mix of services they provide. Training, all the different types of bartering, spell selling, enchanting and spellmaking are all able to be checked for separately or mixed'n'matched.

That script sounds like it would work to me. I'm not good with the dialogue system and how well it works with scripts though. I was just wondering if MWSE functions can be used from dialogue myself. Haven't tried it yet, but I assume you can not.

The only issue is if the NPC can not be seen or is talked to without actually having the npc in their crosshair. (ForceGreet-ed) You would probably check if the target is an npc or creature first though.


But this might be a conversation for a PM. ^^" We're getting quite far away from MCP now.
User avatar
Luna Lovegood
 
Posts: 3325
Joined: Thu Sep 14, 2006 6:45 pm

Post » Fri May 13, 2011 7:33 am

1. If Fortify Fatigue is used in constant enchantment or ability it adds nothing to either. And adding value to current status is useless as far as abilities go.
2. Can't see how it's going to be better. Spell effect is to be changed( into percentage based general damage resistance ) and appropriate abilities with that effect can be added to various creatures and some rare armors. Such plugin would definitelty not mess things up.

1. You're right. It's just difficult to calculate magicka/fatigue bonus when recalculation can happen at any time in spell processing and loading/saving too.
2. I didn't say it right, I mean it means patching all of the places where damage can be taken, a long research period to identify these all, and it overlaps with other damage affecting patches.


1) Is it possible to add new "blank" spell effects to the spell effect list? Like, so a modder could add visuals and a name and then script the actual effects? It svcks how to gain any other spells a modder has to use scripted spells using random "starter" effects (Detect Enchantment, etc.) or one of the unused Bloodmoon spells.

2) The spacebar to exit conversation and such is amazing. Is there a way to expand that to all aspects of menus, so when bringing up the rest menu, you wouldn't have to move your cursor to approve rest. Maybe there's a way to attach keyboard keys to the first letter of each option (e.g., if you had a pop-up/option with "Yes" and "No" as possible responses, the Y key and N key could be used respectively. Or even just the spacebar for the default option...

1. No, each spell effect needs its own effect function, table space for spellmaking flags, AI usage flags, and a lot of checks for maximum effect ID. Can't add more stuff like that.
2. It only really works for menus that don't open more menus, like the rest menu. Attaching keys based on button names is not a good idea because of internationalization.


Hmm. Do y'all think I could transfer that value to a global variable and then call it out in the service refusal if the variable returns true?

It may be possible to transfer the service type to the Choice function so you could match that, and it could be more generally useful for other mods too.
User avatar
Carlos Vazquez
 
Posts: 3407
Joined: Sat Aug 25, 2007 10:19 am

PreviousNext

Return to III - Morrowind