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:
@@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user