Jump to content


Photo

[BG2:ToB] TobEx Release Thread


  • Please log in to reply
578 replies to this topic

#281 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 04 October 2010 - 08:59 AM

Well, just having the NPCs join your Party would be a start. I intend them to work as the wulf in the Haiass-Mod or as a familiar. I don't know the game mechanics, so I can just guess, but why is it so difficult adding Player 7? Could the script not be altered as in: Whenever happens something to player 6 (changing area and so on) the same happens for player 7 if present. Kind of making any additional NPC dependant on NPC 6. Like this all the scripts could be altered automatically in the same way. Like "if there is a player 6, move also additional players.

Am I just getting something horrably wrong or would this be possible?


Marvin

It's possible, but very hard to do.

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.


#282 Igneous

Igneous
  • Member
  • 26 posts

Posted 04 October 2010 - 09:33 AM

Ascension64, I've just recently discovered TobEx and have been putting it to good use in my latest play-through. I'd like to thank you for your innovation and hard work. 'Externalise Class/Race Restrictions' in particular is wonderful, as are the fixes for Regeneration and others. I hope TobEx sees a lot more exposure, adoption, and recognition in the future. :)

I've got a small request of my own, actually; although I'm unsure as to how viable it would be in practice. As you probably know, whenever combat is engaged in-game, accessing any one of the other interface screens (such as the inventory, area map, character sheet, etc.) causes the combat music track to decrease in volume. However, when the player then returns to the game—whether by right-clicking a character portrait, pressing Esc or the 'G' hotkey, or by physically clicking the 'Return to Game' button—the music track is cut off and will only resume from the beginning once the game begins ticking over again. Is there any way to alter this behaviour, such that the combat music plays seamlessly when accessing and returning from the other screens?

Edited by Igneous, 04 October 2010 - 09:34 AM.


#283 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 04 October 2010 - 09:57 AM

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 :P 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 :D The Player7 method you describe would effectively make the 7th char into one of these zombies :unsure:

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 :lol:)

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#284 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 04 October 2010 - 10:22 AM

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 :P 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 :D The Player7 method you describe would effectively make the 7th char into one of these zombies :unsure:

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 :lol:)

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):

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).

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.


#285 Marvin

Marvin

    Sirius

  • Member
  • 197 posts

Posted 04 October 2010 - 11:06 AM

@ Lollorian
Well that was the question. Would banter and so on work without special scripting? Because I definitely do not want zombies in my team (well, maybe a Zombie-NPC) but the important thing for me is the dialogue, of course.
TheBigg pretty much answered to this and I'm very happy to know this now.

@TheBigg
I thought about cases like in your example as well. I don't know how many scripts actually work this way, but I guess there are not that many situations in which this happens. Also, would it creash the game if player 7 simply wouldn't duel? I mean if banters and romances work without special scripting effort and if we can live (for now) without seeing the protraits of the player 7/8/9, then it should really be tried. How much effort would it take to just break the party size restriction without caring about special scripting problems?


Marvin

#286 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 04 October 2010 - 12:07 PM

I thought about cases like in your example as well. I don't know how many scripts actually work this way, but I guess there are not that many situations in which this happens. Also, would it creash the game if player 7 simply wouldn't duel? I mean if banters and romances work without special scripting effort and if we can live (for now) without seeing the protraits of the player 7/8/9, then it should really be tried. How much effort would it take to just break the party size restriction without caring about special scripting problems?

That dialogue was the first thing that came to my mind, but it's by no means the only place where such a problem would occur. Just think of all the times the party is teleported to a new area or you receive quest XP - that is ALL handled by script (Player1 through Player6); if Player7 is not scripted, he'll not be affected by those events. If you decide to handle those scripts by having actions on Player6 also affect Player7, then more complex sequences would glitch (making duels a 2-on-1 in the case of Ust Natha, causing more serious bugs in other cases, although I can't think of a non-mod example offhand).

Edited by the bigg, 04 October 2010 - 12:08 PM.

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.


#287 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 04 October 2010 - 01:14 PM

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 ...

Erhm, to me, the obvious problem arises from the member not being a fully interactive characters... and so be able to level up, dual-class, switch items... and none of the monsters/non-full party members actually have any rule base that affects their stats, so they can be at 1st or 50th level and still have just 1 Hitpoint, same thac0 etc.
... this can lead them to be 21st level fighters for example, so they have base Thac0 of 0, even if they have been drained 20 levels by a vampire, yes, the next drain hit will kill them, but that doesn't really matter.

Deactivated account. The user today is known as The Imp.


#288 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 04 October 2010 - 01:17 PM

... yet another clueless post by a drooling moron. By Player7 I (and marvin, lollorian, ...) mean hacking tobex so we can have a seventh 'official' party member, not a green-circled entity that follows you like Haiass or your familiar.

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.


#289 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 04 October 2010 - 05:45 PM

This idea does promise seriously awesome hope then :coolthumb:

Btw, doing a string search of Player5 gives all the dialogues/scripts that have Player1-6 checks (Player5 is too generic to be of any special importance :lol:) ... I did this on all the BWP .baf/.d's and the results are freakin staggering :o It's gonna take a huge HUGE amount of work to get all the mods compatible with such a feature but I will offer my hand in Player7-ing too :D

Also, IF this feature were to be implemented and a Player7 object became valid, if a script uses Player7 (after conversion) would it still be valid on vanilla BGII-ToB BGMains?? Prolly not but if it was, that'd mean every other mod (and the next) can just update themselves instead of a separate Player7pack :P that converts all mods to use/check for the extra NPC ;)

EDIT: Final string search results, 10820 matches for "Player5" in a FULL BWP install's .baf/d's ... and 99% of them are a part of Player1-6 checks! And we musn't forget that these are just the UNcompiled scripts, there are huge numbers of bcs/dlg's too and not to forget the vanilla scripts either :devil:

Edited by Lollorian, 04 October 2010 - 05:49 PM.

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#290 Ascension64

Ascension64
  • Modder
  • 5983 posts

Posted 04 October 2010 - 10:12 PM

I'm sorry if this might be a little bit off topic, but I was wandering if it is possoble with ToBEx to increase the party size. I'm dieing to see a mod that can do this and everybody's always saying the .exe would have to be patched and that this it not easy. But now a lot of years have passed and TobEx seems to be doing exactly what everyone was saying wouldn't be possible.

So my question is whether it can be done with tobex or not.
Thanks,

Marvin

Sorry, to spoil all your hopes. The answer that it is possible, but something that requires re-writing a huge chunk of code (just as trying to add new races, classes, or spell levels), is hard (thanks the bigg) and not worth the effort. If you want re-coding on a grand scale, you can ask the GemRB folks. I don't think they'll oblige either, though.
However, what is it exactly that you want anyway? There are other ways of making companions follow you around...

I've got a small request of my own, actually; although I'm unsure as to how viable it would be in practice. As you probably know, whenever combat is engaged in-game, accessing any one of the other interface screens (such as the inventory, area map, character sheet, etc.) causes the combat music track to decrease in volume. However, when the player then returns to the game?whether by right-clicking a character portrait, pressing Esc or the 'G' hotkey, or by physically clicking the 'Return to Game' button?the music track is cut off and will only resume from the beginning once the game begins ticking over again. Is there any way to alter this behaviour, such that the combat music plays seamlessly when accessing and returning from the other screens?

No, sorry. Too much effort for too little gain. The reason is that the sound buffer doesn't quite update properly because the sound thread isn't entirely synchronised with the main thread when screens change.

Kit stuff

Will look into more detail - I don't fully understand the problem yet. The kit mostly seems to be treated by the game as a word[2] array. So 0x01020304 in the CRE file becomes read as kit 0x02010403.

--------------
Retired Modder
Note: I do not respond to profile comments/personal messages in regards to troubleshooting my modifications. Please post on the public forums instead.

Baldur's Gate Trilogy-WeiDU and Mods
Throne of Bhaal Extender (TobEx)

Contributions: (NWN2) A Deathstalker (voice acting) - (IWD2) IWD2 NPC Project (soundset editing) - (Misc) SHS PC Soundsets (voice acting)
Legacy: (BG/Tutu/BGT) Beregost Crash Fixer 1.9 (18 Jul 10) - (BG2) Enable conversations with charmed/dominated creatures (18 Jul 10) - (BG2) Experience Corrections (18 Jul 10) - (Misc) Platform Conversion Utility RC2 (13 Feb 10)


#291 Marvin

Marvin

    Sirius

  • Member
  • 197 posts

Posted 05 October 2010 - 06:03 AM

What I want is as follows:

I am currently playing a BWP install and I am in the BG1 Part of the game. My Party consists of: Mw, Viconia, Edwin, Minsc, Imoen, Braegar (mod npc). Now I'd like very much to add Dynaheir, Xzar and maybe Jaheira & Khalid to my Party without kicking out a member ofmy current Party. Obviously I'm interested in the Banter/romance/quest stuff that the NPCs have to offer, especially with BG1 NPC project installed. If there is anyway of doing this, I would be very thankful.

The most important things would be (if I got it right): ALtering the guy so having access to additional players inventory becomes possible. Altering the script so the xp is devided through the party size including the additional players 7/8/9/10. As for teleporting the party, the additional players could be stuck to player 5/6, just as Haiass and the familiar are stuck to player 1. Is this really so hard to accomplish? The other things would just be finework and can be left out in the beginning.

Marvin

#292 Igneous

Igneous
  • Member
  • 26 posts

Posted 05 October 2010 - 08:52 AM

No, sorry. Too much effort for too little gain. The reason is that the sound buffer doesn't quite update properly because the sound thread isn't entirely synchronised with the main thread when screens change.

Ah, too bad... that's always bugged me. Thanks, anyway.

#293 vilkacis

vilkacis

    Rashemen REPRESENT! Word to yo hamsta!

  • Modder
  • 1571 posts

Posted 05 October 2010 - 11:48 AM

drooling moron

Please don't do that.

And to be fair, Marvin was initially talking about a familiar-like seventh character.

#294 Marvin

Marvin

    Sirius

  • Member
  • 197 posts

Posted 05 October 2010 - 05:22 PM

yes u are right, I was comparing it to a familiar-like behavior, but obviously not regarding banters and so on. Just a small missunderstanding. Nothing to get excited about.

Marvin

#295 Era

Era
  • Member
  • 36 posts

Posted 05 October 2010 - 09:21 PM

@Ascension64 Any progress on finding the problem?

Edited by Era, 05 October 2010 - 11:11 PM.


#296 redrover72

redrover72
  • Member
  • 3 posts

Posted 06 October 2010 - 07:10 AM

Not sure how this is related to Tobex b12, but when I launch with tobex b12 my screenshot folder starts filling up as soon as I get to the game selection screen. Just noticed this morning when I found I only had 192k left on my HDD. After looking at the date stamps, it's taking anywhere between 1 and 5 screenshots per second! ouch. It was running a little slow last night, but it wasn't too bad, guess that's why. doh!

Launching with bgmain does not produce this behavior, so I rolled back to b11, which does not produce the behavior either.

I'm happy to put b12 back on and test if there is something specific you want me to check out.

p.s. this is from a fresh bwp "recommended" reinstall done yesterday afternoon, only removed 2 mods from that list, xan's voices for bg1 and tob hacks. was using the default tobex ini.


Edit:
OK, just did a separate install w/ b12 and disabled scs and spell revisions conflicts, and a few other things in the tobex.ini. I'm not getting the screenshot problem atm. Will post again if I can reproduce the problem.

Edited by redrover72, 06 October 2010 - 10:28 AM.


#297 Marvin

Marvin

    Sirius

  • Member
  • 197 posts

Posted 06 October 2010 - 04:09 PM

Another situation were additional party members come in handy. To fully enjoy the DSOTSC mod I should take Jet laia (is that her name?) in my party. Again I don't want to leave someone behind. For me, this disturbs the atmosphere of the game, since no real leader would let some of his companions behind just like this ;).

With "player 7" I could take her in my party, complete the quest and then seperate from her.


Marvin

#298 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 06 October 2010 - 05:13 PM

On that note, JetLaya's quest - the Banshee - would only deliver her quest-specific dialogues if Jetlaya is in your party (through InParty("Jetlaya") which is a harcoded function ... which might be a tad hard to check for Player7 without - in A64's words - grand scale recoding :coolthumb:)

It's things like that that make this specific idea somewhat like a hard to reach place :P Possible (both thebigg and A64 agree) but hard :unsure:

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#299 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 06 October 2010 - 10:09 PM

On that note, JetLaya's quest - the Banshee - would only deliver her quest-specific dialogues if Jetlaya is in your party (through InParty("Jetlaya") which is a harcoded function ...

Well, the InParty(plah... can be replaced with (in most cases) See("Jetlaya") ... so it's not hardcoded.

...which might be a tad hard to check for Player7 without - in A64's words - grand scale recoding :coolthumb:)

It's things like that that make this specific idea somewhat like a hard to reach place :P Possible (both thebigg and A64 agree) but hard :unsure:

I would think that for example the "Experience distribution" function would need a big recoding, the scripts can be recoded after, but the functions that regulate the party functions cannot.
Another such a thing is the script assignment... where the 7th party member gains the Player7.bcs script when it joins the party.

Edited by Jarno Mikkola, 06 October 2010 - 10:15 PM.

Deactivated account. The user today is known as The Imp.


#300 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 07 October 2010 - 05:47 PM

Ok, so that's a non-hardcodeable way :shifty:

But there's also the problem that you'll need to do that for EVERY joinable NPC out there :devil: So it's still tedious :P

PS: Might I suggest moving all the Player7 discussion to a new topic?? A64 did reply in the negative :unsure:

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod