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:
@@ -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////////////////////////
|
||||
|
||||
|
Reference in New Issue
Block a user