Exemple #1
0
        void ApplyTestInjection()
        {
            // Практически все в этом методе - псевдокод!
            BindingFlags flags = (BindingFlags)60;
            Injection    i     = typeof(Main).GetMethod("DoUpdate_HandleChat", flags);

            // Внедрить исполнитель команд
            i.FindCondition(() => Main.chatText != "")
            .Replace(() => Main.chatText != "" && !Client.ExecuteCommand(Main.chatText));
            i.Apply();
            i = typeof(Main).GetMethod("DoUpdate_Enter_ToggleChat", flags);
            // Сделать чат открываемым в одиночной игре
            i.FindCondition(() => Main.keyState.IsKeyDown(Keys.Enter) && Main.netMode == 1 && !Main.keyState.IsKeyDown(Keys.LeftAlt) && !Main.keyState.IsKeyDown(Keys.RightAlt) && Main.hasFocus)
            .Replace(() => Main.keyState.IsKeyDown(Keys.Enter) && Main.netMode != 2 && !Main.keyState.IsKeyDown(Keys.LeftAlt) && !Main.keyState.IsKeyDown(Keys.RightAlt) && Main.hasFocus);
            i.Apply();
        }