// Copyright (c) Aura development team - Licensed under GNU GPL // For more information, see licence.txt in the main folder using Aura.Shared.Network; using Aura.World.Network; using Aura.World.World; using Aura.Shared.Const; namespace Aura.World.Skills { /// Fuhhue [SkillAttr(SkillConst.Fishing)] public class FishingHandler : SkillHandler { public override SkillResults Prepare(MabiCreature creature, MabiSkill skill, MabiPacket packet, uint castTime) { Send.SkillPrepare(creature.Client, creature, skill.Id, castTime); return SkillResults.Okay; } public override SkillResults Ready(MabiCreature creature, MabiSkill skill) { WorldManager.Instance.Broadcast(new MabiPacket(Op.SkillStackSet, creature.Id).PutByte(1).PutByte(1).PutShort(10023), SendTargets.Range, creature); Send.SkillReady(creature.Client, creature, skill.Id); return SkillResults.Okay; } public override SkillResults Use(MabiCreature creature, MabiSkill skill, MabiPacket packet) { var targetId = packet.GetLong(); var unk1 = packet.GetInt(); var unk2 = packet.GetInt(); WorldManager.Instance.Broadcast(new MabiPacket(Op.Effect, creature.Id).PutInt(10).PutByte(0).PutByte(1), SendTargets.Range, creature); WorldManager.Instance.Broadcast(new MabiPacket(Op.SkillUse, creature.Id).PutShort(10023).PutLong(targetId).PutInt(unk1).PutInt(unk2), SendTargets.Range, creature); WorldManager.Instance.Broadcast(new MabiPacket(Op.SkillStackUpdate, creature.Id).PutByte(0).PutByte(1).PutByte(0).PutShort(10023), SendTargets.Range, creature); // uses skill WorldManager.Instance.Broadcast(new MabiPacket(Op.PropAppears, creature.Id).PutLong(targetId).PutInt(274).PutString("").PutString("").PutString("empty").PutLong(0).PutByte(0).PutInt(0).PutShort(0), SendTargets.Range, creature); /* var pp = new MabiPacket(0x000052D0, 0x3000000000000000); pp.PutLong(45317475545972737); pp.PutInt(274); pp.PutString(""); pp.PutString(""); pp.PutBin(12 01 00 00 01 00 00 00 00 D0 0E 46 00 00 00 00); 00 10 01 47 66 66 26 3F 00 00 80 3F 80 80 80 FF 80 80 80 FF 80 80 80 FF 80 80 80 FF 80 80 80 FF 80 80 80 FF 80 80 80 FF 80 80 80 FF 80 80 80 FF 00 DB 4F 76 pp.PutString("empty"); pp.PutLong(0); pp.PutByte(0); pp.PutInt(0); pp.PutShort(0); */ // Long? WorldManager.Instance.Broadcast(new MabiPacket(Op.PropUpdate, creature.Id).PutString("normal").PutLong(63518060568734).PutByte(0).PutFloat(0.65).PutShort(0), SendTargets.Range, creature); /* var nn = new MabiPacket(0x000052D2, 0x00A1000100090001); nn.PutString("normal"); nn.PutLong(63518060568734 (10/22/2013 5:42:48 PM)); nn.PutByte(0); nn.PutFloat(0.65); nn.PutShort(0); */ Send.SkillUse(creature.Client, creature, skill.Id, targetId, unk1, unk2); return SkillResults.Okay; } public override SkillResults Complete(MabiCreature creature, MabiSkill skill, MabiPacket packet) { Send.SkillComplete(creature.Client, creature, skill.Id); return SkillResults.Okay; } public override SkillResults Cancel(MabiCreature creature, MabiSkill skill) { Send.SkillSilentCancel(creature.Client, creature); WorldManager.Instance.Broadcast(new MabiPacket(Op.MotionCancel2, creature.Id).PutByte(0), SendTargets.Range, creature); WorldManager.Instance.Broadcast(new MabiPacket(0xA43B, creature.Id).PutShort(0).PutInt(0), SendTargets.Range, creature); return SkillResults.Okay; } } }