Fixed missing Factions on Animated Statues

Fixed missing Factions on Animated Statues.  Added XP to next level for lvl 40+ characters.  Added Dragon AI for CODI Core AI.  Tweaked Beholders & some Dragons to use CODI Core AI.  Fixed CODI Core NPC onSPawn script to run PRC scripts properly.  Full compile.  Updated release archive.
This commit is contained in:
Jaysyn904
2024-10-30 13:07:27 -04:00
parent c929e2ff75
commit 6aa1491726
59 changed files with 2788 additions and 783 deletions

View File

@@ -14,73 +14,79 @@ Intergrated SimTools to the OnPlayerLevelUp Event
//Required Include for SimTools
//#include "fky_chat_inc"
void SetTlkOverrideForMaximumLevel(object oPC);
void SendMessageToAllPC(string sMessage);
void SetTlkOverrideForMaximumLevel(object oPC)
{
int nLevel = GetHitDice(oPC);
if (nLevel < 40)
{
NWNX_Player_SetTlkOverride(oPC, 315, "");
}
else
{
NWNX_Player_SetTlkOverride(oPC, 315, "Next Level: " + IntToString((nLevel + 1) * nLevel * 500) + "\n");
}
int nLevel = GetHitDice(oPC);
if (nLevel < 40)
{
NWNX_Player_SetTlkOverride(oPC, 315, "");
}
else
{
NWNX_Player_SetTlkOverride(oPC, 315, "Next Level: " + IntToString((nLevel + 1) * nLevel * 500) + "\n");
}
}
void SendMessageToAllPC(string sMessage)
{
object oPC = GetFirstPC();
while(GetIsObjectValid(oPC))
{
SendMessageToPC(oPC, sMessage);
oPC = GetNextPC();
}
object oPC = GetFirstPC();
while(GetIsObjectValid(oPC))
{
SendMessageToPC(oPC, sMessage);
oPC = GetNextPC();
}
}
void main()
{
ExecuteScript("prc_levelup", OBJECT_SELF);
object oPC = GetPCLevellingUp();
int nHD = GetHitDice(oPC);
location lSaved = GetLocation(oPC);
int MULTI_PLAYER = GetLocalInt(GetModule(), "multi");
SetTlkOverrideForMaximumLevel(GetPCLevellingUp());
///////LOCATION SAVING OPTION////////
//Delete the /* above to activate
SetTlkOverrideForMaximumLevel(oPC);
//If in the guild only!
//If they are in the guild...
if(GetItemPossessedBy(oPC, "guildpass")!=OBJECT_INVALID)
{
if(GetArea(GetAreaFromLocation(lSaved))!=OBJECT_INVALID)
{
object oGuild = GetItemPossessedBy(oPC, "guildstone");
if(GetItemPossessedBy(oPC, "guildpass")!=OBJECT_INVALID)
{
if(GetArea(GetAreaFromLocation(lSaved))!=OBJECT_INVALID)
{
object oGuild = GetItemPossessedBy(oPC, "guildstone");
//Store the PC's location, so they can come back here after relogging
SetCampaignLocation("LOCATIONS", GetName(oGuild), lSaved, oPC);
//Store the PC's location, so they can come back here after relogging
SetCampaignLocation("LOCATIONS", GetName(oGuild), lSaved, oPC);
//Tell the PC thier location was saved..
SendMessageToPC(oPC, "Location Saved.");
}
}
//Tell the PC thier location was saved..
SendMessageToPC(oPC, "Location Saved.");
}
}
// (DO NOT TOUCH THIS LINE!) */
/////////////////////////////////////////
///Character Auto Save (Single Character / safe save)
//:: Character Auto Save (Single Character / safe save)
if(MULTI_PLAYER)
{
//DelayCommand(3.0, ExportSingleCharacter(oPC));
}
else
{
//DelayCommand(2.0, DoSinglePlayerAutoSave());
}
if(MULTI_PLAYER)
{
//DelayCommand(3.0, ExportSingleCharacter(oPC));
}
else
{
//DelayCommand(2.0, DoSinglePlayerAutoSave());
}
if(nHD == 5 || nHD == 10 || nHD == 15 || nHD == 20 ||
nHD == 25 || nHD == 30 || nHD == 35 || nHD == 40)
@@ -90,27 +96,17 @@ else
if(nHD == 40)
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
SupernaturalEffect(EffectVisualEffect(VFX_DUR_GLOW_WHITE)), oPC);
}
if (!GetIsPC(oPC)) return;
int nInt;
nInt = GetObjectType(oPC);
{
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_KNOCK), oPC);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_KNOCK), GetLocation(oPC));
object oPC = GetPCLevellingUp();
if (!GetIsPC(oPC)) return;
object oTarget;
oTarget = oPC;
int nInt;
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_KNOCK), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_KNOCK), GetLocation(oTarget));
}
/////////////////////////CHARACTER SCANNING OPTIONS////////////////////////