Пример #1
0
        public void SetRegisterAnimation(string animName)
        {
            BRK anim = null;

            if (!string.IsNullOrEmpty(animName))
            {
                anim = m_registerAnimations.FirstOrDefault(x => x.Name == animName);
                if (anim == null)
                {
                    Console.WriteLine("Failed to play register animation {0}, animation not loaded!", animName);
                }
            }

            if (m_currentRegisterAnimation != null)
            {
                m_currentRegisterAnimation.Stop();
            }

            m_currentRegisterAnimation = anim;

            if (m_currentRegisterAnimation != null)
            {
                m_currentRegisterAnimation.Start();
            }

            OnPropertyChanged("CurrentRegisterAnimation");

            ForceAnimationRestart();
        }
Пример #2
0
        public void LoadRegisterAnim(string brkFile)
        {
            string animName = Path.GetFileNameWithoutExtension(brkFile);
            BRK    brk      = new BRK(animName);

            using (var reader = FileUtilities.LoadFile(brkFile))
                brk.LoadFromStream(reader);

            m_registerAnimations.Add(brk);
        }
Пример #3
0
 private static void UseItems(Obj_AI_Hero target)
 {
     if (player.Distance(target) < player.AttackRange + player.BoundingRadius)
     {
         TMT.Cast();
         HYD.Cast();
     }
     BWC.Cast(target);
     BRK.Cast(target);
     RO.Cast(target);
     YMG.Cast();
 }
Пример #4
0
        private static void UseItems(Obj_AI_Base unit, bool isMinion = false)
        {
            if (!unit.IsValidTarget())
            {
                return;
            }


            if (SKOMenu.Item("Hydra").GetValue <bool>() && player.Distance(unit) < HYD.Range)
            {
                HYD.Cast();
            }
            if (SKOMenu.Item("Hydra").GetValue <bool>() && player.Distance(unit) < TMT.Range)
            {
                TMT.Cast();
            }
            if (SKOMenu.Item("BOTRK").GetValue <bool>() && player.Distance(unit) <= BRK.Range)
            {
                if (isMinion)
                {
                    return;
                }
                BRK.Cast(unit);
            }
            if (SKOMenu.Item("BOTRK").GetValue <bool>() && player.Distance(unit) <= BWC.Range)
            {
                BWC.Cast(unit);
            }
            if (SKOMenu.Item("RO").GetValue <bool>() && player.Distance(unit) <= RO.Range)
            {
                if (isMinion)
                {
                    return;
                }
                RO.Cast();
            }
            if (SKOMenu.Item("DFG").GetValue <bool>() && player.Distance(unit) <= DFG.Range)
            {
                if (isMinion)
                {
                    return;
                }
                DFG.Cast(unit);
            }
            if (SKOMenu.Item("YMU").GetValue <bool>() && player.Distance(unit) <= YMG.Range)
            {
                YMG.Cast();
            }
            if (SKOMenu.Item("SOD").GetValue <bool>() && player.Distance(unit) <= STD.Range)
            {
                STD.Cast();
            }
        }
Пример #5
0
        private static void TripleQ(Obj_AI_Hero target)
        {
            if (target.IsValidTarget())
            {
                if (Player.Mana == 5 && R.IsReady() && Player.Distance(target) <= R.Range && Q.IsReady())
                {
                    R.Cast();
                }
                if (Player.Mana < 5)
                {
                    Drawing.DrawText(Player.Position.X, Player.Position.Y, Color.Red, "R is not ready, or you do not have 5 ferocity");
                }


                if (Player.Mana == 5 && Player.HasBuff("RengarR") && Q.IsReady() && Player.Distance(target) <= Q.Range)
                {
                    Q.Cast();
                }
                if (Player.Mana == 5 && !Player.HasBuff("RengarR") && Q.IsReady() && Player.Distance(target) <= Q.Range)
                {
                    Q.Cast();
                }
                if (Player.Mana <= 4)
                {
                    if (Q.IsReady() && Player.Distance(target) <= Q.Range)
                    {
                        Q.Cast();
                    }
                    if (W.IsReady() && Player.Distance(target) <= W.Range)
                    {
                        W.Cast();
                    }
                    if (E.IsReady() && Player.Distance(target) <= E.Range)
                    {
                        E.Cast(target, PacketCast);
                    }
                }
                if (Player.Distance(target) < Player.AttackRange + 50)
                {
                    TMT.Cast();
                    HYD.Cast();
                    STD.Cast();
                }
                BWC.Cast(target);
                BRK.Cast(target);
                RO.Cast(target);
                YMG.Cast();
            }
        }
Пример #6
0
 private static void TripleQ(Obj_AI_Hero target)
 {
     if (target.IsValidTarget())
     {
         if (_player.Mana == 5 && R.IsReady() && _player.Distance(target) <= R.Range && Q.IsReady())
         {
             R.Cast();
         }
         if (_player.Mana == 5 && _player.HasBuff("RengarR") && _player.Distance(target) <= Q.Range)
         {
             CastQ(target);
         }
         if (_player.Mana == 5 && !_player.HasBuff("RengarR") && _player.Distance(target) <= Q.Range)
         {
             CastQ(target);
         }
         if (_player.Mana <= 4)
         {
             if (_player.Distance(target) <= Q.Range)
             {
                 CastQ(target);
             }
             if (_player.Distance(target) <= W.Range)
             {
                 CastW(target);
             }
             if (_player.Distance(target) <= E.Range)
             {
                 CastE(target);
             }
         }
         if (_player.Distance(target) < _player.AttackRange + 50)
         {
             TMT.Cast();
             HYD.Cast();
             STD.Cast();
         }
         BWC.Cast(target);
         BRK.Cast(target);
         RO.Cast(target);
         YMG.Cast();
     }
 }
Пример #7
0
        private static void Harass()
        {
            var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);

            if (target.IsValidTarget())
            {
                if (_player.Mana <= 4)
                {
                    if (SKOMenu.Item("UseWH").GetValue <bool>() && _player.Distance(target) <= W.Range)
                    {
                        CastW(target);
                    }
                    if (SKOMenu.Item("UseEH").GetValue <bool>() && _player.Distance(target) <= E.Range)
                    {
                        CastE(target);
                    }
                }
                if (_player.Mana == 5)
                {
                    if (SKOMenu.Item("UseWH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 0)
                    {
                        CastW(target);
                    }
                    if (SKOMenu.Item("UseEH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 1)
                    {
                        CastE(target);
                    }
                }
                if (SKOMenu.Item("UseItemsHarass").GetValue <bool>())
                {
                    if (_player.Distance(target) < _player.AttackRange + 50)
                    {
                        TMT.Cast();
                        HYD.Cast();
                        STD.Cast();
                    }
                    BWC.Cast(target);
                    BRK.Cast(target);
                    RO.Cast(target);
                    YMG.Cast();
                }
            }
        }
Пример #8
0
 private static void Harass(Obj_AI_Hero target)
 {
     if (target.IsValidTarget())
     {
         if (Player.Mana <= 4)
         {
             if (SKOMenu.Item("UseWH").GetValue <bool>() && W.IsReady() && Player.Distance(target) <= W.Range)
             {
                 W.Cast();
             }
             if (SKOMenu.Item("UseEW").GetValue <bool>() && E.IsReady() && Player.Distance(target) <= E.Range)
             {
                 E.Cast(target, PacketCast);
             }
         }
         if (Player.Mana == 5)
         {
             if (SKOMenu.Item("UseWH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 0 && W.IsReady())
             {
                 W.Cast();
             }
             if (SKOMenu.Item("UseEH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 0 && E.IsReady())
             {
                 E.Cast(target, PacketCast);
             }
         }
         if (SKOMenu.Item("UseItemsHarass").GetValue <bool>())
         {
             if (Player.Distance(target) < Player.AttackRange + 50)
             {
                 TMT.Cast();
                 HYD.Cast();
                 STD.Cast();
             }
             BWC.Cast(target);
             BRK.Cast(target);
             RO.Cast(target);
             YMG.Cast();
         }
     }
 }
Пример #9
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            if (SKOMenu.Item("activeClear").GetValue <KeyBind>().Active)
            {
                Clear();
            }
            var tqtarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical);

            if (SKOMenu.Item("TripleQ").GetValue <KeyBind>().Active)
            {
                TripleQ(tqtarget);
            }

            var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);

            Q   = new Spell(SpellSlot.Q, Player.AttackRange + 90);
            YMG = new Items.Item(3142, Player.AttackRange + 50);
            STD = new Items.Item(3131, Player.AttackRange + 50);

            AutoHeal();
            KillSteal(target);

            if (SKOMenu.Item("activeCombo").GetValue <KeyBind>().Active)
            {
                if (target.IsValidTarget())
                {
                    if (Player.Mana <= 4)
                    {
                        if (SKOMenu.Item("UseQ").GetValue <bool>() && Q.IsReady() && Player.Distance(target) <= Q.Range)
                        {
                            Q.Cast();
                        }
                        if (SKOMenu.Item("UseW").GetValue <bool>() && W.IsReady() && Player.Distance(target) <= W.Range)
                        {
                            W.Cast();
                        }
                        if (SKOMenu.Item("UseE").GetValue <bool>() && E.IsReady() && Player.Distance(target) <= E.Range)
                        {
                            E.Cast(target, PacketCast);
                        }
                    }
                    if (Player.Mana == 5)
                    {
                        if (SKOMenu.Item("UseQ").GetValue <bool>() && SKOMenu.Item("CPrio").GetValue <StringList>().SelectedIndex == 0 && Q.IsReady() && Player.Distance(target) <= Q.Range)
                        {
                            Q.Cast();
                        }
                        if (SKOMenu.Item("UseW").GetValue <bool>() && SKOMenu.Item("CPrio").GetValue <StringList>().SelectedIndex == 1 && W.IsReady() && Player.Distance(target) <= W.Range)
                        {
                            W.Cast();
                        }
                        if (SKOMenu.Item("UseE").GetValue <bool>() && SKOMenu.Item("CPrio").GetValue <StringList>().SelectedIndex == 2 && E.IsReady() && Player.Distance(target) <= E.Range)
                        {
                            E.Cast(target);
                        }

                        //E if !Q.IsReady()
                        if (SKOMenu.Item("UseE").GetValue <bool>() && !Q.IsReady() && E.IsReady() && Player.Distance(target) > Q.Range)
                        {
                            E.Cast(target);
                        }
                    }
                    if (SKOMenu.Item("UseItemsCombo").GetValue <bool>())
                    {
                        if (Player.Distance(target) < Player.AttackRange + 50)
                        {
                            TMT.Cast();
                            HYD.Cast();
                            STD.Cast();
                        }
                        BWC.Cast(target);
                        BRK.Cast(target);
                        RO.Cast(target);
                        YMG.Cast();
                    }
                }
            }
            if (SKOMenu.Item("activeHarass").GetValue <KeyBind>().Active)
            {
                Harass(target);
            }
        }
Пример #10
0
        private static J3D LoadModelFromResource(WActorResource.ModelResource res, string archive)
        {
            J3D j3d = null;

            if (string.IsNullOrEmpty(res.Path) || string.IsNullOrEmpty(archive))
            {
                return(null);
            }

            string archivePath = Path.Combine(WSettingsManager.GetSettings().RootDirectoryPath, "files", "res/Object/", archive + ".arc");

            if (!File.Exists(archivePath))
            {
                return(null);
            }

            VirtualFilesystemDirectory model_arc   = ArchiveUtilities.LoadArchive(archivePath);
            VirtualFilesystemFile      archiveFile = model_arc.GetFileAtPath(res.Path);

            if (archiveFile == null)
            {
                Console.WriteLine("LoadActorByName failed because the specified path \"{0}\" does not exist in archive \"{1}\"!", res.Path, archive);
                return(null);
            }

            byte[] j3dData = archiveFile.Data;

            j3d = new J3D(archiveFile.Name);
            using (EndianBinaryReader reader = new EndianBinaryReader(j3dData, Endian.Big))
                j3d.LoadFromStream(reader, WSettingsManager.GetSettings().DumpTextures, WSettingsManager.GetSettings().DumpShaders);

            if (res.Position != null)
            {
                j3d.SetOffsetTranslation((Vector3)res.Position);
            }
            if (res.Rotation != null)
            {
                j3d.SetOffsetRotation((Vector3)res.Rotation);
            }
            if (res.Scale != null)
            {
                j3d.SetOffsetScale((Vector3)res.Scale);
            }

            j3d.SetHardwareLight(0, m_mainLight);
            j3d.SetHardwareLight(1, m_secondaryLight);
            j3d.SetTextureOverride("ZBtoonEX", "resources/textures/ZBtoonEX.png");
            j3d.SetTextureOverride("ZAtoon", "resources/textures/ZAtoon.png");

            if (res.Animations == null)
            {
                res.Animations = new WActorResource.AnimationResource[0];
            }

            foreach (var anim in res.Animations)
            {
                VirtualFilesystemDirectory anim_arc = model_arc;

                if (!string.IsNullOrEmpty(anim.ArchiveName))
                {
                    string anim_arc_path = Path.Combine(WSettingsManager.GetSettings().RootDirectoryPath, "files", "res/Object/", anim.ArchiveName + ".arc");

                    if (!File.Exists(anim_arc_path))
                    {
                        return(null);
                    }

                    anim_arc = ArchiveUtilities.LoadArchive(anim_arc_path);
                }

                VirtualFilesystemFile anim_file = anim_arc.GetFileAtPath(anim.Path);

                if (anim_file == null)
                {
                    continue;
                }

                byte[] anim_data = anim_file.Data;

                // Decompress the file if necessary
                if (anim_data[0] == 'Y')
                {
                    MemoryStream decompressed_data = null;

                    using (EndianBinaryReader decompressor = new EndianBinaryReader(anim_data, Endian.Big))
                    {
                        decompressed_data = Yaz0.Decode(decompressor);
                    }

                    anim_data = decompressed_data.ToArray();
                }

                switch (anim.Type)
                {
                case "bck":
                    BCK loaded_bck = new BCK(anim_file.Name);
                    using (EndianBinaryReader reader = new EndianBinaryReader(anim_data, Endian.Big))
                        loaded_bck.LoadFromStream(reader);

                    j3d.BoneAnimations.Add(loaded_bck);
                    j3d.SetBoneAnimation(anim_file.Name);

                    loaded_bck.Tick(anim.StartTime);

                    if (anim.PausedOnLoad)
                    {
                        loaded_bck.Pause();
                    }
                    break;

                case "btk":
                    BTK loaded_btk = new BTK(anim_file.Name);
                    using (EndianBinaryReader reader = new EndianBinaryReader(anim_data, Endian.Big))
                        loaded_btk.LoadFromStream(reader);

                    j3d.MaterialAnimations.Add(loaded_btk);
                    j3d.SetMaterialAnimation(anim_file.Name);

                    loaded_btk.Tick(anim.StartTime);

                    if (anim.PausedOnLoad)
                    {
                        loaded_btk.Pause();
                    }
                    break;

                case "brk":
                    BRK loaded_brk = new BRK(anim_file.Name);
                    using (EndianBinaryReader reader = new EndianBinaryReader(anim_data, Endian.Big))
                        loaded_brk.LoadFromStream(reader);

                    j3d.RegisterAnimations.Add(loaded_brk);
                    j3d.SetRegisterAnimation(anim_file.Name);

                    loaded_brk.Tick(anim.StartTime);

                    if (anim.PausedOnLoad)
                    {
                        loaded_brk.Pause();
                    }
                    break;

                case "bmt":
                    BMT loaded_bmt = new BMT(anim_file.Name);
                    using (EndianBinaryReader reader = new EndianBinaryReader(anim_data, Endian.Big))
                        loaded_bmt.LoadFromStream(reader);

                    j3d.ExternalMaterials.Add(loaded_bmt);
                    j3d.SetExternalMaterial(anim_file.Name);

                    if (loaded_bmt.MAT3 != null)
                    {
                        // a hack to get bmts working
                        Material dummyMat = null;
                        j3d.AssignVertexAttributesToMaterialsRecursive(j3d.INF1Tag.HierarchyRoot, ref dummyMat, loaded_bmt.MAT3);
                        j3d.GenerateShadersForMaterials(loaded_bmt.MAT3);
                    }

                    break;

                default:
                    break;
                }
            }

            j3d.Tick(1 / (float)60);

            if (res.ChildModels == null)
            {
                res.ChildModels = new WActorResource.ModelResource[0];
            }

            foreach (var childRes in res.ChildModels)
            {
                var childJ3d = LoadModelFromResource(childRes, archive);
                j3d.AddChildModel(childJ3d, childRes.ParentJointName);
            }

            return(j3d);
        }
Пример #11
0
        private static void doCombo()
        {
            try
            {
                // Menu Config
                var FeroSpell = Config.Item("FeroSpellC").GetValue <StringList>();
                var ForceW    = Config.Item("ForceWC").GetValue <Slider>();
                var ForceE    = Config.Item("ForceEC").GetValue <bool>();

                var Target = TargetSelector.GetSelectedTarget() ??
                             TargetSelector.GetTarget(1600f, TargetSelector.DamageType.Physical);

                // Force Leap to target
                if (Player.HasBuff("RengarR", true))
                {
                    LXOrbwalker.ForcedTarget = Target;
                    LXOrbwalker.SetAttack(LXOrbwalker.GetPossibleTarget() == Target);
                }

                // Use Tiamat / Hydra
                if (Target.IsValidTarget(TMT.Range))
                {
                    if (TMT.IsReady())
                    {
                        TMT.Cast();
                    }
                    else if (HYD.IsReady())
                    {
                        HYD.Cast();
                    }
                }

                // Use Yommus Ghostblade
                if (YGB.IsReady() &&
                    Target.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Player) +
                                         (Player.HasBuff("RengarR", true) ? Player.MoveSpeed / 2 : 0)))
                {
                    YGB.Cast();
                }

                // Cutlass
                if (BCL.IsReady() && Target.IsValidTarget(BCL.Range))
                {
                    BCL.Cast(Target);
                }

                // BORK
                if (BRK.IsReady() && Target.IsValidTarget(BRK.Range))
                {
                    BRK.Cast(Target);
                }

                // Ferocity Spell
                if (Player.Mana == 5)
                {
                    if (Player.Health / Player.MaxHealth < ForceW.Value / 100f && Target.IsValidTarget(W.Range))
                    {
                        W.CastOnUnit(Player, UsePackets);
                        return;
                    }

                    switch (FeroSpell.SelectedIndex)
                    {
                    case 1:
                        if (!Target.IsValidTarget(W.Range))
                        {
                            return;
                        }
                        W.CastOnUnit(Player, UsePackets);
                        break;

                    case 2:
                        if (!Target.IsValidTarget(E.Range) || Player.HasBuff("RengarR", true))
                        {
                            return;
                        }
                        E.Cast(Target, UsePackets);
                        break;
                    }
                    return;
                }

                // Don't cast W or E while ultimate is active (force leap)
                if (Player.HasBuff("RengarR", true))
                {
                    return;
                }

                if (E.IsReady() && Target.IsValidTarget(E.Range) &&
                    (!Target.HasBuff("RengarEFinalMAX", true) && !Target.HasBuff("rengareslow") &&
                     LastETick + 1500 < Environment.TickCount || ForceE))
                {
                    E.Cast(Target, UsePackets);
                }

                if (W.IsReady() && Target.IsValidTarget(W.Range))
                {
                    W.CastOnUnit(Player, UsePackets);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Combo Exception: {0}", e);
            }
        }
Пример #12
0
 public BRKTest()
 {
     _bit = new BRK(machine.CPU);
 }