'Lollorian', on 04 October 2010 - 07:57 PM, said:
Well, I always thought the main plus point to additional NPCs was the possibility of additional banter ... ofc Player7 can be of use as an extra hand/pack mule but the game's still doable with 6 NPCs/we have bags and other stuff
But that's just me though ... 
You'll see that most NPC mods I have on my not-install list are the kind that just have a join and leave dialogue ... that imho makes them stand out among the other NPCs
The Player7 method you describe would effectively make the 7th char into one of these zombies 
But again, if your suggested feature does get implemented ... it could open up new paths and lead to more improvements (eventually leading to ToBEx 9999 with a fully functional bantering/interacting/PID-able Player7 NPC
)
Banters, romances, quests and whatnot should work with Player7 without any special modification to the scripts. The problem is (mostly) with scripts and some dialogs. Consider these two states from uddrow16.dlg (the duel master in Ust Natha):
Quote
IF ~~ THEN BEGIN 17 // from: 22.2 15.1 14.1 11.1
SAY #52638 /* ~As you wish! Attention! We are to have another challenge immediately! <PLAYER2> will now enter the arena and face Lasaonar.~ */
IF ~~ THEN DO ~StartCutSceneMode()
SetGlobal("LesaNoFightYet","GLOBAL",0)
SetGlobal("PlayerDuelingLesaonar","GLOBAL",2)
StartCombatCounter()
SetGlobal("DuelOn","AR2202",1)
ActionOverride("udlesa",Enemy())
FadeToColor([20.0],0)
Wait(2)
ActionOverride("udlesa",JumpToPoint([744.1305]))
ActionOverride(Player2,JumpToPoint([949.1338]))
MoveViewPoint([949.1338],100)
Wait(1)
FadeFromColor([20.0],0)
SetGlobal("DuelOn","AR2202",1)
EndCutSceneMode()~ EXIT
END
IF ~~ THEN BEGIN 18 // from: 22.3 15.2 14.2 11.2
SAY #52639 /* ~As you wish! Attention! We are to have another challenge immediately! <PLAYER3> will now enter the arena and face Lasaonar.~ */
IF ~~ THEN DO ~StartCutSceneMode()
SetGlobal("LesaNoFightYet","GLOBAL",0)
SetGlobal("PlayerDuelingLesaonar","GLOBAL",3)
StartCombatCounter()
SetGlobal("DuelOn","AR2202",1)
ActionOverride("udlesa",Enemy())
FadeToColor([20.0],0)
Wait(2)
ActionOverride("udlesa",JumpToPoint([744.1305]))
ActionOverride(Player3,JumpToPoint([949.1338]))
MoveViewPoint([949.1338],100)
Wait(2)
FadeFromColor([20.0],0)
SetGlobal("DuelOn","AR2202",1)
EndCutSceneMode()~ EXIT
END
To allow Player7 to duel, you'd need to identify these two states (and the ones referencing player4,5,6) as matched, identify the differences, clone the state to player7, and identify calling replies (maybe in another dialogue file) so that you can duplicate them as well. Okay, it's not
impossible, but it'd require me a good week of hacking (or a couple of months if you tried to do this in
WeiDU rather than in OCaml).