Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.33 KB | None | 0 0
  1. using System;
  2. using NWN.FinalFantasy.Core;
  3. using NWN.FinalFantasy.Core.NWNX;
  4. using NWN.FinalFantasy.Core.NWScript.Enum;
  5. using static NWN.FinalFantasy.Core.NWScript.NWScript;
  6.  
  7. namespace NWN.FinalFantasy.Feature
  8. {
  9.     public class EventRegistration
  10.     {
  11.         [NWNEventHandler("mod_preload")]
  12.         public static void OnModulePreload()
  13.         {
  14.             Console.WriteLine("Hooking all module events.");
  15.             HookModuleEvents();
  16.  
  17.             Console.WriteLine("Hooking all area events.");
  18.             HookAreaEvents();
  19.  
  20.             Console.WriteLine("Hooking all NWNX events");
  21.             HookNWNXEvents();
  22.         }
  23.  
  24.         private static void HookModuleEvents()
  25.         {
  26.             var module = GetModule();
  27.  
  28.             SetEventScript(module, EventScript.Module_OnAcquireItem, "mod_acquire");
  29.             SetEventScript(module, EventScript.Module_OnActivateItem, "mod_activate");
  30.             SetEventScript(module, EventScript.Module_OnClientEnter, "mod_enter");
  31.             SetEventScript(module, EventScript.Module_OnClientExit, "mod_exit");
  32.             SetEventScript(module, EventScript.Module_OnPlayerCancelCutscene, "mod_abort_cs");
  33.             SetEventScript(module, EventScript.Module_OnHeartbeat, "mod_heartbeat");
  34.             SetEventScript(module, EventScript.Module_OnModuleLoad, "mod_load");
  35.             SetEventScript(module, EventScript.Module_OnPlayerChat, "mod_chat");
  36.             SetEventScript(module, EventScript.Module_OnPlayerDying, "mod_dying");
  37.             SetEventScript(module, EventScript.Module_OnPlayerDeath, "mod_death");
  38.             SetEventScript(module, EventScript.Module_OnEquipItem, "mod_equip");
  39.             SetEventScript(module, EventScript.Module_OnPlayerLevelUp, "mod_level_up");
  40.             SetEventScript(module, EventScript.Module_OnRespawnButtonPressed, "mod_respawn");
  41.             SetEventScript(module, EventScript.Module_OnPlayerRest, "mod_rest");
  42.             SetEventScript(module, EventScript.Module_OnUnequipItem, "mod_unequip");
  43.             SetEventScript(module, EventScript.Module_OnLoseItem, "mod_unacquire");
  44.             SetEventScript(module, EventScript.Module_OnUserDefined, "mod_user_def");
  45.         }
  46.  
  47.         private static void HookAreaEvents()
  48.         {
  49.             for (var area = GetFirstArea(); GetIsObjectValid(area); area = GetNextArea())
  50.             {
  51.                 SetEventScript(area, EventScript.Area_OnEnter, "area_enter");
  52.                 SetEventScript(area, EventScript.Area_OnExit, "area_exit");
  53.                 SetEventScript(area, EventScript.Area_OnHeartbeat, "area_heartbeat");
  54.                 SetEventScript(area, EventScript.Area_OnUserDefined, "area_user_def");
  55.             }
  56.         }
  57.  
  58.         private static void HookNWNXEvents()
  59.         {
  60.             // Associate events
  61.             Events.SubscribeEvent("NWNX_ON_ADD_ASSOCIATE_BEFORE", "asso_add_bef");
  62.             Events.SubscribeEvent("NWNX_ON_ADD_ASSOCIATE_AFTER", "asso_add_aft");
  63.             Events.SubscribeEvent("NWNX_ON_REMOVE_ASSOCIATE_BEFORE", "asso_rem_bef");
  64.             Events.SubscribeEvent("NWNX_ON_REMOVE_ASSOCIATE_AFTER", "asso_rem_aft");
  65.  
  66.             // Stealth events
  67.             Events.SubscribeEvent("NWNX_ON_ENTER_STEALTH_BEFORE", "stlent_add_bef");
  68.             Events.SubscribeEvent("NWNX_ON_ENTER_STEALTH_AFTER", "stlent_add_aft");
  69.             Events.SubscribeEvent("NWNX_ON_EXIT_STEALTH_BEFORE", "stlex_add_bef");
  70.             Events.SubscribeEvent("NWNX_ON_EXIT_STEALTH_AFTER", "stlex_add_aft");
  71.  
  72.             // Examine events
  73.             Events.SubscribeEvent("NWNX_ON_EXAMINE_OBJECT_BEFORE", "examine_bef");
  74.             Events.SubscribeEvent("NWNX_ON_EXAMINE_OBJECT_AFTER", "examine_aft");
  75.  
  76.             // Use Item events
  77.             Events.SubscribeEvent("NWNX_ON_USE_ITEM_BEFORE", "useitem_bef");
  78.             Events.SubscribeEvent("NWNX_ON_USE_ITEM_AFTER", "useitem_aft");
  79.  
  80.             // Item Container events
  81.             Events.SubscribeEvent("NWNX_ON_ITEM_INVENTORY_OPEN_BEFORE", "inv_open_bef");
  82.             Events.SubscribeEvent("NWNX_ON_ITEM_INVENTORY_OPEN_AFTER", "inv_open_aft");
  83.             Events.SubscribeEvent("NWNX_ON_ITEM_INVENTORY_CLOSE_BEFORE", "inv_close_bef");
  84.             Events.SubscribeEvent("NWNX_ON_ITEM_INVENTORY_CLOSE_AFTER", "inv_close_aft");
  85.  
  86.             // Ammunition Reload events
  87.             Events.SubscribeEvent("NWNX_ON_ITEM_AMMO_RELOAD_BEFORE", "ammo_reload_bef");
  88.             Events.SubscribeEvent("NWNX_ON_ITEM_AMMO_RELOAD_AFTER", "ammo_reload_aft");
  89.  
  90.             // Scroll Learn events
  91.             Events.SubscribeEvent("NWNX_ON_ITEM_SCROLL_LEARN_BEFORE", "scroll_lrn_bef");
  92.             Events.SubscribeEvent("NWNX_ON_ITEM_SCROLL_LEARN_AFTER", "scroll_lrn_aft");
  93.  
  94.             // Item Equip events
  95.             Events.SubscribeEvent("NWNX_ON_ITEM_EQUIP_BEFORE", "item_eqp_bef");
  96.             Events.SubscribeEvent("NWNX_ON_ITEM_EQUIP_AFTER", "item_eqp_aft");
  97.  
  98.             // Item Unequip events
  99.             Events.SubscribeEvent("NWNX_ON_ITEM_UNEQUIP_BEFORE", "item_uneqp_bef");
  100.             Events.SubscribeEvent("NWNX_ON_ITEM_UNEQUIP_AFTER", "item_uneqp_aft");
  101.  
  102.             // Item Destroy events
  103.             Events.SubscribeEvent("NWNX_ON_ITEM_DESTROY_OBJECT_BEFORE", "item_dest_bef");
  104.             Events.SubscribeEvent("NWNX_ON_ITEM_DESTROY_OBJECT_AFTER", "item_dest_aft");
  105.             Events.SubscribeEvent("NWNX_ON_ITEM_DECREMENT_STACKSIZE_BEFORE", "item_dec_bef");
  106.             Events.SubscribeEvent("NWNX_ON_ITEM_DECREMENT_STACKSIZE_AFTER", "item_dec_aft");
  107.  
  108.             // Item Use Lore to Identify events
  109.             Events.SubscribeEvent("NWNX_ON_ITEM_USE_LORE_BEFORE", "lore_id_bef");
  110.             Events.SubscribeEvent("NWNX_ON_ITEM_USE_LORE_AFTER", "lore_id_aft");
  111.  
  112.             // Item Pay to Identify events
  113.             Events.SubscribeEvent("NWNX_ON_ITEM_PAY_TO_IDENTIFY_BEFORE", "pay_id_bef");
  114.             Events.SubscribeEvent("NWNX_ON_ITEM_PAY_TO_IDENTIFY_AFTER", "pay_id_aft");
  115.  
  116.             // Item Split events
  117.             Events.SubscribeEvent("NWNX_ON_ITEM_SPLIT_BEFORE", "item_splt_bef");
  118.             Events.SubscribeEvent("NWNX_ON_ITEM_SPLIT_AFTER", "item_splt_aft");
  119.  
  120.             // Feat Use events
  121.             Events.SubscribeEvent("NWNX_ON_USE_FEAT_BEFORE", "feat_use_bef");
  122.             Events.SubscribeEvent("NWNX_ON_USE_FEAT_AFTER", "feat_use_aft");
  123.  
  124.             // todo: rest of events
  125.         }
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement