Friday, October 28, 2011

NCCS v0.8, The Slow March Forward

NCCS has taken a major step forward this morning; further eclipsing its would-be "competition".

Firstly, the Nellis artillery issue has been fixed -- and without touching a single base game reference or script. How I did it would be boring technical minutiae, so I'll spare you all; except to say that in-party companions now exist in a perpetual state of being considered the player's teammate -- save when you talk to them, or during combat if you have XP sharing off. This teammate change will also allow some compatibility with follower-centric perks; but this is mostly untested so I don't know offhand which work without further scripting. The new "teammate" condition has been tested and verified to not affect companions' ability to enter the Lucky 38, or keep their weapons on entering other casinos.

Second, during the companionscript overhaul, I re-wrote the case-spawning code. It is now driven by form lists rather than specific item names. This will allow for plugin-patching of the weapon lists, to allow it to work with mod-added weapons without changing individual scripts or forcing your custom companion to require a weapon mod. It will also allow similar patches to include the DLC weapons in the case-spawning code -- though obviously new ammunition types will require modifying the scripts.

Third... companions will now repair their own weapons. Yeah, you read that right. Companions' weapons will no longer reach 0% condition, break, and be dropped only for you to have to go look for where they dropped the damned thing. NVSE is not required for this feature. Companions' repair ability is linked to their repair skill; and companions who are not using the new repairer class will only be able to maintain their weapons at about 60%. Once a Repairer companion's repair skill tops out, they'll be able to maintain nearer 100%, with their weapons never dropping below 70%. I think this strikes a good balance; since it'll keep their weapons from breaking, but not negate the need for the player to perform periodic repairs if they want companions to do maximum damage.

Fourth: this is mostly a back-end issue and not something you players will ever see, but I managed to shave 65 lines off the companionscripts in the course of the rewrite. This is important because the scripts were getting up near the character limit; and by cutting so many lines off I've preserved the ability to continue expanding the scripts for a moderate part of the future.

Lastly, not a new mod development so much as a testing result: I know a couple players and myself have run into an issue where the companions hesitate before engaging an enemy; reloading their weapon one or more times before entering combat. I got some more testing in, and this seems to be directly related to non-standard ammunition types. When I removed the special ammo from the companions, and added default ammo, the issue went away. It doesn't seem to be a sure-fire issue or fix; but that does seem to be the most common way to fix it. I can't even begin to surmise what's causing it (but I have the nagging suspicion it's an engine issue) so I doubt there'll be an NCCS-specific fix in the foreseeable future.

And of course, here's the new alpha; for those three of you who give half a fuck.

Thursday, October 27, 2011

I... Wait, What...?

So... I'm cruising that Japanese mod database/imagestore for FONV that I mention from time to time -- because hey, you never know when you'll run across some neat armor or a body mod that will never see the Nexus -- and running new screenshots, and I hit this one.

Now, most people would probably be looking at the redhead with the weird forehead tattoo... but eh; my redheads are way hotter; and wear better hair styles.

Me? I took one look at the screenshot, and wondered when someone made a Hugh Laurie sniper companion.

I'm not much on other peoples' companions... but I think I'd have to download that one. One question though: which Hugh Laurie do we get? George, or Gregory House? I can see either one being an amazing companion to travel the Mojave wastes with me; but I can't decide which I'd rather have. Wackyness, or nuclear snark? Oh, decisions, decisions...

I guess with the half-beard it'd have to be House, huh? I mean, he stayed clean shaven for George and all.

...Damn. Now I want a Rowan Atkinson companion too; and listen to them trade snark while we travel. Where'd I leave my Black Adder DVD boxed set, anyway...?

Wednesday, October 26, 2011

Yep, That's What I Thought

Get the bright idea this afternoon (since the cleaning is done, I have a bit of time to mod for the first time this week) to run NCCS through FNVEdit and see if it maybe detects some error the GECK doesn't mention that would explain why an apparently completely valid script is refusing to run. The result?




...Well, it's nice to see FNVEdit isn't jeopardizing its standing record of being nigh completely fucking worthless...

Looks like I have to do this the hard way...


Edit:

Well, I purged the new "Nellis fix" from the companion scripts, and all seems to function correctly again.

It's at this point that I'm more or less baffled. There's nothing wrong with the code; save that possibly the range I need the script to cover is larger than the engine can handle using the GetDistance function. Unfortunately, that -- like nearly every one of my scripting questions -- comes up complete craps on the forums. Either no one has posted about it, or the search function is being a bitch and not turning the threads in. I give it even odds on which.

So... I'm really not sure how else I can run this without modifying the base game scripts. There's really no way to tell whether they're within range other than by checking distance to an object -- the artillery is triggered by trigger boxes, but there's no way I know of to check whether an actor is inside a trigger except from the script linked to said trigger. If I'm gonna modify a base game object anyway, I may as well just edit the targeting script and throw in an NCCSFaction exemption from the bombardment.

I've still got one non-editing trick I can think of; but I don't hold out high hopes. Stupid Obsidian and their damned gimmicks...

I mean, really; how hard would it have been to just disable the artillery barrages altogether once the player had made it through? I know the fluff says it's how they defend Nellis; but it's not like the game has roving bands of raiders who continually assault the base.

Edit again:

Damn my easily distractedness!

...Instead of adding a new Nellis fix, I just spent the better part of an hour rewriting the main quest script to streamline how each companion is maintained as you play. Only shaved about thirty lines off the script, but it reads much easier now -- to me, at least.


Edit, yet again:

Just tried my last resort option. It doesn't lock the script... but nor does it stop the bombardments.

Yet another total failure notch to add to the 'ol belt. I need to ponder a bit on what to do.

Friday, October 21, 2011

What is this I don't even

I know it's two in the morning local, and I'm just tired and frustrated... but I can't help but seriously consider shit-cannning the entire NCCS project again.

Ran the game again finally. One companion still locked up. Ran the game several more times. Same companion locks up every time; right after combat ends the first time. She'll still follow, still respond to threats; but once combat ends the weapon gets put away regardless of whether mine's out, and she won't sneak under any circumstances.

I decide that perhaps the new companion script is getting too hefty for the engine to handle; cut out some code from the affected companion's script (but not the other two, to keep a control). No change.

Load my old "clean" save in Doc Mitchell's during character creation. Get through that, get out into the open... and now no companions work. I can't talk to any NCCS companion, and they can't talk to me. I have no idea why.

So, at this point I get to begin the process of clean saving, new games, and pacts with forces of Darkness to try and figure out what in the holy fucking everloving hell is wrong with this goddamned game this time.

Mod for NV, I said. You'll be able to get in at the ground floor, instead of a year after the fact, I said. It'll be the next CM, I said...

Thursday, October 20, 2011

Wait, I've got it this time...

I decided to try to fix the issue with the NCCS companions getting shelled at Nellis even when the player has done made friendly like.

Nailed it on the first try, and without touching a single base game object or script. Damn, I'm good sometimes.

However, the game continues to perplex me in ways no other game ever has. It's just so... badly made.

After the test at Nellis, we were walking back out across the bomb range, when the companions crashed. Nose dive into the fucking pavement from thirty thousand feet crash.

Now, I'd chalk this up to some unreported error in my new companion script... except that Veronica was in my party at the time, and she crashed too.

Wouldn't follow, couldn't be talked to... they just stood there.

To the apparent credit of my scripting skills, two of my three NCCS companions recovered on their own after a couple minutes, and began functioning properly again. The third and Veronica never did.

I haven't seen this sort of NPC behavior in a couple patches now. I guess Obsidian really isn't capable of taking a step forward without two back.

Tried waiting, tried fast travel, tried combat; nothing snapped the two statues out of it. Finally, I just closed the game in disgust. Without saving.

I remember in one of the first versions of NCCS, back before FNV had been patched at all, I used to run into similar issues. When it happened, it would infect any subsequent saves; requiring a clean save to fix. Of course, one can not clean save Veronica... so I'm not sure what the fix would be there; short of breaking out the feathered headdress and going looking for a virgin to sacrifice to the Old Ones from beyond the stars.

My game is up over 75 hours now, so all bets are probably off on this sort of thing... but it's still immensely frustrating -- not being able to cleanly separate what's a mod issue that I need to fix, and what's just shitty coding on the part of the slack bastards who got paid to turn out this half-finished game. Fuck, I've played Alpha builds less unstable than this...

About all I can do is fire the game up again, and see if the issue manifests again. If it does, I get to try the new game approach.

Y'know, one of these days I'm going to go apply for an EOD job. At least then there'd be something to look forward to in life.

Fair Game?

It's one of those mornings. 0414 as I type this, and I can't sleep. This week has sucked... and not in the definition I'm a fan of.

So, as I sit here listening to Five Finger Death Punch's new album (which fucking rocks, by the way -- Under and Over It All is easily one of the best songs I've heard in years) I'm feeling a bit introspective; which granted I usually am when I'm in what my owner calls one of my "melancholy moods".

I was playing Oblivion earlier; on a new-ish game -- I don't get off on starting new games or anything by the way, it's just that a lot of Lovers plugins are less than amazingly stable, and tend to break saves... I keep a limited number per character because of Oblivion's relative stability, and the breakage doesn't generally occur until they're all afflicted.

As I've noted in the past, I'm a fan of Colourwheel's mods in general. Tonight in particular, I had progressed far enough into the game to organize a heist on the Ladies' Bank of Cyrodiil -- the vaults of which contain literally millions of septims worth of gold and paper notes. With CW's tendency to mis-read "Guards" as "Gods" and set up her NPCs accordingly, such a heist is certainly not to be undertaken lightly, but it can be done: get in, kill a guard; loot their keys (all locks in CW's work are key-required); steal; and get out without getting a bounty and/or assraped by the level 100 "guards".

As I was offloading the loot at Khafiz, my favorite fence, a thought occurred.

Where do you draw the line? Where does it become cheating?

Now, normally, I say if you don't use a code or over the top mod -- if you work completely within the game's normal limits, it ain't cheating. Exploiting the system? Sure; but not cheating.

As I was selling loot, Khafiz's inventory bugged, and he got 65535 gold -- not an unusual event in Oblivion if you work the inventory hard enough without closing the barter window. What got me thinking this time, was that it bugged worse than usual; and went into an infinite loop: if I sold something worth enough to eat his entire remaining barter amount, it would sell and instantly reset to 65535. As my stash of septims passed 1.2 million, I started thinking... is this cheating?

I mean, I wasn't using an additem code; wasn't using a cheat mod with add-on-command items; wasn't using a mod to artificially increase barter gold. Sure, it's a flawed engine... but I was just working within it. Not my fault the devs were too lazy to patch the barter system up so it worked right... right?

So I ask you, semi-loyal readers: where do you draw the line? When does it stop being playing the game; and start being cheating?

Codes? Mods? Exploiting holes in the system?

Will you purposefully restrain yourself from using techniques and such that have the potential to make a game "too easy"? Or is anything "official" in the game fair?

At the end of the day... is the line anything more than academic? There's a fine line between "challenging" and "an ordeal". One game is fun, the other isn't.

I suppose it heavily depends on what you want from the game. As I've said before, I tend to ignore the main quest in Oblivion (and FO3/NV) and just do my own thing; exploring, buying in-game stuff.

Oblivion is easier than most to exploit, granted. I learned years ago how to become a God in Oblivion. Want to know? You'll need the ability to cast a chameleon spell of any type; access to an enchanting altar; five trapped grand souls; five equippable items -- or four of each and the Ring of Khajiiti from Meridia's shrine quest. Enchant the items with chameleon -- you'll get 20% for each grand soul; and 35% for Meridia's Ring. Either way, once you get the items for 100% chameleon you have full-time, non-dispel-able invisibility; but can still steal, attack, and interact with the environment.

It's amusing for about an hour. After that, you realize you may as well be playing in God mode with the NPCs' combat AI off for all the challenge the game presents when no one can see you.

Can't say as I do it much, despite the fact that it's fully within the game's rules -- completely attainable even without a single mod or DLC running. Handy to have on hand for a couple parts of the main quest where things are time-sensitive, though -- like stopping the siege engine from reaching Bruma. Beyond that... I dunno; it's just too easy.

Granted, the couple million septims I made off the bugged inventory means I'll not have to grind bandits for loot to sell in this game anymore... but I'm beginning to wonder. Leaves a bit of an empty feeling.

I'm beginning to wonder about FONV, as well. Since installing those communal containers, I've got enough loot to clean out every merchant of caps, every time their inventory resets. Have more than 150k caps at present, and many more if I can find someone to pawn off those gold bars from Dead Money on. With the short-sightedness of Bethsoft's devs regarding game economies, that one's pretty much set-for-life, too -- there's nothing in FNV to eat that many caps. Not even if I tried.

I wonder some days if Mystery-chan's comments to me in FNV aren't spot-on. My methods are more round-a-bout, but maybe it would be better to just use an additem and not even have the pretense.

If I go the flip side, and don't abuse the systems... where do I draw the line? Where does it stop being "smart playing" and start being exploitation...? Do I pretend I'm a GMPC; pointedly ignore that I know where the good items are in the game already, just drone-along picking up whatever the devs decided I should be allotted for my level and the point in the story?

By the same token, aren't I cheating regardless? I mean, I made my name (small as it is) modding with companions. Extra combatants who help in combat; carry more loot than you could alone; spawn with "free weapons"...

Monday, October 17, 2011

NCCS v0.8, More Improved! Or Not...

So, a player noted in the Nexus comments that Nellis' arty continues to target NCCS companions even after the player makes nice.

I had noted the issue myself when playing through that section of the Mojave this game, but had forgotten about it whilst pursuing other improvements (sorters, improved combat styles, et cetera).

When it was reported, I remembered; and decided to take a closer look at the issue. Sadly, it will not be an easy fix. The targeting script for the shells makes three exceptions: Boomers, the Player (once he's made nice), and the Player's teammates.

Well, the wheel ain't bein' implemented, so we can forget option three. Since it names the player specifically, and not members of the Playerfaction (slackers!) #2 is pretty useless for our purposes as well.

My current way of thinking is that adding the companions (temporarily) to the Boomer faction when they're within a certain radius of the gate will be the best option; and tossing in a condition about the Boomers not hating the player should preserve the ability to engage in hostilities with the Boomers without the companions refusing to engage.

Unfortunately, I can't test it at the moment since I'm smack in the middle of Dead Money; which I hate, by the way. This DLC is one experience that requires the use of the word 'cluster' many times.

Anyway, that's not what I'm posting about. When I was reading around the forums to brush up on the limitations of the GetDistance function (or at least try to -- my search was fruitless) I happened across a thread with an interesting theory. In it, a player posted a script for converting salient green into actual vegetables or something -- I never did catch the point of the whole endeavor -- and a respondent I'll refrain from naming noted that the script could be shorted considerably, by using a form list instead of naming individual items. The posted script looked mighty similar to one of my own sorter scripts, so the wheels began to turn.

I ran up a couple form lists, wrote an alternate sorter script, and implemented the change. Great, thinks I, this will shorten it enough to get all the sorters into one single script and quest!

Tested it in game, all items removed correctly. On a second thought, I decided to check the contents of the container and make sure everything got added right.

...It was about this time that I needed Houston's frequency, 'cause we had us a problem.

It seems that the whole formlist-in-lieu-of-items technique has one teensy flaw. Rather than providing a number to the script for each item, it provides an aggregate number.

For those who were too busy trying to get laid to pay attention in school, I'll explain.

Rather than adding to the container 22 Abraxos, a baseball, fifteen weapon repair kits, and so on; it tallied the total number of items I had that were in the form list... and used that number as the item count for each item it added. It added to the container six hundred and twenty one of each item on the list -- which is to say, every non-quest specific miscellaneous item in the game.

What made me giggle is that this would effectively be exponential. That is: I had 621 total items, spread across the hundred and fifty odd entries in the list, so it added 621 of each item.

Had I emptied the container back into my inventory, and sorted it again, the item count would have gone up to more than 93,000 of each (621x150); next time we'd have 13,972,500 of each... not that I expect the game would survive trying to move that many items.

Not that it wouldn't have been an amusing method of mass item collection... but I did not see this as being good for the mod.

So, in the end I reverted to my "inefficient" original scripts. It may not be flashy, it may not be evolved... but damn it, it works; and at the end of the day sometimes that's all you can ask...

On an unrelated note: my new "advanced" sniper companion that I made for DLC testing with v0.8 fucking rapes Ghost People. She takes limbs off of 'em left and right. The standard companion with the shotgun not so much. One of these days...

Hm. Thought occurred. Was going to say I'll create a companion that uses an AMR... but she's already a purpose made sniper... To the GECK!

...Sorry, what was I talking about? I was reading Wikia on FONV to remember the name of the ghost things, and then I had my AMR moment... I've got to start being more focused, huh?

Sunday, October 16, 2011

NCCS v0.8, Issue Solved

Sooo... I've been holding off on releasing v0.8 because of the aforementioned issue with a script that refused to run.

Fixed that this morning, finally.

Wednesday, October 12, 2011

Bigger?

I'm sure someone has wondered, with all the new stuff I've been adding, just how much bigger is v0.8 of NCCS?

Well, I had to restore a backup of v0.7 today to open it in the GECK and disprove a claim that my scripting was faulty, so I took the opportunity to screenshot the overwrite:



About double the size. That, for those of you who have never done it, is a lot of scripting.

Monday, October 10, 2011

NCCS v0.8, Upcoming, Part VI

Played a bit more this morning (once I had dealt with the latest bits of sky falling on the Nexus) and learned a bit more about the "locking" quest scripts.

Clean saved NCCS from my game and re-enabled it, and the main quest was dead on activation. Never functioned at all this time. This tells me that the problem is something fundamental in the game itself -- whatever it is, the game has decided the script does not need to work under any circumstances. There's no fix, except to revert to a save before it happened, or start a new game.

FONV continues to be impressive in its unreliability. I'm at 65 hours or so now, and crashes are frequent; but not quite constant. Most often is a crash on changing cells, whether it be by door or fast travel, it tends to lock on loading the new area.

Friday, October 7, 2011

NCCS v0.8, Upcoming, Part V

So, few more updates that popped into my head today.

Firstly, I've reworked the combat radii on some of the NCCS combat styles. The thought occurred to me after commenting back and forth with Darksong that I had switched the radii in my personal companions plugin to get rid of an issue similar to one he described; but had forgotten to switch all of the NCCS styles to match.

It's a new issue that's only manifested since the last patch (Obsidian can't patch anything without breaking something else, can they? Incompetent fucks...) and seems to have to do with the combat radius -- that is, how wide an area they're allowed to notice enemies and engage in combat at. Default is 10,000. Prior to patch v1.4, I had been running them with good effects at 40,000. Since the last patch, however, anything over 30,000 seems to get them buggy. I know the limit is somewhere between 30 and 35k; but truth be told I'm too lazy to go ten units at a time trying to find the exact limit.

I realized this after seeing the issue again playing this morning -- a new companion I created for v0.8 is running the new "operator" style I copied direct from my personal companions, with the other two using existing NCCS styles. Two bugged, the new one didn't. Went back through, and sure enough I had left the "high" level Sniper combat style's radius set to 40,000. Checked and changed all the styles where necessary, and am hoping that will clear it up. Haven't had a chance to test yet, though.

Also, I've added compatibility to NCCS companions for players who take the "Ferocious Loyalty" perk -- the perk adds something like 50% damage resistance to companions when you fall below 50% health. Seemed kind of a waste to not have my companions able to use it while the vastly inferior vanillas can... so now NCCS can, too.

I'm also considering adding something I've mentioned before: a "hardcore" mode for lack of a better term. In HC, companions will have their essential flags stripped, and you will be limited to one NCCS companion per two points of Charisma (similar to the FO1 method). HC would also forcibly disable and preclude XP sharing. Vanilla companions and those from other systems will not be affected by this to minimize conflicts. May also add a need for companions to eat and drink in HC much as the player does in game-wide hardcore... but I haven't quite worked out how to keep a reliable running tally of food and drink needs. It should be straightforward enough to code... but we all know how far "should" goes in this game.

Also also: with all the bitching I've received about the equipment randomizers, I'm considering coding the companion scripts so that the companions spawn random gear once, and then the leveled lists are removed; not spawning any more items until/unless their plugin is clean saved and reactivated. This could be made a system option (I think), so I may plow ahead with it regardless of what the three people who actually comment on this blog think of the idea.


Edit: oh, and before I forget again, I've also edited my premade companions again. Their pip-boy plugins dialogue option will now appear on the top level of dialogue rather than in the equipment menu, and will disappear once they've given you the plugin -- rather than the option staying there and eating space uselessly in the already over-cluttered menu.


Edit, the second:

Just got through with some playtesting, and have reached a few conclusions.

1) the scripts failing are indeed the quest scripts. In NCCS, the 'sort all' (the command that doesn't work at the moment) is not in its own quest, but rather lodged into the main quest script. I can tell the entire script is locked, as the new campfire isn't being moved when I leave the cell it's in, and companions are not teleporting except at the end of combat (which is controlled by their individual object scripts).

I still have no idea why this is happening, and have found no method of fixing it except to clean save.

2) The issue with companions' weapons equipping/unequipping/reloading/et cetera seems to be a double-whammy. Even with the combat styles' radii reduced to a max of 25k, the issue was still persisting. I had it down to one cycle before initiating combat, but even that was annoying. I swapped out their ammunition for default types, and the issue went completely away through a couple hours of play (at which point the game locked on me while fast traveling, which is why I'm here typing this). So, the solution seems to be default ammo only and no combat radius over 30k.

Again, I have no idea why this is happening; but demonstrable, repeatable fixes trump "should be" every time.

3) this iteration of the game engine is still a piece of shit, even after four patches.

Sunday, October 2, 2011

Overheard in NosCo HQ

"Does NCCS only allow you to make human companions?"

Hm.

NCCS does not restrict you in any way -- you're still free to create whatever your modding skills and the GECK will allow while NCCS is active.

...No, that'll get me in trouble, no matter how funny it is...

*deletedeletedelete*

Yes, in v0.7 the only included framework is the one for NPC-type (human and non-feral ghoul) companions.

Yeah, that's innocuous enough.

Wonder if anyone's observant enough to catch that I specified v0.7 only contains the one framework...