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; }
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); }