override public void parse(int sid, string str) { this.sid = sid; string[] strArr = str.Split('|'); //checkLength (strArr.Length, 30); //strArr[0] is sid //strArr[1] name this.name = strArr [1]; //strArr[2] iconId this.imageID = StringKit.toInt(strArr [2]); //strArr[2] iconId this.iconID = StringKit.toInt(strArr [3]); //strArr[3] levelId this.levelId = StringKit.toInt(strArr [4]); //strArr[4] qualityId this.qualityId = StringKit.toInt(strArr [5]); //strArr[5] maxLevel this.maxLevel = StringKit.toInt(strArr [6]); //strArr[6] starLevel this.starLevel = StringKit.toInt(strArr [7]); //strArr[7] baseLife this.baseLife = StringKit.toInt(strArr [8]); //strArr[8] baseAttack this.baseAttack = StringKit.toInt(strArr [9]); //strArr[9] baseDefecse this.baseDefecse = StringKit.toInt(strArr [10]); //strArr[10] baseMagic this.baseMagic = StringKit.toInt(strArr [11]); //strArr[11] baseAgile this.baseAgile = StringKit.toInt(strArr [12]); //strArr[12] developLife this.developLife = StringKit.toInt(strArr [13]); //strArr[13] developAttack this.developAttack = StringKit.toInt(strArr [14]); //strArr[14] developDefecse this.developDefecse = StringKit.toInt(strArr [15]); //strArr[15] developMagic this.developMagic = StringKit.toInt(strArr [16]); //strArr[16] developAgile this.developAgile = StringKit.toInt(strArr [17]); //strArr[17] deadWords this.deadWords = strArr [18]; //strArr[18] effectId this.effectId = StringKit.toInt(strArr [19]); //strArr[19] features parseFeatures(strArr [20]); //strArr[20] cardType this.cardType = StringKit.toInt(strArr [21]); //strArr[21] skillsNum parseSkillsNum(strArr [22]); //strArr[22] eatenExp this.eatenExp = StringKit.toInt(strArr [23]); //strArr[23] sell this.sell = StringKit.toInt(strArr [24]); //strArr[24] job this.job = StringKit.toInt(strArr [25]); //strArr[25] evolveSid this.evolveSid = StringKit.toInt(strArr [26]); parseSkills(strArr [27]); parseResolve(strArr [28]); parseAttrLevel(strArr [29]); this.evoStarLevel = StringKit.toInt(strArr [30]); this.bloodPointSid = StringKit.toInt(strArr[31]); this.sFlagLevel = StringKit.toInt(strArr[32]); if (strArr.Length > 33) { parseSameSid(strArr[33]); } }
//[40,1,[[[40000002,1]],[[[consume_rmb,6701]],[[[role_times,40000002],1]]]]] //[40,1,not_open|no_sid] public void parseInfo(ErlArray arr) { int activeID = StringKit.toInt(arr.Value[0].getValueString()); //活动id int activeType = StringKit.toInt(arr.Value[1].getValueString()); //活动类型 ErlArray temp = arr.Value[2] as ErlArray; int num; if (activeType == TYPEOF_CONSUME_REBATE) { temp = arr.Value[2] as ErlArray; if (temp == null || temp.Value.Length < 1) { initConsumeRebateGoods(activeID); } else { initConsumeRebateGoods(activeID, temp.Value[0] as ErlArray, temp.Value[1] as ErlArray); } } else if (activeType == TYPEOF_RECHARGE || activeType == TYPEOF_CONSUME) { temp = arr.Value[2] as ErlArray; if (temp == null || temp.Value.Length < 1) { initNewRecharge(activeID);//充值小活动 } else { num = StringKit.toInt(temp.Value[1].getValueString()); ErlArray ea = (temp.Value[0] as ErlArray).Value[0] as ErlArray; initNewRecharge(activeID, StringKit.toInt(ea.Value[1].getValueString()), num); } } else if (activeType == TYPEOF_EXCHANGE) { temp = arr.Value[2] as ErlArray; if (temp == null || temp.Value.Length < 1) { initNewExchange(activeID); } else { initNewExchange(activeID, temp.Value[0] as ErlArray, temp.Value[1] as ErlArray); } } else if (activeType == TYPEOF_DOUBLE_RMB) { //[55,5,1|not open] if (arr.Value[2].getValueString() == "1") { DoubleRMBManagement.Instance.isEnd = true; } initDoubleRmb(activeID, arr.Value[2].getValueString() == "1"); } else if (activeType == TYPEOF_EQUIP_REMAKE) { activeInfo.put(activeID, new DoubleRMBInfo(activeID, arr.Value[2].getValueString() == "1")); } else if (activeType == TYPEOF_LIMIT_COLLECT) { LimitCollectSample sample = LimitCollectSampleManager.Instance.getSampleBySid(activeID); if (sample != null) { sample.clearCollected(); } if (temp != null) { initLimitCollectData(activeID, temp); } } }
public override void read(ErlKVMessage message) { ErlArray array = message.getValue("msg") as ErlArray; if (array != null) { ArenaManager.instance.self = null; int state = ArenaManager.instance.state = StringKit.toInt(array.Value[0].getValueString()); ArenaManager.instance.stateEndTime = StringKit.toInt(array.Value[1].getValueString()); ArenaManager.instance.finalRound = StringKit.toInt(array.Value[2].getValueString()); ArenaManager.instance.finalCD = StringKit.toInt(array.Value[3].getValueString()) + 60; if (ArenaManager.instance.finalCD < 60) { ArenaManager.instance.finalDelay = ArenaManager.instance.finalCD; } else { ArenaManager.instance.finalDelay = 0; } if (state >= ArenaManager.STATE_64_32 && state <= ArenaManager.STATE_RESET) { array = array.Value[4] as ErlArray; ArenaManager.instance.finalInfoList = new List <ArenaFinalInfo>(); for (int i = 0; i < 127; i++) { int pos = 0; ErlArray arr = array.Value[i] as ErlArray; ArenaFinalInfo info = new ArenaFinalInfo(); info.startTime = StringKit.toInt(arr.Value[pos++].getValueString()); if (arr.Value.Length > 2) { info.guessStartTime = StringKit.toInt(arr.Value[pos++].getValueString()); info.guessEndTime = StringKit.toInt(arr.Value[pos++].getValueString()); info.uid = arr.Value[pos++].getValueString(); info.userName = arr.Value[pos++].getValueString(); info.userIcon = StringKit.toInt(arr.Value[pos++].getValueString()); info.lose = bool.Parse(arr.Value[pos++].getValueString()); info.index = StringKit.toInt(arr.Value[pos++].getValueString()); info.guessed = bool.Parse(arr.Value[pos++].getValueString()); } else if (arr.Value[pos].getValueString() != "none") { info.userId = arr.Value[pos].getValueString(); } ArenaManager.instance.finalInfoList.Add(info); } } else { ArenaManager.instance.finalInfoList = null; } } else { ArenaManager.instance.finalInfoList = null; ArenaManager.instance.state = -1; } if (callback != null) { callback(); callback = null; } }
public override void read(ErlKVMessage message) { base.read(message); ErlType type = message.getValue("msg") as ErlType; if (type.getValueString() == "ok") { ErlList list = message.getValue("info") as ErlList; ErlArray itemArray; string key; TurnSpriteData data = new TurnSpriteData(); for (int i = 0; i < list.Value.Length; i++) { itemArray = list.Value [i] as ErlArray; key = itemArray.Value [0].getValueString(); switch (key) { case "cd": data.cd = StringKit.toInt(itemArray.Value [1].getValueString()); break; case "num": data.num = StringKit.toInt(itemArray.Value [1].getValueString()); break; case "max_num": data.num_max = StringKit.toInt(itemArray.Value[1].getValueString()); break; case "last_time": data.lastTime = StringKit.toInt(itemArray.Value [1].getValueString()); break; case "pool": ErlArray poolArray = itemArray.Value[1] as ErlArray; for (int k = 0; k < poolArray.Value.Length; k++) { ErlArray rewardArray = poolArray.Value[k] as ErlArray; TurnSpriteReward reward = new TurnSpriteReward(); int offset = 0; reward.num = StringKit.toInt(rewardArray.Value[offset++].getValueString()); reward.type = rewardArray.Value[offset++].getValueString(); reward.sid = StringKit.toInt(rewardArray.Value[offset++].getValueString()); data.rewardList.Add(reward); } break; } } if (sid == 0) { NoticeManagerment.Instance.turnSpriteData = data; } else { NoticeManagerment.Instance.xs_turnSpriteData = data; } if (callBack != null) { callBack(); callBack = null; } } }
/// <summary> /// 占卜后回调 /// </summary> /// <param name="num">增加运势.</param> /// <param name="awardSid">基础奖励sid.</param> /// <param name="shareAward">分享额外增加运势.</param> private void OnDivineSendBack(int num, int awardSid, int shareAward) { UserManager.Instance.self.canDivine = false; nvshen.SetActive(false); int add = num; //num - UserManager.Instance.self.divineFortune; if (add <= 0) { finishWindow(); return; } Destroy(effect); if (shareAward > 0) { lblYunShiTitle.text = LanguageConfigManager.Instance.getLanguage("divine_01", UserManager.Instance.self.divineFortune.ToString(), add.ToString(), shareAward.ToString()); } else { lblYunShiTitle.text = LanguageConfigManager.Instance.getLanguage("divine_010", UserManager.Instance.self.divineFortune.ToString(), add.ToString()); } int max = StringKit.toInt(LanguageConfigManager.Instance.getLanguage("divine_yunshi_" + add + "_count")); int random = Random.Range(0, max); lblYunShiContent.text = LanguageConfigManager.Instance.getLanguage("divine_yunshi_" + add + "_" + random); lblMyInfo.text = LanguageConfigManager.Instance.getLanguage("divine_06", UserManager.Instance.self.divineFortune.ToString(), add.ToString()); if (shareAward > 0) { lblMyInfo.text += string.Format(Colors.RED + LanguageConfigManager.Instance.getLanguage("divine_07") + "[-]", shareAward); } //刷新我的运势 //int oldDivineFortune = UserManager.Instance.self.divineFortune; int addTotalValue = num + shareAward; UserManager.Instance.self.addDivineFortune(addTotalValue); //隐藏占卜前的奖励提示 awards [0].transform.parent.parent.gameObject.SetActive(true); // awardText01.gameObject.SetActive (false); awardText02.gameObject.SetActive(false); awardTips01.gameObject.SetActive(false); awardTips02.gameObject.SetActive(false); //获得奖励样本 ArenaAwardSample sample = ArenaAwardSampleManager.Instance.getArenaAwardSampleBySid(awardSid); int awardConut = 0; if (sample != null) { PrizeSample[] ps = sample.prizes; for (int i = 0; i < awards.Length && ps != null && i < ps.Length; i++) { awards [i].gameObject.SetActive(true); awards [i].init(ps [i]); awards [i].fatherWindow = this; awardConut = i; } } //根据运势值获得的奖励 int divineFortune = UserManager.Instance.self.divineFortune; int oldDivineFortune = divineFortune - addTotalValue; List <ArenaAwardSample> infoList = ArenaAwardSampleManager.Instance.getSamplesByType(AWARD_TYPE); ArenaAwardSample a; PrizeSample[] sampleAward = null; for (int i = 0; i < infoList.Count; ++i) { a = infoList[i]; if (a.condition == 0) { continue; } if (oldDivineFortune < a.condition && divineFortune >= a.condition) { sampleAward = a.prizes; } } // List<ArenaAwardSample> infoList = ArenaAwardSampleManager.Instance.getSamplesByType (AWARD_TYPE); // PrizeSample[] sampleAward = null; // for (int i = 0; i < infoList.Count; i++) { // if (infoList [i].condition != 0 && divineFortune == infoList [i].condition && i + 1 < infoList.Count && divineFortune < infoList [i + 1].condition) { // sampleAward = infoList [i].prizes; // } else if (infoList [i].condition != 0 && divineFortune >= infoList [i].condition && i + 1 >= infoList.Count) { // sampleAward = infoList [i].prizes; // } // } if (sampleAward != null) { for (int j = 0; j < sampleAward.Length; j++) { awards [3 + j].gameObject.SetActive(true); awards [3 + j].init(sampleAward [j]); awards [3 + j].fatherWindow = this; } } btnDivine.SetActive(false); btnDivineShare.SetActive(false); btnClose.SetActive(true); updateExp(); yunshi.SetActive(true); MaskWindow.UnlockUI(); //TextTipWindow.Show(LanguageConfigManager.Instance.getLanguage("divine_03")); }