public void Load()
        {
            MemoryStream       Buffer;
            Card               Card;
            PangyaBinaryReader Reader = null;

            ListCard = new List <Card>();
            using (var zip = ZipFile.OpenRead("data/pangya_gb.iff"))                 //ler o arquivo de base
            {
                var FileZip = zip.Entries.FirstOrDefault(c => c.Name == "Card.iff"); //verifica se existe o arquivo

                if (FileZip == null)
                {
                    throw new Exception("data\\Card.iff is not loaded");
                }
                Buffer = new MemoryStream();
                FileZip.Open().CopyTo(Buffer);
            }
            try
            {
                Reader = new PangyaBinaryReader(Buffer);
                if (new string(Reader.ReadChars(2)) == "PK")
                {
                    throw new Exception("The given IFF file is a ZIP file, please unpack it before attempting to parse it");
                }

                Reader.Seek(0, 0);

                Reader.ReadUInt16(out ushort recordCount);
                long recordLength = ((Reader.GetSize() - 8L) / (recordCount));
                Reader.ReadUInt16(out BindingID);
                Reader.ReadUInt32(out Version);

                for (int i = 0; i < recordCount; i++)
                {
                    Card = (Card)Reader.Read(new Card());

                    Add(Card.Base.TypeID, Card);
                }
            }
            finally
            {
                Reader.Dispose();
            }
        }
        public bool Load(MemoryStream data)
        {
            Mascot Mascot;

            if (data == null || data.Length == 0)
            {
                MessageBox.Show(" data\\Mascot.iff is not loaded", "Pangya.IFF");
                return(false);
            }

            try
            {
                using (var Reader = new PangyaBinaryReader(data))
                {
                    if (new string(Reader.ReadChars(2)) == "PK")
                    {
                        throw new Exception("The given IFF file is a ZIP file, please unpack it before attempting to parse it");
                    }
                    Reader.Seek(0, 0);

                    IFF_FILE_HEADER = (IFFHeader)Reader.Read(new IFFHeader());

                    long recordLength = (Reader.GetSize() - 8L) / IFF_FILE_HEADER.RecordCount;

                    var datacount = Tools.IFFTools.SizeStruct(new Mascot());
                    if (datacount != recordLength)
                    {
                        throw new Exception($"Mascot.iff the structure size is incorrect, Real: {recordLength} Mascot.cs: {datacount} ");
                    }

                    for (int i = 0; i < IFF_FILE_HEADER.RecordCount; i++)
                    {
                        Mascot = (Mascot)Reader.Read(new Mascot());

                        this.Add(Mascot);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " Error Struct ", "Pangya.IFF.Model.Mascot");
                return(false);
            }
        }
        public override void Load(PangyaBinaryReader reader)
        {
            ShotType = (ShotTypeEnum)reader.ReadUInt16();

            switch (ShotType)
            {
            case ShotTypeEnum.UNKOWN:
            {
                reader.Skip(9);
                Un = reader.ReadBytes(62);
            }
            break;

            default:
                Un = reader.ReadBytes(62);
                break;
            }
        }
        //Constructor
        public CadieMagicCollection()
        {
            MemoryStream         Buffer;
            IffCadieMagicBoxData item;

            PangyaBinaryReader Reader = null;

            using (var zip = ZipFile.OpenRead("data/pangya_gb.iff"))                          //ler o arquivo de base
            {
                var FileZip = zip.Entries.FirstOrDefault(c => c.Name == "CadieMagicBox.iff"); //verifica se existe o arquivo

                if (FileZip == null)
                {
                    PangyaAPI.WriteConsole.WriteLine(" data\\CadieMagicBox.iff is not loaded");
                    return;
                }
                Buffer = new MemoryStream();
                FileZip.Open().CopyTo(Buffer);
            }
            try
            {
                Reader = new PangyaBinaryReader(Buffer);
                if (new string(Reader.ReadChars(2)) == "PK")
                {
                    throw new Exception("The given IFF file is a ZIP file, please unpack it before attempting to parse it");
                }

                Reader.Seek(0, 0);
                Reader.ReadUInt16(out ushort recordCount);
                Reader.ReadUInt16(out BindingID);
                Reader.ReadUInt32(out Version);
                for (int i = 0; i < recordCount; i++)
                {
                    item = (IffCadieMagicBoxData)Reader.Read(new IffCadieMagicBoxData());

                    this.Add(item);
                }
                AddMagicBox();
            }
            finally
            {
                Buffer.Dispose();
            }
        }
Beispiel #5
0
        public override void Load(PangyaBinaryReader reader)
        {
            BuyType = (GameShopEnum)reader.ReadByte();

            BuyTotal = reader.ReadUInt16();

            for (int Count = 0; Count <= BuyTotal - 1; Count++)
            {
                var item = new ShopItem();
                item.UN1         = reader.ReadInt32(); //PlayerCurrentMoney
                item.TypeId      = reader.ReadInt32();
                item.TotalDay    = reader.ReadInt16();
                item.UN2         = reader.ReadInt16();
                item.ItenQtd     = reader.ReadInt32();
                item.PangPrice   = reader.ReadInt32();
                item.CookiePrice = reader.ReadInt32();

                BuyItens.Add(item);
            }
        }
        public override void Load(PangyaBinaryReader reader)
        {
            Game = new Game()
            {
                Un          = reader.ReadByte(),
                TimeSec     = reader.ReadUInt32(),
                TimeMin     = reader.ReadUInt32(),
                MaxPlayers  = reader.ReadByte(),
                Mode        = (GameTypeEnum)reader.ReadByte(), //ok
                Holes       = reader.ReadByte(),               //
                Course      = (GameMapTypeEnum)reader.ReadByte(),
                HoleOrder   = (GameModeTypeEnum)reader.ReadByte(),
                NaturalMode = reader.ReadUInt32(),

                RoomTitle = reader.ReadPStr(),
                Password  = reader.ReadPStr(),
                Artifact  = reader.ReadUInt32()
            };

            Game.BuildCreateHole();
        }
Beispiel #7
0
 public override void Load(PangyaBinaryReader reader)
 {
 }
Beispiel #8
0
 public override void Load(PangyaBinaryReader reader)
 {
     GuildName = reader.ReadPStr();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     Action = (ChangeEquipmentEnumB)reader.ReadByte();
     Id     = reader.ReadInt32();
 }
Beispiel #10
0
 public override void Load(PangyaBinaryReader reader)
 {
     Status = (StatusEnum)reader.ReadByte();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     Username     = reader.ReadPStr();
     UID          = reader.ReadInt32();
     AuthKey_Game = reader.ReadPStr();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     //throw new NotImplementedException();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     Progress = reader.ReadByte();
 }
Beispiel #14
0
 public override void Load(PangyaBinaryReader reader)
 {
     Angle = reader.ReadInt32();
 }
Beispiel #15
0
 public override void Load(PangyaBinaryReader reader)
 {
     Nickname = reader.ReadPStr();
     Message  = reader.ReadPStr();
 }
Beispiel #16
0
 public override void Load(PangyaBinaryReader reader)
 {
     RoomNumber = reader.ReadUInt16();
     Password   = reader.ReadPStr();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     ServerID = reader.ReadInt32();
 }
Beispiel #18
0
 public abstract void Load(PangyaBinaryReader reader);
 public override void Load(PangyaBinaryReader reader)
 {
     Action = (PlayerActionEnum)reader.ReadByte();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     this.ChannelId = reader.ReadByte();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     Command = (GMCommandTypeEnum)reader.ReadUInt16();
 }
        private void Handle(PangyaBinaryReader reader)
        {
            var response = new PangyaBinaryWriter();

            switch (PacketResult.Command)
            {
            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Help:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Status:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Visible:
            {
                var visible = reader.ReadByte();
            }
            break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Whisper:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Channel:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.List:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Open:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Open2:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Wind:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Weather:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Notice:
            {
                var notice = reader.ReadPStr();

                response.Write(new byte[] { 0x40, 0x00, 0x07 });
                response.WritePStr(Player.Member_Old.Nickname);
                response.WritePStr(notice);
            }
            break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.GiveItem:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.GoldenBell:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.SetMission:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.MathMap:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.KickPlayer:
                break;

            case Packet_PLAYER_GM_COMMAND.GMCommandTypeEnum.Discon_Uid:
                break;

            default:
                break;
            }
        }
 public override void Load(PangyaBinaryReader reader)
 {
     //Credenciais do usuário
     UserName = reader.ReadPStr();
     Password = reader.ReadPStr();
 }
 public override void Load(PangyaBinaryReader reader)
 {
     Ready = reader.ReadBoolean();
 }
        private void Handle(PangyaBinaryReader reader)
        {
            var response = new PangyaBinaryWriter();

            response.Write(new byte[] { 0xC4, 0x00 });
            response.Write(Player.ConnectionId);
            response.Write((byte)PacketResult.Action);

            switch (PacketResult.Action)
            {
            case PlayerActionEnum.PLAYER_ACTION_ROTATION:
            {
                Player.Position.W = reader.ReadSingle();

                response.WriteSingle(Player.Position.W);
            }
            break;

            case PlayerActionEnum.PLAYER_ACTION_UNK:
                break;

            case PlayerActionEnum.PLAYER_ACTION_APPEAR:
            {
                Player.Position.X = reader.ReadSingle();
                Player.Position.Y = reader.ReadSingle();
                Player.Position.Z = reader.ReadSingle();

                response.Write(Player.Position.X);
                response.Write(Player.Position.Y);
                response.Write(Player.Position.Z);
            }
            break;

            case PlayerActionEnum.PLAYER_ACTION_SUB:
            {
                Player.ChatGameInfo.Posture = (PlayerPostureEnum)reader.ReadByte();
                response.Write((int)Player.ChatGameInfo.Posture);
            }
            break;

            case PlayerActionEnum.PLAYER_ACTION_MOVE:
            {
                var x = reader.ReadSingle();
                var y = reader.ReadSingle();
                var z = reader.ReadSingle();

                Player.Position.X += x;
                Player.Position.Y += y;
                Player.Position.Z += z;

                response.WriteSingle(x);
                response.WriteSingle(y);
                response.WriteSingle(z);
            }
            break;

            case PlayerActionEnum.PLAYER_ACTION_ANIMATION:
            {
                Player.ChatGameInfo.Animation = reader.ReadPStrBytes();
                response.WritePStrBytes(Player.ChatGameInfo.Animation);
            }
            break;

            case PlayerActionEnum.PLAYER_ACTION_ANIMATION_2:
            {
                Player.ChatGameInfo.Animation_2 = reader.ReadInt32();

                response.Write(Player.ChatGameInfo.Animation_2);
            }
            break;

            case PlayerActionEnum.PLAYER_ANIMATION_WITH_EFFECTS:
            {
                Player.ChatGameInfo.AnimationWithEffects = reader.ReadPStr();
                response.WritePStr(Player.ChatGameInfo.AnimationWithEffects);
            }
            break;
            }

            string notice = $"POS X: {Player.Position.X} Y: {Player.Position.Y} Z: {Player.Position.Z}";

            Player.SendNotice(notice);

            //Console.WriteLine(Player.Member.Nickname + );
            Player.Game.SendToAll(response);
        }
Beispiel #26
0
 public override void Load(PangyaBinaryReader reader)
 {
     CHAR_TYPEID = reader.ReadInt32();
     HAIR_COLOR  = reader.ReadUInt16();
 }
Beispiel #27
0
 public override void Load(PangyaBinaryReader reader)
 {
     ShotData = reader.ReadBytes(87);
 }