private void OnReqBuy(UserToken token, SocketModel model) { ReqBuy req = SerializeUtil.Deserialize <ReqBuy>(model.message); AccountData acc = CacheManager.instance.GetAccount(token.accountid); ItemCfg cfg = ConfigManager.instance.items[req.itemid]; if (acc.diamond < cfg.Price) { TipsError tips = new TipsError(); tips.code = (int)ECode.EBuyError; NetworkManager.Send <TipsError>(token, (int)MsgID.TipError, tips); } else { acc.diamond -= cfg.Price; ItemData item = new ItemData(); item.account = token.accountid; item.itemid = req.itemid; item.count = 1; CacheManager.instance.AddItem(token.accountid, item); RspBuy rsp = new RspBuy(); rsp.diamond = acc.diamond; rsp.item = new ItemDTO(); rsp.item.id = item.Id; rsp.item.account = item.account; rsp.item.itemid = item.itemid; rsp.item.count = item.count; rsp.item.slot = item.slot; NetworkManager.Send <RspBuy>(token, (int)MsgID.RspBuy, rsp); } }
static public void AddItemIconsToRichText() { #if !ART_DEBUG if (ItemCfg.m_cfgs.Count <= 0) { ItemCfg.Init(); } var quadList = new List <HyperTextStyles.Quad>(); quadList.Add(new HyperTextStyles.Quad(UIResMgr.instance.GetSprite("ui_tongyong_icon_jinbi"), "gold", 1.0f, -0.1f, false, "", "")); quadList.Add(new HyperTextStyles.Quad(UIResMgr.instance.GetSprite("ui_tongyong_icon_tili"), "stamina", 1.0f, -0.1f, false, "", "")); quadList.Add(new HyperTextStyles.Quad(UIResMgr.instance.GetSprite("ui_tongyong_icon_zuanshi"), "diamond", 1.0f, -0.1f, false, "", "")); quadList.Add(new HyperTextStyles.Quad(UIResMgr.instance.GetSprite("ui_jingji_jingbi"), "arenacoin", 1.0f, -0.1f, false, "", "")); quadList.Add(new HyperTextStyles.Quad(UIResMgr.instance.GetSprite("ui_tongyong_icon_xing"), "star", 1.0f, -0.1f, false, "", "")); foreach (var v in ItemCfg.m_cfgs.Values) { var sprite = UIResMgr.instance.GetSprite(v.icon); var className = v.id.ToString(); var sizeScalar = 1.0f; var verticalOffset = -0.1f; var shouldRespectColorization = false; var linkId = ""; var linkClassName = ""; var quad = new HyperTextStyles.Quad(sprite, className, sizeScalar, verticalOffset, shouldRespectColorization, linkId, linkClassName); quadList.Add(quad); } var resObj = AssetDatabase.LoadAssetAtPath <HyperTextStyles>("Assets/UI/Font/htstyle1.asset"); resObj.SetQuadStyles(quadList); EditorUtil.SetDirty(resObj); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); #endif }
// 装备物品 private void OnInvEquip(UserToken token, SocketModel model) { ReqEquipItem req = SerializeUtil.Deserialize <ReqEquipItem>(model.message); // 获取背包栏位物品数据 InventoryData invData = CacheManager.instance.GetInvData(token.characterid, req.slot); // 获取装备栏位物品数据 ItemCfg itemCfg = ConfigManager.instance.GetItemCfg(req.itemid); EquipData equipData = CacheManager.instance.GetEquipData(token.characterid, (int)itemCfg.EquipType); int itemid = invData.itemid; invData.itemid = equipData.itemid; equipData.itemid = itemid; if (invData.itemid == -1) { invData.num = 0; } RespEquipItem resp = new RespEquipItem(); resp.equip = EquipData.GetInvDTO(equipData); resp.inv = InventoryData.GetInvDTO(invData); NetworkManager.Send(token, (int)MsgID.INV_Equip_SRES, resp); }
// Use this for initialization void Start() { // 定义配置字典 Dictionary <int, ItemCfg> dic = new Dictionary <int, ItemCfg>(); // 定义xml文档 XmlDocument doc = new XmlDocument(); // 动态加载xml文档并强制转化为TextAsset TextAsset text = Resources.Load("Config/Item") as TextAsset; Debug.Log(text.text); // 载入文本资源的文本信息 doc.LoadXml(text.text); // 通过节点路径获取配置的节点列表 XmlNodeList nodeList = doc.SelectNodes("Nodes/Node"); // 遍历节点列表,并获取列表中的所有数据 for (int i = 0; i < nodeList.Count; i++) { // 获取节点列表的一个子节点,并强制转化为Xml元素; XmlNode node = nodeList[i]; XmlElement elem = (XmlElement)node; //Debug.Log(elem.GetAttribute("Id")+"."+elem.GetAttribute("Name")); ItemCfg cfg = new ItemCfg(); cfg.Id = int.Parse(elem.GetAttribute("Id")); cfg.Name = elem.GetAttribute("Name"); } }
public void Initialize(InventoryDTO dto, DeleteType deleteType) { this.dto = dto; _deleteType = deleteType; ItemCfg item = ConfigManager.instance.GetItemCfg(dto.itemid); Transform content = _transform.Find("EquipInfo/Viewport/Content"); Text name = content.Find("Text").GetComponent <Text>(); name.text = item.Name; Button Btnclose = _transform.Find("BtnClose").GetComponent <Button>(); Btnclose.onClick.AddListener(OnClickClose); Button Btndelete = _transform.Find("BtnDelete").GetComponent <Button>(); Btndelete.onClick.AddListener(OnClickDelete); Button BtnUnload = _transform.Find("BtnUnload").GetComponent <Button>(); BtnUnload.onClick.AddListener(OnClickUnload); BtnUnload.gameObject.SetActive(deleteType == DeleteType.Equip); Button BtnEquip = _transform.Find("BtnEquip").GetComponent <Button>(); BtnEquip.onClick.AddListener(OnClickEquip); BtnEquip.gameObject.SetActive(deleteType != DeleteType.Equip); }
public static void TestLoad(StringA szJson) { ItemCfg data = null; bool bSuc = os.ReadJson(data, szJson); //StringA szData = os.WriteJson(data); //StringA szSub = szData.Left(100); //os.print(szSub); //StringA szLeft = szJson.Mid(10, 100); //os.print(szLeft); }
public bool load(string path) { m_cfgMap.Clear(); TextAsset binAsset = Resources.Load(path, typeof(TextAsset)) as TextAsset; if (binAsset == null) { Debug.LogError("load path fail,file not exist, path: " + path); return(false); } string [] lineArray = binAsset.text.Split("\r"[0]); for (int i = 0; i < lineArray.Length; i++) { if (i < 3) { continue; } string [] strs = lineArray[i].Split(','); if (strs.Length != 18) { Debug.LogError("line data invalid, path:" + path + ",line:" + i); return(false); } ItemCfg poCfg = new ItemCfg(); Int32 index = Convert.ToInt32(strs[0]); poCfg.SetId(Convert.ToInt32(strs[0])); poCfg.SetName((strs[1])); poCfg.SetNote((strs[2])); poCfg.SetType(Convert.ToInt32(strs[3])); poCfg.SetLinkid(Convert.ToInt32(strs[4])); poCfg.SetWarehousetype(Convert.ToInt32(strs[5])); poCfg.SetQuality(Convert.ToInt32(strs[6])); poCfg.SetIcon((strs[7])); poCfg.SetTag((strs[8])); poCfg.SetPile(Convert.ToInt32(strs[9])); poCfg.SetUsetype(Convert.ToInt32(strs[10])); poCfg.SetBundleuse(Convert.ToInt32(strs[11])); poCfg.SetSellvalue(strs[12]); poCfg.SetConvertvalue(strs[13]); poCfg.SetCoefficient(Convert.ToDouble(strs[14])); poCfg.SetTimelimit(Convert.ToDouble(strs[15])); poCfg.SetUsetimeslimit(Convert.ToInt32(strs[16])); poCfg.SetLevellimit(Convert.ToInt32(strs[17])); if (m_cfgMap.ContainsKey(index)) { Debug.LogError("index duplicate!index:" + index + ",path:" + path); return(false); } m_cfgMap.Add(index, poCfg); } return(true); }
public void Init(List <uint> goods) { _btnReturn = _transform.Find("Image/BtnReturn").GetComponent <Button>(); _btnReturn.onClick.AddListener(OnBtnReturnClick); _txtGold = _transform.Find("Image/GoldInfo/TxtGold").GetComponent <Text>(); _txtGold.text = DataCache.instance.currentCharacter.gold.ToString(); _txtDiamond = _transform.Find("Image/GoldInfo/TxtDiamond").GetComponent <Text>(); _txtDiamond.text = DataCache.instance.currentCharacter.diamond.ToString(); _content = _transform.Find("Scroll View/Viewport/Content"); _btnGoods = _transform.Find("Scroll View/Viewport/BtnGoods").GetComponent <Button>(); for (int i = 0; i < goods.Count; i++) { Transform child = GameObject.Instantiate(_btnGoods.gameObject).transform; child.SetParent(_content); child.localPosition = Vector3.zero; child.localScale = Vector3.one; child.gameObject.SetActive(true); // 获取商品的配置信息和物品信息 MallCfg cfg = ConfigManager.instance.mallCfgs[(int)goods[i]]; ItemCfg itemCfg = ConfigManager.instance.GetItemCfg(cfg.ItemID); // 设置商品名 Text name = child.Find("Name").GetComponent <Text>(); name.text = itemCfg.Name; // 设置商品图标 Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = Resources.Load <Sprite>("Icon/" + itemCfg.Icon); // 设置商品价值 Text gold = child.Find("Gold").GetComponent <Text>(); gold.text = cfg.Gold.ToString(); Text diamond = child.Find("Diamond").GetComponent <Text>(); diamond.text = cfg.Diamond.ToString(); // 添加购买按钮的事件 Button btnBuy = child.Find("BtnBuy").GetComponent <Button>(); btnBuy.gameObject.AddComponent <ButtonClickListener>().goodsid = goods[i]; } }
public static void TestWrite(StringA szJson) { ItemCfg data = null; bool bSuc = os.ReadJson(data, szJson); StringA szData; uint nStartTime = os.GetTickCount(); for (int i = 0; i < 100; ++i) { szData = os.WriteJson(data, 400 * 1024); } uint nEndTime = os.GetTickCount(); uint nTotalTime = nEndTime - nStartTime; //os.print("WriteJson , Total Time:{0}, av:{1}", nTotalTime, nTotalTime / 100); //StringA szLeft = szData.Mid(0, 100); //os.print(szLeft); }
public void UpdateEquip(InventoryDTO equip) { Transform child = _equipContent.GetChild(equip.slot - 1); child.GetComponent <OnEquipItemClick>().dto = equip; if (equip.itemid < 0) { Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = null; img.color = EmptySlotColor; child.GetComponent <OnEquipItemClick>().dto = null; } else { ItemCfg cfg = ConfigManager.instance.GetItemCfg(equip.itemid); Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = Resources.Load <Sprite>("Icon/" + cfg.Icon); img.color = Color.white; } }
public void UpdateInv(InventoryDTO inv) { Transform child = _invContent.GetChild(inv.slot - 1); child.GetComponent <OnInvenItemClick>().dto = inv; if (inv.itemid < 0) { Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = null; img.color = EmptySlotColor; child.Find("ItemID").GetComponent <Text>().text = string.Empty; child.GetComponent <OnInvenItemClick>().dto = null; } else { ItemCfg cfg = ConfigManager.instance.GetItemCfg(inv.itemid); Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = Resources.Load <Sprite>("Icon/" + cfg.Icon); img.color = Color.white; } }
public void UpdataBullet(int itemid) { ItemCfg cfg = ConfigManager.instance.items[itemid]; bulletName.text = cfg.Name; Transform bullet = null; for (int i = 0; i < bulletContent.childCount; i++) { Transform child = bulletContent.GetChild(i); if (int.Parse(child.name) == itemid) { bullet = child; } } ItemCfg equipCfg = ConfigManager.instance.items[CacheManager.instance.equip.bullet]; bullet.name = equipCfg.Id.ToString(); bullet.Find("Text").GetComponent <Text>().text = equipCfg.Name; CacheManager.instance.equip.bullet = itemid; }
public void UpdataTank(int itemid) { ItemCfg cfg = ConfigManager.instance.items[itemid]; tankName.text = cfg.Name; Transform tank = null; for (int i = 0; i < tankContent.childCount; i++) { Transform child = tankContent.GetChild(i); if (int.Parse(child.name) == itemid) { tank = child; } } ItemCfg equipCfg = ConfigManager.instance.items[CacheManager.instance.equip.tank]; tank.name = equipCfg.Id.ToString(); tank.Find("Text").GetComponent <Text>().text = equipCfg.Name; CacheManager.instance.equip.tank = itemid; }
public void Initialize(List <InventoryDTO> invs, List <InventoryDTO> equips) { _invContent = _transform.Find("Scroll View/Viewport/Content"); Button btnReturn = _transform.Find("BtnClose").GetComponent <Button>(); btnReturn.onClick.AddListener(OnReturn); Button btnItem = _transform.Find("Scroll View/Viewport/BtnItem").GetComponent <Button>(); for (int i = 0; i < SlotNumber; i++) { Transform child = (GameObject.Instantiate(btnItem.gameObject) as GameObject).transform; child.SetParent(_invContent); child.localScale = Vector3.one; child.localPosition = Vector3.zero; child.gameObject.SetActive(true); child.gameObject.AddComponent <OnInvenItemClick>().dto = null; } // 背包栏位 foreach (InventoryDTO item in invs) { if (item.itemid > 0) { Transform child = _invContent.GetChild(item.slot - 1); child.gameObject.GetComponent <OnInvenItemClick>().dto = item; child.Find("ItemID").GetComponent <Text>().text = item.itemid.ToString(); ItemCfg cfg = ConfigManager.instance.GetItemCfg(item.itemid); Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = Resources.Load <Sprite>("Icon/" + cfg.Icon); img.color = Color.white; } } // 装备栏位 Button btnEquip = _transform.Find("BtnEquip").GetComponent <Button>(); _equipContent = _transform.Find("EquipContent"); for (int i = 0; i < EquipNumber; i++) // 遍历6次 { Transform child = (GameObject.Instantiate(btnEquip.gameObject) as GameObject).transform; child.SetParent(_equipContent); child.localScale = Vector3.one; child.localPosition = Vector3.zero; child.gameObject.SetActive(true); child.gameObject.AddComponent <OnEquipItemClick>().dto = null; } for (int i = 0; i < equips.Count; i++) { InventoryDTO equip = equips[i]; if (equip.itemid > 0) { ItemCfg cfg = ConfigManager.instance.GetItemCfg(equip.itemid); Transform child = _equipContent.GetChild(equip.slot - 1); Image img = child.Find("Image").GetComponent <Image>(); img.overrideSprite = Resources.Load <Sprite>("Icon/" + cfg.Icon); img.color = Color.white; child.gameObject.GetComponent <OnEquipItemClick>().dto = equip; } } }
public void Init() { List <ItemDTO> items = CacheManager.instance.items; EquipDTO equip = CacheManager.instance.equip; btnReturn = _transform.Find("Top/BtnReturn").GetComponent <Button>(); btnReturn.onClick.AddListener(OnBtnReturn); tankRawImage = _transform.Find("Left/TankRawImage").GetComponent <RawImage>(); imgEquipBullet = _transform.Find("Left/EquipBullet").GetComponent <Image>(); textAttr = _transform.Find("Left/Attr").GetComponent <Text>(); //设置坦克名 tankName = _transform.Find("Left/TankName").GetComponent <Text>(); ItemCfg tankCfg = ConfigManager.instance.items[equip.tank]; tankName.text = tankCfg.Name; //设置子弹名 bulletName = _transform.Find("Left/BulletName").GetComponent <Text>(); ItemCfg bulletCfg = ConfigManager.instance.items[equip.bullet]; bulletName.text = bulletCfg.Name; btnTank = _transform.Find("Right/BtnTank").GetComponent <Button>(); btnTank.onClick.AddListener(OnBtnTank); btnBullet = _transform.Find("Right/BtnBullet").GetComponent <Button>(); btnBullet.onClick.AddListener(OnBtnBullet); tankScrolView = _transform.Find("Right/TankScrollView"); bulletScrolView = _transform.Find("Right/BulletScrollView"); Button btnTankItem = _transform.Find("Right/TankScrollView/Viewport/BtnTank").GetComponent <Button>(); tankContent = _transform.Find("Right/TankScrollView/Viewport/Content"); Button btnBulletItem = _transform.Find("Right/BulletScrollView/Viewport/BtnBullet").GetComponent <Button>(); bulletContent = _transform.Find("Right/BulletScrollView/Viewport/Content"); for (int i = 0; i < items.Count; i++) { ItemDTO dto = items[i]; ItemCfg cfg = ConfigManager.instance.items[dto.itemid]; Transform child = null; if (cfg.Type == 1) { child = (GameObject.Instantiate(btnTankItem.gameObject) as GameObject).transform; child.SetParent(tankContent); child.name = cfg.Id.ToString(); UIEventListener.Get(child.gameObject).onPointerClick = OnEquipTank; } else if (cfg.Type == 2) { child = (GameObject.Instantiate(btnBulletItem.gameObject) as GameObject).transform; child.SetParent(bulletContent); child.name = cfg.Id.ToString(); UIEventListener.Get(child.gameObject).onPointerClick = OnEquipBullet; } child.localPosition = Vector3.zero; child.localScale = Vector3.one; child.gameObject.SetActive(true); child.Find("Text").GetComponent <Text>().text = cfg.Name; child.name = cfg.Id.ToString(); } }