예제 #1
0
        public GameFunctions(SigScanner scanner)
        {
            var getUiModulePtr          = scanner.ScanText("E8 ?? ?? ?? ?? 48 83 7F ?? 00 48 8B F0");
            var easierProcessChatBoxPtr = scanner.ScanText("48 89 5C 24 ?? 57 48 83 EC 20 48 8B FA 48 8B D9 45 84 C9");

            this.uiModulePtr          = scanner.GetStaticAddressFromSig("48 8B 0D ?? ?? ?? ?? 48 8D 54 24 ?? 48 83 C1 10 E8 ?? ?? ?? ??");
            this.getUiModule          = Marshal.GetDelegateForFunctionPointer <GetUIModuleDelegate>(getUiModulePtr);
            this.easierProcessChatBox = Marshal.GetDelegateForFunctionPointer <EasierProcessChatBoxDelegate>(easierProcessChatBoxPtr);
        }
예제 #2
0
        private void InitCommands(object sender = null, EventArgs e = null)
        {
            try
            {
                var getUIModulePtr          = pluginInterface.TargetModuleScanner.ScanText("E8 ?? ?? ?? ?? 48 83 7F ?? 00 48 8B F0");
                var easierProcessChatBoxPtr = pluginInterface.TargetModuleScanner.ScanText("48 89 5C 24 ?? 57 48 83 EC 20 48 8B FA 48 8B D9 45 84 C9");
                uiModulePtr = pluginInterface.TargetModuleScanner.GetStaticAddressFromSig("48 8B 0D ?? ?? ?? ?? 48 8D 54 24 ?? 48 83 C1 10 E8 ?? ?? ?? ??");

                GetUIModule           = Marshal.GetDelegateForFunctionPointer <GetUIModuleDelegate>(getUIModulePtr);
                _EasierProcessChatBox = Marshal.GetDelegateForFunctionPointer <EasierProcessChatBoxDelegate>(easierProcessChatBoxPtr);
            }
            catch
            {
                var chat = pluginInterface.Framework.Gui.Chat;
                chat.PrintChat(new XivChatEntry {
                    MessageBytes = Encoding.UTF8.GetBytes("[QoLBar] Error with loading signatures")
                });
            }
        }