Updated for NWNEE 37-13

Updated for NWNEE 37-13.  Updated NWNxEE scripts.  CODI Core AI tweaks.  Added Diamond Golem AI.  Full compile.  Updated release archive.
This commit is contained in:
Jaysyn904
2025-01-10 19:01:12 -05:00
parent 37c79b6d57
commit ce72b8d120
685 changed files with 6642 additions and 7699 deletions

View File

@@ -2,7 +2,6 @@
/// @brief Provides an interface for plugins to create event-based systems, and exposes some events through that interface.
/// @{
/// @file nwnx_events.nss
#include "nwnx"
const string NWNX_Events = "NWNX_Events"; ///< @private
@@ -562,6 +561,11 @@ _______________________________________
`OBJECT_SELF` = The player disconnecting from the server
Event Data Tag | Type | Notes
----------------------|--------|-------
PLAYER_NAME | string | Player name of the disconnecting client
CDKEY | string | Public cdkey of the disconnecting client
@note This event also runs when a player connects to the server but cancels out of character select.
OBJECT_SELF will be OBJECT_INVALID in this case.
@@ -1650,6 +1654,18 @@ _______________________________________
NWNX_Events_AddIDToWhitelist("NWNX_ON_BROADCAST_SAFE_PROJECTILE_SPELL", SPELL_*);
\endcode
`TARGET_OBJECT_ID` will be `OBJECT_INVALID` if the projectile is cast at a location
_______________________________________
## SetExperience Events
- NWNX_ON_SET_EXPERIENCE_BEFORE
- NWNX_ON_SET_EXPERIENCE_AFTER
`OBJECT_SELF` = The player the xp is being set on
Event Data Tag | Type | Notes
----------------------|--------|-------
XP | int | The xp value to be set. |
@note To set a different xp value in the BEFORE event: Skip the event and call NWNX_Events_SetEventResult() with the new value.
_______________________________________
## Broadcast Attack of Opportunity Events
- NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_BEFORE
@@ -2282,6 +2298,7 @@ string NWNX_Events_GetEventData(string tag);
/// - Broadcast Safe Projectile event
/// - Attack of Opportunity events
/// - Creature Jump events
/// - SetExperience Events
void NWNX_Events_SkipEvent();
/// Set the return value of the event.
@@ -2355,163 +2372,127 @@ int NWNX_Events_GetNumSubscribers(string sEvent);
void NWNX_Events_SubscribeEvent(string evt, string script)
{
string sFunc = "SubscribeEvent";
NWNX_PushArgumentString(script);
NWNX_PushArgumentString(evt);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushString(script);
NWNXPushString(evt);
NWNXCall(NWNX_Events, "SubscribeEvent");
}
void NWNX_Events_UnsubscribeEvent(string evt, string script)
{
string sFunc = "UnsubscribeEvent";
NWNX_PushArgumentString(script);
NWNX_PushArgumentString(evt);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushString(script);
NWNXPushString(evt);
NWNXCall(NWNX_Events, "UnsubscribeEvent");
}
void NWNX_Events_UnsubscribeAllStartingWith(string prefix)
{
string sFunc = "UnsubscribeAllStartingWith";
NWNX_PushArgumentString(prefix);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushString(prefix);
NWNXCall(NWNX_Events, "UnsubscribeAllStartingWith");
}
void NWNX_Events_SubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE)
{
string sFunc = "SubscribeEventScriptChunk";
NWNX_PushArgumentInt(bWrapIntoMain);
NWNX_PushArgumentString(sScriptChunk);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushInt(bWrapIntoMain);
NWNXPushString(sScriptChunk);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "SubscribeEventScriptChunk");
}
void NWNX_Events_UnsubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE)
{
string sFunc = "UnsubscribeEventScriptChunk";
NWNX_PushArgumentInt(bWrapIntoMain);
NWNX_PushArgumentString(sScriptChunk);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushInt(bWrapIntoMain);
NWNXPushString(sScriptChunk);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "UnsubscribeEventScriptChunk");
}
void NWNX_Events_PushEventData(string tag, string data)
{
string sFunc = "PushEventData";
NWNX_PushArgumentString(data);
NWNX_PushArgumentString(tag);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushString(data);
NWNXPushString(tag);
NWNXCall(NWNX_Events, "PushEventData");
}
int NWNX_Events_SignalEvent(string evt, object target)
{
string sFunc = "SignalEvent";
NWNX_PushArgumentObject(target);
NWNX_PushArgumentString(evt);
NWNX_CallFunction(NWNX_Events, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(target);
NWNXPushString(evt);
NWNXCall(NWNX_Events, "SignalEvent");
return NWNXPopInt();
}
string NWNX_Events_GetEventData(string tag)
{
string sFunc = "GetEventData";
NWNX_PushArgumentString(tag);
NWNX_CallFunction(NWNX_Events, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(tag);
NWNXCall(NWNX_Events, "GetEventData");
return NWNXPopString();
}
void NWNX_Events_SkipEvent()
{
string sFunc = "SkipEvent";
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXCall(NWNX_Events, "SkipEvent");
}
void NWNX_Events_SetEventResult(string data)
{
string sFunc = "SetEventResult";
NWNX_PushArgumentString(data);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushString(data);
NWNXCall(NWNX_Events, "SetEventResult");
}
string NWNX_Events_GetCurrentEvent()
{
string sFunc = "GetCurrentEvent";
NWNX_CallFunction(NWNX_Events, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Events, "GetCurrentEvent");
return NWNXPopString();
}
void NWNX_Events_ToggleDispatchListMode(string sEvent, string sScriptOrChunk, int bEnable)
{
string sFunc = "ToggleDispatchListMode";
NWNX_PushArgumentInt(bEnable);
NWNX_PushArgumentString(sScriptOrChunk);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushInt(bEnable);
NWNXPushString(sScriptOrChunk);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "ToggleDispatchListMode");
}
void NWNX_Events_AddObjectToDispatchList(string sEvent, string sScriptOrChunk, object oObject)
{
string sFunc = "AddObjectToDispatchList";
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentString(sScriptOrChunk);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushObject(oObject);
NWNXPushString(sScriptOrChunk);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "AddObjectToDispatchList");
}
void NWNX_Events_RemoveObjectFromDispatchList(string sEvent, string sScriptOrChunk, object oObject)
{
string sFunc = "RemoveObjectFromDispatchList";
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentString(sScriptOrChunk);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushObject(oObject);
NWNXPushString(sScriptOrChunk);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "RemoveObjectFromDispatchList");
}
void NWNX_Events_ToggleIDWhitelist(string sEvent, int bEnable)
{
string sFunc = "ToggleIDWhitelist";
NWNX_PushArgumentInt(bEnable);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushInt(bEnable);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "ToggleIDWhitelist");
}
void NWNX_Events_AddIDToWhitelist(string sEvent, int nID)
{
string sFunc = "AddIDToWhitelist";
NWNX_PushArgumentInt(nID);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushInt(nID);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "AddIDToWhitelist");
}
void NWNX_Events_RemoveIDFromWhitelist(string sEvent, int nID)
{
string sFunc = "RemoveIDFromWhitelist";
NWNX_PushArgumentInt(nID);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
NWNXPushInt(nID);
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "RemoveIDFromWhitelist");
}
int NWNX_Events_GetNumSubscribers(string sEvent)
{
string sFunc = "GetNumSubscribers";
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Events, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sEvent);
NWNXCall(NWNX_Events, "GetNumSubscribers");
return NWNXPopInt();
}