Пример #1
0
        private static void TranslateDisable(string[] param)
        {
            ClientCommunication.TranslateEnabled = false;
            World.Player.SendMessage("Translator disabled... use '-setup-t' to re-enable.");

            Command.RemoveCommand("Disable-T");
        }
Пример #2
0
        public static int OnUOAMessage(MainForm razor, int Msg, int wParam, int lParam)
        {
            switch ((UOAMessage)Msg)
            {
            case UOAMessage.REGISTER:
            {
                for (int i = 0; i < m_WndReg.Count; i++)
                {
                    if (((WndRegEnt)m_WndReg[i]).Handle == wParam)
                    {
                        m_WndReg.RemoveAt(i);
                        return(2);
                    }
                }

                m_WndReg.Add(new WndRegEnt(wParam, lParam == 1 ? 1 : 0));

                if (lParam == 1 && World.Items != null)
                {
                    foreach (Item item in World.Items.Values)
                    {
                        if (item.ItemID >= 0x4000)
                        {
                            PostMessage((IntPtr)wParam, (uint)UOAMessage.ADD_MULTI, (IntPtr)((int)((item.Position.X & 0xFFFF) | ((item.Position.Y & 0xFFFF) << 16))), (IntPtr)item.ItemID.Value);
                        }
                    }
                }

                return(1);
            }

            case UOAMessage.COUNT_RESOURCES:
            {
                Counter.FullRecount();
                return(0);
            }

            case UOAMessage.GET_COORDS:
            {
                if (World.Player == null)
                {
                    return(0);
                }
                return((World.Player.Position.X & 0xFFFF) | ((World.Player.Position.Y & 0xFFFF) << 16));
            }

            case UOAMessage.GET_SKILL:
            {
                if (World.Player == null || lParam > 3 || wParam < 0 || World.Player.Skills == null || wParam > World.Player.Skills.Length || lParam < 0)
                {
                    return(0);
                }

                switch (lParam)
                {
                case 3:
                {
                    try
                    {
                        return(GlobalAddAtom(((SkillName)wParam).ToString()));
                    }
                    catch
                    {
                        return(0);
                    }
                }

                case 2: return((int)(World.Player.Skills[wParam].Lock));

                case 1: return(World.Player.Skills[wParam].FixedBase);

                case 0: return(World.Player.Skills[wParam].FixedValue);
                }

                return(0);
            }

            case UOAMessage.GET_STAT:
            {
                if (World.Player == null || wParam < 0 || wParam > 5)
                {
                    return(0);
                }

                switch (wParam)
                {
                case 0: return(World.Player.Str);

                case 1: return(World.Player.Int);

                case 2: return(World.Player.Dex);

                case 3: return(World.Player.Weight);

                case 4: return(World.Player.HitsMax);

                case 5: return(World.Player.Tithe);
                }
                return(0);
            }

            case UOAMessage.SET_MACRO:
            {
                try
                {
                    //if ( wParam >= 0 && wParam < Engine.MainWindow.macroList.Items.Count )
                    //	Engine.MainWindow.macroList.SelectedIndex = wParam;
                }
                catch
                {
                }
                return(0);
            }

            case UOAMessage.PLAY_MACRO:
            {
                if (razor != null)
                {
                    razor.playMacro_Click(razor, new EventArgs());
                }
                return(Macros.MacroManager.Playing ? 1 : 0);
            }

            case UOAMessage.DISPLAY_TEXT:
            {
                if (World.Player == null)
                {
                    return(0);
                }

                int           hue = wParam & 0xFFFF;
                StringBuilder sb  = new StringBuilder(256);
                if (GlobalGetAtomName((ushort)lParam, sb, 256) == 0)
                {
                    return(0);
                }

                if ((wParam & 0x00010000) != 0)
                {
                    Client.Instance.SendToClient(new UnicodeMessage(0xFFFFFFFF, -1, MessageType.Regular, hue, 3, Language.CliLocName, "System", sb.ToString()));
                }
                else
                {
                    World.Player.OverheadMessage(hue, sb.ToString());
                }
                GlobalDeleteAtom((ushort)lParam);
                return(1);
            }

            case UOAMessage.REQUEST_MULTIS:
            {
                return(World.Player != null ? 1 : 0);
            }

            case UOAMessage.ADD_CMD:
            {
                StringBuilder sb = new StringBuilder(256);
                if (GlobalGetAtomName((ushort)lParam, sb, 256) == 0)
                {
                    return(0);
                }

                if (wParam == 0)
                {
                    Command.RemoveCommand(sb.ToString());
                    return(0);
                }
                else
                {
                    new WndCmd(m_NextCmdID, (IntPtr)wParam, sb.ToString());
                    return((int)(m_NextCmdID++));
                }
            }

            case UOAMessage.GET_UID:
            {
                return(World.Player != null ? (int)World.Player.Serial.Value : 0);
            }

            case UOAMessage.GET_SHARDNAME:
            {
                if (World.ShardName != null && World.ShardName.Length > 0)
                {
                    return(GlobalAddAtom(World.ShardName));
                }
                else
                {
                    return(0);
                }
            }

            case UOAMessage.ADD_USER_2_PARTY:
            {
                return(1);                                // not supported, return error
            }

            case UOAMessage.GET_UO_HWND:
            {
                return(Client.Instance.GetWindowHandle().ToInt32());
            }

            case UOAMessage.GET_POISON:
            {
                return(World.Player != null && World.Player.Poisoned ? 1 : 0);
            }

            case UOAMessage.SET_SKILL_LOCK:
            {
                if (World.Player == null || wParam < 0 || wParam > World.Player.Skills.Length || lParam < 0 || lParam >= 3)
                {
                    return(0);
                }
                Client.Instance.SendToServer(new SetSkillLock(wParam, (LockType)lParam));
                return(1);
            }

            case UOAMessage.GET_ACCT_ID:
            {
                // free shards don't use account ids... so just return the player's serial number
                return(World.Player == null ? 0 : (int)World.Player.Serial.Value);
            }

            default:
            {
                return(0);
            }
            }
        }