/// <summary> /// Calls all scripts registered to run with a certain hook /// </summary> public static void CallHooked(ScriptHook hook, object caller, params object[] args) { ScriptExecutionContext context = new ScriptExecutionContext() { Caller = caller, Hook = hook }; Instance.CallHookedScripts(hook, context, args); }
public void AddHook(string npc, string hook, ScriptHook func) { if (!this._hooks.ContainsKey(npc)) this._hooks[npc] = new Dictionary<string, List<ScriptHook>>(); if (!this._hooks[npc].ContainsKey(hook)) _hooks[npc][hook] = new List<ScriptHook>(); _hooks[npc][hook].Add(func); }
/// <summary> /// Registers hook delegate. /// </summary> /// <param name="npcName"></param> /// <param name="hook"></param> /// <param name="func"></param> public void AddHook(string npcName, string hook, ScriptHook func) { if (!_hooks.ContainsKey(npcName)) { _hooks[npcName] = new Dictionary <string, List <ScriptHook> >(); } if (!_hooks[npcName].ContainsKey(hook)) { _hooks[npcName][hook] = new List <ScriptHook>(); } _hooks[npcName][hook].Add(func); }
private void CallHookedScripts(ScriptHook hook, ScriptExecutionContext context, params object[] args) { foreach (var scriptMethod in HookedMethods[hook]) { try { CallScriptMethod(scriptMethod, null, context, args); } catch (Exception e) { LogError($"Failed to execute {hook.ToString()} script \"{scriptMethod.DeclaringType.Name}.{scriptMethod.Name}\" ({e.Message})"); LogException(e); } } }
public override void DoBeforeNextExecute() { if (Wheelturn != 0) { setPressedStrategy.Add(Wheelturn < 0 ? (int)Mouse.WheelBwd : (int)Mouse.WheelFwd); Wheelturn -= Math.Sign(Wheelturn); } if (Tempo != null && Tempo[0].GetLapse() >= Tempo[1]) { Tempo[0] = StopTimer(); Tempo = null; foreach (var code in Codes.Reverse()) { KeyOrButtonUp(code); } Codes = null; } setPressedStrategy.Do(); CheckScriptTimer(); KeysPressed.Clear(); for (int i = 1; i < 238; i++) { if (IsDown(i)) { KeysPressed.Add(i); } } if ((WheelValue = (IsDown((int)Mouse.WheelFwd) ? 1 : 0) + (IsDown((int)Mouse.WheelBwd) ? -1 : 0)) != 0) { setBit((int)(WheelValue < 0 ? Mouse.WheelBwd : Mouse.WheelFwd), false); } if (cmd == 'H') { if (SF == null) { SF = new ScriptHook(this); } SF.Hook(); } }
protected void AddHook(string npc, string hook, ScriptHook func) { ScriptManager.Instance.AddHook(npc, hook, func); }
/// <summary> /// Adds hook for NPC. /// </summary> /// <param name="npcName"></param> /// <param name="hookName"></param> /// <param name="func"></param> protected void AddHook(string npcName, string hookName, ScriptHook func) { ChannelServer.Instance.ScriptManager.AddHook(npcName, hookName, func); }
/// <summary> /// Registers hook delegate. /// </summary> /// <param name="npcName"></param> /// <param name="hook"></param> /// <param name="func"></param> public void AddHook(string npcName, string hook, ScriptHook func) { if (!_hooks.ContainsKey(npcName)) _hooks[npcName] = new Dictionary<string, List<ScriptHook>>(); if (!_hooks[npcName].ContainsKey(hook)) _hooks[npcName][hook] = new List<ScriptHook>(); _hooks[npcName][hook].Add(func); }