Update for 37-13

Update for NWNEE 37-13.  Updated NWNxEE.  Full compile.
This commit is contained in:
Jaysyn904
2025-01-09 12:55:50 -05:00
parent f8835e0b32
commit 49e8177b4e
519 changed files with 5007 additions and 6378 deletions

View File

@@ -2,7 +2,6 @@
/// @brief Various admin related functions
/// @{
/// @file nwnx_admin.nss
#include "nwnx"
const string NWNX_Administration = "NWNX_Administration"; ///< @private
@@ -179,213 +178,161 @@ void NWNX_Administration_SetMaxLevel(int nLevel);
string NWNX_Administration_GetPlayerPassword()
{
string sFunc = "GetPlayerPassword";
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Administration, "GetPlayerPassword");
return NWNXPopString();
}
void NWNX_Administration_SetPlayerPassword(string password)
{
string sFunc = "SetPlayerPassword";
NWNX_PushArgumentString(password);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(password);
NWNXCall(NWNX_Administration, "SetPlayerPassword");
}
void NWNX_Administration_ClearPlayerPassword()
{
string sFunc = "ClearPlayerPassword";
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXCall(NWNX_Administration, "ClearPlayerPassword");
}
string NWNX_Administration_GetDMPassword()
{
string sFunc = "GetDMPassword";
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Administration, "GetDMPassword");
return NWNXPopString();
}
void NWNX_Administration_SetDMPassword(string password)
{
string sFunc = "SetDMPassword";
NWNX_PushArgumentString(password);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(password);
NWNXCall(NWNX_Administration, "SetDMPassword");
}
void NWNX_Administration_ShutdownServer()
{
string sFunc = "ShutdownServer";
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXCall(NWNX_Administration, "ShutdownServer");
}
void NWNX_Administration_DeletePlayerCharacter(object oPC, int bPreserveBackup = TRUE, string sKickMessage = "")
{
string sFunc = "DeletePlayerCharacter";
NWNX_PushArgumentString(sKickMessage);
NWNX_PushArgumentInt(bPreserveBackup);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(sKickMessage);
NWNXPushInt(bPreserveBackup);
NWNXPushObject(oPC);
NWNXCall(NWNX_Administration, "DeletePlayerCharacter");
}
void NWNX_Administration_AddBannedIP(string ip)
{
string sFunc = "AddBannedIP";
NWNX_PushArgumentString(ip);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(ip);
NWNXCall(NWNX_Administration, "AddBannedIP");
}
void NWNX_Administration_RemoveBannedIP(string ip)
{
string sFunc = "RemoveBannedIP";
NWNX_PushArgumentString(ip);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(ip);
NWNXCall(NWNX_Administration, "RemoveBannedIP");
}
void NWNX_Administration_AddBannedCDKey(string key)
{
string sFunc = "AddBannedCDKey";
NWNX_PushArgumentString(key);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(key);
NWNXCall(NWNX_Administration, "AddBannedCDKey");
}
void NWNX_Administration_RemoveBannedCDKey(string key)
{
string sFunc = "RemoveBannedCDKey";
NWNX_PushArgumentString(key);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(key);
NWNXCall(NWNX_Administration, "RemoveBannedCDKey");
}
void NWNX_Administration_AddBannedPlayerName(string playerName)
{
string sFunc = "AddBannedPlayerName";
NWNX_PushArgumentString(playerName);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(playerName);
NWNXCall(NWNX_Administration, "AddBannedPlayerName");
}
void NWNX_Administration_RemoveBannedPlayerName(string playerName)
{
string sFunc = "RemoveBannedPlayerName";
NWNX_PushArgumentString(playerName);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(playerName);
NWNXCall(NWNX_Administration, "RemoveBannedPlayerName");
}
string NWNX_Administration_GetBannedList()
{
string sFunc = "GetBannedList";
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Administration, "GetBannedList");
return NWNXPopString();
}
void NWNX_Administration_SetModuleName(string name)
{
string sFunc = "SetModuleName";
NWNX_PushArgumentString(name);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(name);
NWNXCall(NWNX_Administration, "SetModuleName");
}
void NWNX_Administration_SetServerName(string name)
{
string sFunc = "SetServerName";
NWNX_PushArgumentString(name);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushString(name);
NWNXCall(NWNX_Administration, "SetServerName");
}
string NWNX_Administration_GetServerName()
{
string sFunc = "GetServerName";
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Administration, "GetServerName");
return NWNXPopString();
}
int NWNX_Administration_GetPlayOption(int option)
{
string sFunc = "GetPlayOption";
NWNX_PushArgumentInt(option);
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(option);
NWNXCall(NWNX_Administration, "GetPlayOption");
return NWNXPopInt();
}
void NWNX_Administration_SetPlayOption(int option, int value)
{
string sFunc = "SetPlayOption";
NWNX_PushArgumentInt(value);
NWNX_PushArgumentInt(option);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushInt(value);
NWNXPushInt(option);
NWNXCall(NWNX_Administration, "SetPlayOption");
}
int NWNX_Administration_DeleteTURD(string playerName, string characterName)
{
string sFunc = "DeleteTURD";
NWNX_PushArgumentString(characterName);
NWNX_PushArgumentString(playerName);
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(characterName);
NWNXPushString(playerName);
NWNXCall(NWNX_Administration, "DeleteTURD");
return NWNXPopInt();
}
int NWNX_Administration_GetDebugValue(int type)
{
string sFunc = "GetDebugValue";
NWNX_PushArgumentInt(type);
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(type);
NWNXCall(NWNX_Administration, "GetDebugValue");
return NWNXPopInt();
}
void NWNX_Administration_SetDebugValue(int type, int state)
{
string sFunc = "SetDebugValue";
NWNX_PushArgumentInt(state);
NWNX_PushArgumentInt(type);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushInt(state);
NWNXPushInt(type);
NWNXCall(NWNX_Administration, "SetDebugValue");
}
void NWNX_Administration_ReloadRules()
{
string sFunc = "ReloadRules";
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXCall(NWNX_Administration, "ReloadRules");
}
int NWNX_Administration_GetMinLevel()
{
string sFunc = "GetMinLevel";
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Administration, "GetMinLevel");
return NWNXPopInt();
}
void NWNX_Administration_SetMinLevel(int nLevel)
{
string sFunc = "SetMinLevel";
NWNX_PushArgumentInt(nLevel);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushInt(nLevel);
NWNXCall(NWNX_Administration, "SetMinLevel");
}
int NWNX_Administration_GetMaxLevel()
{
string sFunc = "GetMaxLevel";
NWNX_CallFunction(NWNX_Administration, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Administration, "GetMaxLevel");
return NWNXPopInt();
}
void NWNX_Administration_SetMaxLevel(int nLevel)
{
string sFunc = "SetMaxLevel";
NWNX_PushArgumentInt(nLevel);
NWNX_CallFunction(NWNX_Administration, sFunc);
NWNXPushInt(nLevel);
NWNXCall(NWNX_Administration, "SetMaxLevel");
}

View File

@@ -2,7 +2,6 @@
/// @brief Allows the appearance and some other things of creatures to be overridden per player.
/// @{
/// @file nwnx_appearance.nss
#include "nwnx"
const string NWNX_Appearance = "NWNX_Appearance"; ///< @private
@@ -49,25 +48,18 @@ int NWNX_Appearance_GetOverride(object oPlayer, object oCreature, int nType);
void NWNX_Appearance_SetOverride(object oPlayer, object oCreature, int nType, int nValue)
{
string sFunc = "SetOverride";
NWNX_PushArgumentInt(nValue);
NWNX_PushArgumentInt(nType);
NWNX_PushArgumentObject(oCreature);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Appearance, sFunc);
NWNXPushInt(nValue);
NWNXPushInt(nType);
NWNXPushObject(oCreature);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Appearance, "SetOverride");
}
int NWNX_Appearance_GetOverride(object oPlayer, object oCreature, int nType)
{
string sFunc = "GetOverride";
NWNX_PushArgumentInt(nType);
NWNX_PushArgumentObject(oCreature);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Appearance, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nType);
NWNXPushObject(oCreature);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Appearance, "GetOverride");
return NWNXPopInt();
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional area properties as well as creating transitions.
/// @{
/// @file nwnx_area.nss
#include "nwnx"
const string NWNX_Area = "NWNX_Area"; ///< @private
@@ -353,536 +352,396 @@ void NWNX_Area_SetDefaultObjectUiDiscoveryMask(object oArea, int nObjectTypes, i
int NWNX_Area_GetNumberOfPlayersInArea(object area)
{
string sFunc = "GetNumberOfPlayersInArea";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetNumberOfPlayersInArea");
return NWNXPopInt();
}
object NWNX_Area_GetLastEntered(object area)
{
string sFunc = "GetLastEntered";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetLastEntered");
return NWNXPopObject();
}
object NWNX_Area_GetLastLeft(object area)
{
string sFunc = "GetLastLeft";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetLastLeft");
return NWNXPopObject();
}
int NWNX_Area_GetPVPSetting(object area)
{
string sFunc = "GetPVPSetting";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetPVPSetting");
return NWNXPopInt();
}
void NWNX_Area_SetPVPSetting(object area, int pvpSetting)
{
string sFunc = "SetPVPSetting";
NWNX_PushArgumentInt(pvpSetting);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(pvpSetting);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetPVPSetting");
}
int NWNX_Area_GetAreaSpotModifier(object area)
{
string sFunc = "GetAreaSpotModifier";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetAreaSpotModifier");
return NWNXPopInt();
}
void NWNX_Area_SetAreaSpotModifier(object area, int spotModifier)
{
string sFunc = "SetAreaSpotModifier";
NWNX_PushArgumentInt(spotModifier);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(spotModifier);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetAreaSpotModifier");
}
int NWNX_Area_GetAreaListenModifier(object area)
{
string sFunc = "GetAreaListenModifier";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetAreaListenModifier");
return NWNXPopInt();
}
void NWNX_Area_SetAreaListenModifier(object area, int listenModifier)
{
string sFunc = "SetAreaListenModifier";
NWNX_PushArgumentInt(listenModifier);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(listenModifier);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetAreaListenModifier");
}
int NWNX_Area_GetNoRestingAllowed(object area)
{
string sFunc = "GetNoRestingAllowed";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetNoRestingAllowed");
return NWNXPopInt();
}
void NWNX_Area_SetNoRestingAllowed(object area, int bNoRestingAllowed)
{
string sFunc = "SetNoRestingAllowed";
NWNX_PushArgumentInt(bNoRestingAllowed);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(bNoRestingAllowed);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetNoRestingAllowed");
}
int NWNX_Area_GetWindPower(object area)
{
string sFunc = "GetWindPower";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetWindPower");
return NWNXPopInt();
}
void NWNX_Area_SetWindPower(object area, int windPower)
{
string sFunc = "SetWindPower";
NWNX_PushArgumentInt(windPower);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(windPower);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetWindPower");
}
int NWNX_Area_GetWeatherChance(object area, int type)
{
string sFunc = "GetWeatherChance";
NWNX_PushArgumentInt(type);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(type);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetWeatherChance");
return NWNXPopInt();
}
void NWNX_Area_SetWeatherChance(object area, int type, int chance)
{
string sFunc = "SetWeatherChance";
NWNX_PushArgumentInt(chance);
NWNX_PushArgumentInt(type);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(chance);
NWNXPushInt(type);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetWeatherChance");
}
float NWNX_Area_GetFogClipDistance(object area)
{
string sFunc = "GetFogClipDistance";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueFloat();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetFogClipDistance");
return NWNXPopFloat();
}
void NWNX_Area_SetFogClipDistance(object area, float distance)
{
string sFunc = "SetFogClipDistance";
NWNX_PushArgumentFloat(distance);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushFloat(distance);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetFogClipDistance");
}
int NWNX_Area_GetShadowOpacity(object area)
{
string sFunc = "GetShadowOpacity";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetShadowOpacity");
return NWNXPopInt();
}
void NWNX_Area_SetShadowOpacity(object area, int shadowOpacity)
{
string sFunc = "SetShadowOpacity";
NWNX_PushArgumentInt(shadowOpacity);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(shadowOpacity);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetShadowOpacity");
}
int NWNX_Area_GetDayNightCycle(object area)
{
string sFunc = "GetDayNightCycle";
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetDayNightCycle");
return NWNXPopInt();
}
void NWNX_Area_SetDayNightCycle(object area, int type)
{
string sFunc = "SetDayNightCycle";
NWNX_PushArgumentInt(type);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(type);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetDayNightCycle");
}
int NWNX_Area_GetSunMoonColors(object area, int type)
{
string sFunc = "GetSunMoonColors";
NWNX_PushArgumentInt(type);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(type);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "GetSunMoonColors");
return NWNXPopInt();
}
void NWNX_Area_SetSunMoonColors(object area, int type, int color)
{
string sFunc = "SetSunMoonColors";
NWNX_PushArgumentInt(color);
NWNX_PushArgumentInt(type);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(color);
NWNXPushInt(type);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "SetSunMoonColors");
}
object NWNX_Area_CreateTransition(object area, object target, float x, float y, float z, float size = 2.0f, string tag="")
{
string sFunc = "CreateTransition";
NWNX_PushArgumentString(tag);
NWNX_PushArgumentFloat(size);
NWNX_PushArgumentFloat(z);
NWNX_PushArgumentFloat(y);
NWNX_PushArgumentFloat(x);
NWNX_PushArgumentObject(target);
NWNX_PushArgumentObject(area);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushString(tag);
NWNXPushFloat(size);
NWNXPushFloat(z);
NWNXPushFloat(y);
NWNXPushFloat(x);
NWNXPushObject(target);
NWNXPushObject(area);
NWNXCall(NWNX_Area, "CreateTransition");
return NWNXPopObject();
}
int NWNX_Area_GetTileAnimationLoop(object oArea, float fTileX, float fTileY, int nAnimLoop)
{
string sFunc = "GetTileAnimationLoop";
NWNXPushInt(nAnimLoop);
NWNXPushFloat(fTileY);
NWNXPushFloat(fTileX);
NWNXPushObject(oArea);
NWNX_PushArgumentInt(nAnimLoop);
NWNX_PushArgumentFloat(fTileY);
NWNX_PushArgumentFloat(fTileX);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Area, "GetTileAnimationLoop");
return NWNXPopInt();
}
void NWNX_Area_SetTileAnimationLoop(object oArea, float fTileX, float fTileY, int nAnimLoop, int bEnabled)
{
string sFunc = "SetTileAnimationLoop";
NWNX_PushArgumentInt(bEnabled);
NWNX_PushArgumentInt(nAnimLoop);
NWNX_PushArgumentFloat(fTileY);
NWNX_PushArgumentFloat(fTileX);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(bEnabled);
NWNXPushInt(nAnimLoop);
NWNXPushFloat(fTileY);
NWNXPushFloat(fTileX);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "SetTileAnimationLoop");
}
string NWNX_Area_GetTileModelResRef(object oArea, float fTileX, float fTileY)
{
string sFunc = "GetTileModelResRef";
NWNX_PushArgumentFloat(fTileY);
NWNX_PushArgumentFloat(fTileX);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueString();
NWNXPushFloat(fTileY);
NWNXPushFloat(fTileX);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetTileModelResRef");
return NWNXPopString();
}
int NWNX_Area_TestDirectLine(object oArea, float fStartX, float fStartY, float fEndX, float fEndY, float fPerSpace, float fHeight, int bIgnoreDoors=FALSE)
{
string sFunc = "TestDirectLine";
NWNX_PushArgumentInt(bIgnoreDoors);
NWNX_PushArgumentFloat(fHeight);
NWNX_PushArgumentFloat(fPerSpace);
NWNX_PushArgumentFloat(fEndY);
NWNX_PushArgumentFloat(fEndX);
NWNX_PushArgumentFloat(fStartY);
NWNX_PushArgumentFloat(fStartX);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(bIgnoreDoors);
NWNXPushFloat(fHeight);
NWNXPushFloat(fPerSpace);
NWNXPushFloat(fEndY);
NWNXPushFloat(fEndX);
NWNXPushFloat(fStartY);
NWNXPushFloat(fStartX);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "TestDirectLine");
return NWNXPopInt();
}
int NWNX_Area_GetMusicIsPlaying(object oArea, int bBattleMusic = FALSE)
{
string sFunc = "GetMusicIsPlaying";
NWNX_PushArgumentInt(bBattleMusic);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(bBattleMusic);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetMusicIsPlaying");
return NWNXPopInt();
}
object NWNX_Area_CreateGenericTrigger(object oArea, float fX, float fY, float fZ, string sTag = "", float fSize = 1.0f)
{
string sFunc = "CreateGenericTrigger";
NWNX_PushArgumentFloat(fSize);
NWNX_PushArgumentString(sTag);
NWNX_PushArgumentFloat(fZ);
NWNX_PushArgumentFloat(fY);
NWNX_PushArgumentFloat(fX);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushFloat(fSize);
NWNXPushString(sTag);
NWNXPushFloat(fZ);
NWNXPushFloat(fY);
NWNXPushFloat(fX);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "CreateGenericTrigger");
return NWNXPopObject();
}
void NWNX_Area_AddObjectToExclusionList(object oObject)
{
string sFunc = "AddObjectToExclusionList";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushObject(oObject);
NWNXCall(NWNX_Area, "AddObjectToExclusionList");
}
void NWNX_Area_RemoveObjectFromExclusionList(object oObject)
{
string sFunc = "RemoveObjectFromExclusionList";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushObject(oObject);
NWNXCall(NWNX_Area, "RemoveObjectFromExclusionList");
}
int NWNX_Area_ExportGIT(object oArea, string sFileName = "", int bExportVarTable = TRUE, int bExportUUID = TRUE, int nObjectFilter = 0, string sAlias = "NWNX")
{
string sFunc = "ExportGIT";
NWNX_PushArgumentString(sAlias);
NWNX_PushArgumentInt(nObjectFilter);
NWNX_PushArgumentInt(bExportUUID);
NWNX_PushArgumentInt(bExportVarTable);
NWNX_PushArgumentString(sFileName);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sAlias);
NWNXPushInt(nObjectFilter);
NWNXPushInt(bExportUUID);
NWNXPushInt(bExportVarTable);
NWNXPushString(sFileName);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "ExportGIT");
return NWNXPopInt();
}
struct NWNX_Area_TileInfo NWNX_Area_GetTileInfo(object oArea, float fTileX, float fTileY)
{
string sFunc = "GetTileInfo";
NWNX_PushArgumentFloat(fTileY);
NWNX_PushArgumentFloat(fTileX);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushFloat(fTileY);
NWNXPushFloat(fTileX);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetTileInfo");
struct NWNX_Area_TileInfo str;
str.nGridY = NWNX_GetReturnValueInt();
str.nGridX = NWNX_GetReturnValueInt();
str.nOrientation = NWNX_GetReturnValueInt();
str.nHeight = NWNX_GetReturnValueInt();
str.nID = NWNX_GetReturnValueInt();
str.nGridY = NWNXPopInt();
str.nGridX = NWNXPopInt();
str.nOrientation = NWNXPopInt();
str.nHeight = NWNXPopInt();
str.nID = NWNXPopInt();
return str;
}
int NWNX_Area_ExportARE(object oArea, string sFileName, string sNewName = "", string sNewTag = "", string sAlias = "NWNX")
{
string sFunc = "ExportARE";
NWNX_PushArgumentString(sAlias);
NWNX_PushArgumentString(sNewTag);
NWNX_PushArgumentString(sNewName);
NWNX_PushArgumentString(sFileName);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sAlias);
NWNXPushString(sNewTag);
NWNXPushString(sNewName);
NWNXPushString(sFileName);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "ExportARE");
return NWNXPopInt();
}
int NWNX_Area_GetAmbientSoundDay(object oArea)
{
string sFunc = "GetAmbientSoundDay";
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetAmbientSoundDay");
return NWNXPopInt();
}
int NWNX_Area_GetAmbientSoundNight(object oArea)
{
string sFunc = "GetAmbientSoundNight";
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetAmbientSoundNight");
return NWNXPopInt();
}
int NWNX_Area_GetAmbientSoundDayVolume(object oArea)
{
string sFunc = "GetAmbientSoundDayVolume";
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetAmbientSoundDayVolume");
return NWNXPopInt();
}
int NWNX_Area_GetAmbientSoundNightVolume(object oArea)
{
string sFunc = "GetAmbientSoundNightVolume";
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetAmbientSoundNightVolume");
return NWNXPopInt();
}
object NWNX_Area_CreateSoundObject(object oArea, vector vPosition, string sResRef)
{
string sFunc = "CreateSoundObject";
NWNX_PushArgumentString(sResRef);
NWNX_PushArgumentFloat(vPosition.z);
NWNX_PushArgumentFloat(vPosition.y);
NWNX_PushArgumentFloat(vPosition.x);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushString(sResRef);
NWNXPushVector(vPosition);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "CreateSoundObject");
return NWNXPopObject();
}
void NWNX_Area_RotateArea(object oArea, int nRotation)
{
string sFunc = "RotateArea";
NWNX_PushArgumentInt(nRotation);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(nRotation);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "RotateArea");
}
struct NWNX_Area_TileInfo NWNX_Area_GetTileInfoByTileIndex(object oArea, int nIndex)
{
string sFunc = "GetTileInfoByTileIndex";
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(nIndex);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetTileInfoByTileIndex");
struct NWNX_Area_TileInfo str;
str.nGridY = NWNX_GetReturnValueInt();
str.nGridX = NWNX_GetReturnValueInt();
str.nOrientation = NWNX_GetReturnValueInt();
str.nHeight = NWNX_GetReturnValueInt();
str.nID = NWNX_GetReturnValueInt();
str.nGridY = NWNXPopInt();
str.nGridX = NWNXPopInt();
str.nOrientation = NWNXPopInt();
str.nHeight = NWNXPopInt();
str.nID = NWNXPopInt();
return str;
}
int NWNX_Area_GetPathExists(object oArea, vector vStartPosition, vector vEndPosition, int nMaxDepth)
{
string sFunc = "GetPathExists";
NWNX_PushArgumentInt(nMaxDepth);
NWNX_PushArgumentFloat(vEndPosition.y);
NWNX_PushArgumentFloat(vEndPosition.x);
NWNX_PushArgumentFloat(vStartPosition.y);
NWNX_PushArgumentFloat(vStartPosition.x);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nMaxDepth);
NWNXPushVector(vEndPosition);
NWNXPushVector(vStartPosition);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetPathExists");
return NWNXPopInt();
}
int NWNX_Area_GetAreaFlags(object oArea)
{
string sFunc = "GetAreaFlags";
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetAreaFlags");
return NWNXPopInt();
}
void NWNX_Area_SetAreaFlags(object oArea, int nFlags)
{
string sFunc = "SetAreaFlags";
NWNX_PushArgumentInt(nFlags);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(nFlags);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "SetAreaFlags");
}
struct NWNX_Area_AreaWind NWNX_Area_GetAreaWind(object oArea)
{
string sFunc = "GetAreaWind";
struct NWNX_Area_AreaWind data;
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
data.fPitch = NWNX_GetReturnValueFloat();
data.fYaw = NWNX_GetReturnValueFloat();
data.fMagnitude = NWNX_GetReturnValueFloat();
data.vDirection.x = NWNX_GetReturnValueFloat();
data.vDirection.y = NWNX_GetReturnValueFloat();
data.vDirection.z = NWNX_GetReturnValueFloat();
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "GetAreaWind");
data.fPitch = NWNXPopFloat();
data.fYaw = NWNXPopFloat();
data.fMagnitude = NWNXPopFloat();
data.vDirection = NWNXPopVector();
return data;
}
void NWNX_Area_SetDefaultObjectUiDiscoveryMask(object oArea, int nObjectTypes, int nMask, int bForceUpdate = FALSE)
{
string sFunc = "SetDefaultObjectUiDiscoveryMask";
NWNX_PushArgumentInt(bForceUpdate);
NWNX_PushArgumentInt(nMask);
NWNX_PushArgumentInt(nObjectTypes);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_Area, sFunc);
NWNXPushInt(bForceUpdate);
NWNXPushInt(nMask);
NWNXPushInt(nObjectTypes);
NWNXPushObject(oArea);
NWNXCall(NWNX_Area, "SetDefaultObjectUiDiscoveryMask");
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions related to chat.
/// @{
/// @file nwnx_chat.nss
#include "nwnx"
const string NWNX_Chat = "NWNX_Chat"; ///< @private
@@ -80,79 +79,61 @@ float NWNX_Chat_GetChatHearingDistance(object listener = OBJECT_INVALID, int cha
int NWNX_Chat_SendMessage(int channel, string message, object sender = OBJECT_SELF, object target = OBJECT_INVALID)
{
string sFunc = "SendMessage";
NWNX_PushArgumentObject(target);
NWNX_PushArgumentObject(sender);
NWNX_PushArgumentString(message);
NWNX_PushArgumentInt(channel);
NWNX_CallFunction(NWNX_Chat, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(target);
NWNXPushObject(sender);
NWNXPushString(message);
NWNXPushInt(channel);
NWNXCall(NWNX_Chat, "SendMessage");
return NWNXPopInt();
}
void NWNX_Chat_RegisterChatScript(string script)
{
string sFunc = "RegisterChatScript";
NWNX_PushArgumentString(script);
NWNX_CallFunction(NWNX_Chat, sFunc);
NWNXPushString(script);
NWNXCall(NWNX_Chat, "RegisterChatScript");
}
void NWNX_Chat_SkipMessage()
{
string sFunc = "SkipMessage";
NWNX_CallFunction(NWNX_Chat, sFunc);
NWNXCall(NWNX_Chat, "SkipMessage");
}
int NWNX_Chat_GetChannel()
{
string sFunc = "GetChannel";
NWNX_CallFunction(NWNX_Chat, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Chat, "GetChannel");
return NWNXPopInt();
}
string NWNX_Chat_GetMessage()
{
string sFunc = "GetMessage";
NWNX_CallFunction(NWNX_Chat, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Chat, "GetMessage");
return NWNXPopString();
}
object NWNX_Chat_GetSender()
{
string sFunc = "GetSender";
NWNX_CallFunction(NWNX_Chat, sFunc);
return NWNX_GetReturnValueObject();
NWNXCall(NWNX_Chat, "GetSender");
return NWNXPopObject();
}
object NWNX_Chat_GetTarget()
{
string sFunc = "GetTarget";
NWNX_CallFunction(NWNX_Chat, sFunc);
return NWNX_GetReturnValueObject();
NWNXCall(NWNX_Chat, "GetTarget");
return NWNXPopObject();
}
void NWNX_Chat_SetChatHearingDistance(float distance, object listener = OBJECT_INVALID, int channel = NWNX_CHAT_CHANNEL_PLAYER_TALK)
{
string sFunc = "SetChatHearingDistance";
NWNX_PushArgumentInt(channel);
NWNX_PushArgumentObject(listener);
NWNX_PushArgumentFloat(distance);
NWNX_CallFunction(NWNX_Chat, sFunc);
NWNXPushInt(channel);
NWNXPushObject(listener);
NWNXPushFloat(distance);
NWNXCall(NWNX_Chat, "SetChatHearingDistance");
}
float NWNX_Chat_GetChatHearingDistance(object listener = OBJECT_INVALID, int channel = NWNX_CHAT_CHANNEL_PLAYER_TALK)
{
string sFunc = "GetChatHearingDistance";
NWNX_PushArgumentInt(channel);
NWNX_PushArgumentObject(listener);
NWNX_CallFunction(NWNX_Chat, sFunc);
return NWNX_GetReturnValueFloat();
NWNXPushInt(channel);
NWNXPushObject(listener);
NWNXCall(NWNX_Chat, "GetChatHearingDistance");
return NWNXPopFloat();
}

21
_module/nss/nwnx_core.nss Normal file
View File

@@ -0,0 +1,21 @@
/// @addtogroup nwnx NWNX
/// @brief Core NWNX Functions.
/// @{
/// @file nwnx_core.nss
const string NWNX_Core = "NWNX_Core"; ///< @private
/// @brief Determines if the given plugin exists and is enabled.
/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNXCall
/// @note Example usage: NWNX_PluginExists("NWNX_Creature");
/// @return TRUE if the plugin exists and is enabled, otherwise FALSE.
int NWNX_Core_PluginExists(string sPlugin);
/// @}
int NWNX_Core_PluginExists(string sPlugin)
{
NWNXPushString(sPlugin);
NWNXCall(NWNX_Core, "PluginExists");
return NWNXPopInt();
}

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,6 @@
/// @brief Run a script before damage and attack events allowing for modification. Includes function to arbitrarily apply damage.
/// @{
/// @file nwnx_damage.nss
#include "nwnx"
const string NWNX_Damage = "NWNX_Damage"; ///< @private
@@ -174,245 +173,223 @@ void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget,
void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner=OBJECT_INVALID)
{
string sFunc = "SetEventScript";
NWNX_PushArgumentObject(oOwner);
NWNX_PushArgumentString(sScript);
NWNX_PushArgumentString("DAMAGE");
NWNX_CallFunction(NWNX_Damage, sFunc);
NWNXPushObject(oOwner);
NWNXPushString(sScript);
NWNXPushString("DAMAGE");
NWNXCall(NWNX_Damage, "SetEventScript");
}
struct NWNX_Damage_DamageEventData NWNX_Damage_GetDamageEventData()
{
string sFunc = "GetDamageEventData";
struct NWNX_Damage_DamageEventData data;
NWNX_CallFunction(NWNX_Damage, sFunc);
data.oDamager = NWNX_GetReturnValueObject();
data.iBludgeoning = NWNX_GetReturnValueInt();
data.iPierce = NWNX_GetReturnValueInt();
data.iSlash = NWNX_GetReturnValueInt();
data.iMagical = NWNX_GetReturnValueInt();
data.iAcid = NWNX_GetReturnValueInt();
data.iCold = NWNX_GetReturnValueInt();
data.iDivine = NWNX_GetReturnValueInt();
data.iElectrical = NWNX_GetReturnValueInt();
data.iFire = NWNX_GetReturnValueInt();
data.iNegative = NWNX_GetReturnValueInt();
data.iPositive = NWNX_GetReturnValueInt();
data.iSonic = NWNX_GetReturnValueInt();
data.iBase = NWNX_GetReturnValueInt();
data.iCustom1 = NWNX_GetReturnValueInt();
data.iCustom2 = NWNX_GetReturnValueInt();
data.iCustom3 = NWNX_GetReturnValueInt();
data.iCustom4 = NWNX_GetReturnValueInt();
data.iCustom5 = NWNX_GetReturnValueInt();
data.iCustom6 = NWNX_GetReturnValueInt();
data.iCustom7 = NWNX_GetReturnValueInt();
data.iCustom8 = NWNX_GetReturnValueInt();
data.iCustom9 = NWNX_GetReturnValueInt();
data.iCustom10 = NWNX_GetReturnValueInt();
data.iCustom11 = NWNX_GetReturnValueInt();
data.iCustom12 = NWNX_GetReturnValueInt();
data.iCustom13 = NWNX_GetReturnValueInt();
data.iCustom14 = NWNX_GetReturnValueInt();
data.iCustom15 = NWNX_GetReturnValueInt();
data.iCustom16 = NWNX_GetReturnValueInt();
data.iCustom17 = NWNX_GetReturnValueInt();
data.iCustom18 = NWNX_GetReturnValueInt();
data.iCustom19 = NWNX_GetReturnValueInt();
data.iSpellId = NWNX_GetReturnValueInt();
NWNXCall(NWNX_Damage, "GetDamageEventData");
data.oDamager = NWNXPopObject();
data.iBludgeoning = NWNXPopInt();
data.iPierce = NWNXPopInt();
data.iSlash = NWNXPopInt();
data.iMagical = NWNXPopInt();
data.iAcid = NWNXPopInt();
data.iCold = NWNXPopInt();
data.iDivine = NWNXPopInt();
data.iElectrical = NWNXPopInt();
data.iFire = NWNXPopInt();
data.iNegative = NWNXPopInt();
data.iPositive = NWNXPopInt();
data.iSonic = NWNXPopInt();
data.iBase = NWNXPopInt();
data.iCustom1 = NWNXPopInt();
data.iCustom2 = NWNXPopInt();
data.iCustom3 = NWNXPopInt();
data.iCustom4 = NWNXPopInt();
data.iCustom5 = NWNXPopInt();
data.iCustom6 = NWNXPopInt();
data.iCustom7 = NWNXPopInt();
data.iCustom8 = NWNXPopInt();
data.iCustom9 = NWNXPopInt();
data.iCustom10 = NWNXPopInt();
data.iCustom11 = NWNXPopInt();
data.iCustom12 = NWNXPopInt();
data.iCustom13 = NWNXPopInt();
data.iCustom14 = NWNXPopInt();
data.iCustom15 = NWNXPopInt();
data.iCustom16 = NWNXPopInt();
data.iCustom17 = NWNXPopInt();
data.iCustom18 = NWNXPopInt();
data.iCustom19 = NWNXPopInt();
data.iSpellId = NWNXPopInt();
return data;
}
void NWNX_Damage_SetDamageEventData(struct NWNX_Damage_DamageEventData data)
{
string sFunc = "SetDamageEventData";
NWNXPushInt(data.iCustom19);
NWNXPushInt(data.iCustom18);
NWNXPushInt(data.iCustom17);
NWNXPushInt(data.iCustom16);
NWNXPushInt(data.iCustom15);
NWNXPushInt(data.iCustom14);
NWNXPushInt(data.iCustom13);
NWNXPushInt(data.iCustom12);
NWNXPushInt(data.iCustom11);
NWNXPushInt(data.iCustom10);
NWNXPushInt(data.iCustom9);
NWNXPushInt(data.iCustom8);
NWNXPushInt(data.iCustom7);
NWNXPushInt(data.iCustom6);
NWNXPushInt(data.iCustom5);
NWNXPushInt(data.iCustom4);
NWNXPushInt(data.iCustom3);
NWNXPushInt(data.iCustom2);
NWNXPushInt(data.iCustom1);
NWNXPushInt(data.iBase);
NWNXPushInt(data.iSonic);
NWNXPushInt(data.iPositive);
NWNXPushInt(data.iNegative);
NWNXPushInt(data.iFire);
NWNXPushInt(data.iElectrical);
NWNXPushInt(data.iDivine);
NWNXPushInt(data.iCold);
NWNXPushInt(data.iAcid);
NWNXPushInt(data.iMagical);
NWNXPushInt(data.iSlash);
NWNXPushInt(data.iPierce);
NWNXPushInt(data.iBludgeoning);
NWNX_PushArgumentInt(data.iCustom19);
NWNX_PushArgumentInt(data.iCustom18);
NWNX_PushArgumentInt(data.iCustom17);
NWNX_PushArgumentInt(data.iCustom16);
NWNX_PushArgumentInt(data.iCustom15);
NWNX_PushArgumentInt(data.iCustom14);
NWNX_PushArgumentInt(data.iCustom13);
NWNX_PushArgumentInt(data.iCustom12);
NWNX_PushArgumentInt(data.iCustom11);
NWNX_PushArgumentInt(data.iCustom10);
NWNX_PushArgumentInt(data.iCustom9);
NWNX_PushArgumentInt(data.iCustom8);
NWNX_PushArgumentInt(data.iCustom7);
NWNX_PushArgumentInt(data.iCustom6);
NWNX_PushArgumentInt(data.iCustom5);
NWNX_PushArgumentInt(data.iCustom4);
NWNX_PushArgumentInt(data.iCustom3);
NWNX_PushArgumentInt(data.iCustom2);
NWNX_PushArgumentInt(data.iCustom1);
NWNX_PushArgumentInt(data.iBase);
NWNX_PushArgumentInt(data.iSonic);
NWNX_PushArgumentInt(data.iPositive);
NWNX_PushArgumentInt(data.iNegative);
NWNX_PushArgumentInt(data.iFire);
NWNX_PushArgumentInt(data.iElectrical);
NWNX_PushArgumentInt(data.iDivine);
NWNX_PushArgumentInt(data.iCold);
NWNX_PushArgumentInt(data.iAcid);
NWNX_PushArgumentInt(data.iMagical);
NWNX_PushArgumentInt(data.iSlash);
NWNX_PushArgumentInt(data.iPierce);
NWNX_PushArgumentInt(data.iBludgeoning);
NWNX_CallFunction(NWNX_Damage, sFunc);
NWNXCall(NWNX_Damage, "SetDamageEventData");
}
void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner=OBJECT_INVALID)
{
string sFunc = "SetEventScript";
NWNX_PushArgumentObject(oOwner);
NWNX_PushArgumentString(sScript);
NWNX_PushArgumentString("ATTACK");
NWNX_CallFunction(NWNX_Damage, sFunc);
NWNXPushObject(oOwner);
NWNXPushString(sScript);
NWNXPushString("ATTACK");
NWNXCall(NWNX_Damage, "SetEventScript");
}
struct NWNX_Damage_AttackEventData NWNX_Damage_GetAttackEventData()
{
string sFunc = "GetAttackEventData";
struct NWNX_Damage_AttackEventData data;
NWNX_CallFunction(NWNX_Damage, sFunc);
data.oTarget = NWNX_GetReturnValueObject();
data.iBludgeoning = NWNX_GetReturnValueInt();
data.iPierce = NWNX_GetReturnValueInt();
data.iSlash = NWNX_GetReturnValueInt();
data.iMagical = NWNX_GetReturnValueInt();
data.iAcid = NWNX_GetReturnValueInt();
data.iCold = NWNX_GetReturnValueInt();
data.iDivine = NWNX_GetReturnValueInt();
data.iElectrical = NWNX_GetReturnValueInt();
data.iFire = NWNX_GetReturnValueInt();
data.iNegative = NWNX_GetReturnValueInt();
data.iPositive = NWNX_GetReturnValueInt();
data.iSonic = NWNX_GetReturnValueInt();
data.iBase = NWNX_GetReturnValueInt();
data.iCustom1 = NWNX_GetReturnValueInt();
data.iCustom2 = NWNX_GetReturnValueInt();
data.iCustom3 = NWNX_GetReturnValueInt();
data.iCustom4 = NWNX_GetReturnValueInt();
data.iCustom5 = NWNX_GetReturnValueInt();
data.iCustom6 = NWNX_GetReturnValueInt();
data.iCustom7 = NWNX_GetReturnValueInt();
data.iCustom8 = NWNX_GetReturnValueInt();
data.iCustom9 = NWNX_GetReturnValueInt();
data.iCustom10 = NWNX_GetReturnValueInt();
data.iCustom11 = NWNX_GetReturnValueInt();
data.iCustom12 = NWNX_GetReturnValueInt();
data.iCustom13 = NWNX_GetReturnValueInt();
data.iCustom14 = NWNX_GetReturnValueInt();
data.iCustom15 = NWNX_GetReturnValueInt();
data.iCustom16 = NWNX_GetReturnValueInt();
data.iCustom17 = NWNX_GetReturnValueInt();
data.iCustom18 = NWNX_GetReturnValueInt();
data.iCustom19 = NWNX_GetReturnValueInt();
data.iAttackNumber = NWNX_GetReturnValueInt();
data.iAttackResult = NWNX_GetReturnValueInt();
data.iWeaponAttackType = NWNX_GetReturnValueInt();
data.iSneakAttack = NWNX_GetReturnValueInt();
data.bKillingBlow = NWNX_GetReturnValueInt();
data.iAttackType = NWNX_GetReturnValueInt();
data.iToHitRoll = NWNX_GetReturnValueInt();
data.iToHitModifier = NWNX_GetReturnValueInt();
NWNXCall(NWNX_Damage, "GetAttackEventData");
data.oTarget = NWNXPopObject();
data.iBludgeoning = NWNXPopInt();
data.iPierce = NWNXPopInt();
data.iSlash = NWNXPopInt();
data.iMagical = NWNXPopInt();
data.iAcid = NWNXPopInt();
data.iCold = NWNXPopInt();
data.iDivine = NWNXPopInt();
data.iElectrical = NWNXPopInt();
data.iFire = NWNXPopInt();
data.iNegative = NWNXPopInt();
data.iPositive = NWNXPopInt();
data.iSonic = NWNXPopInt();
data.iBase = NWNXPopInt();
data.iCustom1 = NWNXPopInt();
data.iCustom2 = NWNXPopInt();
data.iCustom3 = NWNXPopInt();
data.iCustom4 = NWNXPopInt();
data.iCustom5 = NWNXPopInt();
data.iCustom6 = NWNXPopInt();
data.iCustom7 = NWNXPopInt();
data.iCustom8 = NWNXPopInt();
data.iCustom9 = NWNXPopInt();
data.iCustom10 = NWNXPopInt();
data.iCustom11 = NWNXPopInt();
data.iCustom12 = NWNXPopInt();
data.iCustom13 = NWNXPopInt();
data.iCustom14 = NWNXPopInt();
data.iCustom15 = NWNXPopInt();
data.iCustom16 = NWNXPopInt();
data.iCustom17 = NWNXPopInt();
data.iCustom18 = NWNXPopInt();
data.iCustom19 = NWNXPopInt();
data.iAttackNumber = NWNXPopInt();
data.iAttackResult = NWNXPopInt();
data.iWeaponAttackType = NWNXPopInt();
data.iSneakAttack = NWNXPopInt();
data.bKillingBlow = NWNXPopInt();
data.iAttackType = NWNXPopInt();
data.iToHitRoll = NWNXPopInt();
data.iToHitModifier = NWNXPopInt();
return data;
}
void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data)
{
string sFunc = "SetAttackEventData";
NWNX_PushArgumentInt(data.iSneakAttack);
NWNX_PushArgumentInt(data.iAttackResult);
NWNX_PushArgumentInt(data.iCustom19);
NWNX_PushArgumentInt(data.iCustom18);
NWNX_PushArgumentInt(data.iCustom17);
NWNX_PushArgumentInt(data.iCustom16);
NWNX_PushArgumentInt(data.iCustom15);
NWNX_PushArgumentInt(data.iCustom14);
NWNX_PushArgumentInt(data.iCustom13);
NWNX_PushArgumentInt(data.iCustom12);
NWNX_PushArgumentInt(data.iCustom11);
NWNX_PushArgumentInt(data.iCustom10);
NWNX_PushArgumentInt(data.iCustom9);
NWNX_PushArgumentInt(data.iCustom8);
NWNX_PushArgumentInt(data.iCustom7);
NWNX_PushArgumentInt(data.iCustom6);
NWNX_PushArgumentInt(data.iCustom5);
NWNX_PushArgumentInt(data.iCustom4);
NWNX_PushArgumentInt(data.iCustom3);
NWNX_PushArgumentInt(data.iCustom2);
NWNX_PushArgumentInt(data.iCustom1);
NWNX_PushArgumentInt(data.iBase);
NWNX_PushArgumentInt(data.iSonic);
NWNX_PushArgumentInt(data.iPositive);
NWNX_PushArgumentInt(data.iNegative);
NWNX_PushArgumentInt(data.iFire);
NWNX_PushArgumentInt(data.iElectrical);
NWNX_PushArgumentInt(data.iDivine);
NWNX_PushArgumentInt(data.iCold);
NWNX_PushArgumentInt(data.iAcid);
NWNX_PushArgumentInt(data.iMagical);
NWNX_PushArgumentInt(data.iSlash);
NWNX_PushArgumentInt(data.iPierce);
NWNX_PushArgumentInt(data.iBludgeoning);
NWNX_CallFunction(NWNX_Damage, sFunc);
NWNXPushInt(data.iSneakAttack);
NWNXPushInt(data.iAttackResult);
NWNXPushInt(data.iCustom19);
NWNXPushInt(data.iCustom18);
NWNXPushInt(data.iCustom17);
NWNXPushInt(data.iCustom16);
NWNXPushInt(data.iCustom15);
NWNXPushInt(data.iCustom14);
NWNXPushInt(data.iCustom13);
NWNXPushInt(data.iCustom12);
NWNXPushInt(data.iCustom11);
NWNXPushInt(data.iCustom10);
NWNXPushInt(data.iCustom9);
NWNXPushInt(data.iCustom8);
NWNXPushInt(data.iCustom7);
NWNXPushInt(data.iCustom6);
NWNXPushInt(data.iCustom5);
NWNXPushInt(data.iCustom4);
NWNXPushInt(data.iCustom3);
NWNXPushInt(data.iCustom2);
NWNXPushInt(data.iCustom1);
NWNXPushInt(data.iBase);
NWNXPushInt(data.iSonic);
NWNXPushInt(data.iPositive);
NWNXPushInt(data.iNegative);
NWNXPushInt(data.iFire);
NWNXPushInt(data.iElectrical);
NWNXPushInt(data.iDivine);
NWNXPushInt(data.iCold);
NWNXPushInt(data.iAcid);
NWNXPushInt(data.iMagical);
NWNXPushInt(data.iSlash);
NWNXPushInt(data.iPierce);
NWNXPushInt(data.iBludgeoning);
NWNXCall(NWNX_Damage, "SetAttackEventData");
}
void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource, int iRanged = FALSE)
{
string sFunc = "DealDamage";
NWNX_PushArgumentInt(iRanged);
NWNX_PushArgumentInt(data.iPower);
NWNX_PushArgumentInt(data.iCustom19);
NWNX_PushArgumentInt(data.iCustom18);
NWNX_PushArgumentInt(data.iCustom17);
NWNX_PushArgumentInt(data.iCustom16);
NWNX_PushArgumentInt(data.iCustom15);
NWNX_PushArgumentInt(data.iCustom14);
NWNX_PushArgumentInt(data.iCustom13);
NWNX_PushArgumentInt(data.iCustom12);
NWNX_PushArgumentInt(data.iCustom11);
NWNX_PushArgumentInt(data.iCustom10);
NWNX_PushArgumentInt(data.iCustom9);
NWNX_PushArgumentInt(data.iCustom8);
NWNX_PushArgumentInt(data.iCustom7);
NWNX_PushArgumentInt(data.iCustom6);
NWNX_PushArgumentInt(data.iCustom5);
NWNX_PushArgumentInt(data.iCustom4);
NWNX_PushArgumentInt(data.iCustom3);
NWNX_PushArgumentInt(data.iCustom2);
NWNX_PushArgumentInt(data.iCustom1);
NWNX_PushArgumentInt(0);// Padding for Base Damage
NWNX_PushArgumentInt(data.iSonic);
NWNX_PushArgumentInt(data.iPositive);
NWNX_PushArgumentInt(data.iNegative);
NWNX_PushArgumentInt(data.iFire);
NWNX_PushArgumentInt(data.iElectrical);
NWNX_PushArgumentInt(data.iDivine);
NWNX_PushArgumentInt(data.iCold);
NWNX_PushArgumentInt(data.iAcid);
NWNX_PushArgumentInt(data.iMagical);
NWNX_PushArgumentInt(data.iSlash);
NWNX_PushArgumentInt(data.iPierce);
NWNX_PushArgumentInt(data.iBludgeoning);
NWNX_PushArgumentObject(oTarget);
NWNX_PushArgumentObject(oSource);
NWNX_CallFunction(NWNX_Damage, sFunc);
NWNXPushInt(iRanged);
NWNXPushInt(data.iPower);
NWNXPushInt(data.iCustom19);
NWNXPushInt(data.iCustom18);
NWNXPushInt(data.iCustom17);
NWNXPushInt(data.iCustom16);
NWNXPushInt(data.iCustom15);
NWNXPushInt(data.iCustom14);
NWNXPushInt(data.iCustom13);
NWNXPushInt(data.iCustom12);
NWNXPushInt(data.iCustom11);
NWNXPushInt(data.iCustom10);
NWNXPushInt(data.iCustom9);
NWNXPushInt(data.iCustom8);
NWNXPushInt(data.iCustom7);
NWNXPushInt(data.iCustom6);
NWNXPushInt(data.iCustom5);
NWNXPushInt(data.iCustom4);
NWNXPushInt(data.iCustom3);
NWNXPushInt(data.iCustom2);
NWNXPushInt(data.iCustom1);
NWNXPushInt(0);// Padding for Base Damage
NWNXPushInt(data.iSonic);
NWNXPushInt(data.iPositive);
NWNXPushInt(data.iNegative);
NWNXPushInt(data.iFire);
NWNXPushInt(data.iElectrical);
NWNXPushInt(data.iDivine);
NWNXPushInt(data.iCold);
NWNXPushInt(data.iAcid);
NWNXPushInt(data.iMagical);
NWNXPushInt(data.iSlash);
NWNXPushInt(data.iPierce);
NWNXPushInt(data.iBludgeoning);
NWNXPushObject(oTarget);
NWNXPushObject(oSource);
NWNXCall(NWNX_Damage, "DealDamage");
}

View File

@@ -3,8 +3,6 @@
/// @{
/// @file nwnx_dialog.nss
#include "nwnx"
const string NWNX_Dialog = "NWNX_Dialog"; ///< @private
/// @name Dialog Node Types
@@ -80,60 +78,46 @@ void NWNX_Dialog_End(object oObject);
int NWNX_Dialog_GetCurrentNodeType()
{
string sFunc = "GetCurrentNodeType";
NWNX_CallFunction(NWNX_Dialog, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Dialog, "GetCurrentNodeType");
return NWNXPopInt();
}
int NWNX_Dialog_GetCurrentScriptType()
{
string sFunc = "GetCurrentScriptType";
NWNX_CallFunction(NWNX_Dialog, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Dialog, "GetCurrentScriptType");
return NWNXPopInt();
}
int NWNX_Dialog_GetCurrentNodeID()
{
string sFunc = "GetCurrentNodeID";
NWNX_CallFunction(NWNX_Dialog, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Dialog, "GetCurrentNodeID");
return NWNXPopInt();
}
int NWNX_Dialog_GetCurrentNodeIndex()
{
string sFunc = "GetCurrentNodeIndex";
NWNX_CallFunction(NWNX_Dialog, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Dialog, "GetCurrentNodeIndex");
return NWNXPopInt();
}
string NWNX_Dialog_GetCurrentNodeText(int language=NWNX_DIALOG_LANGUAGE_ENGLISH, int gender=GENDER_MALE)
{
string sFunc = "GetCurrentNodeText";
NWNX_PushArgumentInt(gender);
NWNX_PushArgumentInt(language);
NWNX_CallFunction(NWNX_Dialog, sFunc);
return NWNX_GetReturnValueString();
NWNXPushInt(gender);
NWNXPushInt(language);
NWNXCall(NWNX_Dialog, "GetCurrentNodeText");
return NWNXPopString();
}
void NWNX_Dialog_SetCurrentNodeText(string text, int language=NWNX_DIALOG_LANGUAGE_ENGLISH, int gender=GENDER_MALE)
{
string sFunc = "SetCurrentNodeText";
NWNX_PushArgumentInt(gender);
NWNX_PushArgumentInt(language);
NWNX_PushArgumentString(text);
NWNX_CallFunction(NWNX_Dialog, sFunc);
NWNXPushInt(gender);
NWNXPushInt(language);
NWNXPushString(text);
NWNXCall(NWNX_Dialog, "SetCurrentNodeText");
}
void NWNX_Dialog_End(object oObject)
{
string sFunc = "End";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Dialog, sFunc);
NWNXPushObject(oObject);
NWNXCall(NWNX_Dialog, "End");
}

View File

@@ -2,7 +2,6 @@
/// @brief Utility functions to manipulate the builtin effect type.
/// @{
/// @file nwnx_effect.nss
#include "nwnx"
const string NWNX_Effect = "NWNX_Effect"; ///< @private
@@ -143,52 +142,46 @@ effect NWNX_Effect_GetAppliedEffect(object oObject, int nNth);
/// @}
struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(string sFunc, int bLink=TRUE)
struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(int bLink=TRUE)
{
struct NWNX_EffectUnpacked n;
n.sItemProp = NWNX_GetReturnValueString();
n.sItemProp = NWNXPopString();
n.sTag = NWNX_GetReturnValueString();
n.sTag = NWNXPopString();
float fZ = NWNX_GetReturnValueFloat();
float fY = NWNX_GetReturnValueFloat();
float fX = NWNX_GetReturnValueFloat();
n.vParam1 = Vector(fX, fY, fZ);
fZ = NWNX_GetReturnValueFloat();
fY = NWNX_GetReturnValueFloat();
fX = NWNX_GetReturnValueFloat();
n.vParam0 = Vector(fX, fY, fZ);
n.oParam3 = NWNX_GetReturnValueObject();
n.oParam2 = NWNX_GetReturnValueObject();
n.oParam1 = NWNX_GetReturnValueObject();
n.oParam0 = NWNX_GetReturnValueObject();
n.sParam5 = NWNX_GetReturnValueString();
n.sParam4 = NWNX_GetReturnValueString();
n.sParam3 = NWNX_GetReturnValueString();
n.sParam2 = NWNX_GetReturnValueString();
n.sParam1 = NWNX_GetReturnValueString();
n.sParam0 = NWNX_GetReturnValueString();
n.fParam3 = NWNX_GetReturnValueFloat();
n.fParam2 = NWNX_GetReturnValueFloat();
n.fParam1 = NWNX_GetReturnValueFloat();
n.fParam0 = NWNX_GetReturnValueFloat();
n.nParam7 = NWNX_GetReturnValueInt();
n.nParam6 = NWNX_GetReturnValueInt();
n.nParam5 = NWNX_GetReturnValueInt();
n.nParam4 = NWNX_GetReturnValueInt();
n.nParam3 = NWNX_GetReturnValueInt();
n.nParam2 = NWNX_GetReturnValueInt();
n.nParam1 = NWNX_GetReturnValueInt();
n.nParam0 = NWNX_GetReturnValueInt();
n.nNumIntegers = NWNX_GetReturnValueInt();
n.vParam1 = NWNXPopVector();
n.vParam0 = NWNXPopVector();
n.oParam3 = NWNXPopObject();
n.oParam2 = NWNXPopObject();
n.oParam1 = NWNXPopObject();
n.oParam0 = NWNXPopObject();
n.sParam5 = NWNXPopString();
n.sParam4 = NWNXPopString();
n.sParam3 = NWNXPopString();
n.sParam2 = NWNXPopString();
n.sParam1 = NWNXPopString();
n.sParam0 = NWNXPopString();
n.fParam3 = NWNXPopFloat();
n.fParam2 = NWNXPopFloat();
n.fParam1 = NWNXPopFloat();
n.fParam0 = NWNXPopFloat();
n.nParam7 = NWNXPopInt();
n.nParam6 = NWNXPopInt();
n.nParam5 = NWNXPopInt();
n.nParam4 = NWNXPopInt();
n.nParam3 = NWNXPopInt();
n.nParam2 = NWNXPopInt();
n.nParam1 = NWNXPopInt();
n.nParam0 = NWNXPopInt();
n.nNumIntegers = NWNXPopInt();
if(bLink)
{
n.bLinkRightValid = NWNX_GetReturnValueInt();
n.eLinkRight = NWNX_GetReturnValueEffect();
n.bLinkLeftValid = NWNX_GetReturnValueInt();
n.eLinkLeft = NWNX_GetReturnValueEffect();
n.bLinkRightValid = NWNXPopInt();
n.eLinkRight = NWNXPopEffect();
n.bLinkLeftValid = NWNXPopInt();
n.eLinkLeft = NWNXPopEffect();
}
else
{
@@ -196,207 +189,166 @@ struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(string sFunc, int bLink=T
n.bLinkLeftValid = FALSE;
}
n.nCasterLevel = NWNX_GetReturnValueInt();
n.bShowIcon = NWNX_GetReturnValueInt();
n.bExpose = NWNX_GetReturnValueInt();
n.nSpellId = NWNX_GetReturnValueInt();
n.oCreator = NWNX_GetReturnValueObject();
n.nCasterLevel = NWNXPopInt();
n.bShowIcon = NWNXPopInt();
n.bExpose = NWNXPopInt();
n.nSpellId = NWNXPopInt();
n.oCreator = NWNXPopObject();
n.nExpiryTimeOfDay = NWNX_GetReturnValueInt();
n.nExpiryCalendarDay = NWNX_GetReturnValueInt();
n.fDuration = NWNX_GetReturnValueFloat();
n.nExpiryTimeOfDay = NWNXPopInt();
n.nExpiryCalendarDay = NWNXPopInt();
n.fDuration = NWNXPopFloat();
n.nSubType = NWNX_GetReturnValueInt();
n.nType = NWNX_GetReturnValueInt();
n.sID = NWNX_GetReturnValueString();
n.nSubType = NWNXPopInt();
n.nType = NWNXPopInt();
n.sID = NWNXPopString();
return n;
}
void __NWNX_Effect_ResolvePack(string sFunc, struct NWNX_EffectUnpacked e, int bReplace=FALSE)
void __NWNX_Effect_ResolvePack(struct NWNX_EffectUnpacked e, int bReplace=FALSE)
{
if(!bReplace)
NWNX_PushArgumentInt(e.nType);
NWNXPushInt(e.nType);
NWNX_PushArgumentInt(e.nSubType);
NWNXPushInt(e.nSubType);
NWNX_PushArgumentFloat(e.fDuration);
NWNX_PushArgumentInt(e.nExpiryCalendarDay);
NWNX_PushArgumentInt(e.nExpiryTimeOfDay);
NWNXPushFloat(e.fDuration);
NWNXPushInt(e.nExpiryCalendarDay);
NWNXPushInt(e.nExpiryTimeOfDay);
NWNX_PushArgumentObject(e.oCreator);
NWNX_PushArgumentInt(e.nSpellId);
NWNX_PushArgumentInt(e.bExpose);
NWNX_PushArgumentInt(e.bShowIcon);
NWNX_PushArgumentInt(e.nCasterLevel);
NWNXPushObject(e.oCreator);
NWNXPushInt(e.nSpellId);
NWNXPushInt(e.bExpose);
NWNXPushInt(e.bShowIcon);
NWNXPushInt(e.nCasterLevel);
if(!bReplace)
{
NWNX_PushArgumentEffect(e.eLinkLeft);
NWNX_PushArgumentInt(e.bLinkLeftValid);
NWNX_PushArgumentEffect(e.eLinkRight);
NWNX_PushArgumentInt(e.bLinkRightValid);
NWNXPushEffect(e.eLinkLeft);
NWNXPushInt(e.bLinkLeftValid);
NWNXPushEffect(e.eLinkRight);
NWNXPushInt(e.bLinkRightValid);
}
NWNX_PushArgumentInt(e.nNumIntegers);
NWNX_PushArgumentInt(e.nParam0);
NWNX_PushArgumentInt(e.nParam1);
NWNX_PushArgumentInt(e.nParam2);
NWNX_PushArgumentInt(e.nParam3);
NWNX_PushArgumentInt(e.nParam4);
NWNX_PushArgumentInt(e.nParam5);
NWNX_PushArgumentInt(e.nParam6);
NWNX_PushArgumentInt(e.nParam7);
NWNX_PushArgumentFloat(e.fParam0);
NWNX_PushArgumentFloat(e.fParam1);
NWNX_PushArgumentFloat(e.fParam2);
NWNX_PushArgumentFloat(e.fParam3);
NWNX_PushArgumentString(e.sParam0);
NWNX_PushArgumentString(e.sParam1);
NWNX_PushArgumentString(e.sParam2);
NWNX_PushArgumentString(e.sParam3);
NWNX_PushArgumentString(e.sParam4);
NWNX_PushArgumentString(e.sParam5);
NWNX_PushArgumentObject(e.oParam0);
NWNX_PushArgumentObject(e.oParam1);
NWNX_PushArgumentObject(e.oParam2);
NWNX_PushArgumentObject(e.oParam3);
NWNXPushInt(e.nNumIntegers);
NWNXPushInt(e.nParam0);
NWNXPushInt(e.nParam1);
NWNXPushInt(e.nParam2);
NWNXPushInt(e.nParam3);
NWNXPushInt(e.nParam4);
NWNXPushInt(e.nParam5);
NWNXPushInt(e.nParam6);
NWNXPushInt(e.nParam7);
NWNXPushFloat(e.fParam0);
NWNXPushFloat(e.fParam1);
NWNXPushFloat(e.fParam2);
NWNXPushFloat(e.fParam3);
NWNXPushString(e.sParam0);
NWNXPushString(e.sParam1);
NWNXPushString(e.sParam2);
NWNXPushString(e.sParam3);
NWNXPushString(e.sParam4);
NWNXPushString(e.sParam5);
NWNXPushObject(e.oParam0);
NWNXPushObject(e.oParam1);
NWNXPushObject(e.oParam2);
NWNXPushObject(e.oParam3);
NWNX_PushArgumentFloat(e.vParam0.x);
NWNX_PushArgumentFloat(e.vParam0.y);
NWNX_PushArgumentFloat(e.vParam0.z);
NWNXPushVector(e.vParam0);
NWNXPushVector(e.vParam1);
NWNX_PushArgumentFloat(e.vParam1.x);
NWNX_PushArgumentFloat(e.vParam1.y);
NWNX_PushArgumentFloat(e.vParam1.z);
NWNXPushString(e.sTag);
NWNX_PushArgumentString(e.sTag);
NWNX_PushArgumentString(e.sItemProp);
NWNXPushString(e.sItemProp);
}
struct NWNX_EffectUnpacked NWNX_Effect_UnpackEffect(effect e)
{
string sFunc = "UnpackEffect";
NWNX_PushArgumentEffect(e);
NWNX_CallFunction(NWNX_Effect, sFunc);
return __NWNX_Effect_ResolveUnpack(sFunc);
NWNXPushEffect(e);
NWNXCall(NWNX_Effect, "UnpackEffect");
return __NWNX_Effect_ResolveUnpack();
}
effect NWNX_Effect_PackEffect(struct NWNX_EffectUnpacked e)
{
string sFunc = "PackEffect";
__NWNX_Effect_ResolvePack(sFunc, e);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueEffect();
__NWNX_Effect_ResolvePack(e);
NWNXCall(NWNX_Effect, "PackEffect");
return NWNXPopEffect();
}
int NWNX_Effect_ReplaceEffect(object obj, effect eOld, effect eNew)
{
string sFunc = "ReplaceEffect";
NWNX_PushArgumentEffect(eNew);
NWNX_PushArgumentEffect(eOld);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushEffect(eNew);
NWNXPushEffect(eOld);
NWNXPushObject(obj);
NWNXCall(NWNX_Effect, "ReplaceEffect");
return NWNXPopInt();
}
int NWNX_Effect_GetTrueEffectCount(object oObject)
{
string sFunc = "GetTrueEffectCount";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Effect, "GetTrueEffectCount");
return NWNXPopInt();
}
struct NWNX_EffectUnpacked NWNX_Effect_GetTrueEffect(object oObject, int nIndex)
{
string sFunc = "GetTrueEffect";
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Effect, sFunc);
return __NWNX_Effect_ResolveUnpack(sFunc, FALSE);
NWNXPushInt(nIndex);
NWNXPushObject(oObject);
NWNXCall(NWNX_Effect, "GetTrueEffect");
return __NWNX_Effect_ResolveUnpack(FALSE);
}
void NWNX_Effect_ReplaceEffectByIndex(object oObject, int nIndex, struct NWNX_EffectUnpacked e)
{
string sFunc = "ReplaceEffectByIndex";
__NWNX_Effect_ResolvePack(sFunc, e, TRUE);
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Effect, sFunc);
__NWNX_Effect_ResolvePack(e, TRUE);
NWNXPushInt(nIndex);
NWNXPushObject(oObject);
NWNXCall(NWNX_Effect, "ReplaceEffectByIndex");
}
int NWNX_Effect_RemoveEffectById(object oObject, string sID)
{
string sFunc = "RemoveEffectById";
NWNX_PushArgumentString(sID);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sID);
NWNXPushObject(oObject);
NWNXCall(NWNX_Effect, "RemoveEffectById");
return NWNXPopInt();
}
void NWNX_Effect_Apply(effect eEffect, object oObject)
{
string sFunc = "Apply";
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentEffect(eEffect);
NWNX_CallFunction(NWNX_Effect, sFunc);
NWNXPushObject(oObject);
NWNXPushEffect(eEffect);
NWNXCall(NWNX_Effect, "Apply");
}
effect NWNX_Effect_SetEffectCreator(effect eEffect, object oObject)
{
string sFunc = "SetEffectCreator";
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentEffect(eEffect);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueEffect();
NWNXPushObject(oObject);
NWNXPushEffect(eEffect);
NWNXCall(NWNX_Effect, "SetEffectCreator");
return NWNXPopEffect();
}
int NWNX_Effect_GetIsEffectValid(effect eEffect)
{
string sFunc = "GetIsEffectValid";
NWNX_PushArgumentEffect(eEffect);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushEffect(eEffect);
NWNXCall(NWNX_Effect, "GetIsEffectValid");
return NWNXPopInt();
}
int NWNX_Effect_GetAppliedEffectCount(object oObject)
{
string sFunc = "GetAppliedEffectCount";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Effect, "GetAppliedEffectCount");
return NWNXPopInt();
}
effect NWNX_Effect_GetAppliedEffect(object oObject, int nNth)
{
string sFunc = "GetAppliedEffect";
NWNX_PushArgumentInt(nNth);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Effect, sFunc);
return NWNX_GetReturnValueEffect();
NWNXPushInt(nNth);
NWNXPushObject(oObject);
NWNXCall(NWNX_Effect, "GetAppliedEffect");
return NWNXPopEffect();
}

View File

@@ -2,7 +2,6 @@
/// @brief Replacement for ValidateCharacter: ELC & ILR
/// @{
/// @file nwnx_elc.nss
#include "nwnx"
const string NWNX_ELC = "NWNX_ELC"; ///< @private
@@ -147,95 +146,71 @@ int NWNX_ELC_GetValidationFailureSpellID();
void NWNX_ELC_SetELCScript(string sScript)
{
string sFunc = "SetELCScript";
NWNX_PushArgumentString(sScript);
NWNX_CallFunction(NWNX_ELC, sFunc);
NWNXPushString(sScript);
NWNXCall(NWNX_ELC, "SetELCScript");
}
void NWNX_ELC_EnableCustomELCCheck(int bEnabled)
{
string sFunc = "EnableCustomELCCheck";
NWNX_PushArgumentInt(bEnabled);
NWNX_CallFunction(NWNX_ELC, sFunc);
NWNXPushInt(bEnabled);
NWNXCall(NWNX_ELC, "EnableCustomELCCheck");
}
void NWNX_ELC_SkipValidationFailure()
{
string sFunc = "SkipValidationFailure";
NWNX_CallFunction(NWNX_ELC, sFunc);
NWNXCall(NWNX_ELC, "SkipValidationFailure");
}
int NWNX_ELC_GetValidationFailureType()
{
string sFunc = "GetValidationFailureType";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureType");
return NWNXPopInt();
}
int NWNX_ELC_GetValidationFailureSubType()
{
string sFunc = "GetValidationFailureSubType";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureSubType");
return NWNXPopInt();
}
int NWNX_ELC_GetValidationFailureMessageStrRef()
{
string sFunc = "GetValidationFailureMessageStrRef";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureMessageStrRef");
return NWNXPopInt();
}
void NWNX_ELC_SetValidationFailureMessageStrRef(int nStrRef)
{
string sFunc = "SetValidationFailureMessageStrRef";
NWNX_PushArgumentInt(nStrRef);
NWNX_CallFunction(NWNX_ELC, sFunc);
NWNXPushInt(nStrRef);
NWNXCall(NWNX_ELC, "SetValidationFailureMessageStrRef");
}
object NWNX_ELC_GetValidationFailureItem()
{
string sFunc = "GetValidationFailureItem";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueObject();
NWNXCall(NWNX_ELC, "GetValidationFailureItem");
return NWNXPopObject();
}
int NWNX_ELC_GetValidationFailureLevel()
{
string sFunc = "GetValidationFailureLevel";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureLevel");
return NWNXPopInt();
}
int NWNX_ELC_GetValidationFailureSkillID()
{
string sFunc = "GetValidationFailureSkillID";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureSkillID");
return NWNXPopInt();
}
int NWNX_ELC_GetValidationFailureFeatID()
{
string sFunc = "GetValidationFailureFeatID";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureFeatID");
return NWNXPopInt();
}
int NWNX_ELC_GetValidationFailureSpellID()
{
string sFunc = "GetValidationFailureSpellID";
NWNX_CallFunction(NWNX_ELC, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_ELC, "GetValidationFailureSpellID");
return NWNXPopInt();
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional encounter properties.
/// @{
/// @file nwnx_encounter.nss
#include "nwnx"
const string NWNX_Encounter = "NWNX_Encounter"; ///< @private
@@ -122,205 +121,146 @@ void NWNX_Encounter_SetGeometry(object oTrigger, string sGeometry);
void NWNX_Encounter_Destroy(object encounter)
{
string sFunc = "Destroy";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "Destroy");
}
int NWNX_Encounter_GetNumberOfCreaturesInEncounterList(object encounter)
{
string sFunc = "GetNumberOfCreaturesInEncounterList";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetNumberOfCreaturesInEncounterList");
return NWNXPopInt();
}
struct NWNX_Encounter_CreatureListEntry NWNX_Encounter_GetEncounterCreatureByIndex(object encounter, int index)
{
string sFunc = "GetEncounterCreatureByIndex";
struct NWNX_Encounter_CreatureListEntry creatureEntry;
NWNX_PushArgumentInt(index);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
creatureEntry.alreadyUsed = NWNX_GetReturnValueInt();
creatureEntry.unique = NWNX_GetReturnValueInt();
creatureEntry.challengeRating = NWNX_GetReturnValueFloat();
creatureEntry.resref = NWNX_GetReturnValueString();
NWNXPushInt(index);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetEncounterCreatureByIndex");
creatureEntry.alreadyUsed = NWNXPopInt();
creatureEntry.unique = NWNXPopInt();
creatureEntry.challengeRating = NWNXPopFloat();
creatureEntry.resref = NWNXPopString();
return creatureEntry;
}
void NWNX_Encounter_SetEncounterCreatureByIndex(object encounter, int index, struct NWNX_Encounter_CreatureListEntry creatureEntry)
{
string sFunc = "SetEncounterCreatureByIndex";
NWNX_PushArgumentInt(creatureEntry.alreadyUsed);
NWNX_PushArgumentInt(creatureEntry.unique);
NWNX_PushArgumentFloat(creatureEntry.challengeRating);
NWNX_PushArgumentString(creatureEntry.resref);
NWNX_PushArgumentInt(index);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushInt(creatureEntry.alreadyUsed);
NWNXPushInt(creatureEntry.unique);
NWNXPushFloat(creatureEntry.challengeRating);
NWNXPushString(creatureEntry.resref);
NWNXPushInt(index);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "SetEncounterCreatureByIndex");
}
int NWNX_Encounter_GetFactionId(object encounter)
{
string sFunc = "GetFactionId";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetFactionId");
return NWNXPopInt();
}
void NWNX_Encounter_SetFactionId(object encounter, int factionId)
{
string sFunc = "SetFactionId";
NWNX_PushArgumentInt(factionId);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushInt(factionId);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "SetFactionId");
}
int NWNX_Encounter_GetPlayerTriggeredOnly(object encounter)
{
string sFunc = "GetPlayerTriggeredOnly";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetPlayerTriggeredOnly");
return NWNXPopInt();
}
void NWNX_Encounter_SetPlayerTriggeredOnly(object encounter, int playerTriggeredOnly)
{
string sFunc = "SetPlayerTriggeredOnly";
NWNX_PushArgumentInt(playerTriggeredOnly);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushInt(playerTriggeredOnly);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "SetPlayerTriggeredOnly");
}
int NWNX_Encounter_GetCanReset(object encounter)
{
string sFunc = "GetCanReset";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetCanReset");
return NWNXPopInt();
}
void NWNX_Encounter_SetCanReset(object encounter, int reset)
{
string sFunc = "SetCanReset";
NWNX_PushArgumentInt(reset);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushInt(reset);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "SetCanReset");
}
int NWNX_Encounter_GetResetTime(object encounter)
{
string sFunc = "GetResetTime";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetResetTime");
return NWNXPopInt();
}
void NWNX_Encounter_SetResetTime(object encounter, int resetTime)
{
string sFunc = "SetResetTime";
NWNX_PushArgumentInt(resetTime);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushInt(resetTime);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "SetResetTime");
}
int NWNX_Encounter_GetNumberOfSpawnPoints(object encounter)
{
string sFunc = "GetNumberOfSpawnPoints";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetNumberOfSpawnPoints");
return NWNXPopInt();
}
location NWNX_Encounter_GetSpawnPointByIndex(object encounter, int index)
{
string sFunc = "GetSpawnPointByIndex";
NWNX_PushArgumentInt(index);
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
float o = NWNX_GetReturnValueFloat();
float z = NWNX_GetReturnValueFloat();
float y = NWNX_GetReturnValueFloat();
float x = NWNX_GetReturnValueFloat();
return Location(GetArea(encounter), Vector(x, y, z), o);
NWNXPushInt(index);
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetSpawnPointByIndex");
float fOrientation = NWNXPopFloat();
vector vPosition = NWNXPopVector();
return Location(GetArea(encounter), vPosition, fOrientation);
}
int NWNX_Encounter_GetMinNumSpawned(object encounter)
{
string sFunc = "GetMinNumSpawned";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetMinNumSpawned");
return NWNXPopInt();
}
int NWNX_Encounter_GetMaxNumSpawned(object encounter)
{
string sFunc = "GetMaxNumSpawned";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetMaxNumSpawned");
return NWNXPopInt();
}
int NWNX_Encounter_GetCurrentNumSpawned(object encounter)
{
string sFunc = "GetCurrentNumSpawned";
NWNX_PushArgumentObject(encounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(encounter);
NWNXCall(NWNX_Encounter, "GetCurrentNumSpawned");
return NWNXPopInt();
}
string NWNX_Encounter_GetGeometry(object oEncounter)
{
string sFunc = "GetGeometry";
NWNX_PushArgumentObject(oEncounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(oEncounter);
NWNXCall(NWNX_Encounter, "GetGeometry");
return NWNXPopString();
}
void NWNX_Encounter_SetGeometry(object oEncounter, string sGeometry)
{
string sFunc = "SetGeometry";
NWNX_PushArgumentString(sGeometry);
NWNX_PushArgumentObject(oEncounter);
NWNX_CallFunction(NWNX_Encounter, sFunc);
NWNXPushString(sGeometry);
NWNXPushObject(oEncounter);
NWNXCall(NWNX_Encounter, "SetGeometry");
}

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();
}

View File

@@ -2,7 +2,6 @@
/// @brief Define feat bonuses/penalties
/// @{
/// @file nwnx_feat.nss
#include "nwnx"
const string NWNX_Feat = "NWNX_Feat"; ///< @private
@@ -53,14 +52,11 @@ void NWNX_Feat_SetFeatModifier(int iFeat, int iMod, int iParam1 = 0xDEADBEEF, in
void NWNX_Feat_SetFeatModifier(int iFeat, int iMod, int iParam1 = 0xDEADBEEF, int iParam2 = 0xDEADBEEF, int iParam3 = 0xDEADBEEF, int iParam4 = 0xDEADBEEF)
{
string sFunc = "SetFeatModifier";
NWNX_PushArgumentInt(iParam4);
NWNX_PushArgumentInt(iParam3);
NWNX_PushArgumentInt(iParam2);
NWNX_PushArgumentInt(iParam1);
NWNX_PushArgumentInt(iMod);
NWNX_PushArgumentInt(iFeat);
NWNX_CallFunction(NWNX_Feat, sFunc);
NWNXPushInt(iParam4);
NWNXPushInt(iParam3);
NWNXPushInt(iParam2);
NWNXPushInt(iParam1);
NWNXPushInt(iMod);
NWNXPushInt(iFeat);
NWNXCall(NWNX_Feat, "SetFeatModifier");
}

View File

@@ -10,7 +10,6 @@
/// * -1 = Personal state is not set for Message
/// @{
/// @file nwnx_feedback.nss
#include "nwnx"
const string NWNX_Feedback = "NWNX_Feedback"; ///< @private
@@ -402,95 +401,69 @@ void NWNX_Feedback_SetCombatLogMessageMode(int bWhitelist);
int NWNX_Feedback_GetFeedbackMessageHidden(int nMessage, object oPC = OBJECT_INVALID)
{
string sFunc = "GetMessageHidden";
int nMessageType = 0;
NWNX_PushArgumentInt(nMessage);
NWNX_PushArgumentInt(nMessageType);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Feedback, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nMessage);
NWNXPushInt(0);
NWNXPushObject(oPC);
NWNXCall(NWNX_Feedback, "GetMessageHidden");
return NWNXPopInt();
}
void NWNX_Feedback_SetFeedbackMessageHidden(int nMessage, int isHidden, object oPC = OBJECT_INVALID)
{
string sFunc = "SetMessageHidden";
int nMessageType = 0;
NWNX_PushArgumentInt(isHidden);
NWNX_PushArgumentInt(nMessage);
NWNX_PushArgumentInt(nMessageType);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Feedback, sFunc);
NWNXPushInt(isHidden);
NWNXPushInt(nMessage);
NWNXPushInt(0);
NWNXPushObject(oPC);
NWNXCall(NWNX_Feedback, "SetMessageHidden");
}
int NWNX_Feedback_GetCombatLogMessageHidden(int nMessage, object oPC = OBJECT_INVALID)
{
string sFunc = "GetMessageHidden";
int nMessageType = 1;
NWNXPushInt(nMessage);
NWNXPushInt(1);
NWNXPushObject(oPC);
NWNXCall(NWNX_Feedback, "GetMessageHidden");
NWNX_PushArgumentInt(nMessage);
NWNX_PushArgumentInt(nMessageType);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Feedback, sFunc);
return NWNX_GetReturnValueInt();
return NWNXPopInt();
}
void NWNX_Feedback_SetCombatLogMessageHidden(int nMessage, int isHidden, object oPC = OBJECT_INVALID)
{
string sFunc = "SetMessageHidden";
int nMessageType = 1;
NWNX_PushArgumentInt(isHidden);
NWNX_PushArgumentInt(nMessage);
NWNX_PushArgumentInt(nMessageType);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Feedback, sFunc);
NWNXPushInt(isHidden);
NWNXPushInt(nMessage);
NWNXPushInt(1);
NWNXPushObject(oPC);
NWNXCall(NWNX_Feedback, "SetMessageHidden");
}
int NWNX_Feedback_GetJournalUpdatedMessageHidden(object oPC = OBJECT_INVALID)
{
string sFunc = "GetMessageHidden";
int nMessageType = 2;
NWNX_PushArgumentInt(0);
NWNX_PushArgumentInt(nMessageType);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Feedback, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(0);
NWNXPushInt(2);
NWNXPushObject(oPC);
NWNXCall(NWNX_Feedback, "GetMessageHidden");
return NWNXPopInt();
}
void NWNX_Feedback_SetJournalUpdatedMessageHidden(int isHidden, object oPC = OBJECT_INVALID)
{
string sFunc = "SetMessageHidden";
int nMessageType = 2;
NWNX_PushArgumentInt(isHidden);
NWNX_PushArgumentInt(0);
NWNX_PushArgumentInt(nMessageType);
NWNX_PushArgumentObject(oPC);
NWNX_CallFunction(NWNX_Feedback, sFunc);
NWNXPushInt(isHidden);
NWNXPushInt(0);
NWNXPushInt(2);
NWNXPushObject(oPC);
NWNXCall(NWNX_Feedback, "SetMessageHidden");
}
void NWNX_Feedback_SetFeedbackMessageMode(int bWhitelist)
{
string sFunc = "SetFeedbackMode";
int nMessageType = 0;
NWNX_PushArgumentInt(bWhitelist);
NWNX_PushArgumentInt(nMessageType);
NWNX_CallFunction(NWNX_Feedback, sFunc);
NWNXPushInt(bWhitelist);
NWNXPushInt(0);
NWNXCall(NWNX_Feedback, "SetFeedbackMode");
}
void NWNX_Feedback_SetCombatLogMessageMode(int bWhitelist)
{
string sFunc = "SetFeedbackMode";
int nMessageType = 1;
NWNX_PushArgumentInt(bWhitelist);
NWNX_PushArgumentInt(nMessageType);
NWNX_CallFunction(NWNX_Feedback, sFunc);
NWNXPushInt(bWhitelist);
NWNXPushInt(1);
NWNXCall(NWNX_Feedback, "SetFeedbackMode");
}

View File

@@ -0,0 +1,107 @@
/// @addtogroup httpclient HTTPClient
/// @brief NWNX HTTPClient
/// @{
/// @file nwnx_httpclient.nss
const string NWNX_HTTPClient = "NWNX_HTTPClient"; ///< @private
/// @name Request Types
/// @anchor request_types
///
/// @{
const int NWNX_HTTPCLIENT_REQUEST_METHOD_GET = 0;
const int NWNX_HTTPCLIENT_REQUEST_METHOD_POST = 1;
const int NWNX_HTTPCLIENT_REQUEST_METHOD_DELETE = 2;
const int NWNX_HTTPCLIENT_REQUEST_METHOD_PATCH = 3;
const int NWNX_HTTPCLIENT_REQUEST_METHOD_PUT = 4;
const int NWNX_HTTPCLIENT_REQUEST_METHOD_OPTION = 5;
const int NWNX_HTTPCLIENT_REQUEST_METHOD_HEAD = 6;
///@}
/// @name Content Types
/// @anchor content_types
///
/// @{
const int NWNX_HTTPCLIENT_CONTENT_TYPE_HTML = 0;
const int NWNX_HTTPCLIENT_CONTENT_TYPE_PLAINTEXT = 1;
const int NWNX_HTTPCLIENT_CONTENT_TYPE_JSON = 2;
const int NWNX_HTTPCLIENT_CONTENT_TYPE_FORM_URLENCODED = 3;
const int NWNX_HTTPCLIENT_CONTENT_TYPE_XML = 4;
///@}
/// @name HTTP Authentication Types
/// @anchor auth_types
///
/// @{
const int NWNX_HTTPCLIENT_AUTH_TYPE_NONE = 0;
const int NWNX_HTTPCLIENT_AUTH_TYPE_BASIC = 1;
const int NWNX_HTTPCLIENT_AUTH_TYPE_DIGEST = 2;
const int NWNX_HTTPCLIENT_AUTH_TYPE_BEARER_TOKEN = 3;
///@}
/// A structure for an HTTP Client Request
struct NWNX_HTTPClient_Request
{
int nRequestMethod; ///< A @ref request_types "Request Type"
string sTag; ///< A unique tag for this request
string sHost; ///< The host domain name/IP address
string sPath; ///< The path for the url (include the leading /)
string sData; ///< The data being sent
int nContentType; ///< A @ref content_types "Content Type"
int nAuthType; ///< An @ref auth_types "Authentication Type"
string sAuthUserOrToken; ///< The authentication username or token
string sAuthPassword; ///< The authentication password (ignored if just using a token)
int nPort; ///< The host port
string sHeaders; ///< Pipe (|) delimited header pairs, e.g. "User-Agent: My NWNX HTTP Client|Accept: application/vnd.github.v3+json"
};
/// @brief Sends an http method to the given host.
/// @param s The structured NWNX_HTTPClient_Request information.
/// @return A unique identifier for the request for later access in the REQUEST_ID event data.
int NWNX_HTTPClient_SendRequest(struct NWNX_HTTPClient_Request s);
/// @brief Returns an NWNX_HTTP_Client_Request structure
/// @param nRequestId The request id returned from NWNX_HTTPClient_SendRequest()
/// @return The structured NWNX_HTTPClient_Request information
struct NWNX_HTTPClient_Request NWNX_HTTPClient_GetRequest(int nRequestId);
/// @}
int NWNX_HTTPClient_SendRequest(struct NWNX_HTTPClient_Request s)
{
NWNXPushString(s.sHeaders);
NWNXPushInt(s.nPort);
NWNXPushString(s.sAuthPassword);
NWNXPushString(s.sAuthUserOrToken);
NWNXPushInt(s.nAuthType);
NWNXPushString(s.sData);
NWNXPushInt(s.nContentType);
NWNXPushString(s.sPath);
NWNXPushString(s.sHost);
NWNXPushInt(s.nRequestMethod);
NWNXPushString(s.sTag);
NWNXCall(NWNX_HTTPClient, "SendRequest");
return NWNXPopInt();
}
struct NWNX_HTTPClient_Request NWNX_HTTPClient_GetRequest(int nRequestId)
{
NWNXPushInt(nRequestId);
NWNXCall(NWNX_HTTPClient, "GetRequest");
struct NWNX_HTTPClient_Request s;
s.sTag = NWNXPopString();
s.nRequestMethod = NWNXPopInt();
s.sHost = NWNXPopString();
s.sPath = NWNXPopString();
s.nContentType = NWNXPopInt();
s.sData = NWNXPopString();
s.nAuthType = NWNXPopInt();
s.sAuthUserOrToken = NWNXPopString();
s.sAuthPassword = NWNXPopString();
s.nPort = NWNXPopInt();
s.sHeaders = NWNXPopString();
return s;
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional item properties.
/// @{
/// @file nwnx_item.nss
#include "nwnx"
const string NWNX_Item = "NWNX_Item"; ///< @private
@@ -134,169 +133,120 @@ int NWNX_Item_GetMinEquipLevelOverride(object oItem);
void NWNX_Item_SetWeight(object oItem, int w)
{
string sFunc = "SetWeight";
NWNX_PushArgumentInt(w);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(w);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetWeight");
}
void NWNX_Item_SetBaseGoldPieceValue(object oItem, int g)
{
string sFunc = "SetBaseGoldPieceValue";
NWNX_PushArgumentInt(g);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(g);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetBaseGoldPieceValue");
}
void NWNX_Item_SetAddGoldPieceValue(object oItem, int g)
{
string sFunc = "SetAddGoldPieceValue";
NWNX_PushArgumentInt(g);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(g);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetAddGoldPieceValue");
}
int NWNX_Item_GetBaseGoldPieceValue(object oItem)
{
string sFunc = "GetBaseGoldPieceValue";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetBaseGoldPieceValue");
return NWNXPopInt();
}
int NWNX_Item_GetAddGoldPieceValue(object oItem)
{
string sFunc = "GetAddGoldPieceValue";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetAddGoldPieceValue");
return NWNXPopInt();
}
void NWNX_Item_SetBaseItemType(object oItem, int nBaseItem)
{
string sFunc = "SetBaseItemType";
NWNX_PushArgumentInt(nBaseItem);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(nBaseItem);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetBaseItemType");
}
void NWNX_Item_SetItemAppearance(object oItem, int nType, int nIndex, int nValue, int bUpdateCreatureAppearance = FALSE)
{
string sFunc = "SetItemAppearance";
NWNX_PushArgumentInt(bUpdateCreatureAppearance);
NWNX_PushArgumentInt(nValue);
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentInt(nType);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(bUpdateCreatureAppearance);
NWNXPushInt(nValue);
NWNXPushInt(nIndex);
NWNXPushInt(nType);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetItemAppearance");
}
string NWNX_Item_GetEntireItemAppearance(object oItem)
{
string sFunc = "GetEntireItemAppearance";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetEntireItemAppearance");
return NWNXPopString();
}
void NWNX_Item_RestoreItemAppearance(object oItem, string sApp)
{
string sFunc = "RestoreItemAppearance";
NWNX_PushArgumentString(sApp);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushString(sApp);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "RestoreItemAppearance");
}
int NWNX_Item_GetBaseArmorClass(object oItem)
{
string sFunc = "GetBaseArmorClass";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetBaseArmorClass");
return NWNXPopInt();
}
int NWNX_Item_GetMinEquipLevel(object oItem)
{
string sFunc = "GetMinEquipLevel";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetMinEquipLevel");
return NWNXPopInt();
}
int NWNX_Item_MoveTo(object oItem, object oTarget, int bHideAllFeedback = FALSE)
{
string sFunc = "MoveTo";
NWNX_PushArgumentInt(bHideAllFeedback);
NWNX_PushArgumentObject(oTarget);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(bHideAllFeedback);
NWNXPushObject(oTarget);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "MoveTo");
return NWNXPopInt();
}
void NWNX_Item_SetMinEquipLevelModifier(object oItem, int nModifier, int bPersist = TRUE)
{
string sFunc = "SetMinEquipLevelModifier";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentInt(nModifier);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(bPersist);
NWNXPushInt(nModifier);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetMinEquipLevelModifier");
}
int NWNX_Item_GetMinEquipLevelModifier(object oItem)
{
string sFunc = "GetMinEquipLevelModifier";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetMinEquipLevelModifier");
return NWNXPopInt();
}
void NWNX_Item_SetMinEquipLevelOverride(object oItem, int nOverride, int bPersist = TRUE)
{
string sFunc = "SetMinEquipLevelOverride";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentInt(nOverride);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
NWNXPushInt(bPersist);
NWNXPushInt(nOverride);
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "SetMinEquipLevelOverride");
}
int NWNX_Item_GetMinEquipLevelOverride(object oItem)
{
string sFunc = "GetMinEquipLevelOverride";
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_Item, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXCall(NWNX_Item, "GetMinEquipLevelOverride");
return NWNXPopInt();
}

View File

@@ -2,7 +2,6 @@
/// @brief Utility functions to manipulate the builtin itemproperty type.
/// @{
/// @file nwnx_itemprop.nss
#include "nwnx"
const string NWNX_ItemProperty = "NWNX_ItemProperty"; ///< @private
@@ -44,70 +43,58 @@ struct NWNX_IPUnpacked NWNX_ItemProperty_GetActiveProperty(object oItem, int nIn
struct NWNX_IPUnpacked NWNX_ItemProperty_UnpackIP(itemproperty ip)
{
string sFunc = "UnpackIP";
NWNX_PushArgumentItemProperty(ip);
NWNX_CallFunction(NWNX_ItemProperty, sFunc);
NWNXPushItemProperty(ip);
NWNXCall(NWNX_ItemProperty, "UnpackIP");
struct NWNX_IPUnpacked n;
n.sID = NWNX_GetReturnValueString();
n.nProperty = NWNX_GetReturnValueInt();
n.nSubType = NWNX_GetReturnValueInt();
n.nCostTable = NWNX_GetReturnValueInt();
n.nCostTableValue = NWNX_GetReturnValueInt();
n.nParam1 = NWNX_GetReturnValueInt();
n.nParam1Value = NWNX_GetReturnValueInt();
n.nUsesPerDay = NWNX_GetReturnValueInt();
n.nChanceToAppear = NWNX_GetReturnValueInt();
n.bUsable = NWNX_GetReturnValueInt();
n.nSpellId = NWNX_GetReturnValueInt();
n.oCreator = NWNX_GetReturnValueObject();
n.sTag = NWNX_GetReturnValueString();
n.sID = NWNXPopString();
n.nProperty = NWNXPopInt();
n.nSubType = NWNXPopInt();
n.nCostTable = NWNXPopInt();
n.nCostTableValue = NWNXPopInt();
n.nParam1 = NWNXPopInt();
n.nParam1Value = NWNXPopInt();
n.nUsesPerDay = NWNXPopInt();
n.nChanceToAppear = NWNXPopInt();
n.bUsable = NWNXPopInt();
n.nSpellId = NWNXPopInt();
n.oCreator = NWNXPopObject();
n.sTag = NWNXPopString();
return n;
}
itemproperty NWNX_ItemProperty_PackIP(struct NWNX_IPUnpacked n)
{
string sFunc = "PackIP";
NWNX_PushArgumentString(n.sTag);
NWNX_PushArgumentObject(n.oCreator);
NWNX_PushArgumentInt(n.nSpellId);
NWNX_PushArgumentInt(n.bUsable);
NWNX_PushArgumentInt(n.nChanceToAppear);
NWNX_PushArgumentInt(n.nUsesPerDay);
NWNX_PushArgumentInt(n.nParam1Value);
NWNX_PushArgumentInt(n.nParam1);
NWNX_PushArgumentInt(n.nCostTableValue);
NWNX_PushArgumentInt(n.nCostTable);
NWNX_PushArgumentInt(n.nSubType);
NWNX_PushArgumentInt(n.nProperty);
NWNX_CallFunction(NWNX_ItemProperty, sFunc);
return NWNX_GetReturnValueItemProperty();
NWNXPushString(n.sTag);
NWNXPushObject(n.oCreator);
NWNXPushInt(n.nSpellId);
NWNXPushInt(n.bUsable);
NWNXPushInt(n.nChanceToAppear);
NWNXPushInt(n.nUsesPerDay);
NWNXPushInt(n.nParam1Value);
NWNXPushInt(n.nParam1);
NWNXPushInt(n.nCostTableValue);
NWNXPushInt(n.nCostTable);
NWNXPushInt(n.nSubType);
NWNXPushInt(n.nProperty);
NWNXCall(NWNX_ItemProperty, "PackIP");
return NWNXPopItemProperty();
}
struct NWNX_IPUnpacked NWNX_ItemProperty_GetActiveProperty(object oItem, int nIndex)
{
string sFunc = "GetActiveProperty";
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentObject(oItem);
NWNX_CallFunction(NWNX_ItemProperty, sFunc);
NWNXPushInt(nIndex);
NWNXPushObject(oItem);
NWNXCall(NWNX_ItemProperty, "GetActiveProperty");
struct NWNX_IPUnpacked n;
n.nProperty = NWNX_GetReturnValueInt();
n.nSubType = NWNX_GetReturnValueInt();
n.nCostTable = NWNX_GetReturnValueInt();
n.nCostTableValue = NWNX_GetReturnValueInt();
n.nParam1 = NWNX_GetReturnValueInt();
n.nParam1Value = NWNX_GetReturnValueInt();
n.nUsesPerDay = NWNX_GetReturnValueInt();
n.nChanceToAppear = NWNX_GetReturnValueInt();
n.bUsable = NWNX_GetReturnValueInt();
n.sTag = NWNX_GetReturnValueString();
n.nProperty = NWNXPopInt();
n.nSubType = NWNXPopInt();
n.nCostTable = NWNXPopInt();
n.nCostTableValue = NWNXPopInt();
n.nParam1 = NWNXPopInt();
n.nParam1Value = NWNXPopInt();
n.nUsesPerDay = NWNXPopInt();
n.nChanceToAppear = NWNXPopInt();
n.bUsable = NWNXPopInt();
n.sTag = NWNXPopString();
return n;
}

View File

@@ -2,7 +2,6 @@
/// @brief Execute Lua code and generate events in NWScript
/// @{
/// @file nwnx_lua.nss
#include "nwnx"
const string NWNX_Lua = "NWNX_Lua"; ///< @private
@@ -25,27 +24,21 @@ void NWNX_Lua_RunEvent(string sEvent, object oObject, string sExtra="");
void NWNX_Lua_EvalVoid(string sCode)
{
string sFunc = "EvalVoid";
NWNX_PushArgumentString(sCode);
NWNX_CallFunction(NWNX_Lua, sFunc);
NWNXPushString(sCode);
NWNXCall(NWNX_Lua, "EvalVoid");
}
string NWNX_Lua_Eval(string sCode)
{
string sFunc = "Eval";
NWNX_PushArgumentString(sCode);
NWNX_CallFunction(NWNX_Lua, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sCode);
NWNXCall(NWNX_Lua, "Eval");
return NWNXPopString();
}
void NWNX_Lua_RunEvent(string sEvent, object oObject, string sExtra="")
{
string sFunc = "RunEvent";
NWNX_PushArgumentString(sExtra);
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentString(sEvent);
NWNX_CallFunction(NWNX_Lua, sFunc);
NWNXPushString(sExtra);
NWNXPushObject(oObject);
NWNXPushString(sEvent);
NWNXCall(NWNX_Lua, "RunEvent");
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions to allow more control over ability/skill/bonuses stacking.
/// @{
/// @file nwnx_nostack.nss
#include "nwnx"
const string NWNX_NoStack = "NWNX_NoStack"; ///< @private
@@ -31,10 +30,7 @@ void NWNX_NoStack_SetSpellBonusType(int spell, int type);
void NWNX_NoStack_SetSpellBonusType(int spell, int type)
{
string sFunc = "SetSpellBonusType";
NWNX_PushArgumentInt(type);
NWNX_PushArgumentInt(spell);
NWNX_CallFunction(NWNX_NoStack, sFunc);
NWNXPushInt(type);
NWNXPushInt(spell);
NWNXCall(NWNX_NoStack, "SetSpellBonusType");
}

View File

@@ -2,7 +2,6 @@
/// @brief Various extensions for the game's built-in sqlite database.
/// @{
/// @file nwnx_nwsqliteext.nss
#include "nwnx"
const string NWNX_NWSQLiteExtensions = "NWNX_NWSQLiteExtensions"; ///< @private
@@ -17,9 +16,9 @@ int NWNX_NWSQLiteExtensions_CreateVirtual2DATable(string s2DA, string sColumnTyp
int NWNX_NWSQLiteExtensions_CreateVirtual2DATable(string s2DA, string sColumnTypeHints = "", string sTableName = "")
{
NWNX_PushArgumentString(sTableName);
NWNX_PushArgumentString(sColumnTypeHints);
NWNX_PushArgumentString(s2DA);
NWNX_CallFunction(NWNX_NWSQLiteExtensions, "CreateVirtual2DATable");
return NWNX_GetReturnValueInt();
NWNXPushString(sTableName);
NWNXPushString(sColumnTypeHints);
NWNXPushString(s2DA);
NWNXCall(NWNX_NWSQLiteExtensions, "CreateVirtual2DATable");
return NWNXPopInt();
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional object properties.
/// @{
/// @file nwnx_object.nss
#include "nwnx"
const string NWNX_Object = "NWNX_Object"; ///< @private
@@ -437,641 +436,475 @@ void NWNX_Object_SetLocalizedName(object oObject, string sName, int nLanguage, i
int NWNX_Object_GetLocalVariableCount(object obj)
{
string sFunc = "GetLocalVariableCount";
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetLocalVariableCount");
return NWNXPopInt();
}
struct NWNX_Object_LocalVariable NWNX_Object_GetLocalVariable(object obj, int index)
{
string sFunc = "GetLocalVariable";
NWNX_PushArgumentInt(index);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(index);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetLocalVariable");
struct NWNX_Object_LocalVariable var;
var.key = NWNX_GetReturnValueString();
var.type = NWNX_GetReturnValueInt();
var.key = NWNXPopString();
var.type = NWNXPopInt();
return var;
}
void NWNX_Object_SetPosition(object oObject, vector vPosition, int bUpdateSubareas = TRUE)
{
string sFunc = "SetPosition";
NWNX_PushArgumentInt(bUpdateSubareas);
NWNX_PushArgumentFloat(vPosition.x);
NWNX_PushArgumentFloat(vPosition.y);
NWNX_PushArgumentFloat(vPosition.z);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bUpdateSubareas);
NWNXPushVector(vPosition);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetPosition");
}
int NWNX_Object_GetCurrentHitPoints(object creature)
{
string sFunc = "GetCurrentHitPoints";
NWNX_PushArgumentObject(creature);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(creature);
NWNXCall(NWNX_Object, "GetCurrentHitPoints");
return NWNXPopInt();
}
void NWNX_Object_SetCurrentHitPoints(object creature, int hp)
{
string sFunc = "SetCurrentHitPoints";
NWNX_PushArgumentInt(hp);
NWNX_PushArgumentObject(creature);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(hp);
NWNXPushObject(creature);
NWNXCall(NWNX_Object, "SetCurrentHitPoints");
}
void NWNX_Object_SetMaxHitPoints(object creature, int hp)
{
string sFunc = "SetMaxHitPoints";
NWNX_PushArgumentInt(hp);
NWNX_PushArgumentObject(creature);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(hp);
NWNXPushObject(creature);
NWNXCall(NWNX_Object, "SetMaxHitPoints");
}
string NWNX_Object_Serialize(object obj)
{
string sFunc = "Serialize";
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "Serialize");
return NWNXPopString();
}
object NWNX_Object_Deserialize(string serialized)
{
string sFunc = "Deserialize";
NWNX_PushArgumentString(serialized);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushString(serialized);
NWNXCall(NWNX_Object, "Deserialize");
return NWNXPopObject();
}
string NWNX_Object_GetDialogResref(object obj)
{
string sFunc = "GetDialogResref";
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetDialogResref");
return NWNXPopString();
}
void NWNX_Object_SetDialogResref(object obj, string dialog)
{
string sFunc = "SetDialogResref";
NWNX_PushArgumentString(dialog);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(dialog);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "SetDialogResref");
}
void NWNX_Object_SetAppearance(object oPlaceable, int nAppearance)
{
string sFunc = "SetAppearance";
NWNX_PushArgumentInt(nAppearance);
NWNX_PushArgumentObject(oPlaceable);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(nAppearance);
NWNXPushObject(oPlaceable);
NWNXCall(NWNX_Object, "SetAppearance");
}
int NWNX_Object_GetAppearance(object oPlaceable)
{
string sFunc = "GetAppearance";
NWNX_PushArgumentObject(oPlaceable);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oPlaceable);
NWNXCall(NWNX_Object, "GetAppearance");
return NWNXPopInt();
}
int NWNX_Object_GetHasVisualEffect(object obj, int nVFX)
{
string sFunc = "GetHasVisualEffect";
NWNX_PushArgumentInt(nVFX);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nVFX);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetHasVisualEffect");
return NWNXPopInt();
}
int NWNX_Object_GetDamageImmunity(object obj, int damageType)
{
string sFunc = "GetDamageImmunity";
NWNX_PushArgumentInt(damageType);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(damageType);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetDamageImmunity");
return NWNXPopInt();
}
void NWNX_Object_AddToArea(object obj, object area, vector pos)
{
string sFunc = "AddToArea";
NWNX_PushArgumentFloat(pos.z);
NWNX_PushArgumentFloat(pos.y);
NWNX_PushArgumentFloat(pos.x);
NWNX_PushArgumentObject(area);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushVector(pos);
NWNXPushObject(area);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "AddToArea");
}
int NWNX_Object_GetPlaceableIsStatic(object obj)
{
string sFunc = "GetPlaceableIsStatic";
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetPlaceableIsStatic");
return NWNXPopInt();
}
void NWNX_Object_SetPlaceableIsStatic(object obj, int isStatic)
{
string sFunc = "SetPlaceableIsStatic";
NWNX_PushArgumentInt(isStatic);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(isStatic);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "SetPlaceableIsStatic");
}
int NWNX_Object_GetAutoRemoveKey(object obj)
{
string sFunc = "GetAutoRemoveKey";
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "GetAutoRemoveKey");
return NWNXPopInt();
}
void NWNX_Object_SetAutoRemoveKey(object obj, int bRemoveKey)
{
string sFunc = "SetAutoRemoveKey";
NWNX_PushArgumentInt(bRemoveKey);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bRemoveKey);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "SetAutoRemoveKey");
}
string NWNX_Object_GetTriggerGeometry(object oTrigger)
{
string sFunc = "GetTriggerGeometry";
NWNX_PushArgumentObject(oTrigger);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(oTrigger);
NWNXCall(NWNX_Object, "GetTriggerGeometry");
return NWNXPopString();
}
void NWNX_Object_SetTriggerGeometry(object oTrigger, string sGeometry)
{
string sFunc = "SetTriggerGeometry";
NWNX_PushArgumentString(sGeometry);
NWNX_PushArgumentObject(oTrigger);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sGeometry);
NWNXPushObject(oTrigger);
NWNXCall(NWNX_Object, "SetTriggerGeometry");
}
void NWNX_Object_Export(object oObject, string sFileName, string sAlias = "NWNX")
{
string sFunc = "Export";
NWNX_PushArgumentString(sAlias);
NWNX_PushArgumentString(sFileName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sAlias);
NWNXPushString(sFileName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "Export");
}
int NWNX_Object_GetInt(object oObject, string sVarName)
{
string sFunc = "GetInt";
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetInt");
return NWNXPopInt();
}
void NWNX_Object_SetInt(object oObject, string sVarName, int nValue, int bPersist)
{
string sFunc = "SetInt";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentInt(nValue);
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bPersist);
NWNXPushInt(nValue);
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetInt");
}
void NWNX_Object_DeleteInt(object oObject, string sVarName)
{
string sFunc = "DeleteInt";
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "DeleteInt");
}
string NWNX_Object_GetString(object oObject, string sVarName)
{
string sFunc = "GetString";
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetString");
return NWNXPopString();
}
void NWNX_Object_SetString(object oObject, string sVarName, string sValue, int bPersist)
{
string sFunc = "SetString";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentString(sValue);
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bPersist);
NWNXPushString(sValue);
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetString");
}
void NWNX_Object_DeleteString(object oObject, string sVarName)
{
string sFunc = "DeleteString";
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "DeleteString");
}
float NWNX_Object_GetFloat(object oObject, string sVarName)
{
string sFunc = "GetFloat";
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueFloat();
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetFloat");
return NWNXPopFloat();
}
void NWNX_Object_SetFloat(object oObject, string sVarName, float fValue, int bPersist)
{
string sFunc = "SetFloat";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentFloat(fValue);
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bPersist);
NWNXPushFloat(fValue);
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetFloat");
}
void NWNX_Object_DeleteFloat(object oObject, string sVarName)
{
string sFunc = "DeleteFloat";
NWNX_PushArgumentString(sVarName);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sVarName);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "DeleteFloat");
}
void NWNX_Object_DeleteVarRegex(object oObject, string sRegex)
{
string sFunc = "DeleteVarRegex";
NWNX_PushArgumentString(sRegex);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sRegex);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "DeleteVarRegex");
}
int NWNX_Object_GetPositionIsInTrigger(object oTrigger, vector vPosition)
{
string sFunc = "GetPositionIsInTrigger";
NWNX_PushArgumentFloat(vPosition.z);
NWNX_PushArgumentFloat(vPosition.y);
NWNX_PushArgumentFloat(vPosition.x);
NWNX_PushArgumentObject(oTrigger);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushVector(vPosition);
NWNXPushObject(oTrigger);
NWNXCall(NWNX_Object, "GetPositionIsInTrigger");
return NWNXPopInt();
}
int NWNX_Object_GetInternalObjectType(object oObject)
{
string sFunc = "GetInternalObjectType";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetInternalObjectType");
return NWNXPopInt();
}
int NWNX_Object_AcquireItem(object oObject, object oItem)
{
string sFunc = "AcquireItem";
NWNX_PushArgumentObject(oItem);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oItem);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "AcquireItem");
return NWNXPopInt();
}
void NWNX_Object_ClearSpellEffectsOnOthers(object oObject)
{
string sFunc = "ClearSpellEffectsOnOthers";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "ClearSpellEffectsOnOthers");
}
string NWNX_Object_PeekUUID(object oObject)
{
string sFunc = "PeekUUID";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "PeekUUID");
return NWNXPopString();
}
int NWNX_Object_GetDoorHasVisibleModel(object oDoor)
{
string sFunc = "GetDoorHasVisibleModel";
NWNX_PushArgumentObject(oDoor);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oDoor);
NWNXCall(NWNX_Object, "GetDoorHasVisibleModel");
return NWNXPopInt();
}
int NWNX_Object_GetIsDestroyable(object oObject)
{
string sFunc = "GetIsDestroyable";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetIsDestroyable");
return NWNXPopInt();
}
int NWNX_Object_DoSpellImmunity(object oDefender, object oCaster, int nSpellId=-1)
{
string sFunc = "DoSpellImmunity";
NWNX_PushArgumentInt(nSpellId);
NWNX_PushArgumentObject(oCaster);
NWNX_PushArgumentObject(oDefender);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nSpellId);
NWNXPushObject(oCaster);
NWNXPushObject(oDefender);
NWNXCall(NWNX_Object, "DoSpellImmunity");
return NWNXPopInt();
}
int NWNX_Object_DoSpellLevelAbsorption(object oDefender, object oCaster, int nSpellId=-1, int nSpellLevel=-1, int nSpellSchool=-1)
{
string sFunc = "DoSpellLevelAbsorption";
NWNX_PushArgumentInt(nSpellSchool);
NWNX_PushArgumentInt(nSpellLevel);
NWNX_PushArgumentInt(nSpellId);
NWNX_PushArgumentObject(oCaster);
NWNX_PushArgumentObject(oDefender);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nSpellSchool);
NWNXPushInt(nSpellLevel);
NWNXPushInt(nSpellId);
NWNXPushObject(oCaster);
NWNXPushObject(oDefender);
NWNXCall(NWNX_Object, "DoSpellLevelAbsorption");
return NWNXPopInt();
}
void NWNX_Object_SetHasInventory(object obj, int bHasInventory)
{
string sFunc = "SetHasInventory";
NWNX_PushArgumentInt(bHasInventory);
NWNX_PushArgumentObject(obj);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bHasInventory);
NWNXPushObject(obj);
NWNXCall(NWNX_Object, "SetHasInventory");
}
int NWNX_Object_GetCurrentAnimation(object oObject)
{
string sFunc = "GetCurrentAnimation";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetCurrentAnimation");
return NWNXPopInt();
}
int NWNX_Object_GetAILevel(object oObject)
{
string sFunc = "GetAILevel";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetAILevel");
return NWNXPopInt();
}
void NWNX_Object_SetAILevel(object oObject, int nLevel)
{
string sFunc = "SetAILevel";
NWNX_PushArgumentInt(nLevel);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(nLevel);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetAILevel");
}
string NWNX_Object_GetMapNote(object oObject, int nID = 0, int nGender = 0)
{
string sFunc = "GetMapNote";
NWNX_PushArgumentInt(nGender);
NWNX_PushArgumentInt(nID);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXPushInt(nGender);
NWNXPushInt(nID);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetMapNote");
return NWNXPopString();
}
void NWNX_Object_SetMapNote(object oObject, string sMapNote, int nID = 0, int nGender = 0)
{
string sFunc = "SetMapNote";
NWNX_PushArgumentInt(nGender);
NWNX_PushArgumentInt(nID);
NWNX_PushArgumentString(sMapNote);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(nGender);
NWNXPushInt(nID);
NWNXPushString(sMapNote);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetMapNote");
}
int NWNX_Object_GetLastSpellCastFeat(object oObject)
{
string sFunc = "GetLastSpellCastFeat";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetLastSpellCastFeat");
return NWNXPopInt();
}
void NWNX_Object_SetLastTriggered(object oObject, object oLast)
{
string sFunc = "SetLastTriggered";
NWNX_PushArgumentObject(oLast);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushObject(oLast);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetLastTriggered");
}
float NWNX_Object_GetAoEObjectDurationRemaining(object oAoE)
{
string sFunc = "GetAoEObjectDurationRemaining";
NWNX_PushArgumentObject(oAoE);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueFloat();
NWNXPushObject(oAoE);
NWNXCall(NWNX_Object, "GetAoEObjectDurationRemaining");
return NWNXPopFloat();
}
void NWNX_Object_SetConversationPrivate(object oObject, int bPrivate)
{
string sFunc = "SetConversationPrivate";
NWNX_PushArgumentInt(bPrivate);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bPrivate);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetConversationPrivate");
}
void NWNX_Object_SetAoEObjectRadius(object oAoE, float fRadius)
{
string sFunc = "SetAoEObjectRadius";
NWNX_PushArgumentFloat(fRadius);
NWNX_PushArgumentObject(oAoE);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushFloat(fRadius);
NWNXPushObject(oAoE);
NWNXCall(NWNX_Object, "SetAoEObjectRadius");
}
float NWNX_Object_GetAoEObjectRadius(object oAoE)
{
string sFunc = "GetAoEObjectRadius";
NWNX_PushArgumentObject(oAoE);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueFloat();
NWNXPushObject(oAoE);
NWNXCall(NWNX_Object, "GetAoEObjectRadius");
return NWNXPopFloat();
}
int NWNX_Object_GetLastSpellCastSpontaneous(object oObject)
{
string sFunc = "GetLastSpellCastSpontaneous";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetLastSpellCastSpontaneous");
return NWNXPopInt();
}
int NWNX_Object_GetLastSpellCastDomainLevel(object oObject)
{
string sFunc = "GetLastSpellCastDomainLevel";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetLastSpellCastDomainLevel");
return NWNXPopInt();
}
void NWNX_Object_ForceAssignUUID(object oObject, string sUUID)
{
string sFunc = "ForceAssignUUID";
NWNX_PushArgumentString(sUUID);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushString(sUUID);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "ForceAssignUUID");
}
int NWNX_Object_GetInventoryItemCount(object oObject)
{
string sFunc = "GetInventoryItemCount";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "GetInventoryItemCount");
return NWNXPopInt();
}
void NWNX_Object_OverrideSpellProjectileVFX(object oCreature, int nProjectileType = -1, int nProjectilePathType = -1, int nSpellID = -1, int bPersist = FALSE)
{
string sFunc = "OverrideSpellProjectileVFX";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentInt(nSpellID);
NWNX_PushArgumentInt(nProjectilePathType);
NWNX_PushArgumentInt(nProjectileType);
NWNX_PushArgumentObject(oCreature);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushInt(bPersist);
NWNXPushInt(nSpellID);
NWNXPushInt(nProjectilePathType);
NWNXPushInt(nProjectileType);
NWNXPushObject(oCreature);
NWNXCall(NWNX_Object, "OverrideSpellProjectileVFX");
}
int NWNX_Object_GetLastSpellInstant()
{
string sFunc = "GetLastSpellInstant";
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Object, "GetLastSpellInstant");
return NWNXPopInt();
}
void NWNX_Object_SetTrapCreator(object oObject, object oCreator)
{
string sFunc = "SetTrapCreator";
NWNX_PushArgumentObject(oCreator);
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXPushObject(oCreator);
NWNXPushObject(oObject);
NWNXCall(NWNX_Object, "SetTrapCreator");
}
string NWNX_Object_GetLocalizedName(object oObject, int nLanguage, int nGender = 0)
{
string sFunc = "GetLocalizedName";
NWNX_PushArgumentInt(nGender);
NWNX_PushArgumentInt(nLanguage);
NWNX_PushArgumentObject(oObject);
NWNXPushInt(nGender);
NWNXPushInt(nLanguage);
NWNXPushObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Object, sFunc);
return NWNXPopString();
}
void NWNX_Object_SetLocalizedName(object oObject, string sName, int nLanguage, int nGender = 0)
{
string sFunc = "SetLocalizedName";
NWNX_PushArgumentInt(nGender);
NWNX_PushArgumentInt(nLanguage);
NWNX_PushArgumentString(sName);
NWNX_PushArgumentObject(oObject);
NWNXPushInt(nGender);
NWNXPushInt(nLanguage);
NWNXPushString(sName);
NWNXPushObject(oObject);
NWNX_CallFunction(NWNX_Object, sFunc);
NWNXCall(NWNX_Object, sFunc);
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional player properties.
/// @{
/// @file nwnx_player.nss
#include "nwnx"
const string NWNX_Player = "NWNX_Player"; ///< @private
@@ -458,22 +457,16 @@ void NWNX_Player_ReloadColorPalettes(object oPlayer);
void NWNX_Player_ForcePlaceableExamineWindow(object player, object placeable)
{
string sFunc = "ForcePlaceableExamineWindow";
NWNX_PushArgumentObject(placeable);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(placeable);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ForcePlaceableExamineWindow");
}
void NWNX_Player_ForcePlaceableInventoryWindow(object player, object placeable)
{
string sFunc = "ForcePlaceableInventoryWindow";
NWNX_PushArgumentObject(placeable);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(placeable);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ForcePlaceableInventoryWindow");
}
void NWNX_Player_INTERNAL_StopGuiTimingBar(object player, string script = "", int id = -1) ///< @private
@@ -482,17 +475,12 @@ void NWNX_Player_INTERNAL_StopGuiTimingBar(object player, string script = "", in
// Either the timing event was never started, or it already finished.
if (activeId == 0)
return;
// If id != -1, we ended up here through DelayCommand. Make sure it's for the right ID
if (id != -1 && id != activeId)
return;
DeleteLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE");
string sFunc = "StopGuiTimingBar";
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "StopGuiTimingBar");
if(script != "")
{
ExecuteScript(script, player);
@@ -503,18 +491,13 @@ void NWNX_Player_StartGuiTimingBar(object player, float seconds, string script =
{
if (GetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE"))
return;
string sFunc = "StartGuiTimingBar";
NWNX_PushArgumentInt(type);
NWNX_PushArgumentFloat(seconds);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(type);
NWNXPushFloat(seconds);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "StartGuiTimingBar");
int id = GetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ID") + 1;
SetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE", id);
SetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ID", id);
DelayCommand(seconds, NWNX_Player_INTERNAL_StopGuiTimingBar(player, script, id));
}
@@ -525,638 +508,471 @@ void NWNX_Player_StopGuiTimingBar(object player, string script = "")
void NWNX_Player_SetAlwaysWalk(object player, int bWalk=TRUE)
{
string sFunc = "SetAlwaysWalk";
NWNX_PushArgumentInt(bWalk);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(bWalk);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "SetAlwaysWalk");
}
struct NWNX_Player_QuickBarSlot NWNX_Player_GetQuickBarSlot(object player, int slot)
{
string sFunc = "GetQuickBarSlot";
struct NWNX_Player_QuickBarSlot qbs;
NWNX_PushArgumentInt(slot);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
qbs.oAssociate = NWNX_GetReturnValueObject();
qbs.nAssociateType = NWNX_GetReturnValueInt();
qbs.nDomainLevel = NWNX_GetReturnValueInt();
qbs.nMetaType = NWNX_GetReturnValueInt();
qbs.nINTParam1 = NWNX_GetReturnValueInt();
qbs.sToolTip = NWNX_GetReturnValueString();
qbs.sCommandLine = NWNX_GetReturnValueString();
qbs.sCommandLabel = NWNX_GetReturnValueString();
qbs.sResRef = NWNX_GetReturnValueString();
qbs.nMultiClass = NWNX_GetReturnValueInt();
qbs.nObjectType = NWNX_GetReturnValueInt();
qbs.oSecondaryItem = NWNX_GetReturnValueObject();
qbs.oItem = NWNX_GetReturnValueObject();
NWNXPushInt(slot);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "GetQuickBarSlot");
qbs.oAssociate = NWNXPopObject();
qbs.nAssociateType = NWNXPopInt();
qbs.nDomainLevel = NWNXPopInt();
qbs.nMetaType = NWNXPopInt();
qbs.nINTParam1 = NWNXPopInt();
qbs.sToolTip = NWNXPopString();
qbs.sCommandLine = NWNXPopString();
qbs.sCommandLabel = NWNXPopString();
qbs.sResRef = NWNXPopString();
qbs.nMultiClass = NWNXPopInt();
qbs.nObjectType = NWNXPopInt();
qbs.oSecondaryItem = NWNXPopObject();
qbs.oItem = NWNXPopObject();
return qbs;
}
void NWNX_Player_SetQuickBarSlot(object player, int slot, struct NWNX_Player_QuickBarSlot qbs)
{
string sFunc = "SetQuickBarSlot";
NWNX_PushArgumentObject(qbs.oItem);
NWNX_PushArgumentObject(qbs.oSecondaryItem);
NWNX_PushArgumentInt(qbs.nObjectType);
NWNX_PushArgumentInt(qbs.nMultiClass);
NWNX_PushArgumentString(qbs.sResRef);
NWNX_PushArgumentString(qbs.sCommandLabel);
NWNX_PushArgumentString(qbs.sCommandLine);
NWNX_PushArgumentString(qbs.sToolTip);
NWNX_PushArgumentInt(qbs.nINTParam1);
NWNX_PushArgumentInt(qbs.nMetaType);
NWNX_PushArgumentInt(qbs.nDomainLevel);
NWNX_PushArgumentInt(qbs.nAssociateType);
NWNX_PushArgumentObject(qbs.oAssociate);
NWNX_PushArgumentInt(slot);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(qbs.oItem);
NWNXPushObject(qbs.oSecondaryItem);
NWNXPushInt(qbs.nObjectType);
NWNXPushInt(qbs.nMultiClass);
NWNXPushString(qbs.sResRef);
NWNXPushString(qbs.sCommandLabel);
NWNXPushString(qbs.sCommandLine);
NWNXPushString(qbs.sToolTip);
NWNXPushInt(qbs.nINTParam1);
NWNXPushInt(qbs.nMetaType);
NWNXPushInt(qbs.nDomainLevel);
NWNXPushInt(qbs.nAssociateType);
NWNXPushObject(qbs.oAssociate);
NWNXPushInt(slot);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "SetQuickBarSlot");
}
string NWNX_Player_GetBicFileName(object player)
{
string sFunc = "GetBicFileName";
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(player);
NWNXCall(NWNX_Player, "GetBicFileName");
return NWNXPopString();
}
void NWNX_Player_ShowVisualEffect(object player, int effectId, vector position, float scale=1.0f, vector translate=[], vector rotate=[])
{
string sFunc = "ShowVisualEffect";
NWNX_PushArgumentFloat(rotate.x);
NWNX_PushArgumentFloat(rotate.y);
NWNX_PushArgumentFloat(rotate.z);
NWNX_PushArgumentFloat(translate.x);
NWNX_PushArgumentFloat(translate.y);
NWNX_PushArgumentFloat(translate.z);
NWNX_PushArgumentFloat(scale);
NWNX_PushArgumentFloat(position.x);
NWNX_PushArgumentFloat(position.y);
NWNX_PushArgumentFloat(position.z);
NWNX_PushArgumentInt(effectId);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushVector(rotate);
NWNXPushVector(translate);
NWNXPushFloat(scale);
NWNXPushVector(position);
NWNXPushInt(effectId);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ShowVisualEffect");
}
void NWNX_Player_MusicBackgroundChangeDay(object player, int track)
{
string sFunc = "ChangeBackgroundMusic";
NWNX_PushArgumentInt(track);
NWNX_PushArgumentInt(TRUE);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(track);
NWNXPushInt(TRUE);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ChangeBackgroundMusic");
}
void NWNX_Player_MusicBackgroundChangeNight(object player, int track)
{
string sFunc = "ChangeBackgroundMusic";
NWNX_PushArgumentInt(track);
NWNX_PushArgumentInt(FALSE);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(track);
NWNXPushInt(FALSE);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ChangeBackgroundMusic");
}
void NWNX_Player_MusicBackgroundStart(object player)
{
string sFunc = "PlayBackgroundMusic";
NWNX_PushArgumentInt(TRUE);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(TRUE);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "PlayBackgroundMusic");
}
void NWNX_Player_MusicBackgroundStop(object player)
{
string sFunc = "PlayBackgroundMusic";
NWNX_PushArgumentInt(FALSE);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(FALSE);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "PlayBackgroundMusic");
}
void NWNX_Player_MusicBattleChange(object player, int track)
{
string sFunc = "ChangeBattleMusic";
NWNX_PushArgumentInt(track);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(track);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ChangeBattleMusic");
}
void NWNX_Player_MusicBattleStart(object player)
{
string sFunc = "PlayBattleMusic";
NWNX_PushArgumentInt(TRUE);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(TRUE);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "PlayBattleMusic");
}
void NWNX_Player_MusicBattleStop(object player)
{
string sFunc = "PlayBattleMusic";
NWNX_PushArgumentInt(FALSE);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(FALSE);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "PlayBattleMusic");
}
void NWNX_Player_PlaySound(object player, string sound, object target = OBJECT_INVALID)
{
string sFunc = "PlaySound";
NWNX_PushArgumentObject(target);
NWNX_PushArgumentString(sound);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(target);
NWNXPushString(sound);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "PlaySound");
}
void NWNX_Player_SetPlaceableUsable(object player, object placeable, int usable)
{
string sFunc = "SetPlaceableUsable";
NWNX_PushArgumentInt(usable);
NWNX_PushArgumentObject(placeable);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(usable);
NWNXPushObject(placeable);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "SetPlaceableUsable");
}
void NWNX_Player_SetRestDuration(object player, int duration)
{
string sFunc = "SetRestDuration";
NWNX_PushArgumentInt(duration);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(duration);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "SetRestDuration");
}
void NWNX_Player_ApplyInstantVisualEffectToObject(object player, object target, int visualeffect, float scale=1.0f, vector translate=[], vector rotate=[])
{
string sFunc = "ApplyInstantVisualEffectToObject";
NWNX_PushArgumentFloat(rotate.z);
NWNX_PushArgumentFloat(rotate.y);
NWNX_PushArgumentFloat(rotate.x);
NWNX_PushArgumentFloat(translate.z);
NWNX_PushArgumentFloat(translate.y);
NWNX_PushArgumentFloat(translate.x);
NWNX_PushArgumentFloat(scale);
NWNX_PushArgumentInt(visualeffect);
NWNX_PushArgumentObject(target);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushVector(rotate);
NWNXPushVector(translate);
NWNXPushFloat(scale);
NWNXPushInt(visualeffect);
NWNXPushObject(target);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ApplyInstantVisualEffectToObject");
}
void NWNX_Player_UpdateCharacterSheet(object player)
{
string sFunc = "UpdateCharacterSheet";
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "UpdateCharacterSheet");
}
void NWNX_Player_OpenInventory(object player, object target, int open = TRUE)
{
string sFunc = "OpenInventory";
NWNX_PushArgumentInt(open);
NWNX_PushArgumentObject(target);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(open);
NWNXPushObject(target);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "OpenInventory");
}
string NWNX_Player_GetAreaExplorationState(object player, object area)
{
string sFunc = "GetAreaExplorationState";
NWNX_PushArgumentObject(area);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(area);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "GetAreaExplorationState");
return NWNXPopString();
}
void NWNX_Player_SetAreaExplorationState(object player, object area, string str)
{
string sFunc = "SetAreaExplorationState";
NWNX_PushArgumentString(str);
NWNX_PushArgumentObject(area);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushString(str);
NWNXPushObject(area);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "SetAreaExplorationState");
}
void NWNX_Player_SetRestAnimation(object oPlayer, int nAnimation)
{
string sFunc = "SetRestAnimation";
NWNX_PushArgumentInt(nAnimation);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nAnimation);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetRestAnimation");
}
void NWNX_Player_SetObjectVisualTransformOverride(object oPlayer, object oObject, int nTransform, float fValue)
{
string sFunc = "SetObjectVisualTransformOverride";
NWNX_PushArgumentFloat(fValue);
NWNX_PushArgumentInt(nTransform);
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushFloat(fValue);
NWNXPushInt(nTransform);
NWNXPushObject(oObject);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetObjectVisualTransformOverride");
}
void NWNX_Player_ApplyLoopingVisualEffectToObject(object player, object target, int visualeffect)
{
string sFunc = "ApplyLoopingVisualEffectToObject";
NWNX_PushArgumentInt(visualeffect);
NWNX_PushArgumentObject(target);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(visualeffect);
NWNXPushObject(target);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "ApplyLoopingVisualEffectToObject");
}
void NWNX_Player_SetPlaceableNameOverride(object player, object placeable, string name)
{
string sFunc = "SetPlaceableNameOverride";
NWNX_PushArgumentString(name);
NWNX_PushArgumentObject(placeable);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushString(name);
NWNXPushObject(placeable);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "SetPlaceableNameOverride");
}
int NWNX_Player_GetQuestCompleted(object player, string sQuestName)
{
string sFunc = "GetQuestCompleted";
NWNX_PushArgumentString(sQuestName);
NWNX_PushArgumentObject(player);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sQuestName);
NWNXPushObject(player);
NWNXCall(NWNX_Player, "GetQuestCompleted");
return NWNXPopInt();
}
void NWNX_Player_SetPersistentLocation(string sCDKeyOrCommunityName, string sBicFileName, object oWP, int bFirstConnectOnly = TRUE)
{
string sFunc = "SetPersistentLocation";
NWNX_PushArgumentInt(bFirstConnectOnly);
NWNX_PushArgumentObject(oWP);
NWNX_PushArgumentString(sBicFileName);
NWNX_PushArgumentString(sCDKeyOrCommunityName);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(bFirstConnectOnly);
NWNXPushObject(oWP);
NWNXPushString(sBicFileName);
NWNXPushString(sCDKeyOrCommunityName);
NWNXCall(NWNX_Player, "SetPersistentLocation");
}
void NWNX_Player_UpdateItemName(object oPlayer, object oItem)
{
string sFunc = "UpdateItemName";
NWNX_PushArgumentObject(oItem);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(oItem);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "UpdateItemName");
}
int NWNX_Player_PossessCreature(object oPossessor, object oPossessed, int bMindImmune = TRUE, int bCreateDefaultQB = FALSE)
{
string sFunc = "PossessCreature";
NWNX_PushArgumentInt(bCreateDefaultQB);
NWNX_PushArgumentInt(bMindImmune);
NWNX_PushArgumentObject(oPossessed);
NWNX_PushArgumentObject(oPossessor);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(bCreateDefaultQB);
NWNXPushInt(bMindImmune);
NWNXPushObject(oPossessed);
NWNXPushObject(oPossessor);
NWNXCall(NWNX_Player, "PossessCreature");
return NWNXPopInt();
}
int NWNX_Player_GetPlatformId(object oPlayer)
{
string sFunc = "GetPlatformId";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "GetPlatformId");
return NWNXPopInt();
}
int NWNX_Player_GetLanguage(object oPlayer)
{
string sFunc = "GetLanguage";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "GetLanguage");
return NWNXPopInt();
}
void NWNX_Player_SetResManOverride(object oPlayer, int nResType, string sOldResName, string sNewResName)
{
string sFunc = "SetResManOverride";
NWNX_PushArgumentString(sNewResName);
NWNX_PushArgumentString(sOldResName);
NWNX_PushArgumentInt(nResType);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushString(sNewResName);
NWNXPushString(sOldResName);
NWNXPushInt(nResType);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetResManOverride");
}
void NWNX_Player_SetCustomToken(object oPlayer, int nCustomTokenNumber, string sTokenValue)
{
string sFunc = "SetCustomToken";
NWNX_PushArgumentString(sTokenValue);
NWNX_PushArgumentInt(nCustomTokenNumber);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushString(sTokenValue);
NWNXPushInt(nCustomTokenNumber);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetCustomToken");
}
void NWNX_Player_SetCreatureNameOverride(object oPlayer, object oCreature, string sName)
{
string sFunc = "SetCreatureNameOverride";
NWNX_PushArgumentString(sName);
NWNX_PushArgumentObject(oCreature);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushString(sName);
NWNXPushObject(oCreature);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetCreatureNameOverride");
}
void NWNX_Player_FloatingTextStringOnCreature(object oPlayer, object oCreature, string sText, int bChatWindow = TRUE)
{
string sFunc = "FloatingTextStringOnCreature";
NWNX_PushArgumentInt(bChatWindow);
NWNX_PushArgumentString(sText);
NWNX_PushArgumentObject(oCreature);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(bChatWindow);
NWNXPushString(sText);
NWNXPushObject(oCreature);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "FloatingTextStringOnCreature");
}
void NWNX_Player_ToggleDM(object oPlayer, int bIsDM)
{
string sFunc = "ToggleDM";
NWNX_PushArgumentInt(bIsDM);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(bIsDM);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "ToggleDM");
}
void NWNX_Player_SetObjectMouseCursorOverride(object oPlayer, object oObject, int nCursor)
{
string sFunc = "SetObjectMouseCursorOverride";
NWNX_PushArgumentInt(nCursor);
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nCursor);
NWNXPushObject(oObject);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetObjectMouseCursorOverride");
}
void NWNX_Player_SetObjectHiliteColorOverride(object oPlayer, object oObject, int nColor)
{
string sFunc = "SetObjectHiliteColorOverride";
NWNX_PushArgumentInt(nColor);
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nColor);
NWNXPushObject(oObject);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetObjectHiliteColorOverride");
}
void NWNX_Player_RemoveEffectFromTURD(object oPlayer, string sEffectTag)
{
string sFunc = "RemoveEffectFromTURD";
NWNX_PushArgumentString(sEffectTag);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushString(sEffectTag);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "RemoveEffectFromTURD");
}
void NWNX_Player_SetSpawnLocation(object oPlayer, location locSpawn)
{
string sFunc = "SetSpawnLocation";
vector vPosition = GetPositionFromLocation(locSpawn);
NWNX_PushArgumentFloat(GetFacingFromLocation(locSpawn));
NWNX_PushArgumentFloat(vPosition.z);
NWNX_PushArgumentFloat(vPosition.y);
NWNX_PushArgumentFloat(vPosition.x);
NWNX_PushArgumentObject(GetAreaFromLocation(locSpawn));
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushLocation(locSpawn);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetSpawnLocation");
}
void NWNX_Player_SendDMAllCreatorLists(object oPlayer)
{
string sFunc = "SendDMAllCreatorLists";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SendDMAllCreatorLists");
}
int NWNX_Player_AddCustomJournalEntry(object oPlayer, struct NWNX_Player_JournalEntry journalEntry, int nSilentUpdate = 0)
{
string sFunc = "AddCustomJournalEntry";
NWNX_PushArgumentInt(nSilentUpdate);
NWNX_PushArgumentInt(journalEntry.nTimeOfDay);
NWNX_PushArgumentInt(journalEntry.nCalendarDay);
NWNX_PushArgumentInt(journalEntry.nUpdated);
NWNX_PushArgumentInt(journalEntry.nQuestDisplayed);
NWNX_PushArgumentInt(journalEntry.nQuestCompleted);
NWNX_PushArgumentInt(journalEntry.nPriority);
NWNX_PushArgumentInt(journalEntry.nState);
NWNX_PushArgumentString(journalEntry.sTag);
NWNX_PushArgumentString(journalEntry.sText);
NWNX_PushArgumentString(journalEntry.sName);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nSilentUpdate);
NWNXPushInt(journalEntry.nTimeOfDay);
NWNXPushInt(journalEntry.nCalendarDay);
NWNXPushInt(journalEntry.nUpdated);
NWNXPushInt(journalEntry.nQuestDisplayed);
NWNXPushInt(journalEntry.nQuestCompleted);
NWNXPushInt(journalEntry.nPriority);
NWNXPushInt(journalEntry.nState);
NWNXPushString(journalEntry.sTag);
NWNXPushString(journalEntry.sText);
NWNXPushString(journalEntry.sName);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "AddCustomJournalEntry");
return NWNXPopInt();
}
struct NWNX_Player_JournalEntry NWNX_Player_GetJournalEntry(object oPlayer, string questTag)
{
string sFunc = "GetJournalEntry";
struct NWNX_Player_JournalEntry entry;
NWNX_PushArgumentString(questTag);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
entry.nUpdated = NWNX_GetReturnValueInt();
NWNXPushString(questTag);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "GetJournalEntry");
entry.nUpdated = NWNXPopInt();
if(entry.nUpdated == -1) // -1 set as an indicator to say that the entry was not found
{
return entry;
}
entry.nQuestDisplayed = NWNX_GetReturnValueInt();
entry.nQuestCompleted = NWNX_GetReturnValueInt();
entry.nPriority = NWNX_GetReturnValueInt();
entry.nState = NWNX_GetReturnValueInt();
entry.nTimeOfDay = NWNX_GetReturnValueInt();
entry.nCalendarDay = NWNX_GetReturnValueInt();
entry.sName = NWNX_GetReturnValueString();
entry.sText = NWNX_GetReturnValueString();
entry.nQuestDisplayed = NWNXPopInt();
entry.nQuestCompleted = NWNXPopInt();
entry.nPriority = NWNXPopInt();
entry.nState = NWNXPopInt();
entry.nTimeOfDay = NWNXPopInt();
entry.nCalendarDay = NWNXPopInt();
entry.sName = NWNXPopString();
entry.sText = NWNXPopString();
entry.sTag = questTag;
return entry;
}
void NWNX_Player_CloseStore(object oPlayer)
{
string sFunc = "CloseStore";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "CloseStore");
}
void NWNX_Player_SetTlkOverride(object oPlayer, int nStrRef, string sOverride, int bRestoreGlobal = TRUE)
{
string sFunc = "SetTlkOverride";
NWNX_PushArgumentInt(bRestoreGlobal);
NWNX_PushArgumentString(sOverride);
NWNX_PushArgumentInt(nStrRef);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(bRestoreGlobal);
NWNXPushString(sOverride);
NWNXPushInt(nStrRef);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetTlkOverride");
}
void NWNX_Player_ReloadTlk(object oPlayer)
{
string sFunc = "ReloadTlk";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "ReloadTlk");
}
void NWNX_Player_UpdateWind(object oPlayer, vector vDirection, float fMagnitude, float fYaw, float fPitch)
{
string sFunc = "UpdateWind";
NWNX_PushArgumentFloat(fPitch);
NWNX_PushArgumentFloat(fYaw);
NWNX_PushArgumentFloat(fMagnitude);
NWNX_PushArgumentFloat(vDirection.x);
NWNX_PushArgumentFloat(vDirection.y);
NWNX_PushArgumentFloat(vDirection.z);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushFloat(fPitch);
NWNXPushFloat(fYaw);
NWNXPushFloat(fMagnitude);
NWNXPushVector(vDirection);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "UpdateWind");
}
void NWNX_Player_UpdateSkyBox(object oPlayer, int nSkyBox)
{
string sFunc = "UpdateSkyBox";
NWNX_PushArgumentInt(nSkyBox);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nSkyBox);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "UpdateSkyBox");
}
void NWNX_Player_UpdateFogColor(object oPlayer, int nSunFogColor, int nMoonFogColor)
{
string sFunc = "UpdateFogColor";
NWNX_PushArgumentInt(nMoonFogColor);
NWNX_PushArgumentInt(nSunFogColor);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nMoonFogColor);
NWNXPushInt(nSunFogColor);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "UpdateFogColor");
}
void NWNX_Player_UpdateFogAmount(object oPlayer, int nSunFogAmount, int nMoonFogAmount)
{
string sFunc = "UpdateFogAmount";
NWNX_PushArgumentInt(nMoonFogAmount);
NWNX_PushArgumentInt(nSunFogAmount);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nMoonFogAmount);
NWNXPushInt(nSunFogAmount);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "UpdateFogAmount");
}
object NWNX_Player_GetGameObject(object oPlayer)
{
string sFunc = "GetGameObject";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "GetGameObject");
return NWNXPopObject();
}
void NWNX_Player_SetObjectUiDiscoveryMaskOverride(object oPlayer, object oObject, int nMask)
{
string sFunc = "SetObjectUiDiscoveryMaskOverride";
NWNX_PushArgumentInt(nMask);
NWNX_PushArgumentObject(oObject);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(nMask);
NWNXPushObject(oObject);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SetObjectUiDiscoveryMaskOverride");
}
void NWNX_Player_SendPartyInvite(object oPlayer, object oInviter, int bForceInvite = FALSE, int bHideDialog = FALSE)
{
string sFunc = "SendPartyInvite";
NWNX_PushArgumentInt(bHideDialog);
NWNX_PushArgumentInt(bForceInvite);
NWNX_PushArgumentObject(oInviter);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushInt(bHideDialog);
NWNXPushInt(bForceInvite);
NWNXPushObject(oInviter);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "SendPartyInvite");
}
object NWNX_Player_GetTURD(object oPlayer)
{
string sFunc = "GetTURD";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "GetTURD");
return NWNXPopObject();
}
void NWNX_Player_ReloadColorPalettes(object oPlayer)
{
string sFunc = "ReloadColorPalettes";
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Player, sFunc);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Player, "ReloadColorPalettes");
}

View File

@@ -3,7 +3,6 @@
/// @remark These functions are for advanced users.
/// @{
/// @file nwnx_profiler.nss
#include "nwnx"
const string NWNX_Profiler = "NWNX_Profiler"; ///< @private
@@ -39,22 +38,17 @@ void NWNX_Profiler_PopPerfScope();
void NWNX_Profiler_PushPerfScope(string name, string tag0_tag = "", string tag0_value = "")
{
string sFunc = "PushPerfScope";
NWNX_PushArgumentString(name);
if (tag0_value != "" && tag0_tag != "")
{
NWNX_PushArgumentString(tag0_value);
NWNX_PushArgumentString(tag0_tag);
NWNXPushString(tag0_value);
NWNXPushString(tag0_tag);
}
NWNX_CallFunction(NWNX_Profiler, sFunc);
NWNXPushString(name);
NWNXCall(NWNX_Profiler, "PushPerfScope");
}
void NWNX_Profiler_PopPerfScope()
{
string sFunc = "PopPerfScope";
NWNXCall(NWNX_Profiler, "PopPerfScope");
}
NWNX_CallFunction(NWNX_Profiler, sFunc);
}

View File

@@ -2,7 +2,6 @@
/// @brief Define racial and subrace characteristics.
/// @{
/// @file nwnx_race.nss
#include "nwnx"
const string NWNX_Race = "NWNX_Race"; ///< @private
@@ -54,37 +53,50 @@ int NWNX_Race_GetParentRace(int iRace);
/// or Favored Enemy: Wild Elf
void NWNX_Race_SetFavoredEnemyFeat(int iRace, int iFeat);
/// @brief Removes any nwnx_race 'Effects' on the targeted creature. Suppression lasts until levelup, next login, or Reactivated by function.
/// @param oCreature The creature to suppress
/// @note Not all nwnx_race modifiers are achieved via effect. Those that are not directly consider the creatures current race.
void NWNX_Race_SuppressCreatureRaceEffects(object oCreature);
/// @brief Reactivates the nwnx_race 'Effects' on the targeted creature after they were Suppressed.
/// @param oCreature The creature to reactive
/// @note Safe to use on non-suppressed creatures - Triggers a refresh of effects but won't stack.
void NWNX_Race_ReactivateCreatureRaceEffects(object oCreature);
/// @}
void NWNX_Race_SetRacialModifier(int iRace, int iMod, int iParam1, int iParam2 = 0xDEADBEEF, int iParam3 = 0xDEADBEEF)
{
string sFunc = "SetRacialModifier";
NWNX_PushArgumentInt(iParam3);
NWNX_PushArgumentInt(iParam2);
NWNX_PushArgumentInt(iParam1);
NWNX_PushArgumentInt(iMod);
NWNX_PushArgumentInt(iRace);
NWNX_CallFunction(NWNX_Race, sFunc);
NWNXPushInt(iParam3);
NWNXPushInt(iParam2);
NWNXPushInt(iParam1);
NWNXPushInt(iMod);
NWNXPushInt(iRace);
NWNXCall(NWNX_Race, "SetRacialModifier");
}
int NWNX_Race_GetParentRace(int iRace)
{
string sFunc = "GetParentRace";
NWNX_PushArgumentInt(iRace);
NWNX_CallFunction(NWNX_Race, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(iRace);
NWNXCall(NWNX_Race, "GetParentRace");
return NWNXPopInt();
}
void NWNX_Race_SetFavoredEnemyFeat(int iRace, int iFeat)
{
string sFunc = "SetFavoredEnemyFeat";
NWNX_PushArgumentInt(iFeat);
NWNX_PushArgumentInt(iRace);
NWNX_CallFunction(NWNX_Race, sFunc);
NWNXPushInt(iFeat);
NWNXPushInt(iRace);
NWNXCall(NWNX_Race, "SetFavoredEnemyFeat");
}
void NWNX_Race_SuppressCreatureRaceEffects(object creature)
{
NWNXPushObject(creature);
NWNXCall(NWNX_Race, "SuppressCreatureRaceEffects");
}
void NWNX_Race_ReactivateCreatureRaceEffects(object oCreature)
{
NWNXPushObject(oCreature);
NWNXCall(NWNX_Race, "ReactivateCreatureRaceEffects");
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,6 @@
/// @{
/// @file nwnx_redis_lib.nss
/// @brief Allows connection and interfacing with a redis server.
#include "nwnx"
/// @anchor redis_results
/// @name Redis Results
@@ -65,44 +64,44 @@ string NWNX_Redis_GetResultAsString(int resultId);
int NWNX_Redis_GetResultType(int resultId)
{
NWNX_PushArgumentInt(resultId);
NWNX_CallFunction("NWNX_Redis", "GetResultType");
return NWNX_GetReturnValueInt();
NWNXPushInt(resultId);
NWNXCall("NWNX_Redis", "GetResultType");
return NWNXPopInt();
}
int NWNX_Redis_GetArrayLength(int resultId)
{
NWNX_PushArgumentInt(resultId);
NWNX_CallFunction("NWNX_Redis", "GetResultArrayLength");
return NWNX_GetReturnValueInt();
NWNXPushInt(resultId);
NWNXCall("NWNX_Redis", "GetResultArrayLength");
return NWNXPopInt();
}
// Returns the last
int NWNX_Redis_GetArrayElement(int resultId, int idx)
{
NWNX_PushArgumentInt(resultId);
NWNX_PushArgumentInt(idx);
NWNX_CallFunction("NWNX_Redis", "GetResultArrayElement");
return NWNX_GetReturnValueInt();
NWNXPushInt(resultId);
NWNXPushInt(idx);
NWNXCall("NWNX_Redis", "GetResultArrayElement");
return NWNXPopInt();
}
float NWNX_Redis_GetResultAsFloat(int resultId)
{
NWNX_PushArgumentInt(resultId);
NWNX_CallFunction("NWNX_Redis", "GetResultAsString");
return StringToFloat(NWNX_GetReturnValueString());
NWNXPushInt(resultId);
NWNXCall("NWNX_Redis", "GetResultAsString");
return StringToFloat(NWNXPopString());
}
int NWNX_Redis_GetResultAsInt(int resultId)
{
NWNX_PushArgumentInt(resultId);
NWNX_CallFunction("NWNX_Redis", "GetResultAsString");
return StringToInt(NWNX_GetReturnValueString());
NWNXPushInt(resultId);
NWNXCall("NWNX_Redis", "GetResultAsString");
return StringToInt(NWNXPopString());
}
string NWNX_Redis_GetResultAsString(int resultId)
{
NWNX_PushArgumentInt(resultId);
NWNX_CallFunction("NWNX_Redis", "GetResultAsString");
return NWNX_GetReturnValueString();
NWNXPushInt(resultId);
NWNXCall("NWNX_Redis", "GetResultAsString");
return NWNXPopString();
}

View File

@@ -2,7 +2,6 @@
/// @brief Interface to Redis PUBSUB
/// @{
/// @file nwnx_redis_ps.nss
#include "nwnx"
/// A redis PUBSUB message
struct NWNX_Redis_PubSubMessageData {
@@ -15,9 +14,9 @@ struct NWNX_Redis_PubSubMessageData {
struct NWNX_Redis_PubSubMessageData NWNX_Redis_GetPubSubMessageData()
{
struct NWNX_Redis_PubSubMessageData ret;
NWNX_CallFunction("NWNX_Redis", "GetPubSubData");
ret.message = NWNX_GetReturnValueString();
ret.channel = NWNX_GetReturnValueString();
NWNXCall("NWNX_Redis", "GetPubSubData");
ret.message = NWNXPopString();
ret.channel = NWNXPopString();
return ret;
}
/// @}

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,6 @@
/// @brief Facilitates renaming, overriding and customization of player names.
/// @{
/// @file nwnx_rename.nss
#include "nwnx"
const string NWNX_Rename = "NWNX_Rename"; ///< @private
@@ -46,35 +45,26 @@ void NWNX_Rename_ClearPCNameOverride(object oTarget, object oObserver = OBJECT_I
void NWNX_Rename_SetPCNameOverride(object oTarget, string sNewName, string sPrefix = "" , string sSuffix = "" ,
int iPlayerNameState = NWNX_RENAME_PLAYERNAME_DEFAULT, object oObserver = OBJECT_INVALID)
{
string sFunc = "SetPCNameOverride";
NWNX_PushArgumentObject(oObserver);
NWNX_PushArgumentInt(iPlayerNameState);
NWNX_PushArgumentString(sSuffix);
NWNX_PushArgumentString(sPrefix);
NWNX_PushArgumentString(sNewName);
NWNX_PushArgumentObject(oTarget);
NWNX_CallFunction(NWNX_Rename, sFunc);
NWNXPushObject(oObserver);
NWNXPushInt(iPlayerNameState);
NWNXPushString(sSuffix);
NWNXPushString(sPrefix);
NWNXPushString(sNewName);
NWNXPushObject(oTarget);
NWNXCall(NWNX_Rename, "SetPCNameOverride");
}
string NWNX_Rename_GetPCNameOverride(object oTarget, object oObserver = OBJECT_INVALID)
{
string sFunc = "GetPCNameOverride";
NWNX_PushArgumentObject(oObserver);
NWNX_PushArgumentObject(oTarget);
NWNX_CallFunction(NWNX_Rename, sFunc);
return NWNX_GetReturnValueString();
NWNXPushObject(oObserver);
NWNXPushObject(oTarget);
NWNXCall(NWNX_Rename, "GetPCNameOverride");
return NWNXPopString();
}
void NWNX_Rename_ClearPCNameOverride(object oTarget, object oObserver = OBJECT_INVALID, int clearAll = FALSE)
{
string sFunc = "ClearPCNameOverride";
NWNX_PushArgumentInt(clearAll);
NWNX_PushArgumentObject(oObserver);
NWNX_PushArgumentObject(oTarget);
NWNX_CallFunction(NWNX_Rename, sFunc);
NWNXPushInt(clearAll);
NWNXPushObject(oObserver);
NWNXPushObject(oTarget);
NWNXCall(NWNX_Rename, "ClearPCNameOverride");
}

View File

@@ -2,7 +2,6 @@
/// @brief Allows the selective revealing of a stealthing character to another character or their party.
/// @{
/// @file nwnx_reveal.nss
#include "nwnx"
const string NWNX_Reveal = "NWNX_Reveal"; ///< @private
@@ -28,22 +27,16 @@ void NWNX_Reveal_SetRevealToParty(object oHiding, int bReveal, int iDetectionMet
void NWNX_Reveal_RevealTo(object oHiding, object oObserver, int iDetectionMethod = NWNX_REVEAL_HEARD)
{
string sFunc = "RevealTo";
NWNX_PushArgumentInt(iDetectionMethod);
NWNX_PushArgumentObject(oObserver);
NWNX_PushArgumentObject(oHiding);
NWNX_CallFunction(NWNX_Reveal, sFunc);
NWNXPushInt(iDetectionMethod);
NWNXPushObject(oObserver);
NWNXPushObject(oHiding);
NWNXCall(NWNX_Reveal, "RevealTo");
}
void NWNX_Reveal_SetRevealToParty(object oHiding, int bReveal, int iDetectionMethod = NWNX_REVEAL_HEARD)
{
string sFunc = "SetRevealToParty";
NWNX_PushArgumentInt(iDetectionMethod);
NWNX_PushArgumentInt(bReveal);
NWNX_PushArgumentObject(oHiding);
NWNX_CallFunction(NWNX_Reveal, sFunc);
NWNXPushInt(iDetectionMethod);
NWNXPushInt(bReveal);
NWNXPushObject(oHiding);
NWNXCall(NWNX_Reveal, "SetRevealToParty");
}

View File

@@ -2,7 +2,6 @@
/// @brief Allows users to execute arbitrary Ruby from the game.
/// @{
/// @file nwnx_ruby.nss
#include "nwnx"
const string NWNX_Ruby = "NWNX_Ruby"; ///< @private
@@ -13,11 +12,9 @@ string NWNX_Ruby_Evaluate(string sCode);
/// @return The output of the call.
string NWNX_Ruby_Evaluate(string sCode)
{
string sFunc = "Evaluate";
NWNX_PushArgumentString(sCode);
NWNX_CallFunction(NWNX_Ruby, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sCode);
NWNXCall(NWNX_Ruby, "Evaluate");
return NWNXPopString();
}
/// @}

View File

@@ -3,7 +3,6 @@
/// skill related feats as well as modifying stock feats.
/// @{
/// @file nwnx_skillranks.nss
#include "nwnx"
const string NWNX_SkillRanks = "NWNX_SkillRanks"; ///< @private
@@ -144,82 +143,67 @@ void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier);
int NWNX_SkillRanks_GetSkillFeatCountForSkill(int iSkill)
{
string sFunc = "GetSkillFeatCountForSkill";
NWNX_PushArgumentInt(iSkill);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(iSkill);
NWNXCall(NWNX_SkillRanks, "GetSkillFeatCountForSkill");
return NWNXPopInt();
}
struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeatForSkillByIndex(int iSkill, int iIndex)
{
string sFunc = "GetSkillFeatForSkillByIndex";
NWNX_PushArgumentInt(iIndex);
NWNX_PushArgumentInt(iSkill);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
NWNXPushInt(iIndex);
NWNXPushInt(iSkill);
NWNXCall(NWNX_SkillRanks, "GetSkillFeatForSkillByIndex");
struct NWNX_SkillRanks_SkillFeat skillFeat;
skillFeat.iSkill = iSkill;
skillFeat.iFeat = NWNX_GetReturnValueInt();
skillFeat.iModifier = NWNX_GetReturnValueInt();
skillFeat.iFocusFeat = NWNX_GetReturnValueInt();
skillFeat.sClasses = NWNX_GetReturnValueString();
skillFeat.fClassLevelMod = NWNX_GetReturnValueFloat();
skillFeat.iAreaFlagsRequired = NWNX_GetReturnValueInt();
skillFeat.iAreaFlagsForbidden = NWNX_GetReturnValueInt();
skillFeat.iDayOrNight = NWNX_GetReturnValueInt();
skillFeat.bBypassArmorCheckPenalty = NWNX_GetReturnValueInt();
skillFeat.iKeyAbilityMask = NWNX_GetReturnValueInt();
skillFeat.iFeat = NWNXPopInt();
skillFeat.iModifier = NWNXPopInt();
skillFeat.iFocusFeat = NWNXPopInt();
skillFeat.sClasses = NWNXPopString();
skillFeat.fClassLevelMod = NWNXPopFloat();
skillFeat.iAreaFlagsRequired = NWNXPopInt();
skillFeat.iAreaFlagsForbidden = NWNXPopInt();
skillFeat.iDayOrNight = NWNXPopInt();
skillFeat.bBypassArmorCheckPenalty = NWNXPopInt();
skillFeat.iKeyAbilityMask = NWNXPopInt();
return skillFeat;
}
struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeat(int iSkill, int iFeat)
{
string sFunc = "GetSkillFeat";
NWNX_PushArgumentInt(iFeat);
NWNX_PushArgumentInt(iSkill);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
NWNXPushInt(iFeat);
NWNXPushInt(iSkill);
NWNXCall(NWNX_SkillRanks, "GetSkillFeat");
struct NWNX_SkillRanks_SkillFeat skillFeat;
skillFeat.iSkill = iSkill;
skillFeat.iFeat = iFeat;
skillFeat.iModifier = NWNX_GetReturnValueInt();
skillFeat.iFocusFeat = NWNX_GetReturnValueInt();
skillFeat.sClasses = NWNX_GetReturnValueString();
skillFeat.fClassLevelMod = NWNX_GetReturnValueFloat();
skillFeat.iAreaFlagsRequired = NWNX_GetReturnValueInt();
skillFeat.iAreaFlagsForbidden = NWNX_GetReturnValueInt();
skillFeat.iDayOrNight = NWNX_GetReturnValueInt();
skillFeat.bBypassArmorCheckPenalty = NWNX_GetReturnValueInt();
skillFeat.iKeyAbilityMask = NWNX_GetReturnValueInt();
skillFeat.iModifier = NWNXPopInt();
skillFeat.iFocusFeat = NWNXPopInt();
skillFeat.sClasses = NWNXPopString();
skillFeat.fClassLevelMod = NWNXPopFloat();
skillFeat.iAreaFlagsRequired = NWNXPopInt();
skillFeat.iAreaFlagsForbidden = NWNXPopInt();
skillFeat.iDayOrNight = NWNXPopInt();
skillFeat.bBypassArmorCheckPenalty = NWNXPopInt();
skillFeat.iKeyAbilityMask = NWNXPopInt();
return skillFeat;
}
void NWNX_SkillRanks_SetSkillFeat(struct NWNX_SkillRanks_SkillFeat skillFeat, int createIfNonExistent = FALSE)
{
string sFunc = "SetSkillFeat";
NWNX_PushArgumentInt(createIfNonExistent);
NWNX_PushArgumentInt(skillFeat.iKeyAbilityMask);
NWNX_PushArgumentInt(skillFeat.bBypassArmorCheckPenalty);
NWNX_PushArgumentInt(skillFeat.iDayOrNight);
NWNX_PushArgumentInt(skillFeat.iAreaFlagsForbidden);
NWNX_PushArgumentInt(skillFeat.iAreaFlagsRequired);
NWNX_PushArgumentFloat(skillFeat.fClassLevelMod);
NWNXPushInt(createIfNonExistent);
NWNXPushInt(skillFeat.iKeyAbilityMask);
NWNXPushInt(skillFeat.bBypassArmorCheckPenalty);
NWNXPushInt(skillFeat.iDayOrNight);
NWNXPushInt(skillFeat.iAreaFlagsForbidden);
NWNXPushInt(skillFeat.iAreaFlagsRequired);
NWNXPushFloat(skillFeat.fClassLevelMod);
// We only need to send the string from the point of the first set bit
NWNX_PushArgumentString(GetStringRight(skillFeat.sClasses,GetStringLength(skillFeat.sClasses)-FindSubString(skillFeat.sClasses,"1")));
NWNX_PushArgumentInt(skillFeat.iFocusFeat);
NWNX_PushArgumentInt(skillFeat.iModifier);
NWNX_PushArgumentInt(skillFeat.iFeat);
NWNX_PushArgumentInt(skillFeat.iSkill);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
NWNXPushString(GetStringRight(skillFeat.sClasses,GetStringLength(skillFeat.sClasses)-FindSubString(skillFeat.sClasses,"1")));
NWNXPushInt(skillFeat.iFocusFeat);
NWNXPushInt(skillFeat.iModifier);
NWNXPushInt(skillFeat.iFeat);
NWNXPushInt(skillFeat.iSkill);
NWNXCall(NWNX_SkillRanks, "SetSkillFeat");
}
struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_SkillRanks_SkillFeat skillFeat, int iClass)
@@ -237,47 +221,35 @@ struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_S
void NWNX_SkillRanks_SetSkillFeatFocusModifier(int iModifier, int epicFocus = FALSE)
{
string sFunc = "SetSkillFeatFocusModifier";
NWNX_PushArgumentInt(epicFocus);
NWNX_PushArgumentInt(iModifier);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
NWNXPushInt(epicFocus);
NWNXPushInt(iModifier);
NWNXCall(NWNX_SkillRanks, "SetSkillFeatFocusModifier");
}
int NWNX_SkillRanks_GetBlindnessPenalty()
{
string sFunc = "GetBlindnessPenalty";
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_SkillRanks, "GetBlindnessPenalty");
return NWNXPopInt();
}
void NWNX_SkillRanks_SetBlindnessPenalty(int iModifier)
{
string sFunc = "SetBlindnessPenalty";
NWNX_PushArgumentInt(iModifier);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
NWNXPushInt(iModifier);
NWNXCall(NWNX_SkillRanks, "SetBlindnessPenalty");
}
int NWNX_SkillRanks_GetAreaModifier(object oArea, int iSkill)
{
string sFunc = "GetAreaModifier";
NWNX_PushArgumentInt(iSkill);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(iSkill);
NWNXPushObject(oArea);
NWNXCall(NWNX_SkillRanks, "GetAreaModifier");
return NWNXPopInt();
}
void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier)
{
string sFunc = "SetAreaModifier";
NWNX_PushArgumentInt(iModifier);
NWNX_PushArgumentInt(iSkill);
NWNX_PushArgumentObject(oArea);
NWNX_CallFunction(NWNX_SkillRanks, sFunc);
NWNXPushInt(iModifier);
NWNXPushInt(iSkill);
NWNXPushObject(oArea);
NWNXCall(NWNX_SkillRanks, "SetAreaModifier");
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions related to spellchecking
/// @{
/// @file nwnx_spellcheck.nss
#include "nwnx"
const string NWNX_SpellChecker = "NWNX_SpellChecker"; ///< @private
@@ -27,17 +26,14 @@ string NWNX_SpellChecker_GetSuggestSpell(string word);
string NWNX_SpellChecker_FindMisspell(string sentence)
{
string sFunc = "FindMisspell";
NWNX_PushArgumentString(sentence);
NWNX_CallFunction(NWNX_SpellChecker, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sentence);
NWNXCall(NWNX_SpellChecker, "FindMisspell");
return NWNXPopString();
}
string NWNX_SpellChecker_GetSuggestSpell(string word)
{
string sFunc = "GetSuggestSpell";
NWNX_PushArgumentString(word);
NWNX_CallFunction(NWNX_SpellChecker, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(word);
NWNXCall(NWNX_SpellChecker, "GetSuggestSpell");
return NWNXPopString();
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions to interface with a database through SQL
/// @{
/// @file nwnx_sql.nss
#include "nwnx"
const string NWNX_SQL = "NWNX_SQL"; ///< @private
@@ -116,19 +115,15 @@ void NWNX_SQL_PostgreSQL_SetNextQueryResultsBinaryMode();
int NWNX_SQL_PrepareQuery(string query)
{
string sFunc = "PrepareQuery";
NWNX_PushArgumentString(query);
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(query);
NWNXCall(NWNX_SQL, "PrepareQuery");
return NWNXPopInt();
}
int NWNX_SQL_ExecutePreparedQuery()
{
string sFunc = "ExecutePreparedQuery";
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_SQL, "ExecutePreparedQuery");
return NWNXPopInt();
}
int NWNX_SQL_ExecuteQuery(string query)
@@ -146,76 +141,58 @@ int NWNX_SQL_ExecuteQuery(string query)
int NWNX_SQL_ReadyToReadNextRow()
{
string sFunc = "ReadyToReadNextRow";
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_SQL, "ReadyToReadNextRow");
return NWNXPopInt();
}
void NWNX_SQL_ReadNextRow()
{
string sFunc = "ReadNextRow";
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXCall(NWNX_SQL, "ReadNextRow");
}
string NWNX_SQL_ReadDataInActiveRow(int column = 0)
{
string sFunc = "ReadDataInActiveRow";
NWNX_PushArgumentInt(column);
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueString();
NWNXPushInt(column);
NWNXCall(NWNX_SQL, "ReadDataInActiveRow");
return NWNXPopString();
}
void NWNX_SQL_PreparedInt(int position, int value)
{
string sFunc = "PreparedInt";
NWNX_PushArgumentInt(value);
NWNX_PushArgumentInt(position);
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXPushInt(value);
NWNXPushInt(position);
NWNXCall(NWNX_SQL, "PreparedInt");
}
void NWNX_SQL_PreparedString(int position, string value)
{
string sFunc = "PreparedString";
NWNX_PushArgumentString(value);
NWNX_PushArgumentInt(position);
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXPushString(value);
NWNXPushInt(position);
NWNXCall(NWNX_SQL, "PreparedString");
}
void NWNX_SQL_PreparedFloat(int position, float value)
{
string sFunc = "PreparedFloat";
NWNX_PushArgumentFloat(value);
NWNX_PushArgumentInt(position);
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXPushFloat(value);
NWNXPushInt(position);
NWNXCall(NWNX_SQL, "PreparedFloat");
}
void NWNX_SQL_PreparedObjectId(int position, object value)
{
string sFunc = "PreparedObjectId";
NWNX_PushArgumentObject(value);
NWNX_PushArgumentInt(position);
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXPushObject(value);
NWNXPushInt(position);
NWNXCall(NWNX_SQL, "PreparedObjectId");
}
void NWNX_SQL_PreparedObjectFull(int position, object value, int base64 = TRUE)
{
string sFunc = "PreparedObjectFull";
NWNX_PushArgumentInt(base64);
NWNX_PushArgumentObject(value);
NWNX_PushArgumentInt(position);
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXPushInt(base64);
NWNXPushObject(value);
NWNXPushInt(position);
NWNXCall(NWNX_SQL, "PreparedObjectFull");
}
void NWNX_SQL_PreparedNULL(int position)
{
string sFunc = "PreparedNULL";
NWNX_PushArgumentInt(position);
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXPushInt(position);
NWNXCall(NWNX_SQL, "PreparedNULL");
}
void NWNX_SQL_PreparedJson(int position, json value)
{
@@ -227,60 +204,46 @@ void NWNX_SQL_PreparedJson(int position, json value)
object NWNX_SQL_ReadFullObjectInActiveRow(int column = 0, object owner = OBJECT_INVALID, float x = 0.0, float y = 0.0, float z = 0.0, int base64 = TRUE)
{
string sFunc = "ReadFullObjectInActiveRow";
NWNX_PushArgumentInt(base64);
NWNX_PushArgumentFloat(z);
NWNX_PushArgumentFloat(y);
NWNX_PushArgumentFloat(x);
NWNX_PushArgumentObject(owner);
NWNX_PushArgumentInt(column);
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushInt(base64);
NWNXPushFloat(z);
NWNXPushFloat(y);
NWNXPushFloat(x);
NWNXPushObject(owner);
NWNXPushInt(column);
NWNXCall(NWNX_SQL, "ReadFullObjectInActiveRow");
return NWNXPopObject();
}
int NWNX_SQL_GetAffectedRows()
{
string sFunc = "GetAffectedRows";
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_SQL, "GetAffectedRows");
return NWNXPopInt();
}
string NWNX_SQL_GetDatabaseType()
{
string sFunc = "GetDatabaseType";
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_SQL, "GetDatabaseType");
return NWNXPopString();
}
void NWNX_SQL_DestroyPreparedQuery()
{
string sFunc = "DestroyPreparedQuery";
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXCall(NWNX_SQL, "DestroyPreparedQuery");
}
string NWNX_SQL_GetLastError()
{
string sFunc = "GetLastError";
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_SQL, "GetLastError");
return NWNXPopString();
}
int NWNX_SQL_GetPreparedQueryParamCount()
{
string sFunc = "GetPreparedQueryParamCount";
NWNX_CallFunction(NWNX_SQL, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_SQL, "GetPreparedQueryParamCount");
return NWNXPopInt();
}
void NWNX_SQL_PostgreSQL_SetNextQueryResultsBinaryMode()
{
string sFunc = "PostgreSQL_SetNextQueryResultsBinaryMode";
NWNX_CallFunction(NWNX_SQL, sFunc);
NWNXCall(NWNX_SQL, "PostgreSQL_SetNextQueryResultsBinaryMode");
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional store properties.
/// @{
/// @file nwnx_store.nss
#include "nwnx"
const string NWNX_Store = "NWNX_Store"; ///< @private
@@ -51,81 +50,57 @@ int NWNX_Store_GetCurrentCustomersCount(object oStore);
int NWNX_Store_GetIsRestrictedBuyItem(object oStore, int nBaseItem)
{
string sFunc = "GetIsRestrictedBuyItem";
NWNX_PushArgumentInt(nBaseItem);
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nBaseItem);
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "GetIsRestrictedBuyItem");
return NWNXPopInt();
}
int NWNX_Store_GetBlackMarketMarkDown(object oStore)
{
string sFunc = "GetBlackMarketMarkDown";
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "GetBlackMarketMarkDown");
return NWNXPopInt();
}
void NWNX_Store_SetBlackMarketMarkDown(object oStore, int nValue)
{
string sFunc = "SetBlackMarketMarkDown";
NWNX_PushArgumentInt(nValue);
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
NWNXPushInt(nValue);
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "SetBlackMarketMarkDown");
}
int NWNX_Store_GetMarkDown(object oStore)
{
string sFunc = "GetMarkDown";
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "GetMarkDown");
return NWNXPopInt();
}
void NWNX_Store_SetMarkDown(object oStore, int nValue)
{
string sFunc = "SetMarkDown";
NWNX_PushArgumentInt(nValue);
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
NWNXPushInt(nValue);
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "SetMarkDown");
}
int NWNX_Store_GetMarkUp(object oStore)
{
string sFunc = "GetMarkUp";
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "GetMarkUp");
return NWNXPopInt();
}
void NWNX_Store_SetMarkUp(object oStore, int nValue)
{
string sFunc = "SetMarkUp";
NWNX_PushArgumentInt(nValue);
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
NWNXPushInt(nValue);
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "SetMarkUp");
}
int NWNX_Store_GetCurrentCustomersCount(object oStore)
{
string sFunc = "GetCurrentCustomersCount";
NWNX_PushArgumentObject(oStore);
NWNX_CallFunction(NWNX_Store, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oStore);
NWNXCall(NWNX_Store, "GetCurrentCustomersCount");
return NWNXPopInt();
}

View File

@@ -2,7 +2,6 @@
/// @brief An advanced plugin that exposes additional tileset and tile properties and allows builders to override the tiles of an area created with CreateArea().
/// @{
/// @file nwnx_tileset.nss
#include "nwnx"
const string NWNX_Tileset = "NWNX_Tileset"; ///< @private
@@ -166,174 +165,160 @@ void NWNX_Tileset_DeleteOverrideTileData(string sOverrideName, int nIndex);
struct NWNX_Tileset_TilesetData NWNX_Tileset_GetTilesetData(string sTileset)
{
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTilesetData");
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTilesetData");
struct NWNX_Tileset_TilesetData str;
str.bHasHeightTransition = NWNX_GetReturnValueInt();
str.bInterior = NWNX_GetReturnValueInt();
str.sUnlocalizedName = NWNX_GetReturnValueString();
str.nDisplayNameStrRef = NWNX_GetReturnValueInt();
str.sFloorTerrain = NWNX_GetReturnValueString();
str.sDefaultTerrain = NWNX_GetReturnValueString();
str.sBorderTerrain = NWNX_GetReturnValueString();
str.nNumGroups = NWNX_GetReturnValueInt();
str.nNumCrossers = NWNX_GetReturnValueInt();
str.nNumTerrain = NWNX_GetReturnValueInt();
str.fHeightTransition = NWNX_GetReturnValueFloat();
str.nNumTileData = NWNX_GetReturnValueInt();
str.bHasHeightTransition = NWNXPopInt();
str.bInterior = NWNXPopInt();
str.sUnlocalizedName = NWNXPopString();
str.nDisplayNameStrRef = NWNXPopInt();
str.sFloorTerrain = NWNXPopString();
str.sDefaultTerrain = NWNXPopString();
str.sBorderTerrain = NWNXPopString();
str.nNumGroups = NWNXPopInt();
str.nNumCrossers = NWNXPopInt();
str.nNumTerrain = NWNXPopInt();
str.fHeightTransition = NWNXPopFloat();
str.nNumTileData = NWNXPopInt();
return str;
}
string NWNX_Tileset_GetTilesetTerrain(string sTileset, int nIndex)
{
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTilesetTerrain");
return NWNX_GetReturnValueString();
NWNXPushInt(nIndex);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTilesetTerrain");
return NWNXPopString();
}
string NWNX_Tileset_GetTilesetCrosser(string sTileset, int nIndex)
{
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTilesetCrosser");
return NWNX_GetReturnValueString();
NWNXPushInt(nIndex);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTilesetCrosser");
return NWNXPopString();
}
struct NWNX_Tileset_TilesetGroupData NWNX_Tileset_GetTilesetGroupData(string sTileset, int nIndex)
{
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTilesetGroupData");
NWNXPushInt(nIndex);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTilesetGroupData");
struct NWNX_Tileset_TilesetGroupData str;
str.nColumns = NWNX_GetReturnValueInt();
str.nRows = NWNX_GetReturnValueInt();
str.nStrRef = NWNX_GetReturnValueInt();
str.sName = NWNX_GetReturnValueString();
str.nColumns = NWNXPopInt();
str.nRows = NWNXPopInt();
str.nStrRef = NWNXPopInt();
str.sName = NWNXPopString();
return str;
}
int NWNX_Tileset_GetTilesetGroupTile(string sTileset, int nGroupIndex, int nTileIndex)
{
NWNX_PushArgumentInt(nTileIndex);
NWNX_PushArgumentInt(nGroupIndex);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTilesetGroupTile");
return NWNX_GetReturnValueInt();
NWNXPushInt(nTileIndex);
NWNXPushInt(nGroupIndex);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTilesetGroupTile");
return NWNXPopInt();
}
string NWNX_Tileset_GetTileModel(string sTileset, int nTileID)
{
NWNX_PushArgumentInt(nTileID);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTileModel");
return NWNX_GetReturnValueString();
NWNXPushInt(nTileID);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTileModel");
return NWNXPopString();
}
string NWNX_Tileset_GetTileMinimapTexture(string sTileset, int nTileID)
{
NWNX_PushArgumentInt(nTileID);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTileMinimapTexture");
return NWNX_GetReturnValueString();
NWNXPushInt(nTileID);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTileMinimapTexture");
return NWNXPopString();
}
struct NWNX_Tileset_TileEdgesAndCorners NWNX_Tileset_GetTileEdgesAndCorners(string sTileset, int nTileID)
{
NWNX_PushArgumentInt(nTileID);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTileEdgesAndCorners");
NWNXPushInt(nTileID);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTileEdgesAndCorners");
struct NWNX_Tileset_TileEdgesAndCorners str;
str.sLeft = NWNX_GetReturnValueString();
str.sBottomLeft = NWNX_GetReturnValueString();
str.sBottom = NWNX_GetReturnValueString();
str.sBottomRight = NWNX_GetReturnValueString();
str.sRight = NWNX_GetReturnValueString();
str.sTopRight = NWNX_GetReturnValueString();
str.sTop = NWNX_GetReturnValueString();
str.sTopLeft = NWNX_GetReturnValueString();
str.sLeft = NWNXPopString();
str.sBottomLeft = NWNXPopString();
str.sBottom = NWNXPopString();
str.sBottomRight = NWNXPopString();
str.sRight = NWNXPopString();
str.sTopRight = NWNXPopString();
str.sTop = NWNXPopString();
str.sTopLeft = NWNXPopString();
return str;
}
int NWNX_Tileset_GetTileNumDoors(string sTileset, int nTileID)
{
NWNX_PushArgumentInt(nTileID);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTileNumDoors");
return NWNX_GetReturnValueInt();
NWNXPushInt(nTileID);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTileNumDoors");
return NWNXPopInt();
}
struct NWNX_Tileset_TileDoorData NWNX_Tileset_GetTileDoorData(string sTileset, int nTileID, int nIndex = 0)
{
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentInt(nTileID);
NWNX_PushArgumentString(sTileset);
NWNX_CallFunction(NWNX_Tileset, "GetTileDoorData");
NWNXPushInt(nIndex);
NWNXPushInt(nTileID);
NWNXPushString(sTileset);
NWNXCall(NWNX_Tileset, "GetTileDoorData");
struct NWNX_Tileset_TileDoorData str;
str.fOrientation = NWNX_GetReturnValueFloat();
str.fZ = NWNX_GetReturnValueFloat();
str.fY = NWNX_GetReturnValueFloat();
str.fX = NWNX_GetReturnValueFloat();
str.nType = NWNX_GetReturnValueInt();
str.fOrientation = NWNXPopFloat();
str.fZ = NWNXPopFloat();
str.fY = NWNXPopFloat();
str.fX = NWNXPopFloat();
str.nType = NWNXPopInt();
return str;
}
void NWNX_Tileset_SetAreaTileOverride(string sAreaResRef, string sOverrideName)
{
NWNX_PushArgumentString(sOverrideName);
NWNX_PushArgumentString(sAreaResRef);
NWNX_CallFunction(NWNX_Tileset, "SetAreaTileOverride");
NWNXPushString(sOverrideName);
NWNXPushString(sAreaResRef);
NWNXCall(NWNX_Tileset, "SetAreaTileOverride");
}
void NWNX_Tileset_CreateTileOverride(string sOverrideName, string sTileSet, int nWidth, int nHeight)
{
NWNX_PushArgumentInt(nHeight);
NWNX_PushArgumentInt(nWidth);
NWNX_PushArgumentString(sTileSet);
NWNX_PushArgumentString(sOverrideName);
NWNX_CallFunction(NWNX_Tileset, "CreateTileOverride");
NWNXPushInt(nHeight);
NWNXPushInt(nWidth);
NWNXPushString(sTileSet);
NWNXPushString(sOverrideName);
NWNXCall(NWNX_Tileset, "CreateTileOverride");
}
void NWNX_Tileset_DeleteTileOverride(string sOverrideName)
{
NWNX_PushArgumentString(sOverrideName);
NWNX_CallFunction(NWNX_Tileset, "DeleteTileOverride");
NWNXPushString(sOverrideName);
NWNXCall(NWNX_Tileset, "DeleteTileOverride");
}
void NWNX_Tileset_SetOverrideTileData(string sOverrideName, int nIndex, struct NWNX_Tileset_CustomTileData strCustomTileData)
{
NWNX_PushArgumentInt(strCustomTileData.bAnimLoop3);
NWNX_PushArgumentInt(strCustomTileData.bAnimLoop2);
NWNX_PushArgumentInt(strCustomTileData.bAnimLoop1);
NWNX_PushArgumentInt(strCustomTileData.nSourceLightColor2);
NWNX_PushArgumentInt(strCustomTileData.nSourceLightColor1);
NWNX_PushArgumentInt(strCustomTileData.nMainLightColor2);
NWNX_PushArgumentInt(strCustomTileData.nMainLightColor1);
NWNX_PushArgumentInt(strCustomTileData.nHeight);
NWNX_PushArgumentInt(strCustomTileData.nOrientation);
NWNX_PushArgumentInt(strCustomTileData.nTileID);
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentString(sOverrideName);
NWNX_CallFunction(NWNX_Tileset, "SetOverrideTileData");
NWNXPushInt(strCustomTileData.bAnimLoop3);
NWNXPushInt(strCustomTileData.bAnimLoop2);
NWNXPushInt(strCustomTileData.bAnimLoop1);
NWNXPushInt(strCustomTileData.nSourceLightColor2);
NWNXPushInt(strCustomTileData.nSourceLightColor1);
NWNXPushInt(strCustomTileData.nMainLightColor2);
NWNXPushInt(strCustomTileData.nMainLightColor1);
NWNXPushInt(strCustomTileData.nHeight);
NWNXPushInt(strCustomTileData.nOrientation);
NWNXPushInt(strCustomTileData.nTileID);
NWNXPushInt(nIndex);
NWNXPushString(sOverrideName);
NWNXCall(NWNX_Tileset, "SetOverrideTileData");
}
void NWNX_Tileset_DeleteOverrideTileData(string sOverrideName, int nIndex)
{
NWNX_PushArgumentInt(nIndex);
NWNX_PushArgumentString(sOverrideName);
NWNX_CallFunction(NWNX_Tileset, "DeleteOverrideTileData");
NWNXPushInt(nIndex);
NWNXPushString(sOverrideName);
NWNXCall(NWNX_Tileset, "DeleteOverrideTileData");
}

View File

@@ -2,7 +2,6 @@
/// @brief Provides various time related functions
/// @{
/// @file nwnx_time.nss
#include "nwnx"
#include "nwnx_util"
#include "inc_sqlite_time"

View File

@@ -2,7 +2,6 @@
/// @brief Provides various utility functions that don't have a better home
/// @{
/// @file nwnx_util.nss
#include "nwnx"
const string NWNX_Util = "NWNX_Util"; ///< @private
@@ -174,12 +173,6 @@ int NWNX_Util_RegisterServerConsoleCommand(string sCommand, string sScriptChunk)
/// @param sCommand The name of the command.
void NWNX_Util_UnregisterServerConsoleCommand(string sCommand);
/// @brief Determines if the given plugin exists and is enabled.
/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNX_CallFunction, NWNX_PushArgumentX
/// @note Example usage: NWNX_Util_PluginExists("NWNX_Creature");
/// @return TRUE if the plugin exists and is enabled, otherwise FALSE.
int NWNX_Util_PluginExists(string sPlugin);
/// @brief Gets the server's current working user folder.
/// @return The absolute path of the server's home directory (-userDirectory)
string NWNX_Util_GetUserDirectory();
@@ -228,10 +221,18 @@ int NWNX_Util_GetScriptParamIsSet(string sParamName);
/// @param nDawnHour The new dawn hour
void NWNX_Util_SetDawnHour(int nDawnHour);
/// @brief Get the module dawn hour.
/// @return The dawn hour
int NWNX_Util_GetDawnHour();
/// @brief Set the module dusk hour.
/// @param nDuskHour The new dusk hour
void NWNX_Util_SetDuskHour(int nDuskHour);
/// @brief Get the module dusk hour.
/// @return The dusk hour
int NWNX_Util_GetDuskHour();
/// @return Returns the number of microseconds since midnight on January 1, 1970.
struct NWNX_Util_HighResTimestamp NWNX_Util_GetHighResTimeStamp();
@@ -263,397 +264,327 @@ int NWNX_Util_CleanResourceDirectory(string sAlias, int nResType = 0xFFFF);
/// @return The name
string NWNX_Util_GetModuleTlkFile();
/// @brief Update a resource directory by having ResMan reindex it.
/// @param sAlias A resource directory alias, eg: TEMP
/// @return TRUE if successful, FALSE on error.
int NWNX_Util_UpdateResourceDirectory(string sAlias);
/// @}
string NWNX_Util_GetCurrentScriptName(int depth = 0)
{
string sFunc = "GetCurrentScriptName";
NWNX_PushArgumentInt(depth);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushInt(depth);
NWNXCall(NWNX_Util, "GetCurrentScriptName");
return NWNXPopString();
}
string NWNX_Util_GetAsciiTableString()
{
string sFunc = "GetAsciiTableString";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Util, "GetAsciiTableString");
return NWNXPopString();
}
int NWNX_Util_Hash(string str)
{
string sFunc = "Hash";
NWNX_PushArgumentString(str);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(str);
NWNXCall(NWNX_Util, "Hash");
return NWNXPopInt();
}
int NWNX_Util_GetModuleMtime()
{
NWNX_CallFunction(NWNX_Util, "GetModuleMtime");
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Util, "GetModuleMtime");
return NWNXPopInt();
}
string NWNX_Util_GetModuleFile()
{
NWNX_CallFunction(NWNX_Util, "GetModuleFile");
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Util, "GetModuleFile");
return NWNXPopString();
}
string NWNX_Util_GetCustomToken(int customTokenNumber)
{
string sFunc = "GetCustomToken";
NWNX_PushArgumentInt(customTokenNumber);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushInt(customTokenNumber);
NWNXCall(NWNX_Util, "GetCustomToken");
return NWNXPopString();
}
itemproperty NWNX_Util_EffectToItemProperty(effect e)
{
string sFunc = "EffectTypeCast";
NWNX_PushArgumentEffect(e);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueItemProperty();
NWNXPushEffect(e);
NWNXCall(NWNX_Util, "EffectTypeCast");
return NWNXPopItemProperty();
}
effect NWNX_Util_ItemPropertyToEffect(itemproperty ip)
{
string sFunc = "EffectTypeCast";
NWNX_PushArgumentItemProperty(ip);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueEffect();
NWNXPushItemProperty(ip);
NWNXCall(NWNX_Util, "EffectTypeCast");
return NWNXPopEffect();
}
string NWNX_Util_StripColors(string str)
{
string sFunc = "StripColors";
NWNX_PushArgumentString(str);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(str);
NWNXCall(NWNX_Util, "StripColors");
return NWNXPopString();
}
string NWNX_Util_GetEnvironmentVariable(string sVarname)
{
string sFunc = "GetEnvironmentVariable";
NWNX_PushArgumentString(sVarname);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sVarname);
NWNXCall(NWNX_Util, "GetEnvironmentVariable");
return NWNXPopString();
}
int NWNX_Util_GetMinutesPerHour()
{
string sFunc = "GetMinutesPerHour";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Util, "GetMinutesPerHour");
return NWNXPopInt();
}
void NWNX_Util_SetMinutesPerHour(int minutes)
{
string sFunc = "SetMinutesPerHour";
NWNX_PushArgumentInt(minutes);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushInt(minutes);
NWNXCall(NWNX_Util, "SetMinutesPerHour");
}
string NWNX_Util_EncodeStringForURL(string sURL)
{
string sFunc = "EncodeStringForURL";
NWNX_PushArgumentString(sURL);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sURL);
NWNXCall(NWNX_Util, "EncodeStringForURL");
return NWNXPopString();
}
string NWNX_Util_GetFirstResRef(int nType, string sRegexFilter = "", int bModuleResourcesOnly = TRUE)
{
string sFunc = "GetFirstResRef";
NWNX_PushArgumentInt(bModuleResourcesOnly);
NWNX_PushArgumentString(sRegexFilter);
NWNX_PushArgumentInt(nType);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushInt(bModuleResourcesOnly);
NWNXPushString(sRegexFilter);
NWNXPushInt(nType);
NWNXCall(NWNX_Util, "GetFirstResRef");
return NWNXPopString();
}
string NWNX_Util_GetNextResRef()
{
string sFunc = "GetNextResRef";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Util, "GetNextResRef");
return NWNXPopString();
}
object NWNX_Util_GetLastCreatedObject(int nObjectType, int nNthLast = 1)
{
string sFunc = "GetLastCreatedObject";
NWNX_PushArgumentInt(nNthLast);
NWNX_PushArgumentInt(nObjectType);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushInt(nNthLast);
NWNXPushInt(nObjectType);
NWNXCall(NWNX_Util, "GetLastCreatedObject");
return NWNXPopObject();
}
string NWNX_Util_AddScript(string sFileName, string sScriptData, int bWrapIntoMain = FALSE, string sAlias = "NWNX")
{
string sFunc = "AddScript";
NWNX_PushArgumentString(sAlias);
NWNX_PushArgumentInt(bWrapIntoMain);
NWNX_PushArgumentString(sScriptData);
NWNX_PushArgumentString(sFileName);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sAlias);
NWNXPushInt(bWrapIntoMain);
NWNXPushString(sScriptData);
NWNXPushString(sFileName);
NWNXCall(NWNX_Util, "AddScript");
return NWNXPopString();
}
int NWNX_Util_AddNSSFile(string sFileName, string sContents, string sAlias = "NWNX")
{
string sFunc = "AddNSSFile";
NWNX_PushArgumentString(sAlias);
NWNX_PushArgumentString(sContents);
NWNX_PushArgumentString(sFileName);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sAlias);
NWNXPushString(sContents);
NWNXPushString(sFileName);
NWNXCall(NWNX_Util, "AddNSSFile");
return NWNXPopInt();
}
int NWNX_Util_RemoveNWNXResourceFile(string sFileName, int nType, string sAlias = "NWNX")
{
string sFunc = "RemoveNWNXResourceFile";
NWNX_PushArgumentString(sAlias);
NWNX_PushArgumentInt(nType);
NWNX_PushArgumentString(sFileName);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sAlias);
NWNXPushInt(nType);
NWNXPushString(sFileName);
NWNXCall(NWNX_Util, "RemoveNWNXResourceFile");
return NWNXPopInt();
}
void NWNX_Util_SetInstructionLimit(int nInstructionLimit)
{
string sFunc = "SetInstructionLimit";
NWNX_PushArgumentInt(nInstructionLimit);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushInt(nInstructionLimit);
NWNXCall(NWNX_Util, "SetInstructionLimit");
}
int NWNX_Util_GetInstructionLimit()
{
string sFunc = "GetInstructionLimit";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Util, "GetInstructionLimit");
return NWNXPopInt();
}
void NWNX_Util_SetInstructionsExecuted(int nInstructions)
{
string sFunc = "SetInstructionsExecuted";
NWNX_PushArgumentInt(nInstructions);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushInt(nInstructions);
NWNXCall(NWNX_Util, "SetInstructionsExecuted");
}
int NWNX_Util_GetInstructionsExecuted()
{
string sFunc = "GetInstructionsExecuted";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Util, "GetInstructionsExecuted");
return NWNXPopInt();
}
int NWNX_Util_RegisterServerConsoleCommand(string sCommand, string sScriptChunk)
{
string sFunc = "RegisterServerConsoleCommand";
NWNX_PushArgumentString(sScriptChunk);
NWNX_PushArgumentString(sCommand);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sScriptChunk);
NWNXPushString(sCommand);
NWNXCall(NWNX_Util, "RegisterServerConsoleCommand");
return NWNXPopInt();
}
void NWNX_Util_UnregisterServerConsoleCommand(string sCommand)
{
string sFunc = "UnregisterServerConsoleCommand";
NWNX_PushArgumentString(sCommand);
NWNX_CallFunction(NWNX_Util, sFunc);
}
int NWNX_Util_PluginExists(string sPlugin)
{
WriteTimestampedLogEntry("WARNING: NWNX_Util_PluginExists is deprecated. You should migrate to NWNX_PluginExists.");
return NWNX_PluginExists(sPlugin);
NWNXPushString(sCommand);
NWNXCall(NWNX_Util, "UnregisterServerConsoleCommand");
}
string NWNX_Util_GetUserDirectory()
{
string sFunc = "GetUserDirectory";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Util, "GetUserDirectory");
return NWNXPopString();
}
int NWNX_Util_GetScriptReturnValue()
{
string sFunc = "GetScriptReturnValue";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXCall(NWNX_Util, "GetScriptReturnValue");
return NWNXPopInt();
}
object NWNX_Util_CreateDoor(string sResRef, location locLocation, string sNewTag = "", int nAppearanceType = -1)
{
string sFunc = "CreateDoor";
vector vPosition = GetPositionFromLocation(locLocation);
NWNX_PushArgumentInt(nAppearanceType);
NWNX_PushArgumentString(sNewTag);
NWNX_PushArgumentFloat(GetFacingFromLocation(locLocation));
NWNX_PushArgumentFloat(vPosition.z);
NWNX_PushArgumentFloat(vPosition.y);
NWNX_PushArgumentFloat(vPosition.x);
NWNX_PushArgumentObject(GetAreaFromLocation(locLocation));
NWNX_PushArgumentString(sResRef);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueObject();
NWNXPushInt(nAppearanceType);
NWNXPushString(sNewTag);
NWNXPushLocation(locLocation);
NWNXPushString(sResRef);
NWNXCall(NWNX_Util, "CreateDoor");
return NWNXPopObject();
}
void NWNX_Util_SetItemActivator(object oObject)
{
string sFunc = "SetItemActivator";
NWNX_PushArgumentObject(oObject);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushObject(oObject);
NWNXCall(NWNX_Util, "SetItemActivator");
}
struct NWNX_Util_WorldTime NWNX_Util_GetWorldTime(float fAdjustment = 0.0f)
{
string sFunc = "GetWorldTime";
NWNX_PushArgumentFloat(fAdjustment);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushFloat(fAdjustment);
NWNXCall(NWNX_Util, "GetWorldTime");
struct NWNX_Util_WorldTime strWorldTime;
strWorldTime.nTimeOfDay = NWNX_GetReturnValueInt();
strWorldTime.nCalendarDay = NWNX_GetReturnValueInt();
strWorldTime.nTimeOfDay = NWNXPopInt();
strWorldTime.nCalendarDay = NWNXPopInt();
return strWorldTime;
}
void NWNX_Util_SetResourceOverride(int nResType, string sOldName, string sNewName)
{
string sFunc = "SetResourceOverride";
NWNX_PushArgumentString(sNewName);
NWNX_PushArgumentString(sOldName);
NWNX_PushArgumentInt(nResType);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushString(sNewName);
NWNXPushString(sOldName);
NWNXPushInt(nResType);
NWNXCall(NWNX_Util, "SetResourceOverride");
}
string NWNX_Util_GetResourceOverride(int nResType, string sName)
{
string sFunc = "GetResourceOverride";
NWNX_PushArgumentString(sName);
NWNX_PushArgumentInt(nResType);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXPushString(sName);
NWNXPushInt(nResType);
NWNXCall(NWNX_Util, "GetResourceOverride");
return NWNXPopString();
}
int NWNX_Util_GetScriptParamIsSet(string sParamName)
{
string sFunc = "GetScriptParamIsSet";
NWNX_PushArgumentString(sParamName);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sParamName);
NWNXCall(NWNX_Util, "GetScriptParamIsSet");
return NWNXPopInt();
}
void NWNX_Util_SetDawnHour(int nDawnHour)
{
string sFunc = "SetDawnHour";
NWNXPushInt(nDawnHour);
NWNXCall(NWNX_Util, "SetDawnHour");
}
NWNX_PushArgumentInt(nDawnHour);
NWNX_CallFunction(NWNX_Util, sFunc);
int NWNX_Util_GetDawnHour()
{
NWNXCall(NWNX_Util, "GetDawnHour");
return NWNXPopInt();
}
void NWNX_Util_SetDuskHour(int nDuskHour)
{
string sFunc = "SetDuskHour";
NWNXPushInt(nDuskHour);
NWNXCall(NWNX_Util, "SetDuskHour");
}
NWNX_PushArgumentInt(nDuskHour);
NWNX_CallFunction(NWNX_Util, sFunc);
int NWNX_Util_GetDuskHour()
{
NWNXCall(NWNX_Util, "GetDuskHour");
return NWNXPopInt();
}
struct NWNX_Util_HighResTimestamp NWNX_Util_GetHighResTimeStamp()
{
struct NWNX_Util_HighResTimestamp t;
string sFunc = "GetHighResTimeStamp";
NWNX_CallFunction(NWNX_Util, sFunc);
t.microseconds = NWNX_GetReturnValueInt();
t.seconds = NWNX_GetReturnValueInt();
NWNXCall(NWNX_Util, "GetHighResTimeStamp");
t.microseconds = NWNXPopInt();
t.seconds = NWNXPopInt();
return t;
}
string NWNX_Util_GetTTY()
{
string sFunc = "GetTTY";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Util, "GetTTY");
return NWNXPopString();
}
void NWNX_Util_SetCurrentlyRunningEvent(int nEventID)
{
string sFunc = "SetCurrentlyRunningEvent";
NWNX_PushArgumentInt(nEventID);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushInt(nEventID);
NWNXCall(NWNX_Util, "SetCurrentlyRunningEvent");
}
int NWNX_Util_GetStringLevenshteinDistance(string sString, string sCompareTo)
{
string sFunc = "LevenshteinDistance";
NWNX_PushArgumentString(sCompareTo);
NWNX_PushArgumentString(sString);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushString(sCompareTo);
NWNXPushString(sString);
NWNXCall(NWNX_Util, "GetStringLevenshteinDistance");
return NWNXPopInt();
}
void NWNX_Util_UpdateClientObject(object oObjectToUpdate, object oPlayer = OBJECT_INVALID)
{
string sFunc = "UpdateClientObject";
NWNX_PushArgumentObject(oPlayer);
NWNX_PushArgumentObject(oObjectToUpdate);
NWNX_CallFunction(NWNX_Util, sFunc);
NWNXPushObject(oPlayer);
NWNXPushObject(oObjectToUpdate);
NWNXCall(NWNX_Util, "UpdateClientObject");
}
int NWNX_Util_CleanResourceDirectory(string sAlias, int nResType = 0xFFFF)
{
string sFunc = "CleanResourceDirectory";
NWNX_PushArgumentInt(nResType);
NWNX_PushArgumentString(sAlias);
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nResType);
NWNXPushString(sAlias);
NWNXCall(NWNX_Util, "CleanResourceDirectory");
return NWNXPopInt();
}
string NWNX_Util_GetModuleTlkFile()
{
string sFunc = "GetModuleTlkFile";
NWNX_CallFunction(NWNX_Util, sFunc);
return NWNX_GetReturnValueString();
NWNXCall(NWNX_Util, sFunc);
return NWNXPopString();
}
int NWNX_Util_UpdateResourceDirectory(string sAlias)
{
NWNXPushString(sAlias);
NWNXCall(NWNX_Util, "UpdateResourceDirectory");
return NWNXPopInt();
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions to manipulate visibility of objects both globally or per observer
/// @{
/// @file nwnx_visibility.nss
#include "nwnx"
const string NWNX_Visibility = "NWNX_Visibility"; ///< @private
@@ -57,21 +56,16 @@ void NWNX_Visibility_SetVisibilityOverride(object oPlayer, object oTarget, int n
int NWNX_Visibility_GetVisibilityOverride(object oPlayer, object oTarget)
{
string sFunc = "GetVisibilityOverride";
NWNX_PushArgumentObject(oTarget);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Visibility, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oTarget);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Visibility, "GetVisibilityOverride");
return NWNXPopInt();
}
void NWNX_Visibility_SetVisibilityOverride(object oPlayer, object oTarget, int nOverride)
{
string sFunc = "SetVisibilityOverride";
NWNX_PushArgumentInt(nOverride);
NWNX_PushArgumentObject(oTarget);
NWNX_PushArgumentObject(oPlayer);
NWNX_CallFunction(NWNX_Visibility, sFunc);
NWNXPushInt(nOverride);
NWNXPushObject(oTarget);
NWNXPushObject(oPlayer);
NWNXCall(NWNX_Visibility, "SetVisibilityOverride");
}

View File

@@ -2,7 +2,6 @@
/// @brief Functions exposing additional weapon properties.
/// @{
/// @file nwnx_weapon.nss
#include "nwnx"
const string NWNX_Weapon = "NWNX_Weapon"; ///< @private
@@ -138,214 +137,152 @@ void NWNX_Weapon_SetMaxRangedAttackDistanceOverride(int nBaseItem, float fMax, f
void NWNX_Weapon_SetWeaponFocusFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetWeaponFocusFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponFocusFeat");
}
void NWNX_Weapon_SetEpicWeaponFocusFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetEpicWeaponFocusFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetEpicWeaponFocusFeat");
}
void NWNX_Weapon_SetGreaterWeaponFocusFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetGreaterWeaponFocusFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetGreaterWeaponFocusFeat");
}
void NWNX_Weapon_SetWeaponFinesseSize(int nBaseItem, int nSize)
{
string sFunc = "SetWeaponFinesseSize";
NWNX_PushArgumentInt(nSize);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nSize);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponFinesseSize");
}
int NWNX_Weapon_GetWeaponFinesseSize(int nBaseItem)
{
string sFunc = "GetWeaponFinesseSize";
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "GetWeaponFinesseSize");
return NWNXPopInt();
}
void NWNX_Weapon_SetWeaponUnarmed(int nBaseItem)
{
string sFunc = "SetWeaponUnarmed";
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponUnarmed");
}
void NWNX_Weapon_SetWeaponIsMonkWeapon(int nBaseItem)
{
WriteTimestampedLogEntry("NWNX_Weapon_SetWeaponIsMonkWeapon() is deprecated. Please use baseitems.2da instead.");
string sFunc = "SetWeaponIsMonkWeapon";
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponIsMonkWeapon");
}
void NWNX_Weapon_SetWeaponImprovedCriticalFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetWeaponImprovedCriticalFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponImprovedCriticalFeat");
}
void NWNX_Weapon_SetWeaponSpecializationFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetWeaponSpecializationFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponSpecializationFeat");
}
void NWNX_Weapon_SetGreaterWeaponSpecializationFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetGreaterWeaponSpecializationFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetGreaterWeaponSpecializationFeat");
}
void NWNX_Weapon_SetEpicWeaponSpecializationFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetEpicWeaponSpecializationFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetEpicWeaponSpecializationFeat");
}
void NWNX_Weapon_SetEpicWeaponOverwhelmingCriticalFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetEpicWeaponOverwhelmingCriticalFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetEpicWeaponOverwhelmingCriticalFeat");
}
void NWNX_Weapon_SetEpicWeaponDevastatingCriticalFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetEpicWeaponDevastatingCriticalFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetEpicWeaponDevastatingCriticalFeat");
}
void NWNX_Weapon_SetWeaponOfChoiceFeat(int nBaseItem, int nFeat)
{
string sFunc = "SetWeaponOfChoiceFeat";
NWNX_PushArgumentInt(nFeat);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nFeat);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetWeaponOfChoiceFeat");
}
void NWNX_Weapon_SetOption(int nOption, int nVal)
{
string sFunc = "SetOption";
NWNX_PushArgumentInt(nVal);
NWNX_PushArgumentInt(nOption);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(nVal);
NWNXPushInt(nOption);
NWNXCall(NWNX_Weapon, "SetOption");
}
void NWNX_Weapon_SetDevastatingCriticalEventScript(string sScript)
{
string sFunc = "SetDevastatingCriticalEventScript";
NWNX_PushArgumentString(sScript);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushString(sScript);
NWNXCall(NWNX_Weapon, "SetDevastatingCriticalEventScript");
}
void NWNX_Weapon_BypassDevastatingCritical()
{
string sFunc = "SetEventData";
NWNX_PushArgumentInt(1);
NWNX_PushArgumentInt(NWNX_WEAPON_SETDATA_DC_BYPASS);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(1);
NWNXPushInt(NWNX_WEAPON_SETDATA_DC_BYPASS);
NWNXCall(NWNX_Weapon, "SetEventData");
}
struct NWNX_Weapon_DevastatingCriticalEvent_Data NWNX_Weapon_GetDevastatingCriticalEventData()
{
string sFunc = "GetEventData";
struct NWNX_Weapon_DevastatingCriticalEvent_Data data;
NWNX_PushArgumentInt(NWNX_WEAPON_GETDATA_DC);
NWNX_CallFunction(NWNX_Weapon, sFunc);
data.oWeapon = NWNX_GetReturnValueObject();
data.oTarget = NWNX_GetReturnValueObject();
data.nDamage = NWNX_GetReturnValueInt();
NWNXPushInt(NWNX_WEAPON_GETDATA_DC);
NWNXCall(NWNX_Weapon, "GetEventData");
data.oWeapon = NWNXPopObject();
data.oTarget = NWNXPopObject();
data.nDamage = NWNXPopInt();
return data;
}
void NWNX_Weapon_SetOneHalfStrength(object oWeapon, int nEnable, int bPersist = FALSE)
{
string sFunc = "SetOneHalfStrength";
NWNX_PushArgumentInt(bPersist);
NWNX_PushArgumentInt(nEnable);
NWNX_PushArgumentObject(oWeapon);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushInt(bPersist);
NWNXPushInt(nEnable);
NWNXPushObject(oWeapon);
NWNXCall(NWNX_Weapon, "SetOneHalfStrength");
}
int NWNX_Weapon_GetOneHalfStrength(object oWeapon)
{
string sFunc = "GetOneHalfStrength";
NWNX_PushArgumentObject(oWeapon);
NWNX_CallFunction(NWNX_Weapon, sFunc);
return NWNX_GetReturnValueInt();
NWNXPushObject(oWeapon);
NWNXCall(NWNX_Weapon, "GetOneHalfStrength");
return NWNXPopInt();
}
void NWNX_Weapon_SetMaxRangedAttackDistanceOverride(int nBaseItem, float fMax, float fMaxPassive, float fPreferred)
{
string sFunc = "SetMaxRangedAttackDistanceOverride";
NWNX_PushArgumentFloat(fPreferred);
NWNX_PushArgumentFloat(fMaxPassive);
NWNX_PushArgumentFloat(fMax);
NWNX_PushArgumentInt(nBaseItem);
NWNX_CallFunction(NWNX_Weapon, sFunc);
NWNXPushFloat(fPreferred);
NWNXPushFloat(fMaxPassive);
NWNXPushFloat(fMax);
NWNXPushInt(nBaseItem);
NWNXCall(NWNX_Weapon, "SetMaxRangedAttackDistanceOverride");
}

View File

@@ -2,7 +2,6 @@
/// @brief Send messages to external entities through web hooks.
/// @{
/// @file nwnx_webhook.nss
#include "nwnx"
const string NWNX_WebHook = "NWNX_WebHook"; ///< @private
@@ -28,13 +27,12 @@ void NWNX_WebHook_ResendWebHookHTTPS(string host, string path, string sMessage,
void NWNX_WebHook_SendWebHookHTTPS(string host, string path, string message, string username = "", int mrkdwn = 1)
{
string sFunc = "SendWebHookHTTPS";
NWNX_PushArgumentInt(mrkdwn);
NWNX_PushArgumentString(username);
NWNX_PushArgumentString(message);
NWNX_PushArgumentString(path);
NWNX_PushArgumentString(host);
NWNX_CallFunction(NWNX_WebHook, sFunc);
NWNXPushInt(mrkdwn);
NWNXPushString(username);
NWNXPushString(message);
NWNXPushString(path);
NWNXPushString(host);
NWNXCall(NWNX_WebHook, "SendWebHookHTTPS");
}
void NWNX_WebHook_ResendWebHookHTTPS(string host, string path, string sMessage, float delay = 0.0f)