[WIPz] Putative NoM 3.0

Post » Sat May 28, 2011 2:34 am

I guess I came over a bit strong before - sorry, I didn't really mean it like that. Just cranky again.

No worries, I was not offended or anything :)

Hm, now I wish I could remember the cells that I had problems in... Basically after I had a few issues like that I just disabled the sleep scripts and never used them again. I like my bedrolls to be rather fancier than the default anyway :P IIRC it's an issue with cells that don't have water, and that have the statics placed below 0 on z.

Hmmm, well, I am gonna be running through the install of MW here again soon and starting up a game (as well as my mod development again), so I think I will run some testing with this and see what I can come up with. It certainly bears looking into.

Further here (since you bring it up), barring resources, who is to say we couldn't add in some of the nicer bedrolls as options to buy right from the base?

What I actually meant about the water detection thing is: If you do keep it, I think it would be useful to keep Wrye's method there to the extent that it allows other mods to use the same script (ie my mod could add that script as well, and because it's identical it won't matter which overwrites, so my mod and NoM could both use the results without extra scripts running). That would mean more reliable detection on most systems (and won't cause major issues when it doesn't) and if you've got, say, 3 mods running that all use the results of that check it starts looking efficient and useful, not a waste of resources at all. Of course, that's just my opinion. And IMO the person who writes the thing in the end should be the one to have the final say on it. :)

Ahhh, yes indeed, we are indeed on the same page there. :)
User avatar
elliot mudd
 
Posts: 3426
Joined: Wed May 09, 2007 8:56 am

Post » Sat May 28, 2011 4:18 am

Certainly, imposing difficulties beyond the confines of the normal game is the entire goal of this mod.


Yes, but imposing difficulties beyond the confines of reason is not. Forcing a person to sleep is a logical outgrowth of role-playing for those that want to take realism to that level. Forcing them to sleep in a bed of some sort starts to depart a bit from reason, as it's quite possible to sleep on the ground or on a bench or even propped up in a corner. Forcing the player to sleep in a bed in an established inn is a gross departure from realism, as this simply isn't a *necessity* in a medieval setting... and since we're discussing Necessities of Morrowind, it wouldn't be improper to consider various opinions of what should or shouldn't be considered a valid necessity.

I don't really see the complaint as one against imposing limits upon the player, but rather regarding the specific nature of those limitations. There are beds that aren't associated with inns. There are methods of sleeping that aren't associated with beds (bedrolls and hammock) and there are even methods of sleeping which don't rely on any type of formal sleeping gear. For a player to prefer a mod which imposes a requirement to sleep doesn't imply the player prefers a mod which imposes a requirement to sleep in a feather bed with room service and a maid to turn down the coverlet and leave a chocolate mint on the pillow.

As to the requirements regarding water levels, I think I have to agree with Melian here, too. There are quite a few difficulties in ensuring this is done correctly without false positives. I think it's safe to say that we can presume a certain desire to role-play in anyone who is using the mod. Anyone that isn't interested in it is unlikely to download and install it. Would it not save a lot of effort which is by its very nature somewhat unreliable to simply allow the player himself to assume the responsibility for ensuring fairness in this instance? After all, the kind of people that really couldn't care less whether they're building a fire under water are also the kind of people that couldn't care less if their avatar hasn't eaten, drank, or slept since getting off the boat in Seyda Neen.

And while some (and I'm not thinking of ANY specific person or group when I say this) may say that if we don't enforce the restriction on the player, we might as well drop any and all restrictions and just let the player imagine all of them... however, that would be a rather over-the-top extremist position which I don't accept. I see easing the fire/sleep water level restrictions as simply giving the player the benefit of the doubt and allowing them to operate on the honor system in one instance which is otherwise difficult to code and unreliable to implement because of limitations in the scripting/game engine.
User avatar
Blaine
 
Posts: 3456
Joined: Wed May 16, 2007 4:24 pm

Post » Sat May 28, 2011 7:10 am

The water checking in NoM has always been a bit iffy in any case. I've had my water jug suddenly fill where there is no water, and the part where it is supposed to fill when you swim only works most of the time.

I'm not too xertain about the idea of filling a water jug just because you're in the rain, either. Have you ever tried that?

One thing I wondered about concerning the bedroll sleeping restriction is... Why wouldn't it be possible to simply set a guard as a sleep critter and script him to tell the PC "You can't sleep here, move on." or something like that. That is more than likely what would happen in reality, rather than having your bedroll refuse to stay on the ground where you put it.
User avatar
Mario Alcantar
 
Posts: 3416
Joined: Sat Aug 18, 2007 8:26 am

Post » Sat May 28, 2011 4:24 am

Thank you, Toccatta! That's exactly what I meant earlier, I'm just really bad at expressing what I mean. :)

The water checking in NoM has always been a bit iffy in any case. I've had my water jug suddenly fill where there is no water, and the part where it is supposed to fill when you swim only works most of the time.

I'm not too xertain about the idea of filling a water jug just because you're in the rain, either. Have you ever tried that?

That's from Abot's Water Life mod, not NoM. I rather hope it's not going to be in NoM either - Water Life has quite a lot of code running to find out if the player is in fresh water, it would be very inefficient to duplicate that.

As to the weather thing - I suspect that's just the ordinary getCurrentWeather thing, it doesn't update at quite the same time as the actual weather you see ingame.

One thing I wondered about concerning the bedroll sleeping restriction is... Why wouldn't it be possible to simply set a guard as a sleep critter and script him to tell the PC "You can't sleep here, move on." or something like that. That is more than likely what would happen in reality, rather than having your bedroll refuse to stay on the ground where you put it.

That's a very interesting idea... Not sure how it would work though, I think the sleep creatures are for regions not cells? It would be nice if it did work though.

Even nicer would be having a guard tell you to get lost if you try to sleep in the more upper-class sections of town, but ignoring it elsewhere. That would be more trouble than it's worth though I think. :(
User avatar
Ebony Lawson
 
Posts: 3504
Joined: Fri Feb 16, 2007 11:00 am

Post » Fri May 27, 2011 9:35 pm

Thank you, Toccatta! That's exactly what I meant earlier, I'm just really bad at expressing what I mean. :)


That's from Abot's Water Life mod, not NoM. I rather hope it's not going to be in NoM either - Water Life has quite a lot of code running to find out if the player is in fresh water, it would be very inefficient to duplicate that.

As to the weather thing - I suspect that's just the ordinary getCurrentWeather thing, it doesn't update at quite the same time as the actual weather you see ingame.


That's a very interesting idea... Not sure how it would work though, I think the sleep creatures are for regions not cells? It would be nice if it did work though.

Even nicer would be having a guard tell you to get lost if you try to sleep in the more upper-class sections of town, but ignoring it elsewhere. That would be more trouble than it's worth though I think. :(


You're right, that is abot's water life... I always play with both of them, and I just associated it with NoM. My bad.

You are also right about the sleep creatures being region rather than cell. I suppose it could be scripted in some fashion to have a guard wake the PC randomly in certain cells, but that might be more trouble than it's worth too.

Rather than have the current restrictions, I personally would prefer no restrictions on where bed and fires are placed.
User avatar
Eoh
 
Posts: 3378
Joined: Sun Mar 18, 2007 6:03 pm

Post » Fri May 27, 2011 8:34 pm

Perhaps the restrictions could be made to be optional via the configuration. Personally, in this case, I actually do really like those restrictions in my game, though I may be a minority here in this thread on that (despite the noted pitfalls). It could even default to no restrictions in the setup, but I would like to see them available.
User avatar
Roberta Obrien
 
Posts: 3499
Joined: Tue Oct 23, 2007 1:43 pm

Post » Sat May 28, 2011 2:58 am

I just hope this will be compatible with morrowind grass mod :) NoM is a must for Morrowind, imo.
User avatar
Pumpkin
 
Posts: 3440
Joined: Sun Jun 25, 2006 10:23 am

Post » Sat May 28, 2011 9:58 am

Now I really want to light a campfire in King Helseth's throne room, and then put down my filthy bedroll and sleep on it...

I don't recall any significant problems with false positives. Water level issues seems more significant, but they could be fixed in MPP (or separate patches, if the problematic cells are from a mod).

I'd like to have the restrictions available as an option.

How about adding more sleep restrictions, e.g., that you can't sleep outdoors on a bedroll in blight storms or blizzards? There's one mod that does something similar, but the implementation was not to my taste, and I haven't checked if it's NoM-compatible.
User avatar
Mashystar
 
Posts: 3460
Joined: Mon Jul 16, 2007 6:35 am

Post » Sat May 28, 2011 2:29 am

Now I really want to light a campfire in King Helseth's throne room, and then put down my filthy bedroll and sleep on it...


Hey, we could do a portable chamber pot, and you could take a cump right there too... :)

I don't recall any significant problems with false positives. Water level issues seems more significant, but they could be fixed in MPP (or separate patches, if the problematic cells are from a mod).

I'd like to have the restrictions available as an option.

How about adding more sleep restrictions, e.g., that you can't sleep outdoors on a bedroll in blight storms or blizzards? There's one mod that does something similar, but the implementation was not to my taste, and I haven't checked if it's NoM-compatible.


Configurable restrictions are okay, I guess. Having the option to just turn them off or not enable them would be good.

Really though, if the player is interested in role playing his character, it seems doubtful that he would try to light fires, catch some zzs, or take a dump in the throne room, whether there are restrictions in place or not. If there are no restrictions, the immersive player can still put down a bedroll and light a fire in places that are reasonable to expect such things, without hindrance from inaccurate or unreal restrictions. If he's not role playing the character, he probably wouldn't want NoM in the first place.... but if he did, those restrictions would only be an annoyance.

I do favor the idea of guards telling the player to move on if it can be worked out.
User avatar
Claire
 
Posts: 3329
Joined: Tue Oct 24, 2006 4:01 pm

Post » Sat May 28, 2011 7:05 am

Restrictions are fine if they can be done with some degree of accuracy, which doesn't seem likely, since they aren't accurate in any of several mods at present. Abot's, for instance, detects "water" in some houses at odd times (such as the one in Balmora "vacated" by an Orc bandit through a FG quest), and I've walked down to the ground floor on more than one occasion to find fish swimming peacefully through the living room.

Not being able to light a fire in an interior might be believable due to the extreme risk of setting the place ablaze (the heat's got to wreak havoc on the ceilings), but when there is no fireplace or stove, you don't have much choice. No sense in living in a house in Balmora, or an ancient Dunmer Fortress, if you can't even cook a hot meal there; otherwise, I'll take a damp and musty bandit cave instead, the services are better, thank you. Somehow I can't picture all of the citizens of Balmora eating their daily meals at the Inns, which strangely don't all have cooking facilities either. Either the restrictions need to be lifted or rethought, and/or a few more places could use the addition of some built-in amentites instead.

A wandering guard or a random chance of being woken and either being told to "Move it, NOW!" or else being fined for a second offense would be a big improvement over bedrolls somehow not unrolling in certain places.
User avatar
Chris Jones
 
Posts: 3435
Joined: Wed May 09, 2007 3:11 am

Post » Sat May 28, 2011 8:39 am

Restrictions are fine if they can be done with some degree of accuracy, which doesn't seem likely, since they aren't accurate in any of several mods at present. Abot's, for instance, detects "water" in some houses at odd times (such as the one in Balmora "vacated" by an Orc bandit through a FG quest), and I've walked down to the ground floor on more than one occasion to find fish swimming peacefully through the living room.

Not being able to light a fire in an interior might be believable due to the extreme risk of setting the place ablaze (the heat's got to wreak havoc on the ceilings), but when there is no fireplace or stove, you don't have much choice. No sense in living in a house in Balmora, or an ancient Dunmer Fortress, if you can't even cook a hot meal there; otherwise, I'll take a damp and musty bandit cave instead, the services are better, thank you. Somehow I can't picture all of the citizens of Balmora eating their daily meals at the Inns, which strangely don't all have cooking facilities either. Either the restrictions need to be lifted or rethought, and/or a few more places could use the addition of some built-in amentites instead.

A wandering guard or a random chance of being woken and either being told to "Move it, NOW!" or else being fined for a second offense would be a big improvement over bedrolls somehow not unrolling in certain places.

Indeed, I agree that items need to be placed in world to compensate certain things (such as if restrictions remain in, configurable or not). This is something I would have no problem with doing myself during the leg work portion of the development.

Further, I don't know why everyone is assuming that there is a need to eat and sleep at inns, or that the restrictions force this - they do not.

In regards to food, a player can hunt to gather raw food and cook it, buy food at Taverns or Inns (which act as restaurants it seems in the Tamrielic community), and Traders would also be selling food stocks I imagine (if not more folks as well). I don't deny a number of houses in the game could certainly do with having some more cooking related items in them (especially since NoM does offer some options that in most cases would be easy to worm into almost any vanilla location). This would add further ambiance to things anyways.

In regards to sleep, a character is certainly not being forced to sleep in Inns with the present restrictions. Certainly, the character can acquire a home in many locations to be able to bed down, or they could use the beds in a local Guild Hall if one is available. In some instance, the character may have friends who offer up the use of their beds (Caius in Balmora anyone, right in his dialogue). Further, the player can get a bedroll as well for traveling and sleeping in the wild places.

Either way, if the restrictions are made configurable, it would benefit being able to supply both play styles with their desired effects in the game. I also don't think it would be a bad idea to check to see if the MCP or MPP could possibly correct the water levels issue (at least with Vanilla locations, modders would need to do this themselves on already released mods if they wanted to do so). Personally, considering the way the game behaves with this issues, it must certainly be a glitch and not a feature, so perhaps it bears correcting. If this could be done, we have cut even more problems out of the current restrictions.

Granted, I do agree, in terms of using the bedrolls, I would love to see the guard idea if it can be done (simply because, as pointed out, that is even more realistic than a restriction - sometimes it might work, sometimes not). I have no idea how this would be pulled off, but mayhaps someone who ends up working on this will be a wizard in that department. I wonder if perhaps something similar (though different in application) could be done with fires, perhaps upsetting NPCs in the area if you light a fire in their home? Maybe warranting a fine if you are caught/seen doing it (I say caught/seen so that one can easily do it if no one is in the location) could be put into place (as you attempted to commit possible arson).
User avatar
rae.x
 
Posts: 3326
Joined: Wed Jun 14, 2006 2:13 pm

Post » Sat May 28, 2011 12:25 am

A few options for scripting this stuff (note: I'm not necessarily saying all of these are reasonable, practical or efficient - just that I think they're possible!):

- With MWSE: cycle through the cell looking for guards, check whether they can see the player and fine the player for sleeping in view of a guard (probably restrict this to named cells, or even specific known cells, though - could break mods otherwise, there are times you're required to sleep in a particular place for quests etc).
- Without MWSE: check if player is sleeping in certain cells - so if e.g. the player sleeps in Ald'Ruhn, randomly decide if they're going to be detected and if so place a guard right behind them, wake up the player and tell them to move on/fine them/whatever.
- Alternatively: add a few special-ID, respawning guards to each city and put them on wander, and if those guards see the player trying to sleep in town they can tell you to beat it, but other guards won't do anything.

Much the same could work for fires in town exteriors.

For interiors - you could do a single GetDetected check when placing the firekit/bedroll; with MWSE you could also find out which NPCs detected it and what their fight ratings are and whether they're in combat and so on.

There are plenty of options for this kind of thing - none of them are perfect but personally I think a random wake-up guard would be fine most of the time for sleeping. Not sure about fires.

---

Edit: Just FYI (in case you didn't know): Sleeping 1 hour isn't detected in script. It's only detected if you sleep longer.
User avatar
Naughty not Nice
 
Posts: 3527
Joined: Sat Nov 04, 2006 6:14 am

Post » Sat May 28, 2011 12:37 am

Would the GetDetected idea for interior firekit use cause issues with companions?
User avatar
oliver klosoff
 
Posts: 3436
Joined: Sun Nov 25, 2007 1:02 am

Post » Sat May 28, 2011 2:29 am

Edit: Just FYI (in case you didn't know): Sleeping 1 hour isn't detected in script. It's only detected if you sleep longer.


Are you saying that one hour of sleep isn't detected for the purposes of getting "necessities" benefits or that the script engine can't detect an hour of sleep?

When I meditate for exactly one hour to go up a level, I'm usually attacked by dark brotherhood assassins. That means the script engine can definitely detect a single hour of sleep, since the attacks are handled via script.
User avatar
Euan
 
Posts: 3376
Joined: Mon May 14, 2007 3:34 pm

Post » Sat May 28, 2011 7:34 am

I haven't really investigated this properly (it's on the list :P ) - I know someone else (can't remember who) mentioned this as a general thing, and I know from my own stuff that at least some times GetPCSleep doesn't register if you only sleep 1 hour. It could actually just be a global/local script issue or something, the times I've seen that 1 hour doesn't work is with local scripts (mostly on companions). Or it could be that if the GetPCSleep is inside a menumode check it does something weird. No idea right now, sorry. But if you say that 1 hour sleeping will trigger the dbattackscript's stuff, then it needs investigating, so thanks for pointing that out.
User avatar
Andres Lechuga
 
Posts: 3406
Joined: Sun Aug 12, 2007 8:47 pm

Post » Sat May 28, 2011 9:06 am

Determining whether you're seen sleeping in public shouldn't be that terrible to code. When you set up your bedroll (and only then, so it should have no impact on frame rate outside of that one frame), you need to check the cell to see if any guards or certain other NPCs are within a particular distance, and if so, whether they have LOS to the player character. At that point, it's a simple Yes/No decision at to whether you're seen getting ready to sleep in public, and prevented from doing so before it happens. After that, add a simple random number check before beginning the sleep script to determine whether or not a guard will wander by during the rest of your nap, with a modifier for each hour beyond the first. The degree of failure determines how soon your rest gets interrupted.
User avatar
suniti
 
Posts: 3176
Joined: Mon Sep 25, 2006 4:22 pm

Post » Sat May 28, 2011 8:39 am

Determining whether you're seen sleeping in public shouldn't be that terrible to code. When you set up your bedroll (and only then, so it should have no impact on frame rate outside of that one frame), you need to check the cell to see if any guards or certain other NPCs are within a particular distance, and if so, whether they have LOS to the player character. At that point, it's a simple Yes/No decision at to whether you're seen getting ready to sleep in public, and prevented from doing so before it happens. After that, add a simple random number check before beginning the sleep script to determine whether or not a guard will wander by during the rest of your nap, with a modifier for each hour beyond the first. The degree of failure determines how soon your rest gets interrupted.

That sounds like exactly what is needed, as long as we can come up with a good way to sort cells consistently.
User avatar
Isabella X
 
Posts: 3373
Joined: Sat Dec 02, 2006 3:44 am

Post » Fri May 27, 2011 11:27 pm

Sounds like an MWSE option.
User avatar
Janette Segura
 
Posts: 3512
Joined: Wed Aug 22, 2007 12:36 am

Post » Fri May 27, 2011 11:43 pm

Sounds like an MWSE option.


Seem like you could do it without MWSE.

If you modified the bedroll script (which has to be done anyway at some point) to start a seperate script that runs only when the bedroll is placed on the ground then terminates when completed...

This other script would probably need to discover what cell the PC is in,

so something like:

If (getPCCell "Balmora" >=1 )
set myvar to 1
elseIf ( getPCCell "Caldera" >= 1)
set myvar to 2

etc
etc.

The list wouldn't be that long, you're probably only really going to check for urban cells, or I suppose you could check for every population center in the game if you wanted to.

then it could check for the type of guard, because you would then have a fix to use.

So,
if (myvar == 1 )
If ( Getdistance "hlaalu guard_outside" <= 2000 )
set myguardvar to 1

Then you could check for LOS and/or add a force greeting from the guard.

I'm probably complicating things more than they need be, but such a concept would probably work with some tweaking, and without overly slowing down the game.

None of that requires MWSE, which seems to me to be something we might want to avoid.
User avatar
Sheila Reyes
 
Posts: 3386
Joined: Thu Dec 28, 2006 7:40 am

Post » Sat May 28, 2011 2:41 am

Sorry, but that absolutely will not work. Getting distance to a non-unique NPC will acually get the distance to the first ref in the database - and only that ref. That ref might be in a different cell entirely. That's why you need MWSE: with that, you can use xFirstNPC and xNextRef to cycle through all NPCs in the cell, and check their alarm rating or whatever you're interested in (IIRC, what Fliggerty uses in Protective Guards is a regex match with the ingame names or something like that, to determine if they're guards).

For MW-only, you would have to rely on GetDetected, but that would basically make the sleep scripts unusable for anyone who has companions (GetDetected will return true if any NPC or creature can detect the target - in this case the player - so your companions would "report" you).
User avatar
Lucie H
 
Posts: 3276
Joined: Tue Mar 13, 2007 11:46 pm

Post » Sat May 28, 2011 9:55 am

Could you put a beacon in the middle of each "urban" cell with a script that uses GetPCSleep to detect a player trying to sleep, then use GetDistance Player to determine if the player is within the no-sleep zone? If the player is within the no-sleep zone, the beacon uses WakeUpPC to wake the vagrant player, then uses PlaceAtPC to position a vagrancy guard beside the player. A script on the guard would then force dialog to give the player the "bum rush" and then leave. If the mod already requires a bloodmoon dependency, disable/setdelete the guard to keep it from building up in the game. Otherwise, teleport the guard 10,000 units straight down and sethealth 0. The game engine will automagically clean him up 72 hours later.

Because of the way scripts are optimized, only beacons within the same cell as the player would even try to determine the distance, and since each one would be calculating the distance from itself to a unique object (the player), there should be no confusion causing incorrectly reported values.

It seems like it should work... or is it one of those ideas that just looks good in print, but won't work in practice because of some fact I'm overlooking?
User avatar
kevin ball
 
Posts: 3399
Joined: Fri Jun 08, 2007 10:02 pm

Post » Fri May 27, 2011 9:58 pm

MelianWell, that svcks... :) but thanks for letting me know.

Still, there are other ways to go. a probability of being seen sleeping could be generated by considering criteria like the cell numbers of and the time of day (or night). Once the PC is asleep, the LOS does not really matter, because the PC has no control or knowledge over who walks up on him.

As long as the cell is known, the type of guard interrupting the sleep would be known. If one or perhaps two or three unique NPC guards of each type were created for the purpose, he/she could then be placed at PC just like a DB assassin, and a force greeting could then be used.
User avatar
sam westover
 
Posts: 3420
Joined: Sun Jun 10, 2007 2:00 pm

Post » Sat May 28, 2011 1:45 am

Could you put a beacon in the middle of each "urban" cell with a script that uses GetPCSleep to detect a player trying to sleep, then use GetDistance Player to determine if the player is within the no-sleep zone? If the player is within the no-sleep zone, the beacon uses WakeUpPC to wake the vagrant player, then uses PlaceAtPC to position a vagrancy guard beside the player. A script on the guard would then force dialog to give the player the "bum rush" and then leave. If the mod already requires a bloodmoon dependency, disable/setdelete the guard to keep it from building up in the game. Otherwise, teleport the guard 10,000 units straight down and sethealth 0. The game engine will automagically clean him up 72 hours later.

Because of the way scripts are optimized, only beacons within the same cell as the player would even try to determine the distance, and since each one would be calculating the distance from itself to a unique object (the player), there should be no confusion causing incorrectly reported values.

It seems like it should work... or is it one of those ideas that just looks good in print, but won't work in practice because of some fact I'm overlooking?

Sorry, I didn't see your post when I was posting mine. I think you got yours in while I was typing mine.

Anyway, it seems as if we're thinking along similar lines...

[edit] I like your idea of beacons that would probably simplify the script too.
User avatar
FLYBOYLEAK
 
Posts: 3440
Joined: Tue Oct 30, 2007 6:41 am

Post » Fri May 27, 2011 9:49 pm

AFAIK, the only problem with using the scripted "beacon" activators would be that they'd have to be placed by hand - fiddly to mess round with the distances and such and won't work in new modded areas. But if you include those activators in the compatibility resources modders could place them themselves or patches could be made. So I can see that working - an activator for each type of guard, maybe a few variants that check different distances if it turns out to be necessary, and only check distance when the player sleeps. Should work fine I think.

Great idea! :)
User avatar
Andrea Pratt
 
Posts: 3396
Joined: Mon Jul 31, 2006 4:49 am

Post » Sat May 28, 2011 4:24 am

If Tocatta's idea can work in practice, that sounds like a great method for how to handle sleeping in the towns - I like it much.
User avatar
Benito Martinez
 
Posts: 3470
Joined: Thu Aug 30, 2007 6:33 am

PreviousNext

Return to III - Morrowind