1. The Player character does not respond when hir portrait is clicked while in Explore mode;
2. None of the party members respond when ordered to move while in Explore mode.
In Combat mode everyone responds as they should, so it is not an issue of the soundset files or of the soundset 2DAs.
After looking through sys_soundset_h, here's what I found:
1. Player character respond problem:
case SOUND_SITUATION_SELECTED:
{
nSound = SS_EXPLORE_SELECT_NEUTRAL;
if (IsFollower(oCreature))
{
nSound = SS_EXPLORE_SELECT_HATE;
int nApproval = GetFollowerApproval(oCreature);
if (nApproval >= GetLocalInt(GetModule(), APP_RANGE_VALUE_NEUTRAL))
nSound = SS_EXPLORE_SELECT_NEUTRAL;
if (nApproval >= GetLocalInt(GetModule(), APP_RANGE_VALUE_WARM))
nSound = SS_EXPLORE_SELECT_FRIENDLY;
if (nApproval >= GetLocalInt(GetModule(), APP_RANGE_VALUE_FRIENDLY))
nSound = SS_EXPLORE_SELECT_LOVE;
}
break;
Is the player character considered a follower? Because the toolset keeps referencing the follower as "member of the same party as player". But isn't the player also a member of the same party, i.e. "party member"?
If that is indeed so, then:
1. Instead of playing the default Neutral sound
2. the script would be checking for the Player character's Approval rating;
3. since the PC doesn't have an Approval rating, the script would attempt to play the default Hate sound;
4. but since player soundsets don't have hate replies (only neutral), no sound would be played at all.
I understand it's a rather thin premise, but that's the only remotely possible reason I've found so far for Player characters not responding on click when in Explore mode.
What I did:
Replaced
nSound = SS_EXPLORE_SELECT_HATE;
with
nSound = SS_EXPLORE_SELECT_NEUTRAL.
Would that be a solution?
2. Move order problem:
Here's what I found in sys_soundset_h:
if (nSituation == SOUND_SITUATION_ORDER_RECEIVED)
{
if (!IsStealthy(oCreature))
{
float fProb = GetM2DAFloat(TABLE_COMMANDS, "SoundsetProbability", nCommandType);
// No voice chat when moving in explore mode.
switch (nCommandType)
{
case COMMAND_TYPE_DRIVE:
case COMMAND_TYPE_MOVE_TO_LOCATION:
case COMMAND_TYPE_MOVE_TO_OBJECT:
if (nMode == GM_EXPLORE)
fProb = 0.0f;
}
if (fProb > 0.0f)
{
#ifdef DEBUG
Log_Trace(LOG_CHANNEL_SOUNDSETS, "sys_soundsets.play", "SOUND_SITUATION_ORDER_RECEIVED: Command = " + Log_GetCommandNameById(nCommandType) + ", Probability = " + ToString(fProb));
#endif
PlaySoundSet(oCreature, nSound, fProb);
}
}
}
else
{
#ifdef DEBUG
Log_Trace(LOG_CHANNEL_SOUNDSETS, "sys_soundsets.play", "oCreature: " + ToString(oCreature) + ", nSituation: " + ToString(nSituation) + ", Sound: " + ToString(nSound));
#endif
PlaySoundSet(oCreature, nSound);
What I did:
1. Removed the line
case COMMAND_TYPE_MOVE_TO_LOCATION:
2. Changed fProb = 0.0f to fProb = 1.0f;
Would that be a solution?
3. Implementation
Before you ask, yes, I tried implementing these changes. It's a tricky process, because sys_soundset_h is an "include", and can't be compiled on its own. After reading this thread, I did the following:
1. Changed sys_soundset_h, saved, exported as nss, put the nss into override;
2. Compiled the scripts which include sys_soundset_h (so far I found three: rules_core, player_core, creature_core). This put a whole bunch of files into my override/toolsetexport, among them another nss of sys_soundset_h;
3. Launched game.
Nothing happened.
So, there's a mistake, or several, in the above process.
Help would be appreciated.
P.S. If you're interested, my custom soundsets, which are fully workable, can be found here.
P.P.S. Sorry for the bland formatting, I tried to make it color-coded, but this forum engine reverted all my colors to white.
Modifié par Malcroix, 21 mars 2010 - 01:10 .





Retour en haut






