Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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
    }
Exemplo n.º 3
0
    // 装备物品
    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);
    }
Exemplo n.º 4
0
    // 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");
        }
    }
Exemplo n.º 5
0
    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);
 }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
    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);
    }
Exemplo n.º 10
0
    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;
        }
    }
Exemplo n.º 11
0
    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;
        }
    }
Exemplo n.º 12
0
    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;
    }
Exemplo n.º 13
0
    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;
    }
Exemplo n.º 14
0
    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;
            }
        }
    }
Exemplo n.º 15
0
    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();
        }
    }