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