예제 #1
0
 private static void ProcessSkillTEST(Player player, Mooege.Core.GS.Map.World world, TargetMessage message)
 {
     Vector3D targetPosition = message.Field2.Position;
     Mooege.Core.GS.Actors.Actor target = null;
     if (message.TargetID != 0xFFFFFFFF)
     {
         target = world.GetActorByDynamicId(message.TargetID);
         if (target != null)
         {
             targetPosition = target.Position;
             if (target is Mooege.Core.GS.Actors.Monster)
             {
                 (target as Mooege.Core.GS.Actors.Monster).Die();
             }
         }
     } switch (message.PowerSNO)
     {
         case Skills.Skills.Wizard.Offensive.Hydra:
             world.AddEffect(new FXEffect { Actor = player, EffectID = 81103, DurationInTicks = (60 * 9), Position = targetPosition, NeedsActor = true }); // needs to lower to groud
             world.AddEffect(new HydraFXEffect { Actor = player, EffectID = 80745, DurationInTicks = (60 * 9), Position = targetPosition, AttackOffset = 0 });
             world.AddEffect(new HydraFXEffect { Actor = player, EffectID = 80757, DurationInTicks = (60 * 9), Position = targetPosition, AttackOffset = (6 * 4) });
             world.AddEffect(new HydraFXEffect { Actor = player, EffectID = 80758, DurationInTicks = (60 * 9), Position = targetPosition, AttackOffset = (6 * 8) });
             break;
     }
 }
예제 #2
0
        private static void ProcessSkillMonk(Player player, Mooege.Core.GS.Map.World world, TargetMessage message) {
            Vector3D targetPosition = message.Field2.Position;
            Mooege.Core.GS.Actors.Actor target = null;
            if (message.TargetID != 0xFFFFFFFF)
            {
                target = world.GetActorByDynamicId(message.TargetID);
                if (target != null)
                {
                    targetPosition = target.Position;
                }
            }
            int startingTick = world.Game.TickCounter;
            int effectID = 0;
            int masterEffectID = 0;
            /* // broken ticking
            if (message.Field6 != null)
            {
                startingTick =  message.Field6.Field1;
            }
             */
            switch (message.PowerSNO)
            {
                case Skills.Skills.Monk.SpiritGenerator.FistsOfThunder:
                    effectID  = 143570; // cast
                    masterEffectID = 96176; // projectile
                    switch (message.Field5)
                    {
                        case 0:
                            startingTick += (int)(6 * 3 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 1:
                            effectID = 143561;//143569; // cast
                            masterEffectID = 96176;//96177;
                            startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 2:
                            effectID = 143566; // cast
                            masterEffectID = 96178;
                            startingTick += (int)(6 * 5 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                    }
                    world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = (message.Field5 == 2) ? startingTick - (int)(6 * 5 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]) : startingTick });
                    world.AddEffect(new AttackEffect
                    {
                        Actor = player,
                        EffectID = masterEffectID,
                        StartingTick = startingTick,
                        DamageTypeOverride = 2
                    });
                    break;
                case Skills.Skills.Monk.SpiritGenerator.ExplodingPalm:
                    effectID = 142471;
                    masterEffectID = 143841;
                    switch (message.Field5)
                    {
                        case 0:
                            startingTick += (int)(6 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 1:
                            startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 2:
                            effectID = 142473;
                            masterEffectID = 143473;
                            startingTick += (int)(6 * 4 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                    }
                    world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick });
                    world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick });
                    break;
                case Skills.Skills.Monk.SpiritGenerator.DeadlyReach:
                    masterEffectID = 140870;
                    switch (message.Field5)
                    {
                        case 0:
                            startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 1:
                            masterEffectID = 140871;
                            startingTick += (int)(6 * 2/ player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 2:
                            masterEffectID = 140872;
                            startingTick += (int)(6 * 5 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                    }
                    world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick });
                    break;
                case Skills.Skills.Monk.SpiritGenerator.CripplingWave:
                    effectID = 152353;
                    startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                    switch (message.Field5)
                    {
                        case 0:
                            break;
                        case 1:
                            effectID = 147912;
                            break;
                        case 2:
                            effectID = 147929;
                            break;
                    }
                    world.AddEffect(new AttackEffect { Actor = player, EffectID = effectID, StartingTick = startingTick });
                    break;
                case Skills.Skills.Monk.SpiritGenerator.SweepingWind:
                    effectID = 196981;
                    startingTick += (int)(6 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                    switch (message.Field5)
                    {
                        case 0:
                            break;
                        case 1:
                            effectID = 196983;
                            break;
                        case 2:
                            effectID = 196984;
                            break;
                    }
                    world.AddEffect(new AttackEffect { Actor = player, EffectID = effectID, StartingTick = startingTick});
                    break;
                case Skills.Skills.Monk.SpiritGenerator.WayOfTheHundredFists:
                    effectID = 2612;//(player.Properties.Gender == 0) ? 2612 : ???;
                    masterEffectID = 137345;//(player.Properties.Gender == 0) ? 137345 ; ???;
                    switch (message.Field5)
                    {
                        case 0:
                            startingTick += (int)(6 * 3 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            break;
                        case 1:
                            startingTick += (int)(6 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            effectID = 98412;//(player.Properties.Gender == 0) ? 98412 : ???;
                            masterEffectID = 137346;//(player.Properties.Gender == 0) ? 137346 : ???;
                            break;
                        case 2:
                            startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]);
                            masterEffectID = 137347;//(player.Properties.Gender == 0) ? 137347 : ???;
                            effectID = 98416;//(player.Properties.Gender == 0) ? 98416 : ???;
                            break;
                    }
                    world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick });
                    world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick });
                    break;
                case Skills.Skills.Monk.SpiritSpenders.DashingStrike:
                    world.AddEffect(new FXEffect
                    {
                        Actor = player,
                        EffectID = 192085,
                        DurationInTicks = 6,
                    });
                    world.AddEffect(new FXEffect
                    {
                        Actor = player,
                        EffectID = 111132,
                        DurationInTicks = 6,
                        Position = targetPosition,
                        Angle = ActorUtils.GetFacingAngle(player.Position, targetPosition)
                    });
                    break;
                case Skills.Skills.Monk.SpiritSpenders.LashingTailKick:
                    world.AddEffect(new FXEffect { Actor = player, EffectID = 143782 });
                    break;
                case Skills.Skills.Monk.SpiritSpenders.WaveOfLight:
                    world.AddEffect(new FXEffect { Actor = player, EffectID = 145011, });
                    world.AddEffect(new FXEffect { Actor = player, EffectID = 144079, StartingTick = startingTick + 6});
                    break;
                case Skills.Skills.Monk.SpiritSpenders.SevenSidedStrike:
                    // TODO: find targets for effects, now targetting self
                    // 98886 ?
                    effectID = 98826;
                    startingTick += 12;
                    world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick });
                    effectID = 98831;
                    startingTick += 12;
                    world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick });
                    effectID = 98842;
                    startingTick += 12;
                    world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick });
                    break;
                case Skills.Skills.Monk.SpiritSpenders.TempestRush:

                    break;
            }
        }