Some days, I do something so cool even I have to sit back and just go "Goddamn, how did I come up with that?"
This morning is another of those.
I have... just conceived and implemented a system that will allow all NCCS companions to stick with the player no matter how moved or by what.
It works on teleports... it even provides for instant following through load doors - no more having to wait an in-game hour for the engine to get off its dead ass and move NPCs through.
I did it in such a way that not one single NPC has to be called via explicit reference.
I've only tested it for about twenty minutes now; but it seems to work every cell change.
The one possible downside is that it works a bit too well, sometimes. When traversing the open wasteland, your companions will occasionally be teleported to join you; since despite the openness, the wastes are actually broken up into "cells" just like interiors, and when you cross a cell border into the next, the script triggers and moves them up to join you.
The flip side is that it's not distance dependent - only strictly by cells; so it won't randomly trigger the way the old teleport code in RR did.
I'm not going to go into detail about how I did it. It would bore and/or confuse most of my readers (hey, I know perfectly well my thought processes border on requiring the readying of a padded room...); and that aside, I know perfectly well that my "competition" has been looting ideas from my blog as well as my previous work, and I'm not in the mood to hand out any more freebies.
I've also implemented code that will once a day add a handful of leveled lists to an NPC's inventory - to simulate them looting stuff as you travel. This one isn't tested yet; I haven't been in the new game long enough for it to fire; but the GECK took the code without complaint, so if it doesn't work it should only be a matter of me getting my timing calls correct to make it work. Once I do get this one working, I'll create another custom leveled list to simplify the code, but for the moment I'm testing with default game lists.
This morning I also learned how to apply perks to companions. I haven't implemented this one yet, since I wanted to get the new companion management code tested before I added another feature to potentially screw up; but it's next on my testing list.
I've also got some ideas for new group perks - that will be added or removed from the player depending on how many companions you have in tow.
This NCCS whim of mine could... end up being pretty cool. A slightly more arrogant me would be proclaiming that when all is in place, all other systems will be woefully eclipsed by the greatness. Real me, though? Is a fatalist, who's had one too many sure things blow up in his face to declare victory just yet.
Lastly, I think I may have taken some of my coding a bit too far. When I started the new game, I forgot and left my special companions plugin active. This is what I woke up to:
The three of them were in the house and trying to initiate dialog to join me before the doc even finished his introductions.
S'nice to have such loyal hench-cuties, though. I knocked them down to leveled lists for starting equipment, so as a party we'd have someplace to go; a need to scavenge better armor and weapons.