private static void HandleFirstSent(GameSession session, PacketReader packet) { long skillSN = packet.ReadLong(); int unkValue = packet.ReadInt(); int skillId = packet.ReadInt(); short skillLevel = packet.ReadShort(); packet.ReadByte(); CoordF coords = packet.Read <CoordF>(); packet.ReadShort(); SkillCast skillCast = new SkillCast(skillId, skillLevel, skillSN, unkValue); int skillCost = skillCast.GetCost(); if (session.Player.Stats[PlayerStatId.Spirit].Current >= skillCost) { session.FieldPlayer.Value.SkillCast = skillCast; session.Player.ConsumeSp(skillCost); session.Send(SkillUsePacket.SkillUse(skillCast, coords)); session.Send(StatPacket.SetStats(session.FieldPlayer)); } }