public static CardAwards getAward(int mission, int cartao) { for (int i = 0; i < awards.Count; i++) { CardAwards card = awards[i]; if (card._id == mission && card._card == cartao) { return(card); } } return(null); }
private static void GetCardMedalInfo(CardAwards card, int medalId) { if (medalId == 0) { return; } if (medalId >= 1 && medalId <= 50) //v >= 1 && v <= 50 { card._brooch++; } else if (medalId >= 51 && medalId <= 100) //v >= 51 && v <= 100 { card._insignia++; } else if (medalId >= 101 && medalId <= 116) //v >= 101 && v <= 116 { card._medal++; } //v >= 117 && v <= 239 }
private static void parse(string path, string missionName, int typeLoad) { int missionId = ConvertStringToInt(missionName); if (missionId == 0) { SaveLog.warning("[INVALID]: " + missionName); } byte[] buffer; try { buffer = File.ReadAllBytes(path); } catch { buffer = new byte[0]; } if (buffer.Length == 0) { return; } try { ReceiveGPacket r = new ReceiveGPacket(buffer); r.readS(4); int questType = r.readD(); r.readB(16); int valor1 = 0, valor2 = 0; for (int i = 0; i < 40; i++) { int missionBId = valor2++, cardBId = valor1; if (valor2 == 4) { valor2 = 0; valor1++; } int reqType = r.readUH(); int type = r.readC(); int mapId = r.readC(); byte limitCount = r.readC(); ClassType weaponClass = (ClassType)r.readC(); int weaponId = r.readUH(); Card nc = new Card(cardBId, missionBId) { _mapId = mapId, _weaponReq = weaponClass, _weaponReqId = weaponId, _missionType = (MISSION_TYPE)type, _missionLimit = limitCount, _missionId = missionId }; list.Add(nc); if (questType == 1) { r.readB(24); } } int vai = (questType == 2 ? 5 : 1); for (int i = 0; i < 10; i++) { int gp = r.readD(); int xp = r.readD(); int medals = r.readD(); for (int i2 = 0; i2 < vai; i2++) { int unk = r.readD(); int type = r.readD(); int itemId = r.readD(); int itemCount = r.readD(); } if (typeLoad == 1) { CardAwards card = new CardAwards { _id = missionId, _card = i, _exp = (questType == 1 ? (xp * 10) : xp), _gp = gp }; GetCardMedalInfo(card, medals); if (!card.Unusable()) { awards.Add(card); } } } if (questType == 2) { int goldResult = r.readD(); r.readB(8); for (int i = 0; i < 5; i++) { int unkI = r.readD(); int typeI = r.readD(); //1 - unidade | 2 - dias int itemId = r.readD(); int itemCount = r.readD(); if (unkI > 0 && typeLoad == 1) { _items.Add(new MissionItemAward { _missionId = missionId, item = new ItemsModel(itemId) { _equip = 1, _count = (uint)itemCount, _name = "Mission item" } }); } } } } catch (XmlException ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[MissionCardXML.parse] Erro fatal!"); } }