Jaysyn904 5e558169a0 Initial Commit
Initial Commit
2025-04-03 11:24:16 -04:00

1273 lines
46 KiB
Plaintext

#include "nw_i0_generic"
#include "x0_i0_petrify"
#include "onpercept_dark"
#include "prc_inc_util"
void Normalize(object oPC)
{
effect eEffect1 = EffectEthereal();
RemoveEffectOfType(oPC, GetEffectType(eEffect1));
}
void JoinBackedTeam(object oPC)
{
int iDone = 0;
object oCreature;
object oCreature2;
object oTeam;
string sSide;
int iTeam = GetLocalInt(oPC, "team_bet");
oCreature = GetFirstObjectInArea(OBJECT_SELF);
while (GetIsObjectValid(oCreature))
{
if ((GetObjectType(oCreature)==OBJECT_TYPE_CREATURE)&&(!GetIsPC(oCreature))&&
(GetTag(oCreature)!="starfall")&&(GetTag(oCreature)!="reaper"))
{
SetIsTemporaryEnemy(oPC, oCreature);
}
oCreature =GetNextObjectInArea(OBJECT_SELF);
}
oCreature = GetFirstObjectInArea(OBJECT_SELF);
while ((GetObjectType(oCreature)!=OBJECT_TYPE_CREATURE)||
(!GetIsEnemy(oCreature, oPC))||(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"))&&(iTeam==2))
{
AdjustReputation(oPC, oCreature, 100);
SetIsTemporaryFriend(oPC, oCreature);
oTeam = GetFirstFactionMember(oCreature, FALSE);
while (GetIsObjectValid(oTeam))
{
SetIsTemporaryFriend(oPC, oTeam, FALSE);
oTeam = GetNextFactionMember(oCreature, FALSE);
}
}
else 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"))&&(iTeam==1))
{
oCreature2 = GetFirstObjectInArea(OBJECT_SELF);
while ((GetObjectType(oCreature2)!=OBJECT_TYPE_CREATURE)||
(!GetIsEnemy(oCreature, oCreature2))||(GetIsPC(oCreature2))||
(GetTag(oCreature2)=="starfall")||(GetTag(oCreature2)=="reaper"))
{
oCreature2 =GetNextObjectInArea(OBJECT_SELF);
}
AdjustReputation(oPC, oCreature2, 100);
SetIsTemporaryFriend(oPC, oCreature2);
oTeam = GetFirstFactionMember(oCreature2, FALSE);
while (GetIsObjectValid(oTeam))
{
SetIsTemporaryFriend(oPC, oTeam, FALSE);
oTeam = GetNextFactionMember(oCreature2, FALSE);
}
}
else 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"))&&(iTeam==1))
{
AdjustReputation(oPC, oCreature, 100);
SetIsTemporaryFriend(oPC, oCreature);
oTeam = GetFirstFactionMember(oCreature, FALSE);
while (GetIsObjectValid(oTeam))
{
SetIsTemporaryFriend(oPC, oTeam, FALSE);
oTeam = GetNextFactionMember(oCreature, FALSE);
}
}
else 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"))&&(iTeam==2))
{
oCreature2 = GetFirstObjectInArea(OBJECT_SELF);
while ((GetObjectType(oCreature2)!=OBJECT_TYPE_CREATURE)||
(!GetIsEnemy(oCreature, oCreature2))||(GetIsPC(oCreature2))||
(GetTag(oCreature2)=="starfall")||(GetTag(oCreature2)=="reaper"))
{
oCreature2 =GetNextObjectInArea(OBJECT_SELF);
}
AdjustReputation(oPC, oCreature2, 100);
SetIsTemporaryFriend(oPC, oCreature2);
oTeam = GetFirstFactionMember(oCreature2, FALSE);
while (GetIsObjectValid(oTeam))
{
SetIsTemporaryFriend(oPC, oTeam, FALSE);
oTeam = GetNextFactionMember(oCreature2, FALSE);
}
//FloatingTextStringOnCreature("fell through", oPC);
}
}
void JoinTeam2(object oSelf, object oPC)
{
int iDone = 0;
object oCreature;
object oTeam;
string sSide;
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"))
{
sSide = "You have joined the Champions of Darkness";
SetLocalInt(oPC, "pc_side", 2);
}
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 LastHit2()
{
object oMod = GetModule();
object oPC = GetLastDamager(OBJECT_SELF);
int oDam = GetTotalDamageDealt();
string oAtt;
string oSelf;
string oMon;
object oDest;
object oLast;
int oHit;
int oSwing;
int oMhit;
int oPCdam;
int oSDTaken;
int oUDTaken;
int oSDDealt;
int oUDDealt;
int iSFhit;
int iSFdam;
int iFBhit;
int iFBdam;
int oHWdam;
int oHWhit;
int iCHdam;
int iCHhit;
int mCount;
int iCHswing;
int iHWswing;
int iPCswing;
int iPChit;
int iSFswing;
int iFBswing;
int iArenaChall =GetLocalInt(oMod, "challenge");
int iSFDuel =GetLocalInt(oMod, "duel_on");
int iFinalBattle = GetLocalInt(oPC, "final_on");
int iWarWon = GetLocalInt(oMod, "war_won");
int iJoinSwitch = GetLocalInt(oPC, "join_switch");
int iHwar = GetLocalInt(oMod, "hwar_on");
//FloatingTextStringOnCreature("duel on: "+IntToString(GetLocalInt(oMod, "duel_on")), oPC);
oSwing = GetLocalInt(oPC, "pc_swing");
iPChit = GetLocalInt(oPC, "pc_hit");
iCHswing = GetLocalInt(oPC, "pc_CHswing");
iSFswing = GetLocalInt(oPC, "pc_SFswing");
iFBswing = GetLocalInt(oPC, "pc_FBswing");
iHWswing = GetLocalInt(oPC, "pc_HWswing");
if (GetIsPC(oPC))
{
oHit = GetLocalInt(oPC, "pc_hit");
oPCdam = GetLocalInt(oPC, "player_dd");
++oHit;
oPCdam+=oDam;
if (oHit>oSwing){oHit=oSwing;}
SetLocalInt(oPC, "pc_hit", oHit);
SetLocalInt(oPC, "player_dd", oPCdam);
if (GetName(GetLastWeaponUsed(oPC))=="")
{
iPCswing = GetLocalInt(oPC, "pc_swing");
++iPCswing;
if (oHit>iPCswing){oHit=iPCswing;}
SetLocalInt(oPC, "pc_hit", oHit);
SetLocalInt(oPC, "pc_swing", iPCswing);
}
//FloatingTextStringOnCreature("hwar on:"+IntToString(iHwar), oPC);
//FloatingTextStringOnCreature("war won:"+IntToString(iWarWon), oPC);
if (iArenaChall==1)
{
iCHdam = GetLocalInt(oPC, "pc_CHdam");
iCHhit = GetLocalInt(oPC, "pc_CHhit");
iCHdam+=oDam;
++iCHhit;
if (iCHhit>iCHswing){iCHhit=iCHswing;}
SetLocalInt(oPC, "pc_CHhit", iCHhit);
SetLocalInt(oPC, "pc_CHdam", iCHdam);
if (GetName(GetLastWeaponUsed(oPC))=="")
{
iCHswing = GetLocalInt(oPC, "pc_CHswing");
iCHhit = GetLocalInt(oPC, "pc_CHhit");
++iCHswing;
if (iCHhit>iCHswing){iCHhit=iCHswing;}
SetLocalInt(oPC, "pc_CHhit", iCHhit);
SetLocalInt(oPC, "pc_CHswing", iCHswing);
}
}
if (iSFDuel==1)
{
iSFdam = GetLocalInt(oPC, "pc_SFdam");
iSFhit = GetLocalInt(oPC, "pc_SFhit");
iSFdam+=oDam;
++iSFhit;
if (iSFhit>iSFswing){iSFhit=iSFswing;}
SetLocalInt(oPC, "pc_SFhit", iSFhit);
SetLocalInt(oPC, "pc_SFdam", iSFdam);
if (GetName(GetLastWeaponUsed(oPC))=="")
{
iSFswing = GetLocalInt(oPC, "pc_SFswing");
iSFhit = GetLocalInt(oPC, "pc_SFhit");
++iSFswing;
if (iSFhit>iSFswing){iSFhit=iSFswing;}
SetLocalInt(oPC, "pc_SFhit", iSFhit);
SetLocalInt(oPC, "pc_SFswing", iSFswing);
}
}
if (iFinalBattle==1)
{
iFBdam = GetLocalInt(oPC, "pc_FBdam");
iFBhit = GetLocalInt(oPC, "pc_FBhit");
iFBdam+=oDam;
++iFBhit;
if (iFBhit>iFBswing){iFBhit=iFBswing;}
SetLocalInt(oPC, "pc_FBhit", iFBhit);
SetLocalInt(oPC, "pc_FBdam", iFBdam);
if (GetName(GetLastWeaponUsed(oPC))=="")
{
iFBswing = GetLocalInt(oPC, "pc_FBswing");
iFBhit = GetLocalInt(oPC, "pc_FBhit");
++iFBswing;
if (iFBhit>iFBswing){iFBhit=iFBswing;}
SetLocalInt(oPC, "pc_FBhit", iFBhit);
SetLocalInt(oPC, "pc_FBswing", iFBswing);
}
}
if (iHwar==1)
{
mCount = 0;
oHWdam = GetLocalInt(oPC, "pc_HWdam");
oHWhit = GetLocalInt(oPC, "pc_HWhit");
++oHWhit;
oHWdam+=oDam;
if (oHWhit>iHWswing){oHWhit=iHWswing;}
SetLocalInt(oPC, "pc_HWhit", oHWhit);
SetLocalInt(oPC, "pc_HWdam", oHWdam);
if (GetName(GetLastWeaponUsed(oPC))=="")
{
iHWswing = GetLocalInt(oPC, "pc_HWswing");
++iHWswing;
if (oHWhit>iHWswing){oHWhit=iHWswing;}
SetLocalInt(oPC, "pc_HWhit", oHWhit);
SetLocalInt(oPC, "pc_HWswing", iHWswing);
}
if (iWarWon==1)
{
oLast = GetFirstObjectInArea(GetArea(oPC));
while (GetIsObjectValid(oLast))
{
if ((GetObjectType(oLast)==OBJECT_TYPE_CREATURE)&&(!GetIsPC(oLast))&&(!GetIsDead(oLast))
&&(GetTag(oLast)!="starfall")&&(GetTag(oLast)!="reaper"))
{
++mCount;
}
oLast = GetNextObjectInArea(GetArea(oPC));
}
//FloatingTextStringOnCreature("m count:"+IntToString(mCount), oPC);
if (mCount==0)
{
SetLocalInt(oMod, "challenge", 0);
SetLocalInt(oMod, "d1", 0);
SetLocalInt(oMod, "d2", 0);
SetLocalInt(oMod, "d2a", 0);
SetLocalInt(oMod, "d3", 0);
SetLocalInt(oMod, "d4", 0);
SetLocalInt(oMod, "d5", 0);
SetLocalInt(oMod, "ch_hw", 0);
SetLocalInt(oMod, "ch_dr", 0);
SetLocalInt(oMod, "ch_bl", 0);
SetLocalInt(oMod, "ch_pf", 0);
SetLocalInt(oMod, "ch_df", 0);
SetLocalInt(oMod, "ch_pm", 0);
SetLocalInt(oMod, "ch_bm", 0);
SetLocalInt(oMod, "ch_lm", 0);
SetLocalInt(oMod, "ch_ll", 0);
SetLocalInt(oMod, "ch_xx", 0);
SetLocalInt(oMod, "gr_xx", 0);
SetLocalInt(oMod, "sw_hw", 0);
SetLocalInt(oMod, "sw_dr", 0);
SetLocalInt(oMod, "sw_bl", 0);
SetLocalInt(oMod, "sw_pf", 0);
SetLocalInt(oMod, "sw_df", 0);
SetLocalInt(oMod, "sw_pm", 0);
SetLocalInt(oMod, "sw_bm", 0);
SetLocalInt(oMod, "sw_lm", 0);
SetLocalInt(oMod, "sw_ll", 0);
SetLocalInt(oMod, "sw_xx", 0);
SetLocalInt(oMod, "hwar_on", 0);
DelayCommand(3.0, FloatingTextStringOnCreature
("** You are the last one standing **", oPC));
}
}
}
}
}
void LastHit()
{
object oKiller = GetLastKiller();
object oSelf = OBJECT_SELF;
string sKiller = GetName(oKiller);
string sVictim = GetName(oSelf);
string sAnnounce;
if (sKiller ==""){sKiller = "An unseen force";}
// generate a random death message
int iDice = d10();
switch(iDice)
{
case 1: {sAnnounce = sKiller+" sends "+sVictim+" into early retirement!";}break;
case 2: {sAnnounce = sKiller+" paints the pavement red with "+sVictim+"!";}break;
case 3: {sAnnounce = sKiller+" dices "+sVictim+" into small pieces!";}break;
case 4: {sAnnounce = sKiller+"'s face is the last thing that "+sVictim+" sees!";}break;
case 5: {sAnnounce = sVictim+" doesn't survive "+sKiller+"'s brutal attack!";}break;
case 6: {sAnnounce = sKiller+" decapitates "+sVictim+"!";}break;
case 7: {sAnnounce = sKiller+" cuts "+sVictim+" clean in half!";}break;
case 8: {sAnnounce = sKiller+" helps "+sVictim+" to the pavement!";}break;
case 9: {sAnnounce = sKiller+" tears "+sVictim+" a new asshole!";}break;
case 10: {sAnnounce = sKiller+" slices "+sVictim+" like an onion!";}break;
}
if (oKiller==OBJECT_INVALID){sAnnounce = sVictim+" dies from a fatal wound!";}
// send message to all players
object oPlayer = GetFirstPC();
while (GetIsObjectValid(oPlayer))
{
SendMessageToPC(oPlayer, sAnnounce);
oPlayer = GetNextPC();
}
DelayCommand(3.2, LastHit2());
}
void QuickRestore(object oPC)
{
object oCaster;
oCaster = oPC;
object oTarget;
oTarget = oPC;
AssignCommand(oCaster, ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, oTarget, METAMAGIC_ANY, TRUE, 20, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
}
void DeathStats(object oPC)
{
object oMod = GetModule();
int oDam = GetTotalDamageDealt();
int oHWhit = GetLocalInt(oPC, "pc_HWhit");
int oHit = GetLocalInt(oPC, "pc_hit");
int oPCdam = GetLocalInt(oPC, "player_dd");
int oHWdam = GetLocalInt(oPC, "pc_HWdam");
int iCHhit = GetLocalInt(oPC, "pc_CHhit");
int iCHdam = GetLocalInt(oPC, "pc_CHdam");
int iSFhit = GetLocalInt(oPC, "pc_SFhit");
int iSFdam = GetLocalInt(oPC, "pc_SFdam");
int iFBhit = GetLocalInt(oPC, "pc_FBhit");
int iFBdam = GetLocalInt(oPC, "pc_FBdam");
int iArenaChall = GetLocalInt(oMod, "challenge");
int iSFDuel = GetLocalInt(oMod, "duel_on");
int iFinalBattle = GetLocalInt(oPC, "final_on");
SetLocalInt(oPC, "pc_HWhit", ++oHWhit);
SetLocalInt(oPC, "pc_hit", ++oHit);
SetLocalInt(oPC, "player_dd", oPCdam+oDam);
SetLocalInt(oPC, "pc_HWdam", oHWdam+oDam);
if (iArenaChall==1)
{
SetLocalInt(oPC, "pc_CHhit", ++iCHhit);
SetLocalInt(oPC, "pc_CHdam", iCHdam+oDam);
}
if (iSFDuel==1)
{
SetLocalInt(oPC, "pc_SFhit", ++iSFhit);
SetLocalInt(oPC, "pc_SFdam", iSFdam+oDam);
}
if (iFinalBattle==1)
{
SetLocalInt(oPC, "pc_FBhit", ++iFBhit);
SetLocalInt(oPC, "pc_FBdam", iFBdam+oDam);
}
}
void spawner(object oPC, string oCreature, int oDrag)
{
object oTarget;
if (oDrag==1){oTarget=GetWaypointByTag("big_wp");}
if (oDrag==0){oTarget = GetWaypointByTag("monster_wp");}
if (oDrag==2){oTarget = GetWaypointByTag("starfall_wp");}
location lTarget = GetLocation(oTarget);
object oSpawn = CreateObject(OBJECT_TYPE_CREATURE, oCreature, lTarget);
oTarget = oSpawn;
if (oDrag!=2)
{
SetIsTemporaryEnemy(oPC, oTarget);
AssignCommand(oTarget, ActionAttack(oPC));
AssignCommand(oTarget, DetermineCombatRound(oPC));
oTarget = oSpawn;
int nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget));
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget)));
}
}
void DoEffect(float oDelay, int oEffect, string oWaypoint)
{
object oTarget;
oTarget = GetObjectByTag(oWaypoint);
int nInt;
nInt = GetObjectType(oTarget);
effect eEffect;
eEffect = EffectVisualEffect(oEffect);
if (nInt != OBJECT_TYPE_WAYPOINT)
DelayCommand(oDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,
eEffect, oTarget));
else
DelayCommand(oDelay, ApplyEffectAtLocation(DURATION_TYPE_INSTANT,
eEffect, GetLocation(oTarget)));
}
void ResetPools(object oPC)
{
object oMod = GetModule();
object oP1 = GetObjectByTag("pool1");
object oP2 = GetObjectByTag("pool2");
object oP3 = GetObjectByTag("fountain1");
object oP4 = GetObjectByTag("fountain2");
object oLever1 = GetObjectByTag("pool_lever");
object oLever2 = GetObjectByTag("fount_lever");
effect eEffect = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY);
AssignCommand(oPC, PlaySound("sce_negative"));
AssignCommand(oLever1, ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
AssignCommand(oLever2, ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
RemoveEffectOfType(oP1, GetEffectType(eEffect));
RemoveEffectOfType(oP2, GetEffectType(eEffect));
RemoveEffectOfType(oP3, GetEffectType(eEffect));
RemoveEffectOfType(oP4, GetEffectType(eEffect));
SetLocalInt(oMod, "fountain_state", 0);
SetLocalInt(oMod, "pool_state", 0);
}
void PCEffect(float oDelay, int oEffect, object oPC)
{
effect eEffect;
eEffect = EffectVisualEffect(oEffect);
DelayCommand(oDelay, ApplyEffectAtLocation(DURATION_TYPE_INSTANT,
eEffect, GetLocation(oPC)));
}
void SoundPlay(float oDelay, string oSound, object oPC)
{
DelayCommand(oDelay, AssignCommand(oPC, PlaySound(oSound)));
}
void Message (float oDelay, string oMSG, object oPC)
{
DelayCommand(oDelay, FloatingTextStringOnCreature(oMSG, oPC));
}
void CastPC(float oDelay, int eEffect, object oPC)
{
DelayCommand(oDelay, AssignCommand(oPC, ActionCastSpellAtObject
(eEffect, oPC, METAMAGIC_ANY, TRUE, 20,
PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
}
void BattleRest (object oPC)
{
DelayCommand(5.0, PRCForceRest(oPC));
PCEffect(5.0,VFX_FNF_NATURES_BALANCE, oPC);
Message(7.0, "Rest Granted", oPC);
//CastPC(9.0, SPELL_ETHEREALNESS, oPC);
//Message(9.0, "Buff phase initiated: Buff or attack now", oPC);
}
void Place(string oPlaceable, string oWaypoint)
{
location lTarget;
object oTarget = GetWaypointByTag(oWaypoint);
lTarget = GetLocation(oTarget);
object oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, oPlaceable, lTarget);
}
void PlaceCreature(string oPlaceable, string oWaypoint)
{
location lTarget;
object oTarget = GetWaypointByTag(oWaypoint);
lTarget = GetLocation(oTarget);
object oSpawn = CreateObject(OBJECT_TYPE_CREATURE, oPlaceable, lTarget);
}
void Cast(int nSpell, object oPlayer)
{
AssignCommand(oPlayer,
ActionCastSpellAtObject(
nSpell,
oPlayer,
METAMAGIC_ANY,
TRUE,
20,
PROJECTILE_PATH_TYPE_DEFAULT,
TRUE));
}
void Sound (float oDelay, string oSound, object oPC)
{
DelayCommand(oDelay, AssignCommand(oPC, PlaySound(oSound)));
}
void NPCvoice(object oSelf, object oPC, int iSet)
{
int iVoice;
float oDice;
switch (iSet)
{
case 1: iVoice = VOICE_CHAT_ATTACK;break;
case 2: iVoice = VOICE_CHAT_BATTLECRY1;break;
case 3: iVoice = VOICE_CHAT_BATTLECRY2;break;
case 4: iVoice = VOICE_CHAT_BATTLECRY3;break;
case 5: iVoice = VOICE_CHAT_THREATEN;break;
case 6: iVoice = VOICE_CHAT_CHEER;break;
case 7: iVoice = VOICE_CHAT_CUSS;break;
case 8: iVoice = VOICE_CHAT_FLEE;break;
case 9: iVoice = VOICE_CHAT_GOODBYE;break;
case 10: iVoice = VOICE_CHAT_THANKS;break;
case 11: iVoice = VOICE_CHAT_WEAPONSUCKS;break;
case 12: iVoice = VOICE_CHAT_LAUGH;break;
}
oDice = IntToFloat(d2());
oDice +=0.2;
AssignCommand(oSelf, SetFacingObject(oPC));
DelayCommand(oDice+0.5, AssignCommand(oSelf, PlayVoiceChat(iVoice)));
}
void LeaveTeam(object oPC)
{
object oCreature;
object oPlayer;
oCreature = GetFirstObjectInArea(OBJECT_SELF);
while ((GetObjectType(oCreature)!=OBJECT_TYPE_CREATURE)||
(GetIsPC(oCreature))||(GetTag(oCreature)=="starfall")||
(GetTag(oCreature)=="reaper"))
{
oCreature = GetNextObjectInArea(OBJECT_SELF);
}
oPlayer = GetFirstPC();
while (GetIsObjectValid(oPlayer))
{
//AdjustReputation(oPC, oCreature, -100);
SetIsTemporaryEnemy(oPC, oCreature, FALSE);
SetLocalInt(oPC, "join_switch", 0);
oPlayer = GetNextPC();
}
}
void TeamCheer()
{
object oCreature;
object oTeam;
float oDelay;
float oDelay2;
oCreature = GetFirstObjectInArea(OBJECT_SELF);
while ((GetObjectType(oCreature)!=OBJECT_TYPE_CREATURE)||
(GetIsPC(oCreature))||(GetTag(oCreature)=="starfall")||
(GetTag(oCreature)=="reaper"))
{
oCreature =GetNextObjectInArea(OBJECT_SELF);
}
oTeam = GetFirstFactionMember(oCreature, FALSE);
while (GetIsObjectValid(oTeam))
{
if (!GetIsDead(oTeam))
{
if ((GetResRef(OBJECT_SELF)=="death")|| (GetResRef(OBJECT_SELF)=="bard2")||
(GetResRef(OBJECT_SELF)=="darcher")||(GetResRef(OBJECT_SELF)=="notime2")
||(GetResRef(OBJECT_SELF)=="div2")||(GetResRef(OBJECT_SELF)=="pfiend2")
||(GetResRef(OBJECT_SELF)=="horod2")||(GetResRef(OBJECT_SELF)=="pwar3")
||(GetResRef(OBJECT_SELF)=="notime1"))
{
oDelay = IntToFloat(d3()+3);
oDelay2 = oDelay - 0.2;
DelayCommand(oDelay, AssignCommand(oTeam, ClearAllActions()));
DelayCommand(oDelay, AssignCommand(oTeam, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3)));
DelayCommand(oDelay2, PlayVoiceChat(VOICE_CHAT_CHEER, oTeam));
}
else
{
oDelay = IntToFloat(d3()+3);
oDelay2 = oDelay - 0.2;
DelayCommand(oDelay, AssignCommand(oTeam, ClearAllActions()));
DelayCommand(oDelay, AssignCommand(oTeam, ActionPlayAnimation
(ANIMATION_FIREFORGET_TAUNT)));
DelayCommand(oDelay2, PlayVoiceChat(VOICE_CHAT_CHEER, oTeam));
}
}
oTeam = GetNextFactionMember(oCreature, FALSE);
}
}
void HolyScore(object oSelf)
{
// initialiise objects
object oMod = GetModule();
object oPC = GetFirstPC();
object oCreature = oSelf;
object oKiller = GetLastKiller();
object oHost = GetObjectByTag("starfall");
int oDam = GetTotalDamageDealt();
object oPlayer;
object oTeam;
object oPC2;
// initialise integers
int iDice;
int iKills;
int iSCount = 0;
int iPCSide;
int oBonus;
int iModCount;
int iHWkills;
int oHWhit;
int oHWdam;
int oHeaven = GetLocalInt(oMod, "heav_score");
int oHell = GetLocalInt(oMod, "hell_score");
int oHeavloss = GetLocalInt(oMod, "heav_loss");
int oHellloss = GetLocalInt(oMod, "hell_loss");
int iHvcas = GetLocalInt(oMod, "heav_cas");
int iHlcas = GetLocalInt(oMod, "hell_cas");
int iHvTotCas = GetLocalInt(oMod, "iHvTotCas");
int iHlTotCas = GetLocalInt(oMod, "iHlTotCas");
int iMostKills = GetLocalInt(oMod, "MostKills");
int iHWPCkillTot = GetLocalInt(oPC, "iHWPCkillTot");
int iDfire = GetLocalInt(oMod, "iDfire");
int iTeamBet = GetLocalInt(oPC, "team_bet");
int iWager = GetLocalInt(oPC, "wager");
int iTWwager = GetLocalInt(oPC, "TWwager");
int iTLwager = GetLocalInt(oPC, "TLwager");
int iOdds = GetLocalInt(oPC, "iOdds");
int iOdds2 = GetLocalInt(oPC, "iOdds2");
int iNPCduel = GetLocalInt(oPC, "npc_duel");
int iWager2;
// initialise strings
string sCHbet = GetLocalString(oPC, "CHbet");
string sKiller;
string sVictim;
string sChamp;
string sTop;
string sAnnounce;
string sRes;
string sRes2;
string sRes3;
string mRes;
int iXploit = GetLocalInt(oMod, "xcheck");
// get module variables for stat tracking
if (iXploit==1){return;}
sChamp = GetLocalString(oMod, "sChamp");
sKiller = GetName(oKiller);
sVictim = GetName(oSelf);
if (sKiller ==""){sKiller = "An unseen God";}
if (sKiller =="The Arena of Champions"){sKiller = "The Phoenix-Dragon";}
// generate a random death message
iDice = d8();
switch(iDice)
{
case 1: {sAnnounce = sKiller+" sends "+sVictim+" into early retirement!";}break;
case 2: {sAnnounce = sKiller+" paints the pavement red with "+sVictim+"!";}break;
case 3: {sAnnounce = sKiller+" dices "+sVictim+" into small pieces!";}break;
case 4: {sAnnounce = sKiller+"'s face is the last thing that "+sVictim+" sees!";}break;
case 5: {sAnnounce = sVictim+" doesn't survive "+sKiller+"'s brutal attack!";}break;
case 6: {sAnnounce = sKiller+" decapitates "+sVictim+"!";}break;
case 7: {sAnnounce = sKiller+" cuts "+sVictim+" clean in half!";}break;
case 8: {sAnnounce = sKiller+" helps "+sVictim+" to the pavement!";}break;
}
if (oKiller==OBJECT_INVALID){sAnnounce = sVictim+" dies from a fatal wound.";}
// send message to all players
oPlayer = GetFirstPC();
while (GetIsObjectValid(oPlayer))
{
SendMessageToPC(oPlayer, sAnnounce);
oPlayer = GetNextPC();
}
// add to holy war kill totals for PC scoreboard
if (GetIsPC(oKiller))
{
++iHWPCkillTot;
SetLocalInt(oKiller, "iHWPCkillTot", iHWPCkillTot);
}
// assign integers to each monsters resref for stat tracking
sRes = GetResRef(OBJECT_SELF);
sRes2 = GetResRef(oKiller);
sRes+="_x";
sRes2+="_k";
sRes3 = GetResRef(oKiller)+"_HWk";
iKills = GetLocalInt(oMod, sRes2);
iHWkills = GetLocalInt(oMod, sRes3);
++iKills;
++iHWkills;
SetLocalInt(oMod, sRes3, iHWkills);
SetLocalInt(oMod, sRes2, iKills);
SetLocalString(oMod, sRes, " [Dead]");
// check to see if the highest kill score has been beaten
if (iHWkills>iMostKills)
{
SetLocalInt(oMod, "MostKills", iKills);
sTop = GetName(oKiller);
iModCount = GetLocalInt(oMod, "champ_count");
++iModCount;
SetLocalInt(oMod, "champ_count", iModCount);
if (!GetIsPC(oKiller))
{
oHWdam = GetLocalInt(oPC, "pc_HWdam");
oHWhit = GetLocalInt(oPC, "pc_HWhit");
++oHWhit;
oHWdam+=oDam;
SetLocalInt(oPC, "pc_HWhit", oHWhit);
SetLocalInt(oPC, "pc_HWdam", oHWdam);
mRes = GetResRef(oKiller);
mRes +="_ch";
SetLocalInt(oMod, mRes,iModCount);
}
oPC2 = GetFirstPC();
while (GetIsObjectValid(oPC2))
{
if (sTop==GetName(oPC2))
{
SetLocalInt(oPC2, "champ_won", 1);
}
else
{
SetLocalInt(oPC2, "champ_won", 0);
}
oPC2 = GetNextPC();
}
sChamp = sTop+" is the match champion with ";
sChamp += IntToString(iHWkills);
sChamp += " kills!";
SetLocalString(oMod, "sChamp", sChamp);
if (iHWkills==1){sChamp = "The top kill-count was only "+IntToString(iHWkills)+
" kill. "+sTop+" scored the first kill and is therefore awarded the championship.";}
}
// count the remaining members of the creature just killed's faction
oTeam = GetFirstFactionMember(oSelf, FALSE);
while (GetIsObjectValid(oTeam))
{
if (!GetIsDead(oTeam))
{
++iSCount;
}
oTeam = GetNextFactionMember(oSelf, FALSE);
}
// if there are no survivors on the team of the victim - finish the match
//Message(3.0, IntToString(iSCount), oPC);
//Message(3.0, IntToString(iDfire), oPC);
if ((iSCount==0)&&(iDfire!=1))
{
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"))
{
SetLocalInt(oMod, "iDfire", 1);
oPC = GetFirstPC();
while (GetIsObjectValid(oPC))
{
iPCSide = GetLocalInt(oPC, "pc_side");
switch (iPCSide)
{
case 0: {
if (iTeamBet==1)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
iWager2=iWager*2;
iTWwager+=iWager2-iWager;
SetLocalInt(oPC, "TWwager", iTWwager);
SetLocalInt(oPC, "winnings", iWager);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
Message(6.0, "** You won "+IntToString(iWager2)+" gold: Collect at the tote **", oPC);
}
else if (iTeamBet==2)
{
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "bet_confirmed", 0);
SetLocalInt(oPC, "winnings", 0);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
Message(6.0, "** You lost the bet **", oPC);
}
else if (iTeamBet==3)
{
if (sTop==sCHbet)
{
SetLocalInt(oPC, "bet_confirmed", 0);
Normalize(oPC);
iWager2 =(iWager*iOdds);
iTWwager+=iWager2-iWager;
SetLocalInt(oPC, "TWwager", iTWwager);
SetLocalInt(oPC, "winnings", iWager2);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
Message(6.0, "** You won "+IntToString(iWager2)+" gold: Collect at the tote **", oPC);
}
else
{
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "bet_confirmed", 0);
SetLocalInt(oPC, "winnings", 0);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
Message(6.0, "** You lost the bet **", oPC);
}
}
else if (iTeamBet==4)
{
if (sTop==sCHbet)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
iWager2 =(iWager*iOdds2);
iTWwager+=iWager2-iWager;
SetLocalInt(oPC, "TWwager", iTWwager);
SetLocalInt(oPC, "winnings", iWager2);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
Message(6.0, "** You won "+IntToString(iWager2)+" gold: Collect at the tote **", oPC);
}
else
{
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "bet_confirmed", 0);
SetLocalInt(oPC, "winnings", 0);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
Message(6.0, "** You lost the bet **", oPC);
}
}
else
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_LAUGHING, 1.0f, 4.0f));
}
}break;
case 1: {
if (iTeamBet!=0)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
Message(6.0, "** You forfeited the bet by joining a team**", oPC);
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
SetLocalInt(oPC, "winnings",0);
}
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY2));
}break;
case 2: {
if (iTeamBet!=0)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
Message(6.0, "** You forfeited the bet by joining a team**", oPC);
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
SetLocalInt(oPC, "winnings",0);
}
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
}break;
}
if ((iTeamBet==4)||(iNPCduel==1))
{
//SetLocalInt(oPC, "npc_duel", 0);
Message(3.0, "** "+sTop+" has prevailed **", oPC);
}
else
{
Message(2.0, "*** The army of light has prevailed ***", oPC);
Message(4.0, sChamp, oPC);
}
if ((GetLocalInt(oPC, "champ_won")==1)&&(iTeamBet==0)&&(iNPCduel!=1))
{
oBonus = 50000;
SendMessageToPC(oPC, "Match championship prize money: "+IntToString(oBonus)+" gold");
GiveGoldToCreature(oPC, oBonus);
PlaySound("it_coins");
}
else {SetLocalInt(oPC, "champ_won", 0);}
oPC = GetNextPC();
}
++oHeaven;
++oHellloss;
++iHlcas;
++iHlTotCas;
SetLocalInt(oMod, "hell_cas", iHlcas);
SetLocalInt(oMod, "iHlTotCas", iHlTotCas);
SetLocalInt(oMod, "heav_score", oHeaven);
SetLocalInt(oMod, "hell_loss", oHellloss);
SetLocalInt(oMod, "war_won", 1);
//AssignCommand(oHost, SpeakString("The divine Tyriel and his holy warriors have been victorious!", TALKVOLUME_SHOUT));
DelayCommand(1.0, TeamCheer());
DelayCommand(2.5, AddJournalQuestEntry("war_heav", 1, oPC, FALSE, FALSE));
return;
}
else
{
SetLocalInt(oMod, "iDfire", 1);
oPC = GetFirstPC();
while (GetIsObjectValid(oPC))
{
iPCSide = GetLocalInt(oPC, "pc_side");
switch (iPCSide)
{
case 0: {
if (iTeamBet==2)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
iWager2=iWager*2;
iTWwager+=iWager2-iWager;
SetLocalInt(oPC, "TWwager", iTWwager);
SetLocalInt(oPC, "winnings", iWager);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
Message(6.0, "** You won "+IntToString(iWager2)+" gold: Collect at the tote **", oPC);
}
else if (iTeamBet==1)
{
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "bet_confirmed", 0);
SetLocalInt(oPC, "winnings", 0);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
Message(6.0, "** You lost the bet **", oPC);
}
else if (iTeamBet==3)
{
if (sTop==sCHbet)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
iWager2 = (iWager*iOdds);
iTWwager+=iWager2-iWager;
SetLocalInt(oPC, "TWwager", iTWwager);
SetLocalInt(oPC, "winnings", iWager2);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
Message(6.0, "** You won "+IntToString(iWager2)+" gold: Collect at the tote **", oPC);
}
else
{
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "bet_confirmed", 0);
SetLocalInt(oPC, "winnings", 0);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
Message(6.0, "** You lost the bet **", oPC);
}
}
else if (iTeamBet==4)
{
if (sTop==sCHbet)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
iWager2 =(iWager*iOdds2);
iTWwager+=iWager2-iWager;
SetLocalInt(oPC, "TWwager", iTWwager);
SetLocalInt(oPC, "winnings", iWager2);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY3));
Message(6.0, "** You won "+IntToString(iWager2)+" gold: Collect at the tote **", oPC);
}
else
{
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "bet_confirmed", 0);
SetLocalInt(oPC, "winnings", 0);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
Message(6.0, "** You lost the bet **", oPC);
}
}
else
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_LAUGHING, 1.0f, 4.0f));
}
}break;
case 1: {
if (iTeamBet!=0)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
Message(6.0, "** You forfeited the bet by joining a team**", oPC);
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
SetLocalInt(oPC, "winnings",0);
}
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_LOOPING_TALK_FORCEFUL, 1.0f, 8.0f));
}break;
case 2: {
if (iTeamBet!=0)
{
Normalize(oPC);
SetLocalInt(oPC, "bet_confirmed", 0);
Message(6.0, "** You forfeited the bet by joining a team**", oPC);
iTLwager+=iWager;
SetLocalInt(oPC, "TLwager", iTLwager);
SetLocalInt(oPC, "wager", 0);
SetLocalInt(oPC, "team_bet", 0);
SetLocalInt(oPC, "winnings",0);
}
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation
(ANIMATION_FIREFORGET_VICTORY2));
}break;
}
if ((iTeamBet==4)||(iNPCduel==1))
{
//SetLocalInt(oPC, "npc_duel", 0);
Message(3.0, "** "+sTop+" has prevailed **", oPC);
}
else
{
Message(2.0, "*** The army of darkness has prevailed ***", oPC);
Message(4.0, sChamp, oPC);
}
if ((GetLocalInt(oPC, "champ_won")==1)&&(iTeamBet==0)&&(iNPCduel!=1))
{
oBonus = 50000;
SendMessageToPC(oPC, "Match championship prize money: "+IntToString(oBonus)+" gold");
GiveGoldToCreature(oPC, oBonus);
PlaySound("it_coins");
}
else {SetLocalInt(oPC, "champ_won", 0);}
oPC = GetNextPC();
}
++oHell;
++oHeavloss;
++iHvcas;
++iHvTotCas;
SetLocalInt(oMod, "heav_cas", iHvcas);
SetLocalInt(oMod, "iHvTotCas", iHvTotCas);
SetLocalInt(oMod, "hell_score", oHell);
SetLocalInt(oMod, "heav_loss", oHeavloss);
SetLocalInt(oMod, "war_won", 1);
//AssignCommand(oHost, SpeakString("The Dark Lord and his minions have been victorious!", TALKVOLUME_SHOUT));
DelayCommand(1.0, TeamCheer());
DelayCommand(2.5, AddJournalQuestEntry("war_hell", 1, oPC, FALSE, FALSE));
return;
}
}
else
{
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"))
{
++iHlTotCas;
++iHlcas;
SetLocalInt(oMod, "hell_cas", iHlcas);
SetLocalInt(oMod, "iHlTotCas", iHlTotCas);
return;
}
else
{
++iHvcas;
++iHvTotCas;
SetLocalInt(oMod, "iHvTotCas", iHvTotCas);
SetLocalInt(oMod, "heav_cas", iHvcas);
return;
}
}
}
//void main () {}