GetFactionEqual(object, object)

Are both objects in the same faction?

int GetFactionEqual(
    object oFirstObject,
    object oSecondObject = OBJECT_SELF
);

Parameters

oFirstObject

First object to compare.

oSecondObject

Second object to compare against. (Default: OBJECT_SELF)


Description

Returns TRUE if the Faction Ids of the two objects are the same.

Remember, each new PC party has a seperate Id, as does each seperate faction for NPC's.

It doesn't matter which way round oFirstObject and oSecondObject are used.



Remarks

A great way to tell if another approaching creature is in the same faction as the calling object.

This is best used, in the upmost sense, to make sure NPC's do not attack thier actual allies that they should never go hostile to. It is a shame the default AI therefore doesn't use it.

It can also be used by NPC's in a PC's party to, for example, check if they are being attacked by thier masters friends, or for example, should help one being over another because they are in thier party (faction).


Version

1.62

Example

// Use in a henchmens conversation conditionals script. If the talking
// creature is in our faction, but *not* our master, we will not
// allow them to change anything but we will allow them to talk
// normally to us.

void main()
{
    // Get the PC speaker
    object oPC = GetPCSpeaker();

    // Get our master
    object oMaster = GetMaster(OBJECT_SELF);

    // Check faction and master status
    // * Will return TRUE if they are equal, but not our master
    if(GetFactionEqual(oTarget, OBJECT_SELF) == TRUE && 
       oMaster != oPC)
    {
        // Return TRUE
        return TRUE;
    }
    // Nope, just some guy - who still might be our master, however.
    return FALSE;
}

See Also

categories: Get Data from Creature Functions | Reputation/Faction Functions


 author: John Shuell, editor: Jasperre, additional contributor(s): Jasperre