/// <summary> /// 钻石裂魂 /// </summary> private void HuntStarSoulByRmb(int index, ErlArray arr) { StarSoulManager manager = StarSoulManager.Instance; StorageManagerment smanager = StorageManagerment.Instance; ArrayList starSouls = new ArrayList(); int debrisNumber = StringKit.toInt(arr.Value [index++].getValueString()); if (debrisNumber > 0) { manager.addDebrisNumber(debrisNumber); } ErlArray starSoulArr = arr.Value [index++] as ErlArray; if (starSoulArr != null && starSoulArr.Value.Length > 0) { StarSoul starSoul; for (int i = 0; i < starSoulArr.Value.Length; i++) { starSoul = manager.createStarSoul(starSoulArr.Value[i] as ErlArray); smanager.addHuntStarSoulStorage(starSoul, true); starSoul.isNew = false; starSouls.Add(starSoul); } StorageManagerment.Instance.huntStarSoulStorageVersion++; } if (callback != null) { callback(starSouls, debrisNumber, 0); callback = null; } }
public override void read(ErlKVMessage message) { string str = (message.getValue("msg") as ErlType).getValueString(); if (StringKit.isNum(str)) { if (starSoulList != null && starSoulList.Count > 0) { StorageManagerment smanager = StorageManagerment.Instance; for (int i = 0; i < starSoulList.Count; i++) { (starSoulList[i] as Card).delStarSoulBoreByAll(); } } callback(StringKit.toInt(str)); } else { if (str == "money_full") { MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("goldLimit")); } else { MessageWindow.ShowAlert(str); } if (callback != null) { callback = null; } } }
/// <summary> /// 获取星魂槽上所有的星魂 /// </summary> public StarSoul[] getStarSoulByAll() { if (bores == null || bores.Count == 0) { return(null); } List <StarSoul> temList = new List <StarSoul>(); StarSoul starSoul; StorageManagerment manager = StorageManagerment.Instance; StarSoulBore starSoulBore; for (int i = 0; i < bores.Count; i++) { starSoulBore = (StarSoulBore)bores[i]; if (starSoulBore.getSid() != 0) { starSoul = new StarSoul("0", starSoulBore.getSid(), starSoulBore.getExp(), 0); } else { starSoul = manager.getStarSoul(starSoulBore.getUid()); } if (starSoul == null) { continue; } temList.Add(starSoul); } return(temList.ToArray()); }
public void setSoulStarState(string cardUid, int hole, string starsoulUid) { StorageManagerment smanager = StorageManagerment.Instance; Card card = smanager.getRole(cardUid); if (card != null) { // 设置被替换的星魂状态为未装备(如果是直接穿装备则不执行) StarSoulBore oldStarSoulBore = card.getStarSoulBoreByIndex(hole); if (oldStarSoulBore != null) { StarSoul oldStarSoul = smanager.getStarSoul(oldStarSoulBore.getUid()); if (oldStarSoul != null) { oldStarSoul.unState(EquipStateType.OCCUPY); oldStarSoul.isNew = false; } } // 设置被穿的星魂状态为装备 StarSoul starSoul = smanager.getStarSoul(starsoulUid); if (starSoul != null) { starSoul.setState(EquipStateType.OCCUPY); starSoul.isNew = false; } card.addStarSoulBore(starsoulUid, hole); activeCard = card; } StorageManagerment.Instance.starSoulStorageVersion++; }
/// <summary> /// 移除卡片星魂槽的星魂 /// <param name="index">星魂槽位置</param> /// </summary> public bool delStarSoulBoreByIndex(int index) { if (bores == null) { return(false); } StorageManagerment smanager = StorageManagerment.Instance; StarSoulBore starSoulBore; for (int i = 0; i < bores.Count; i++) { starSoulBore = (StarSoulBore)bores[i]; if (starSoulBore.checkStarSoulBoreByIndex(index)) { StarSoul starSoul = smanager.getStarSoul(starSoulBore.getUid()); if (starSoul != null) { starSoul.unState(EquipStateType.OCCUPY); starSoul.isNew = false; } bores.RemoveAt(i); return(true); } } return(false); }
/// <summary> /// 强化星魂通讯读取处理 /// </summary> /// <param name="message">Message.</param> private void doStrengStarSoul(ErlKVMessage message) { ErlType erlType = message.getValue("value") as ErlType; if (erlType is ErlArray) { ErlArray arr = erlType as ErlArray; int index = 0; string uid = arr.Value [index++].getValueString(); long exp = StringKit.toLong(arr.Value [index++].getValueString()); StorageManagerment smanager = StorageManagerment.Instance; StarSoulManager manager = StarSoulManager.Instance; StarSoul starSoul = smanager.getStarSoul(uid); if (starSoul != null) { manager.delStarSoulExp(exp); starSoul.updateExp(starSoul.getEXP() + exp); starSoul.isNew = false; } StorageManagerment.Instance.starSoulStorageVersion++; if (callback != null) { callback(); callback = null; } } else { UiManager.Instance.openDialogWindow <MessageWindow> ((win) => { win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null); }); } }
/** 初始化物品 */ private void initProp() { resetItems(); Prop tmpProp = null; StorageManagerment instance = StorageManagerment.Instance; MountsConfigManager config = MountsConfigManager.Instance; int[] itemSids = config.getItemSids(); for (int i = 0; i < itemSids.Length; i++) { items [i].gameObject.SetActive(true); items [i].fatherWindow = this; tmpProp = instance.getProp(itemSids [i]); if (tmpProp != null) { items [i].init(tmpProp, tmpProp.getNum()); } else { tmpProp = new Prop(itemSids [i], 0); items [i].init(tmpProp); } items [i].rightBottomText.gameObject.SetActive(true); } }
/// <summary> /// 卸星魂通讯读取处理 /// </summary> /// <param name="message">Message.</param> private void doPutoffStarSoul(ErlKVMessage message) { ErlType erlType = message.getValue("value") as ErlType; if (erlType is ErlArray) { ErlArray arr = erlType as ErlArray; int index = 0; string cardUid = arr.Value [index++].getValueString(); int hole = StringKit.toInt(arr.Value [index++].getValueString()); string starsoulUid = arr.Value [index++].getValueString(); StarSoulManager.Instance.delSoulStarState(cardUid, hole); StorageManagerment smanager = StorageManagerment.Instance; Card card = smanager.getRole(cardUid); if (card != null) { card.delStarSoulBoreByIndex(hole); } StorageManagerment.Instance.starSoulStorageVersion++; if (callback != null) { callback(); callback = null; } } else { UiManager.Instance.openDialogWindow <MessageWindow> ((win) => { win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null); }); } }
/** 一键拾取按钮 */ private void HandleOneKeyGet(GameObject gameObj) { //关闭碎片显示 debrisGetDesc.SetActive(false); debrisGetValue.text = "0"; StorageManagerment smanager = StorageManagerment.Instance; int starSoulNum = smanager.getHuntStarSoulNum(); if (starSoulNum == 0) // 猎魂仓库没有东西 { MaskWindow.UnlockUI(); return; } // 非经验类星魂数量 int popStorageNum = smanager.getHuntStarSoulNumByType(); if (smanager.isStarSoulStorageFull(popStorageNum)) // 星魂仓库满 // 转化经验的数量 { int exchangeExpNum = smanager.getHuntStarSoulNum() - popStorageNum; if (exchangeExpNum == 0) { UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => { win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_StarSoul_Storage_Full")); }); return; } } // 与服务器通讯 (FPortManager.Instance.getFPort("StarSoulPopStorageFPort") as StarSoulPopStorageFPort).autoPopStorageAccess(doChangeExpFinshedCall); }
/// <summary> /// 获取临时锁定状态字典的字符串数据 /// </summary> public string getLockStateString() { StringBuilder sb = new StringBuilder(); string sign; StorageManagerment smanager = StorageManagerment.Instance; StarSoul starSoul; foreach (string key in lockStateDic.Keys) { starSoul = smanager.getStarSoul(key); if (starSoul == null) { continue; } bool isLock = lockStateDic [key]; if (isLock && starSoul.checkState(EquipStateType.LOCKED)) // 选择锁定,本身也是锁定状态不发送 { continue; } if (!isLock && !starSoul.checkState(EquipStateType.LOCKED)) // 非选择锁定,本身也是非锁定状态不发送 { continue; } sb.Append(key + "," + (isLock?1:0) + ":"); } string str = sb.ToString(); if (sb.Length > 0) { str = str.Substring(0, sb.Length - 1); } return(str); }
/// <summary> /// 普通裂魂 /// </summary> private void huntStarSoul(int index, ErlArray arr) { StarSoulManager manager = StarSoulManager.Instance; StorageManagerment smanager = StorageManagerment.Instance; ArrayList starSouls = new ArrayList(); // 猎魂库sid int huntLibSid = StringKit.toInt(arr.Value [index++].getValueString()); manager.setHuntQuality(huntLibSid); ErlArray starSoulArr = arr.Value [index++] as ErlArray; if (starSoulArr != null && starSoulArr.Value.Length > 0) { StarSoul starSoul; for (int i = 0; i < starSoulArr.Value.Length; i++) { starSoul = manager.createStarSoul(starSoulArr.Value[i] as ErlArray); smanager.addHuntStarSoulStorage(starSoul, true); starSoul.isNew = false; starSouls.Add(starSoul); } StorageManagerment.Instance.huntStarSoulStorageVersion++; } int num = StringKit.toInt(arr.Value[index++].getValueString()); manager.setDebrisNumber(manager.getDebrisNumber() + num); if (callback != null) { callback(starSouls, num, huntLibSid); callback = null; } }
public override void read(ErlKVMessage message) { ErlType arr = message.getValue("msg") as ErlType; ErlArray cur = null; if (arr is ErlArray) { cur = arr as ErlArray; } else { MessageWindow.ShowAlert(arr.getValueString()); if (callback != null) { callback = null; } return; } ErlArray temp; ResolveWindow.resolveResult.Clear(); for (int i = 0; i < cur.Value.Length; i++) { temp = cur.Value[i] as ErlArray; if (temp.Value[0].getValueString() == "money") { ResolveWindow.resolveResult.Add(new PrizeSample(PrizeType.PRIZE_MONEY, 0, StringKit.toInt(temp.Value[1].getValueString()))); } else { ResolveWindow.resolveResult.Add(new PrizeSample(PrizeType.PRIZE_PROP, StringKit.toInt(temp.Value[0].getValueString()), StringKit.toInt(temp.Value[1].getValueString()))); } } if (arr as ErlArray != null) { if (starSoulList != null && starSoulList.Count > 0) { StorageManagerment smanager = StorageManagerment.Instance; for (int i = 0; i < starSoulList.Count; i++) { (starSoulList[i] as Card).delStarSoulBoreByAll(); } } callback(); } else { MessageWindow.ShowAlert(arr.getValueString()); if (callback != null) { callback = null; } } }
/// <summary> /// 创建星魂条目 /// </summary> /// <param name="starSoul">星魂</param> private GameObject CreateStarSoulItem(StarSoul starSoul) { Transform trans = awardContent.transform.FindChild(starSoul.uid); if (trans != null) // 避免出现相同uid的星魂 { GameObject.Destroy(trans.gameObject); } GameObject obj = NGUITools.AddChild(awardContent, goodsViewProfab) as GameObject; obj.transform.localScale = new Vector3(0.85f, 0.85f, 1); GoodsView view = obj.transform.GetComponent <GoodsView> (); view.LockOnClick = false; view.init(starSoul, GoodsView.BOTTOM_TEXT_NAME); view.fatherWindow = tapContent.fatherwindow; view.onClickCallback = () => { StorageManagerment smanager = StorageManagerment.Instance; if (starSoul.getStarSoulType() == 0) // 经验类星魂 { bool isQuality = starSoul.getQualityId() >= QualityType.EPIC?true:false; if (isQuality) { UiManager.Instance.openDialogWindow <MessageWindow> ((win) => { win.msg.msgInfo = starSoul.uid; win.initWindow(2, LanguageConfigManager.Instance.getLanguage("s0094"), LanguageConfigManager.Instance.getLanguage("s0093"), LanguageConfigManager.Instance.getLanguage("StarSoulWindow_storeContent_changeQuality"), doOnClickCallback); }); return; } } else // 非经验类星魂 { if (smanager.isStarSoulStorageFull(1)) // 星魂仓库满 { UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => { win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_StarSoul_Storage_Full")); }); return; } } MessageHandle msg = new MessageHandle(); msg.buttonID = MessageHandle.BUTTON_RIGHT; msg.msgInfo = starSoul.uid; doOnClickCallback(msg); }; view.longPassCallback = () => { UiManager.Instance.openDialogWindow <StarSoulAttrWindow> ( (win) => { win.Initialize(starSoul, StarSoulAttrWindow.AttrWindowType.None); }); }; return(obj); }
public void delSoulStarState(string cardUid, int hole) { StorageManagerment smanager = StorageManagerment.Instance; Card card = smanager.getRole(cardUid); if (card != null) { card.delStarSoulBoreByIndex(hole); activeCard = card; } StorageManagerment.Instance.starSoulStorageVersion++; uid = ""; _hole = 0; }
/// <summary> /// 猎魂条件 /// </summary> /// <param name="huntType">裂魂类型(0=普通,1=钻石)</param> /// <param name="huntCount">裂魂次数</param> /// <param name="isAuto">是否一键猎魂(true=是)</param> public bool checkHuntCondition(int huntType, int huntCount, bool isAuto) { if (huntType == HUNT_MONEY_TYPE) { if (!isEnoughByHuntMoney(huntCount, StarSoulManager.Instance.getHuntQuality())) // 游戏币不足 // UiManager.Instance.openDialogWindow<MessageLineWindow>((win)=>{ // win.Initialize (LanguageConfigManager.Instance.getLanguage ("guild_851")); // }); { UiManager.Instance.openDialogWindow <MessageWindow>((win) => { win.initWindow(2, LanguageConfigManager.Instance.getLanguage("go_get_money"), LanguageConfigManager.Instance.getLanguage("s0094"), LanguageConfigManager.Instance.getLanguage("StarSoulWindow_Hunt_noMoney"), getMoney); }); return(false); } } else if (huntType == HUNT_RMB_TYPE) { if (!isEnoughByHuntRMB(huntCount)) // 钻石不足 { UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => { win.Initialize(LanguageConfigManager.Instance.getLanguage("Guild_4")); }); return(false); } } if (isAuto) { if (huntType == HUNT_RMB_TYPE) { if (!isEnoughByHuntRmbOneKeyVipLevel()) // 钻石一键猎魂vip等级不足 { UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => { win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_Hunt_VIPInfo", Convert.ToString(StarSoulConfigManager.Instance.getRmbOneKeyVipLevel()))); }); return(false); } } } StorageManagerment manager = StorageManagerment.Instance; if (manager.isHuntSoulStorageFull(huntCount)) //裂魂仓库已满 { UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => { win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_HuntStarSoul_Storage_Full")); }); return(false); } return(true); }
public void starSoulIndefity() { StorageManagerment smanager = StorageManagerment.Instance; StarSoulManager manager = StarSoulManager.Instance; StarSoul starSoul = smanager.getStarSoul(indetify_uid); if (starSoul != null) { manager.delStarSoulExp(exp); starSoul.updateExp(starSoul.getEXP()); starSoul.isNew = false; } StorageManagerment.Instance.starSoulStorageVersion++; init(starSoul); }
/** 更新button文本 */ public void updateLabelTextUI() { incItem.gameObject.SetActive(false); StarSoulConfigManager configManager = StarSoulConfigManager.Instance; StarSoulManager manager = StarSoulManager.Instance; buttonHunt.textLabel.text = LanguageConfigManager.Instance.getLanguage("StarSoulWindow_button_Hunt", Convert.ToString(1)); UserManager userManger = UserManager.Instance; StorageManagerment smanager = StorageManagerment.Instance; moneyLabel.text = Convert.ToString(userManger.self.getMoney()); rmbLabel.text = Convert.ToString(userManger.self.getRMB()); suipianLabel.text = Convert.ToString(manager.getDebrisNumber()); int maxCount = smanager.getHuntStarSoulStorageMaxSpace(); int remainNum = smanager.getFreeSize(); maxCount = remainNum >= maxCount ? maxCount : remainNum; huntNumber = maxCount; if (currentTapIndex == StarSoulConfigManager.HUNT_MONEY_TYPE) { huntNumber = userManger.self.getMoney() / configManager.getHuntConsumeMoney(currentNebulaIndex); if (huntNumber > maxCount) { huntNumber = maxCount; } string moneyColorText = configManager.isEnoughByHuntMoney(1, currentNebulaIndex)?"[FFFFFF]":"[FF0000]"; consumeLabel.text = moneyColorText + LanguageConfigManager.Instance.getLanguage("s0449", Convert.ToString(configManager.getHuntConsumeMoney(currentNebulaIndex))); consumeIcon.spriteName = "icon_money"; } else if (currentTapIndex == StarSoulConfigManager.HUNT_RMB_TYPE) { huntNumber = userManger.self.getRMB() / configManager.getHuntConsumeRmb(); if (huntNumber > maxCount) { huntNumber = maxCount; } string rmbColorText = configManager.isEnoughByHuntRMB(1)?"[FFFFFF]":"[FF0000]"; consumeLabel.text = rmbColorText + LanguageConfigManager.Instance.getLanguage("s0449", Convert.ToString(configManager.getHuntConsumeRmb())); consumeIcon.spriteName = "rmb"; } if (huntNumber <= 1) { huntNumber = maxCount; } starSoulExp.text = manager.getStarSoulExp().ToString(); }
/** 校验道具 */ bool checkProp() { Prop tmpProp = null; StorageManagerment instance = StorageManagerment.Instance; MountsConfigManager config = MountsConfigManager.Instance; int[] itemSids = config.getItemSids(); for (int i = 0; i < itemSids.Length; i++) { tmpProp = instance.getProp(itemSids [i]); if (tmpProp != null && tmpProp.getNum() > 0 && tmpProp.getUseLv() <= UserManager.Instance.self.getUserLevel()) { return(true); } } return(false); }
/// <summary> /// 移除卡片星魂槽的星魂 /// <param name="index">星魂槽位置</param> /// </summary> public void delStarSoulBoreByAll() { if (bores == null || bores.Count < 1) { return; } StorageManagerment smanager = StorageManagerment.Instance; StarSoulBore starSoulBore; for (int i = 0; i < bores.Count; i++) { starSoulBore = (StarSoulBore)bores[i]; StarSoul starSoul = smanager.getStarSoul(starSoulBore.getUid()); if (starSoul != null) { starSoul.unState(EquipStateType.OCCUPY); starSoul.isNew = false; } bores.RemoveAt(i--); } }
public bool isEnoughPropForMountsPractice() { Prop tmpProp = null; StorageManagerment instance = StorageManagerment.Instance; MountsConfigManager config = MountsConfigManager.Instance; int[] itemSids = config.getItemSids(); int num = 0; for (int i = 0; i < itemSids.Length; i++) { tmpProp = instance.getProp(itemSids [i]); if (tmpProp != null) { num += tmpProp.getNum(); } if (num > 10) { return(true); } } return(false); }
/// <summary> /// 更新星魂锁状态 /// </summary> public void updateStarSoulLockState() { StorageManagerment smanager = StorageManagerment.Instance; StarSoul starSoul; foreach (string key in lockStateDic.Keys) { starSoul = smanager.getStarSoul(key); if (starSoul == null) { continue; } bool isLock = lockStateDic [key]; if (isLock) // 加锁 { starSoul.setState(EquipStateType.LOCKED); } else // 解锁 { starSoul.unState(EquipStateType.LOCKED); } starSoul.isNew = false; } }
/// <summary> /// 校验临时转换经验字典列表中是否存在指定state的星魂 /// </summary> /// <param name="state">状态</param> public bool isStarSoulStateByChangeDic(int state) { StarSoul starSoul; StorageManagerment manager = StorageManagerment.Instance; foreach (string key in changeExpStateDic.Keys) { bool isLock = changeExpStateDic [key]; if (!isLock) { continue; } starSoul = manager.getStarSoul(key); if (starSoul == null) { continue; } if (starSoul.checkState(state)) { return(true); } } return(false); }
// /// <summary> // /// 一键转化经验通讯 // /// </summary> // /// <param name="storageType">仓库类型(star_soul_storage=星魂仓库,star_soul_draw_storage=猎魂仓库)</param> // /// <param name="callback">Callback.</param> // public void autoExchangeAccess(string storageType,CallBack<int,StarSoul[]> callback) { // this.callback = callback; // ErlKVMessage message = new ErlKVMessage (FrontPort.STARSOUL_AUTO_CONVERT_EXP); // message.addValue ("storage_type", new ErlString (storageType)); // access (message); // } /// <summary> /// 回调读取通讯 /// </summary> /// <param name="message">Message.</param> public override void read(ErlKVMessage message) { int index = 0; ErlType erlType = message.getValue("msg") as ErlType; if (erlType is ErlArray) { ErlArray arr = erlType as ErlArray; StarSoulManager manager = StarSoulManager.Instance; StorageManagerment smanager = StorageManagerment.Instance; // 仓库类型 string storageType = arr.Value [index++].getValueString(); // 转化的经验 int exchangeExp = StringKit.toInt(arr.Value [index++].getValueString()); if (exchangeExp > 0) { manager.addStarSoulExp(exchangeExp); } StarSoul[] exchangeStarSouls = null; StarSoul[] popStorageStarSouls = null; bool isUpdateStorageVersion = false; bool isUpdateHuntStorageVersion = false; // 转换经验的星魂 ErlType exchangeStarSoulType = arr.Value [index++]; if (exchangeStarSoulType is ErlArray) { ErlArray exchangeStarSoulArr = exchangeStarSoulType as ErlArray; if (exchangeStarSoulArr.Value.Length > 0) { exchangeStarSouls = new StarSoul[exchangeStarSoulArr.Value.Length]; StarSoul starSoul = null; for (int i = 0; i < exchangeStarSoulArr.Value.Length; i++) { if (storageType == "star_soul_storage") // 清理星魂仓库 { starSoul = smanager.getStarSoul(exchangeStarSoulArr.Value[i].getValueString()); if (starSoul == null) { continue; } smanager.delStarSoulStorage(starSoul.uid); isUpdateStorageVersion = true; } else if (storageType == "star_soul_draw_storage") // 清理猎魂仓库 { starSoul = smanager.getHuntStarSoul(exchangeStarSoulArr.Value[i].getValueString()); if (starSoul == null) { continue; } smanager.delHuntStarSoulStorage(starSoul.uid); isUpdateHuntStorageVersion = true; } exchangeStarSouls[i] = starSoul; } } } if (isUpdateStorageVersion) { StorageManagerment.Instance.starSoulStorageVersion++; } if (isUpdateHuntStorageVersion) { StorageManagerment.Instance.huntStarSoulStorageVersion++; } if (callback != null) { callback(exchangeExp, exchangeStarSouls); callback = null; } } else { UiManager.Instance.openDialogWindow <MessageWindow> ((win) => { win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null); }); } }
/// <summary> /// 回调读取通讯 /// </summary> /// <param name="message">Message.</param> public override void read(ErlKVMessage message) { int index = 0; ErlType erlType = message.getValue("msg") as ErlType; if (erlType is ErlArray) { ErlArray arr = erlType as ErlArray; StarSoulManager manager = StarSoulManager.Instance; StorageManagerment smanager = StorageManagerment.Instance; // 转化的经验 int exchangeExp = StringKit.toInt(arr.Value [index++].getValueString()); if (exchangeExp > 0) { StarSoulManager.Instance.addStarSoulExp(exchangeExp); } StarSoul[] exchangeStarSouls = null; StarSoul[] popStorageStarSouls = null; // 转换经验的星魂 ErlType exchangeStarSoulType = arr.Value [index++]; if (exchangeStarSoulType is ErlArray) { ErlArray exchangeStarSoulArr = exchangeStarSoulType as ErlArray; if (exchangeStarSoulArr.Value.Length > 0) { exchangeStarSouls = new StarSoul[exchangeStarSoulArr.Value.Length]; StarSoul starSoul; for (int i = 0; i < exchangeStarSoulArr.Value.Length; i++) { starSoul = smanager.getHuntStarSoul(exchangeStarSoulArr.Value[i].getValueString()); if (starSoul == null) { continue; } // 清理猎魂仓库 smanager.delHuntStarSoulStorage(starSoul.uid); // 构建显示数据 exchangeStarSouls[i] = starSoul; } StorageManagerment.Instance.huntStarSoulStorageVersion++; } } // 放入星魂仓库的星魂 ErlType popStorageStarSoulType = arr.Value [index++]; if (popStorageStarSoulType is ErlArray) { ErlArray popStorageStarSoulArr = popStorageStarSoulType as ErlArray; if (popStorageStarSoulArr.Value.Length > 0) { popStorageStarSouls = new StarSoul[popStorageStarSoulArr.Value.Length]; StarSoul starSoul; for (int i = 0; i < popStorageStarSoulArr.Value.Length; i++) { starSoul = smanager.getHuntStarSoul(popStorageStarSoulArr.Value[i].getValueString()); if (starSoul == null) { continue; } // 清理猎魂仓库 smanager.delHuntStarSoulStorage(starSoul.uid); // 添加星魂仓库 smanager.addStarSoulStorage(starSoul, true); // 构建显示数据 popStorageStarSouls[i] = starSoul; } StorageManagerment.Instance.starSoulStorageVersion++; StorageManagerment.Instance.huntStarSoulStorageVersion++; } } if (callback != null) { callback(exchangeExp, exchangeStarSouls, popStorageStarSouls); callback = null; } } else { UiManager.Instance.openDialogWindow <MessageWindow> ((win) => { win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null); }); } }