Example #1
0
 /// <summary>
 /// Signals an event. This will dispatch a notification to all subscribed handlers.
 /// Returns TRUE if anyone was subscribed to the event, FALSE otherwise.
 /// </summary>
 /// <param name="evt"></param>
 /// <param name="target"></param>
 /// <returns></returns>
 public static int SignalEvent(string evt, NWGameObject target)
 {
     NWNXCore.NWNX_PushArgumentObject("NWNX_Events", "SIGNAL_EVENT", target);
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "SIGNAL_EVENT", evt);
     NWNXCore.NWNX_CallFunction("NWNX_Events", "SIGNAL_EVENT");
     return(NWNXCore.NWNX_GetReturnValueInt("NWNX_Events", "SIGNAL_EVENT"));
 }
Example #2
0
        /// <summary>
        /// Returns an object from the provided object ID.
        /// This is the counterpart to ObjectToString.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static NWGameObject StringToObject(string id)
        {
            string sFunc = "StringToObject";

            NWNXCore.NWNX_PushArgumentString(NWNX_Object, sFunc, id);
            NWNXCore.NWNX_CallFunction(NWNX_Object, sFunc);
            return(NWNXCore.NWNX_GetReturnValueObject(NWNX_Object, sFunc));
        }
Example #3
0
        /// <summary>
        /// Sets the dialog resref of the object.
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="dialog"></param>
        public static void SetDialogResref(NWGameObject obj, string dialog)
        {
            string sFunc = "SetDialogResref";

            NWNXCore.NWNX_PushArgumentString(NWNX_Object, sFunc, dialog);
            NWNXCore.NWNX_PushArgumentObject(NWNX_Object, sFunc, obj);

            NWNXCore.NWNX_CallFunction(NWNX_Object, sFunc);
        }
Example #4
0
        /// <summary>
        /// Deserialize the object. The object will be created outside of the world and
        /// needs to be manually positioned at a location/inventory.
        /// </summary>
        /// <param name="serialized"></param>
        /// <returns></returns>
        public static NWGameObject Deserialize(string serialized)
        {
            string sFunc = "Deserialize";

            NWNXCore.NWNX_PushArgumentString(NWNX_Object, sFunc, serialized);

            NWNXCore.NWNX_CallFunction(NWNX_Object, sFunc);
            return(NWNXCore.NWNX_GetReturnValueObject(NWNX_Object, sFunc));
        }
Example #5
0
        // Convert unpacked itemproperty structure to native type.
        public static Core.ItemProperty PackIP(ItemPropertyUnpacked itemProperty)
        {
            const string sFunc = "PackIP";

            NWNXCore.NWNX_PushArgumentString(PLUGIN_NAME, sFunc, itemProperty.Tag);
            NWNXCore.NWNX_PushArgumentObject(PLUGIN_NAME, sFunc, itemProperty.Creator);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.SpellID);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.IsUseable ? 1 : 0);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.ChanceToAppear);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.UsesPerDay);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.Param1Value);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.Param1);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.CostTableValue);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.CostTable);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.SubType);
            NWNXCore.NWNX_PushArgumentInt(PLUGIN_NAME, sFunc, itemProperty.Property);

            NWNXCore.NWNX_CallFunction(PLUGIN_NAME, sFunc);
            return(NWNXCore.NWNX_GetReturnValueItemProperty(PLUGIN_NAME, sFunc));
        }
Example #6
0
 /// <summary>
 /// Retrieves the event data for the currently executing script.
 /// THIS SHOULD ONLY BE CALLED FROM WITHIN AN EVENT HANDLER.
 /// </summary>
 /// <param name="tag"></param>
 /// <returns></returns>
 public static string GetEventDataString(string tag)
 {
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "GET_EVENT_DATA", tag);
     NWNXCore.NWNX_CallFunction("NWNX_Events", "GET_EVENT_DATA");
     return(NWNXCore.NWNX_GetReturnValueString("NWNX_Events", "GET_EVENT_DATA"));
 }
Example #7
0
 /// <summary>
 /// Pushes event data at the provided tag, which subscribers can access with GetEventData.
 /// This should be called BEFORE SignalEvent.
 /// </summary>
 /// <param name="tag"></param>
 /// <param name="data"></param>
 public static void PushEventData(string tag, string data)
 {
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "PUSH_EVENT_DATA", data);
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "PUSH_EVENT_DATA", tag);
     NWNXCore.NWNX_CallFunction("NWNX_Events", "PUSH_EVENT_DATA");
 }
Example #8
0
 /// <summary>
 /// Scripts can subscribe to events.
 /// Some events are dispatched via the NWNX plugin (see NWNX_EVENTS_EVENT_* constants).
 /// Others can be signalled via script code (see NWNX_Events_SignalEvent).
 /// </summary>
 /// <param name="evt"></param>
 /// <param name="script"></param>
 public static void SubscribeEvent(string evt, string script)
 {
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "SUBSCRIBE_EVENT", script);
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "SUBSCRIBE_EVENT", evt);
     NWNXCore.NWNX_CallFunction("NWNX_Events", "SUBSCRIBE_EVENT");
 }
Example #9
0
 /// <summary>
 /// Set the return value of the event.
 ///
 /// THIS SHOULD ONLY BE CALLED FROM WITHIN AN EVENT HANDLER.
 /// ONLY WORKS WITH THE FOLLOWING EVENTS:
 /// - Healer's Kit event
 /// - Listen/Spot Detection events -> "1" or "0"
 /// - OnClientConnectBefore -> Reason for disconnect if skipped
 /// - Ammo Reload event -> Forced ammunition returned
 /// - Trap events -> "1" or "0"
 /// - Sticky Player Name event -> "1" or "0"
 /// </summary>
 /// <param name="data"></param>
 public static void SetEventResult(string data)
 {
     NWNXCore.NWNX_PushArgumentString("NWNX_Events", "EVENT_RESULT", data);
     NWNXCore.NWNX_CallFunction("NWNX_Events", "EVENT_RESULT");
 }