Jaysyn904 e2f4ba74d5 Merged redundant hak files
Merged redundant hak files.  Moved hak scripts into module.  Updated gitignore.  Full Compile.  Added release folder & archive.
2024-12-12 15:02:17 -05:00

69 lines
2.5 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////////////
// REAL TIME STRATEGY ADVENTURE - Kit
// FILE:rtsa_headerf
// NAME: Faction header file
// SCRIPTED BY: Deva Bryson Winblood
// DATE: 8/3/2003
////////////////////////////////////////////////////////////////////////////////
void fnFactionAdjust(object oFaction1,object oFaction2,int nAmount=50)
{ // adjust reputations of both factions so they feel the same about each other
string sID1=GetLocalString(oFaction1,"sTeamID");
string sID2=GetLocalString(oFaction2,"sTeamID");
object oC1=GetWaypointByTag(sID1+"_LIMBO");
object oC2=GetWaypointByTag(sID2+"_LIMBO");
object oMember1=CreateObject(OBJECT_TYPE_CREATURE,sID1+"1",GetLocation(oC1),FALSE);
object oMember2=CreateObject(OBJECT_TYPE_CREATURE,sID2+"1",GetLocation(oC2),FALSE);
object oRunner;
if (nAmount==0)
SetPCDislike(oFaction1,oFaction2);
if (nAmount==100)
SetPCLike(oFaction1,oFaction2);
oRunner=GetFirstFactionMember(oMember1,FALSE);
while(oRunner!=OBJECT_INVALID)
{ // first faction
AdjustReputation(oRunner,oMember2,nAmount);
oRunner=GetNextFactionMember(oMember1,FALSE);
} // first faction
oRunner=GetFirstFactionMember(oMember2,FALSE);
while(oRunner!=OBJECT_INVALID)
{ // first faction
AdjustReputation(oRunner,oMember1,nAmount);
oRunner=GetNextFactionMember(oMember2,FALSE);
} // first faction
DestroyObject(oMember1);
DestroyObject(oMember2);
} // fnFactionAdjust()
void fnMatchFaction(object oMe)
{ // this will cause an NPC to adjust its faction settings to match those
// of its other faction members.
object oMod=GetModule();
int nTeams=GetLocalInt(oMod,"nRTSTeams");
int nC=1;
string sMID=GetLocalString(oMe,"sTeamID");
string sOID;
object oMemberMine=GetFirstFactionMember(oMe,FALSE);
object oOther;
object oDummy;
object oLimbo;
int nAmt;
if (oMemberMine==oMe) oMemberMine=GetNextFactionMember(oMe,FALSE);
while(nC<=nTeams)
{ // adjust rep
sOID=GetLocalString(oMod,"sRTSTeamID"+IntToString(nC));
oLimbo=GetWaypointByTag(sOID+"_LIMBO");
if (oLimbo==OBJECT_INVALID) oLimbo=GetWaypointByTag(sOID+"_START");
oDummy=CreateObject(OBJECT_TYPE_CREATURE,sOID+"1",GetLocation(oLimbo),FALSE);
oOther=GetFirstFactionMember(oDummy,FALSE);
if (oOther==oDummy) oOther=GetNextFactionMember(oDummy,FALSE);
nAmt=GetReputation(oOther,oMemberMine);
AdjustReputation(oMe,oOther,nAmt);
nAmt=GetReputation(oMemberMine,oOther);
AdjustReputation(oOther,oMe,nAmt);
DestroyObject(oDummy);
nC++;
} // adjust rep
} // fnMatchFaction()