protected override void OnRequest(request_stone_comb request, object userdata) { StoneCombActionParam param = userdata as StoneCombActionParam; if (param == null) { return; } request.defenceId = param.DefenceId; request.stoneId = param.stoneId; request.pos = param.pos; request.stonepos = param.stonepos; request.packtype = param.PackType; request.isequiped = param.isequiped; }
public void StoneComb(DefenceUIParam uiparam) { PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (null == module) { return; } StoneTableItem stoneitem = null; if (uiparam.isequiped) { DefenceObj defencedata = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj; if (null == defencedata) { return; } stoneitem = DataManager.StoneTable[defencedata.GetStoneInfoByPos(uiparam.stonepos).stoneid] as StoneTableItem; } else { stoneitem = DataManager.StoneTable[uiparam.stoneid] as StoneTableItem; } if (null == stoneitem) { return; } if (-1 == stoneitem.combid) { //宝石已达最高等级 PopTipManager.Instance.AddNewTip(StringHelper.GetString("stonesmax")); return; } DefenceCombItem combItem = DataManager.DefenceCombTable[stoneitem.combid] as DefenceCombItem; if (null == combItem) { //弹窗:宝石无法合成 PopTipManager.Instance.AddNewTip(StringHelper.GetString("stone_comb_error")); return; } if (module.GetProceeds(ProceedsType.Money_Game) < combItem.moenyused) { //弹窗:玩家金币不足 PopTipManager.Instance.AddNewTip(StringHelper.GetString("money_game_shortage")); return; } uint playerhascitem = module.GetItemNumByID(combItem.item1, PackageType.Pack_Gem); if (uiparam.isequiped) { playerhascitem += 1; } if (playerhascitem < combItem.num1) { ////弹窗:道具【名称】【个数】不足 stoneitem = DataManager.StoneTable[combItem.item1] as StoneTableItem; if (null == stoneitem) { GameDebug.LogError("stone.txt中没有此宝石 id = " + combItem.item1); return; } PopTipManager.Instance.AddNewTip(StringHelper.GetString("item_need").Replace("?", stoneitem.name)); return; } StoneCombActionParam param = new StoneCombActionParam(); param.DefenceId = uiparam.itemid; param.stoneId = stoneitem.id; param.PackType = (int)uiparam.packtype; param.pos = uiparam.packpos; param.stonepos = uiparam.stonepos; param.isequiped = uiparam.isequiped; Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_DEFENCE_STONE_COMB, param); }