protected override void OnRequest(request_set_promote request, object userdata)
    {
        SetPromoteActionParam param = userdata as SetPromoteActionParam;

        if (param == null)
        {
            return;
        }

        request.weapon_resid = param.WeaponResId;
        request.weapon_pos   = param.WeaponPos;
    }
Beispiel #2
0
    public void SetPromote(int resId)
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (module == null)
        {
            return;
        }

        WeaponObj wobj = module.GetItemByID(resId, PackageType.Pack_Weapon) as WeaponObj;

        if (wobj == null)
        {
            return;
        }

        int plv = (int)wobj.GetPromoteLv();
        PromoteTableItem curpres = wobj.GetPromoteRes();

        if (curpres == null)
        {
            GameDebug.LogError("资源ID为" + plv + "不存在表格promote.txt中 ");
            return;
        }

        int toLv = wobj.getProtemResId() + 1;

        PromoteTableItem nexpres = DataManager.PromoteTable[toLv] as PromoteTableItem;

        if (nexpres == null)
        {
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("weapon_promote_max"));
            return;
        }

        uint   count      = module.GetItemNumByID(curpres.item0);
        string item_name  = "";
        bool   isShortage = false;

        if (count < curpres.num0)
        {
            string ons = ItemManager.Instance.getItemName(curpres.item0);
            item_name += ons;
            isShortage = true;
        }
        count = module.GetItemNumByID(curpres.item1);
        if (count < curpres.num1)
        {
            string tns = ItemManager.Instance.getItemName(curpres.item1);
            if (!"".Equals(item_name))
            {
                item_name += "、";
            }
            item_name += tns;
            isShortage = true;
        }

        if (isShortage)
        {
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("item_need").Replace("?", item_name));
            return;
        }

        PackageManager pack = module.GetPackManager();

        int packpos = 0;

        foreach (KeyValuePair <int, ItemObj> value in pack.getPackDic(PackageType.Pack_Weapon))
        {
            if (null != value.Value && value.Value.GetResId() == resId)
            {
                packpos = value.Value.PackPos;
                break;
            }
        }
        SetPromoteActionParam param = new SetPromoteActionParam();

        param.WeaponResId = resId;
        param.WeaponPos   = packpos;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_WD_SET_PROMOTE, param);
    }