PDA

View Full Version : Weird alignment/influence behaviour


Chaos0815
07-06-2007, 01:05 PM
Hi,
i am having trouble tempering with the aligment/influence of party members.

Goal:
- set influence on all partymembers to 50
- set goodevilvalues to about 50.
- removing the partymembers and making them rejoin.
- dont change player alignment in the process.

Sample save used:
- all evil high level char (0 alignment)
- most partymembers close to 100 influence, 0 aligment.

Case A:
SetGoodEvilValue( GetPartyMemberByIndex(Player_Number), good_evil );
SetInfluence( Player_Number,55);
RemoveNPCFromPartyToBase(Player_Number);
RemoveAvailableNPC(Player_Number);
DestroyObject(GetPartyMemberByIndex(Player_Number) );

... (different script/zone)...
AddAvailableNPCByObject(Player_Number,GetObjectByT ag("Tag"));
AddPartyMember(Player_Number,GetObjectByTag("Tag"));


Result:
- partymembers Inf/55, Align(100); <--- ??!?!
- player at 70; <--- !?!?!

Case B:

//SetGoodEvilValue( GetPartyMemberByIndex(Player_Number), good_evil );
SetInfluence( Player_Number,55);
RemoveAvailableNPC(Player_Number);
DestroyObject(GetPartyMemberByIndex(Player_Number) );

... (different script/zone)...
AddAvailableNPCByObject(Player_Number,GetObjectByT ag("Tag"));
AddPartyMember(Player_Number,GetObjectByTag("Tag"));


Result:
- partymembers Inf/55, Align(100); <--- ??!?!

So the partymembers aligment appears to be a function which is directly linked to the the player aligment with influence as a parameter.

Any ideas on how to circumvent that ?

Chaos0815

stoffe
07-06-2007, 03:38 PM
i am having trouble tempering with the aligment/influence of party members.

SetGoodEvilValue( GetPartyMemberByIndex(Player_Number), good_evil );
SetInfluence( Player_Number, 55);
RemoveNPCFromPartyToBase(Player_Number);
RemoveAvailableNPC(Player_Number);
DestroyObject(GetPartyMemberByIndex(Player_Number) );


Is Player_Number the same value in the script above? The GetPartyMemberByIndex() function does not take the same value as parameter as the SetInfluence() and Remove*() functions. The first takes an index of active party members you are walking around with (0-2) while the latter take the Party Table index as value (0-11).

Chaos0815
07-06-2007, 05:21 PM
Thx for this info:
SetGoodEvilValue( GetPartyMemberByIndex(Player_Number), good_evil ); ----> 0-2
SetInfluence( Player_Number, 55); ----> 0-11

I didn't know that, but what do i use instead to set the goodevil value for each single party member ?

Chaos0815

stoffe
07-06-2007, 08:54 PM
I didn't know that, but what do i use instead to set the goodevil value for each single party member ?


As far as I know you can't modify the alignment of party members without first spawning them into the game world. Spawn them in with SpawnAvailableNPC(), modify their alignment and then remove them again (unless they're meant to be on the active party).