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(); } }
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(); }
public override void Load(PangyaBinaryReader reader) { }
public override void Load(PangyaBinaryReader reader) { GuildName = reader.ReadPStr(); }
public override void Load(PangyaBinaryReader reader) { Action = (ChangeEquipmentEnumB)reader.ReadByte(); Id = reader.ReadInt32(); }
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(); }
public override void Load(PangyaBinaryReader reader) { Angle = reader.ReadInt32(); }
public override void Load(PangyaBinaryReader reader) { Nickname = reader.ReadPStr(); Message = reader.ReadPStr(); }
public override void Load(PangyaBinaryReader reader) { RoomNumber = reader.ReadUInt16(); Password = reader.ReadPStr(); }
public override void Load(PangyaBinaryReader reader) { ServerID = reader.ReadInt32(); }
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); }
public override void Load(PangyaBinaryReader reader) { CHAR_TYPEID = reader.ReadInt32(); HAIR_COLOR = reader.ReadUInt16(); }
public override void Load(PangyaBinaryReader reader) { ShotData = reader.ReadBytes(87); }