171 lines
5.1 KiB
Plaintext
171 lines
5.1 KiB
Plaintext
|
|
|
|
|
|
void CastJoinTeam(object oSelf, object oPC)
|
|
{
|
|
int iDone = 0;
|
|
object oCreature;
|
|
object oTeam;
|
|
string sSide;
|
|
int iTeam = GetLocalInt(oPC, "team_bet");
|
|
|
|
|
|
|
|
oCreature = GetFirstObjectInArea(OBJECT_SELF);
|
|
while ((GetObjectType(oCreature)!=OBJECT_TYPE_CREATURE)||
|
|
(!GetIsEnemy(oCreature, oSelf))||(GetIsPC(oCreature))||
|
|
(GetTag(oCreature)=="starfall")||(GetTag(oCreature)=="reaper"))
|
|
{
|
|
oCreature =GetNextObjectInArea(OBJECT_SELF);
|
|
}
|
|
//FloatingTextStringOnCreature(GetName(OBJECT_SELF), oPC);
|
|
//FloatingTextStringOnCreature(GetName(oCreature), oPC);
|
|
|
|
if ((GetResRef(oCreature)=="dragon1")||(GetResRef(oCreature)=="zep_halfdrafn001")||
|
|
(GetResRef(oCreature)=="zep_marilithb001")||(GetResRef(oCreature)=="bard2")||
|
|
(GetResRef(oCreature)=="zep_pitfiend001")||(GetResRef(oCreature)=="zep_balrog001")||
|
|
(GetResRef(oCreature)=="dopple")||(GetResRef(oCreature)=="mistress2")||
|
|
(GetResRef(oCreature)=="notime3")||(GetResRef(oCreature)=="notime4")||
|
|
(GetResRef(oCreature)=="darcher")||(GetResRef(oCreature)=="death"))
|
|
{
|
|
if (iTeam==2)
|
|
{
|
|
sSide = "You have breached betting protocol by assisting your team";
|
|
SetLocalInt(oPC, "pc_side", 2);
|
|
}
|
|
else
|
|
{
|
|
sSide = "You have joined the Champions of Darkness";
|
|
SetLocalInt(oPC, "pc_side", 2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (iTeam==1)
|
|
{
|
|
sSide = "You have breached betting protocol by assisting your team";
|
|
SetLocalInt(oPC, "pc_side", 1);
|
|
}
|
|
else
|
|
{
|
|
sSide = "You have joined the Champions of Light";
|
|
SetLocalInt(oPC, "pc_side", 1);
|
|
}
|
|
}
|
|
AdjustReputation(oPC, oCreature, 100);
|
|
SetIsTemporaryFriend(oPC, oCreature);
|
|
|
|
oTeam = GetFirstFactionMember(oCreature, FALSE);
|
|
while (GetIsObjectValid(oTeam))
|
|
{
|
|
//AdjustReputation(oPC, oTeam, 100);
|
|
SetIsTemporaryFriend(oPC, oTeam, FALSE);
|
|
oTeam = GetNextFactionMember(oCreature, FALSE);
|
|
}
|
|
FloatingTextStringOnCreature(sSide, oPC);
|
|
}
|
|
|
|
|
|
void main()
|
|
{
|
|
object oDamager = GetLastDamager();
|
|
int oSpell = GetLastSpell();
|
|
object oPC = GetLastSpellCaster();
|
|
object oMod = GetModule();
|
|
int iDamage = GetTotalDamageDealt();
|
|
string oAtt;
|
|
string oMon;
|
|
object oDest;
|
|
int oSwing;
|
|
int oHWswing;
|
|
int iSFswing;
|
|
int iFBswing;
|
|
int iFBhit;
|
|
int oMhit;
|
|
int oPCdam;
|
|
int oMiss;
|
|
int iCHswing;
|
|
int iArenaChall =GetLocalInt(oMod, "challenge");
|
|
int iSFDuel =GetLocalInt(oMod, "duel_on");
|
|
int iWarWon = GetLocalInt(oMod, "war_won");
|
|
int iJoinSwitch = GetLocalInt(oPC, "join_switch");
|
|
int iHwar = GetLocalInt(oMod, "hwar_on");
|
|
int iFinalBattle = GetLocalInt(oPC, "final_on");
|
|
int iTeam = GetLocalInt(oPC, "team_bet");
|
|
|
|
//FloatingTextStringOnCreature(IntToString(oSpell)+" by "+GetName(oPC), oPC);
|
|
|
|
|
|
if (GetIsPC(oPC))
|
|
{
|
|
if ((GetLastSpellHarmful()==TRUE)&&(oDamager==oPC))
|
|
{
|
|
if (iArenaChall==1)
|
|
{
|
|
iCHswing = GetLocalInt(oPC, "pc_CHswing");
|
|
++iCHswing;
|
|
SetLocalInt(oPC, "pc_CHswing", iCHswing);
|
|
}
|
|
if (iSFDuel==1)
|
|
{
|
|
iSFswing = GetLocalInt(oPC, "pc_SFswing");
|
|
++iSFswing;
|
|
SetLocalInt(oPC, "pc_SFswing", iSFswing);
|
|
//FloatingTextStringOnCreature("swing "+IntToString(GetLocalInt(oPC, "pc_SFswing")), oPC);
|
|
}
|
|
if (iFinalBattle==1)
|
|
{
|
|
iFBswing = GetLocalInt(oPC, "pc_FBswing");
|
|
++iFBswing;
|
|
SetLocalInt(oPC, "pc_FBswing", iFBswing);
|
|
}
|
|
if (iHwar==1)
|
|
{
|
|
oHWswing = GetLocalInt(oPC, "pc_HWswing");
|
|
++oHWswing;
|
|
SetLocalInt(oPC, "pc_HWswing", oHWswing);
|
|
}
|
|
oSwing = GetLocalInt(oPC, "pc_swing");
|
|
++oSwing;
|
|
SetLocalInt(oPC, "pc_swing", oSwing);
|
|
}
|
|
if ((iHwar==1)&&(iJoinSwitch!=1)&&(iWarWon!=1)&&(GetLastSpellHarmful()==TRUE))
|
|
{
|
|
CastJoinTeam(OBJECT_SELF, oPC);
|
|
SetLocalInt(oPC, "join_switch", 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (GetLastSpellHarmful()==TRUE)
|
|
{
|
|
oAtt = GetResRef(oPC);
|
|
oAtt+="_ss";
|
|
oMiss = GetLocalInt(oMod, oAtt);
|
|
++oMiss;
|
|
SetLocalInt(oMod, oAtt, oMiss);
|
|
if (iDamage!=0)
|
|
{
|
|
oAtt = GetResRef(oPC);
|
|
oMon = oAtt+"_hh";
|
|
oMhit = GetLocalInt(oMod, oMon);
|
|
++oMhit;
|
|
SetLocalInt(oMod, oMon, oMhit);
|
|
}
|
|
}
|
|
}
|
|
//--------------------------------------------------------------------------
|
|
// GZ: 2003-10-16
|
|
// Make Plot Creatures Ignore Attacks
|
|
//--------------------------------------------------------------------------
|
|
if (GetPlotFlag(OBJECT_SELF))
|
|
{
|
|
return;
|
|
}
|
|
//--------------------------------------------------------------------------
|
|
// Execute old NWN default AI code
|
|
//--------------------------------------------------------------------------
|
|
ExecuteScript("nw_c2_defaultb", OBJECT_SELF);
|
|
|
|
}
|