public BaseItem createItemByData(Property.Item data) { int templateid = (int)data.templateid; int type = ConfigManager.getInstance().getTypeByTemplateID(templateid); BaseItem info = null; switch(type) { case (int)GlobalDef.ItemType.ITEM_NORMAL: info = new BaseItem(); break; case (int)GlobalDef.ItemType.ITEM_EQUIPMENT: info = new EquipmentItem(); break; case (int)GlobalDef.ItemType.ITEM_MEDICINE: info = new PotionItem(); break; case (int)GlobalDef.ItemType.ITEM_DIAMOND: info = new DiamondItem(); break; case (int)GlobalDef.ItemType.ITEM_MATERIAL: info = new MaterialItem(); break; } if(null == info) { info = new BaseItem(); } info.parseData (data); return info; }
public Dictionary<long, DiamondItem> gemList = new Dictionary<long, DiamondItem>();// public void addDiamonItem(long guid, DiamondItem item) { if (gemList.ContainsKey(guid)) { Debug.LogError("already has this key! guid: " + guid); return; } gemList.Add(guid, item); }
//public void onGetEquipmentStar(SocketModel module) //{ // //升星 // ItemMessage.MsgUpdateEquipStarRep msg = MsgSerializer.Deserialize<ItemMessage.MsgUpdateEquipStarRep>(module); // int id = (int)msg.heroId; // if (id == 0) // { // EquipmentItem item = (EquipmentItem)MonoInstancePool.getInstance<BagManager>().getEquipmentBag().getItem((long)msg.itemGuid); // if (item == null) // { // Debug.LogError("has not this item!"); // return; // } // item.changeStar = msg.star; // MonoInstancePool.getInstance<BagManager>().getEquipmentBag().IsDirty = true; // EquipmentUIMananger manager = (EquipmentUIMananger)FindObjectOfType(typeof(EquipmentUIMananger)); // if (manager == null) // return; // manager.getStrengthEquipment().setEquipHeroId(null); // manager.getStrengthEquipment().EquipmentUpdate(item); // } // else // { // HeroData data = MonoInstancePool.getInstance<HeroManager>().getHero((long)msg.itemGuid); // if (data == null) // { // Debug.LogError("has not this heroData!"); // return; // } // EquipmentItem item = data.equipmentList.getItemByIdx((int)msg.itemGuid); // item.changeStar = msg.star; // data.equipmentList.isDirty = true; // EquipmentUIMananger manager = (EquipmentUIMananger)FindObjectOfType(typeof(EquipmentUIMananger)); // if (manager == null) // return; // manager.getStrengthEquipment().setEquipHeroId(data); // manager.getStrengthEquipment().EquipmentUpdate(item); // } //} public void onGetInlayGem(SocketModel module) { //镶嵌 ItemMessage.MsgInlayGemRep msg = MsgSerializer.Deserialize<ItemMessage.MsgInlayGemRep>(module); int id = (int)msg.heroId; if (id == 0) { EquipmentItem item = (EquipmentItem)MonoInstancePool.getInstance<BagManager>().getEquipmentBag().getItem((long)msg.guid); if (item == null) { Debug.LogError("has not this item!"); return; } int count = msg.gemAry.Count; for (int i = 0; i < count; i++) { Property.Item gem = msg.gemAry[i]; item.gemList.Clear(); DiamondItem diamon = new DiamondItem(); diamon.parseData(gem); item.addDiamonItem(diamon.guid, diamon); } MonoInstancePool.getInstance<BagManager>().getEquipmentBag().IsDirty = true; } else { HeroData data = MonoInstancePool.getInstance<HeroManager>().getHero((long)msg.heroId); if (data == null) { Debug.LogError("has not this heroData!"); return; } EquipmentItem item = data.equipmentList.getItemByGuid((long)msg.guid); int count = msg.gemAry.Count; for (int i = 0; i < count; i++) { Property.Item gem = msg.gemAry[i]; item.gemList.Clear(); DiamondItem diamon = new DiamondItem(); diamon.parseData(gem); item.addDiamonItem(diamon.guid, diamon); } data.equipmentList.isDirty = true; } }
/// <summary> /// 解析从服务器接收到的数据 /// </summary> public void parseServerHero(Property.Hero data) { //template Data parseData(data.heroid); guid = (long)data.guid; templateID = data.heroid; activate = data.activate; level = data.level; if(data.starLevel > starLevel ){starLevel = data.starLevel;} exp = data.exp; debris = data.debris; realmList.curRealmLevel = data.realm; battle = data.battle; fighting = data.fighting; equipmentList.clear (); for(int j = 0; j < data.items.Count; j++) { EquipmentItem item = new EquipmentItem(); Property.Equip item_data = data.items[j]; item.parseData(data.items[j]); equipmentList.addItem(item.guid, item); item.gemList.Clear(); for(int k = 0; k < item_data.gemAry.Count; k++) { DiamondItem gemItem = new DiamondItem(); Property.Item gemData = item_data.gemAry[k]; gemItem.guid = (long)gemData.guid; gemItem.templateID = (int)gemData.templateid; gemItem.haveNum = (int)gemData.number; // gemItem.type = (int)gemData.type; item.gemList.Add(gemItem.guid, gemItem); } } Property.Horse horse = data.horse; //skill skillList.Clear(); skillList.clearUseSkill(); for(int s = 0; s < data.skills.Count; s++) { Property.Skill skillData = data.skills[s]; int skillId = skillData.skillid; SkillItem skill = new SkillItem(this, skillId); skill.level = skillData.level; skill.active = skillData.activate; skill.slot = skillData.slot; skillList.Add(skill); if(skill.slot != -1 && skill.slot < skillList.useSkills.Length) { skillList.useSkills[skill.slot] = s; } } }