Merged redundant hak files. Moved hak scripts into module. Updated gitignore. Full Compile. Added release folder & archive.
69 lines
2.5 KiB
Plaintext
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()
|