public void access(ErlConnect connect, ErlKVMessage message, ReceiveFun receiveFun, List<object> argus, long timeOut) { ByteBuffer data = new ByteBuffer(); message.bytesWrite(data); //this._list.Add(new ErlEntry(connect, message.getPort(), receiveFun, argus, timeOut + TimeKit.getMillisTime())); connect.sendErl(data, 1, 1, 1, 1); }
public override void erlReceive(Connect connect, ErlKVMessage message) { if (!MiniConnectManager.IsRobot ) { try { // Log.debug("===============this is socketReceive! cmd=" + message.Cmd + " jsonString " + message.toJsonString(),true); } catch (Exception exception) { //Log.debug(" =================== : " + exception.ToString(),true); } } string cmd = message.Cmd; switch (cmd) { case "r_ok": case "r_err": { int port = message.getPort(); ErlEntry entry = this.removeReciveFun(port); if ((entry == null) || (entry.receiveFun == null)) { return; } entry.receiveFun(connect, message); break; } default: message.addValue("cmd", new ErlString(cmd)); this.defaultHandle(connect, message); break; } }
public void readMessage(ErlKVMessage message) { string str = message.Cmd; Log.Info (str); Log.Info (message.toJsonString ()); BaseFPort bf = null; foreach (string key in BaseFPort.portDict.Keys) { if (key.Contains (str)||str.Contains(key)) { bf = BaseFPort.portDict [key]; } } if (bf != null) { bf.erlConnect = this.erlConnect; bf.read (message); } else { switch (str) { case "echo": ErlKVMessage _messag = new ErlKVMessage ("r_ok"); _messag.addValue (null, new ErlInt (message.getPort ())); base.send (this.erlConnect, _messag); break; case "/yxzh/home_port/get_info": ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); msg.addValue ("msg", new ErlAtom ("home_not_open")); base.send (this.erlConnect, msg); break; case "/yxzh/ww_guild_child_fore_port/get_switch": ErlKVMessage msg1 = new ErlKVMessage ("r_ok"); msg1.addValue (null, new ErlInt (message.getPort ())); msg1.addValue ("msg", new ErlByte (1)); base.send (this.erlConnect, msg1); break; case "/yxzh/question/get_questions": case "/yxzh/week_award/init": case "/yxzh/expedition/get_base_info": case "/yxzh/opentask/get_opentasks": case "/yxzh/title/get_title": case "/yxzh/affiche/get_active_notice": //break; default: //Log.Error (message.Cmd); String strValue = ConfigHelper.GetAppConfig (message.Cmd); ErlKVMessage dmsg = new ErlKVMessage ("r_ok"); dmsg.addValue (null, new ErlInt (message.getPort ())); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); dmsg.addValue ("msg", ea); base.send (this.erlConnect, dmsg); break; } } }
public override void read(ErlKVMessage message) { if (this.erlConnect != null) { ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); msg.addValue ("msg", new ErlAtom ("error")); base.send (this.erlConnect, msg); } }
public void login(string url, int sid, string deviceId, string dns, string appVersion, CallBack callback) { //this.initUser = callback; this.callback = callback; ErlKVMessage message = new ErlKVMessage("/yxzh/user_login"); message.addValue("url", new ErlString(url)); message.addValue("server", new ErlInt(sid)); message.addValue("deviceId", new ErlString(deviceId)); message.addValue("dns", new ErlString(dns)); message.addValue("version", new ErlString(appVersion)); base.access(message); }
public override void erlReceive(Connect connect, ErlKVMessage message) { //this.readMessage (message); //Log.Info ("+++++111111111---222222222" + this.isSend + "+++++++++++"); /*if (messagePort!=0&& messagePort == message.getPort()) { String strValue = ConfigHelper.GetAppConfig ("/yxzh/role/get_user"); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (messagePort)); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); if (this.erlConnect.dataBuffer.bytesAvailable > 0) { byte[] bts = new byte[this.erlConnect.dataBuffer.bytesAvailable]; this.dataBuffer.readBytes (bts, 0, (int)this.erlConnect.dataBuffer.bytesAvailable); this.erlConnect.socket.Send (bts); this.dataBuffer = new ByteBuffer (bts); } isSend = true; } */ FilterCmdManager.Instance.procPort (message.Cmd, message.getPort ()); /*(if (message.Cmd == "/yxzh/miai_port/get_info") { messagePort = message.getPort(); needProcPortDict.Add (message.getPort(), message.Cmd); } */ Log.Info(message.Cmd+"|"+ message.toJsonString()); //if (!isSend && this.erlConnect.transCallBack != null) { //this.erlConnect.transCallBack.Invoke (); int len = (int)this.dataBuffer.bytesAvailable; int pos = this.dataBuffer.position; byte[] tmp = new byte[len]; byte[] bak = new byte[pos]; this.dataBuffer.position = 0; this.dataBuffer.readBytes (bak, 0, pos); this.dataBuffer.readBytes (tmp, 0, len); this.dataBuffer.clear (); this.dataBuffer = new ByteBuffer (tmp); Log.Debug ("ConnectCount.getInstance().number=" + ConnectCount.getInstance ().number); //base.erlConnect.socket.Send (bak); if (this.dataBuffer.bytesAvailable > 0) { this.receive (null, this.isServer); } }
public override void read(ErlKVMessage message) { if (this.erlConnect != null) { string stype = (message.getValue ("type") as ErlString).Value; ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); String strValue = ConfigHelper.GetAppConfig (message.Cmd +"_" + stype); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ub = new ErlArray (et); msg.addValue ("msg", ub); base.send (this.erlConnect, msg); } }
public override void read(ErlKVMessage message) { if (this.erlConnect != null) { //user 返回值 String strValue = ConfigHelper.GetAppConfig (message.Cmd); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); } }
public override void read(ErlKVMessage message) { if (this.erlConnect != null) { ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); //"sids":[],"number":0,"buy":0,"act_free":0,type:502,"pstep":41 msg.addValue ("sids", new ErlArray (new ErlType[0])); msg.addValue ("number", new ErlInt (0)); msg.addValue ("buy", new ErlInt (0)); msg.addValue ("act_free", new ErlInt (0)); msg.addValue ("type", new ErlInt (502)); msg.addValue ("pstep", new ErlInt (41)); base.send (this.erlConnect, msg); } }
public override void read(ErlKVMessage message) { string str = message.Cmd; switch (str) { case "/yxzh/active_port/get_active_info": //ErlArray eaa = (message.getValue ("sid") as ErlType).getValueString (); String strValus = (message.getValue ("sid") as ErlType).getValueString (); if (strValus != null && strValus.Split(',').Length > 1) { strValus = ConfigHelper.GetAppConfig (message.Cmd); } else { strValus = (message.getValue ("sid") as ErlType).getValueString (); strValus = ConfigHelper.GetAppConfig(message.Cmd + "_" + strValus); } if (this.erlConnect != null) { // /yxzh/title/get_title 返回值 ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); //String strValue = ConfigHelper.GetAppConfig (message.Cmd); ErlType[] et = StringKit.strToErlTypeArray (strValus); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); } break; case "/yxzh/active_port/get_text_notice": default: if (this.erlConnect != null) { // /yxzh/title/get_title 返回值 ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); String strValue = ConfigHelper.GetAppConfig (message.Cmd); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); Log.Debug (msg.toJsonString ()); } break; } }
public override void ping() { long num = TimeKit.getMillisTime(); // if ((GameManager.Instance.lastUpdateTime != 0) && ((num - GameManager.Instance.lastUpdateTime) >= 0x3e8L)) // { // MaskWindow.NetLockMaskHide(); // } // else { Connect[] connectArray = base.connectArray.ToArray(); for (int i = connectArray.Length - 1; i >= 0; i--) { ErlConnect connect = connectArray[i] as ErlConnect; if (connect.Active && ((num - connect.PingTime) >= 0x3e8L)) { connect.PingTime = num; ErlKVMessage message = new ErlKVMessage("echo"); DataAccess.getInstance().access(connect, message, new ReceiveFun(this.pingHandle), null, 0x4e20L); } } } }
public Boolean procCmd(int _port , BaseFPort fport) { if (needProcCmdDict.ContainsKey(_port)) { string cCmd = needProcCmdDict [_port]; if (FilterCmdDict [cCmd]._count >= FilterCmdDict [cCmd]._beginCount) { String strValue = ConfigHelper.GetAppConfig (cCmd); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (_port)); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); Log.Info(msg.Cmd+"|"+ msg.toJsonString()); ByteBuffer data = new ByteBuffer(); //data.writeBytes (mybak); msg.bytesWrite(data); data.top = (int)data.bytesAvailable; byte[] tmpdata= new byte[(int)data.bytesAvailable]; data.readBytes (tmpdata, 0, tmpdata.Length); fport.erlConnect.tmpBuffer.position = 0; Log.Info (fport.erlConnect.tmpBuffer) ; ByteBuffer tmp1 = new ByteBuffer(); tmp1.writeBytes (tmpdata); //this.erlConnect.send (this.erlConnect.tmpBuffer); if (fport.erlConnect.socket.Connected) { fport.send (fport.erlConnect, msg); } else { Log.Info ("客户端已断开不再回传"); } //base.erlConnect.socket.Send (bak); FilterCmdDict [cCmd]._count--; Log.Info ("处理完成的CMD[" + cCmd + "]"); return true ; } } return false; }
public override void erlReceive(Connect connect, ErlKVMessage message) { //this.readMessage (message); //Log.Info ("+++++111111111---222222222" + this.isSend + "+++++++++++"); /*if (messagePort!=0&& messagePort == message.getPort()) { String strValue = ConfigHelper.GetAppConfig ("/yxzh/role/get_user"); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (messagePort)); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); if (this.erlConnect.dataBuffer.bytesAvailable > 0) { byte[] bts = new byte[this.erlConnect.dataBuffer.bytesAvailable]; this.dataBuffer.readBytes (bts, 0, (int)this.erlConnect.dataBuffer.bytesAvailable); this.erlConnect.socket.Send (bts); this.dataBuffer = new ByteBuffer (bts); } isSend = true; }*/ if (message.Cmd == "/yxzh/role/get_user") { messagePort = message.getPort(); } Log.Info(message.Cmd+"|"+ message.toJsonString()); //if (!isSend && this.erlConnect.transCallBack != null) { //this.erlConnect.transCallBack.Invoke (); if (!this.isServer) { ByteBuffer bf = (ByteBuffer)this.erlConnect.dataBuffer.Clone (); int pos = bf.position; bf.position = 0; this.erlConnect.socket.Send (bf.getArray ()); } //this.erlConnect.dataBuffer.position = pos; //} isSend = false; }
public override void read(ErlKVMessage message) { if (this.erlConnect != null) { //登陆成功返回值 ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue ("msg", new ErlAtom ("login_ok")); msg.addValue (null, new ErlInt (message.getPort ())); base.send (this.erlConnect, msg); //guild 返回值 String strValue = ConfigHelper.GetAppConfig ("guild"); msg = new ErlKVMessage ("guild"); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("guild_skill", ea); base.send (this.erlConnect, msg); //chat 返回值 strValue = ConfigHelper.GetAppConfig ("chat"); msg = new ErlKVMessage ("chat"); et = StringKit.strToErlTypeArray (strValue); ea = new ErlArray (et); msg.addValue ("msg2", ea); base.send (this.erlConnect, msg); } }
public void parseKVMsg(ErlKVMessage message) { ErlList data = message.getValue("msg") as ErlList; if (data == null) { string msg = (message.getValue("msg") as ErlType).getValueString(); SweepManagement.Instance.clearData(); if (callback != null) { callback(); callback = null; } return; } int sweepTimes = 0; int sweepCDTime = 0; int sweepMissionSid = 0; int sweepMissionLevel = 0; int state = 0; int startTime = 0; int pvpCount = 0; int arrayID = 0; int length = data.Value.Length; ErlArray itemArray; string key; int value; for (int i = 0; i < length; i++) { itemArray = data.Value[i] as ErlArray; key = itemArray.Value[0].getValueString(); value = StringKit.toInt(itemArray.Value[1].getValueString()); switch (key) { case "pvp_num": pvpCount = value; break; case "start_time": startTime = value; break; case "cd": sweepCDTime = value; break; case "sweep_num": sweepTimes = value; break; case "fb_id": sweepMissionSid = value; break; case "fb_lv": sweepMissionLevel = value; break; case "state": state = value; break; case "array_id": arrayID = value; break; } } SweepManagement.Instance.initPvpNum(pvpCount); SweepManagement.Instance.SweepCostTime = sweepCDTime; SweepManagement.Instance.M_updateSweepInfo(state, sweepMissionSid, sweepMissionLevel, sweepTimes, startTime, arrayID); }
public override void read(ErlKVMessage message) { string str = (message.getValue("msg") as ErlAtom).Value; }
// /// <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); }); } }
//解析ErlKVMessgae public void parseKVMsg(ErlKVMessage message) { }
public override void read(ErlKVMessage message) { }
public override void read(ErlKVMessage message) { parseKVMsgTypeInit(message); if (callback != null) { callback(); } // base.read (message); // // switch(sendType) // { // //初始化我的分享 // case TYPE_INIT: // ErlType msg = message.getValue ("msg") as ErlType; // // if (msg is ErlArray) { // ErlArray array = msg as ErlArray; // // if (array == null) // return ; // // FriendsShareManagerment.Instance.createFriendsShareByErlArray(array); // // if (callback != null) // callback (); // } // else { // MonoBase.print (GetType () + "============error:"+msg); // } // break; // // //一键分享给好友 // case TYPE_SHARE: // ErlType msgSHARE = message.getValue ("msg") as ErlType; // // if (msgSHARE is ErlArray) { // ErlArray array = msgSHARE as ErlArray; // // if (array == null) // return ; // // FriendsShareManagerment.Instance.setShareInfoUse(); // // int j = 0; // int sid = StringKit.toInt (array.Value [j++].getValueString ()); // int num = StringKit.toInt (array.Value [j++].getValueString ()); // // MonoBase.print("-------------------------------------->>>>sid="+sid + ",num="+num); // if (callbackII != null) // callbackII(sid,num); // } // else { // MonoBase.print (GetType () + "============error:"+msgSHARE); // } // break; // // //一键点赞 // case TYPE_PRAISE: // ErlType msgPRAISE = message.getValue ("msg") as ErlType; // // if (msgPRAISE is ErlArray) { // ErlArray array = msgPRAISE as ErlArray; // // if (array == null) // return ; // // int j = 0; // int sid = StringKit.toInt (array.Value [j++].getValueString ()); // int num = StringKit.toInt (array.Value [j++].getValueString ()); // int praiseNum = StringKit.toInt (array.Value [j++].getValueString ()); // int money = StringKit.toInt (array.Value [j++].getValueString ()); // // FriendsShareManagerment.Instance.setPraiseNum(praiseNum); // FriendsShareManagerment.Instance.setPraiseInfoUse(praiseNum); // MonoBase.print("-------------------------------------->>>>sid="+sid + ",num="+num + ",use=" + praiseNum); // if (callbackIIII != null) // callbackIIII(sid,num,praiseNum,money); // } // else { // MonoBase.print (GetType () + "============error:"+msgPRAISE); // } // break; // } }
/// <summary> /// 回调读取通讯 /// </summary> /// <param name="message">Message.</param> public override void read(ErlKVMessage message) { base.read(message); parseKVMsg(message); }
public override void read(ErlKVMessage message) { ErlType erl = message.getValue("msg") as ErlType; if (erl is ErlArray) { GodsWarFinalPoint user; GodsWarFinalUserInfo finaluser; List <GodsWarFinalUserInfo> fianlInfo; List <GodsWarFinalPoint> infos; ErlArray erlarry = erl as ErlArray; int pos = 0; ErlArray array = erlarry.Value[pos++] as ErlArray; if (array.Value.Length > 0) { fianlInfo = new List <GodsWarFinalUserInfo>(); for (int i = 0; i < array.Value.Length; i++) { finaluser = new GodsWarFinalUserInfo(); finaluser.bytesReadFive(array.Value[i] as ErlArray); if (finaluser.uid != null) { fianlInfo.Add(finaluser); } } if (fianlInfo != null) { GodsWarManagerment.Instance.shenMoUserlist = fianlInfo; } } ErlArray tmp = erlarry.Value[pos++] as ErlArray; if (tmp.Value.Length > 0) { infos = new List <GodsWarFinalPoint>(); for (int j = 0; j < tmp.Value.Length; j++) { user = new GodsWarFinalPoint(); user.bytesRead(tmp.Value[j] as ErlArray); if (user.localID != 0) { infos.Add(user); } } if (infos != null) { GodsWarManagerment.Instance.shenMoPointlist = infos; } } if (callback != null) { callback(); } } else { MessageWindow.ShowAlert(erl.getValueString()); if (callback != null) { callback = null; } } }
public override void read(ErlKVMessage message) { parseMsg(message); // Debug.LogWarning("WeeklyAwardFPort over"); callback(); }
//执行ping通信返回消息的执行方法 protected virtual void pingHandle(ErlConnect connect, ErlKVMessage erlMessage) { }
public override void read(ErlKVMessage message) { // RankManagerment.Instance.combatList.Clear (); // RankManagerment.Instance.guildList.Clear (); // RankManagerment.Instance.moneyList.Clear (); // RankManagerment.Instance.pvpList.Clear (); // RankManagerment.Instance.roleList.Clear (); // // long minNextUpdateTime = long.MaxValue; // ErlArray array = message.getValue ("msg") as ErlArray; // ErlType[] types = array.Value; // for (int i = 0; i < types.Length; i++) { // ErlArray arlItem = types[i] as ErlArray; // int type = StringKit.toInt(arlItem.Value[0].getValueString()); // long nextUpdateTIme = StringKit.toInt(arlItem.Value[1].getValueString()); // minNextUpdateTime = nextUpdateTIme < minNextUpdateTime ? nextUpdateTIme : minNextUpdateTime; // ErlArray values = arlItem.Value[2] as ErlArray; // for(int j = 0; j < values.Value.Length; j++) // { // ErlArray vs = values.Value[j] as ErlArray; // switch(type) // { // case RankManagerment.TYPE_COMBAT: // RankItemCombat rankItemCombat = new RankItemCombat(); // rankItemCombat.uid = vs.Value[0].getValueString(); // rankItemCombat.name = vs.Value[1].getValueString(); // rankItemCombat.combat = StringKit.toInt(vs.Value[2].getValueString()); // RankManagerment.Instance.combatList.Add(rankItemCombat); // if(rankItemCombat.uid == UserManager.Instance.self.uid) // RankManagerment.Instance.myRank[0] = j + 1; // break; // // case RankManagerment.TYPE_PVP: // RankItemPVP rankItemPVP = new RankItemPVP(); // rankItemPVP.uid = vs.Value[0].getValueString(); // rankItemPVP.name = vs.Value[1].getValueString(); // rankItemPVP.win = StringKit.toInt(vs.Value[2].getValueString()); // RankManagerment.Instance.pvpList.Add(rankItemPVP); // if(rankItemPVP.uid == UserManager.Instance.self.uid) // RankManagerment.Instance.myRank[1] = j + 1; // break; // // case RankManagerment.TYPE_MONEY: // RankItemMoney rankItemMoney = new RankItemMoney(); // rankItemMoney.uid = vs.Value[0].getValueString(); // rankItemMoney.name = vs.Value[1].getValueString(); // rankItemMoney.money = StringKit.toInt(vs.Value[2].getValueString()); // RankManagerment.Instance.moneyList.Add(rankItemMoney); // if(rankItemMoney.uid == UserManager.Instance.self.uid) // RankManagerment.Instance.myRank[2] = j + 1; // break; // // case RankManagerment.TYPE_ROLE: // RankItemRole rankItemRole = new RankItemRole(); // rankItemRole.uid = vs.Value[0].getValueString(); // rankItemRole.name = vs.Value[1].getValueString(); // rankItemRole.cardUid = vs.Value[2].getValueString(); // rankItemRole.cardName = vs.Value[3].getValueString(); // RankManagerment.Instance.roleList.Add(rankItemRole); // if(rankItemRole.uid == UserManager.Instance.self.uid) // RankManagerment.Instance.myRank[3] = j + 1; // break; // // case RankManagerment.TYPE_GUILD: // RankItemGuild rankItemGuild = new RankItemGuild(); // rankItemGuild.gid = vs.Value[0].getValueString(); // rankItemGuild.name = vs.Value[1].getValueString(); // rankItemGuild.score = StringKit.toInt(vs.Value[2].getValueString()); // RankManagerment.Instance.guildList.Add(rankItemGuild); // break; // } // // } // // } // // RankManagerment.Instance.nextUpdateTime = minNextUpdateTime; if (callback != null) { callback(); } }
public void onTimer() { try { List<ErlEntry> list = this._list; lock (list) { foreach (ErlEntry entry in this._list.ToArray()) { if (entry.timeOut <= TimeKit.getMillisTime()) { this._list.Remove(entry); if (entry.receiveFun != null) { ErlKVMessage message = new ErlKVMessage("r_timeOut"); List<object> argus = entry.argus; this.defaultHandle(entry.connect, message); } } } } } catch (Exception) { } }
public override void read(ErlKVMessage message) { // ErlType str = message.getValue ("msg") as ErlType; // if(str.getValueString() == "ok") // { // ErlType type = message.getValue ("info") as ErlType; // if(type is ErlArray) // { // ErlArray array = type as ErlArray; // int time = StringKit.toInt(array.Value[0].getValueString()); // string rule = array.Value[1].getValueString(); // int round = StringKit.toInt(array.Value[2].getValueString()); // ErlArray arrays = array.Value[3] as ErlArray; // int max = arrays.Value.Length; // int index = 0; // List<PvpOppInfo> oppList = new List<PvpOppInfo>(); // for (int i = 0; i < max; i++) { // ErlArray list = arrays.Value[i] as ErlArray; // string uid = list.Value[index++].getValueString(); // string name = list.Value[index++].getValueString(); // string guildName = list.Value[index++].getValueString(); // int headIcon = StringKit.toInt(list.Value[index++].getValueString()); // long exp = StringKit.toLong(list.Value[index++].getValueString()); // int state = StringKit.toInt(list.Value[index++].getValueString()); // ErlArray lists = list.Value[index++] as ErlArray; // int combat = StringKit.toInt(list.Value[index++].getValueString()); // index = 0; // int formation = StringKit.toInt(lists.Value[index++].getValueString()); // ErlArray bArray = lists.Value[index++] as ErlArray; // int beastSid = 0; // int beastExp = 0; // string beastUid = ""; // if(bArray.Value.Length != 0) // { // beastSid = StringKit.toInt(bArray.Value[0].getValueString()); // beastExp = StringKit.toInt(bArray.Value[1].getValueString()); // beastUid = bArray.Value[2].getValueString(); // } // ErlArray tArray = lists.Value[index++] as ErlArray; // index = 0; // List<PvpOppTeam> ptList = new List<PvpOppTeam>(); // for (int j = 0; j < tArray.Value.Length; j++) { // ErlArray ea = tArray.Value[j] as ErlArray; // if(ea.Value.Length != 0) // { // int teamOppSid = StringKit.toInt(ea.Value[0].getValueString()); // int teamOppExp = StringKit.toInt(ea.Value[1].getValueString()); // string teamOppUid = ea.Value[2].getValueString(); // int evoLevel = StringKit.toInt(ea.Value[3].getValueString()); // int surLevel = StringKit.toInt(ea.Value[4].getValueString()); // int teamOppIndex = j; // PvpOppTeam pt = new PvpOppTeam(teamOppSid,teamOppExp,teamOppIndex,teamOppUid,evoLevel,surLevel); // ptList.Add(pt); // } // } // oppList.Add(new PvpOppInfo(uid, name, guildName, headIcon, exp, state, formation, beastSid, beastExp, beastUid, ptList.ToArray(), combat)); // } // PvpInfoManagerment.Instance.createPvpInfo(time,rule,round,oppList.ToArray()); // } parseKVMsg(message); if (callback != null) { callback(); } }
public override void read(ErlKVMessage message) { ErlArray array = message.getValue("msg") as ErlArray; if (array != null) { int pos = 0; GodsWarUserInfo user = new GodsWarUserInfo(); user.bigTeam = array.Value [pos++].getValueString(); user.smallTeam = changeTeamtype(StringKit.toInt(array.Value [pos++].getValueString())); user.rank = StringKit.toInt(array.Value [pos++].getValueString()); user.numOfWinning = StringKit.toInt(array.Value [pos++].getValueString()); user.usedChallgeNum = StringKit.toInt(array.Value [pos++].getValueString()); user.todayIntegral = StringKit.toInt(array.Value [pos++].getValueString()); user.totalIntegral = StringKit.toInt(array.Value [pos++].getValueString()); GodsWarManagerment.Instance.challengeCount = user.usedChallgeNum; //已经挑战的次数 GodsWarManagerment.Instance.maxChallengeCount = GodsWarInfoConfigManager.Instance().getSampleBySid(1001).num[0]; //最大挑战次数 ErlType tmp = new ErlType(); ErlArray enemyArray = array.Value [pos++] as ErlArray; if (enemyArray != null) { List <GodsWarUserInfo> list = new List <GodsWarUserInfo> (); list.Clear(); for (int i = 0; i < enemyArray.Value.Length; i++) { tmp = enemyArray.Value [i]; ErlArray empArray = tmp as ErlArray; GodsWarUserInfo enemy = new GodsWarUserInfo(); enemy.massPosition = i; if (empArray.Value.Length == 0) { enemy.uid = "-1"; list.Add(enemy); continue; } //如果为0表示该位置没有对手 int tmpPos = 0; enemy.serverName = empArray.Value [tmpPos++].getValueString(); enemy.uid = empArray.Value [tmpPos++].getValueString(); enemy.name = empArray.Value [tmpPos++].getValueString(); enemy.headIcon = StringKit.toInt(empArray.Value [tmpPos++].getValueString()); enemy.level = StringKit.toInt(empArray.Value [tmpPos++].getValueString()); enemy.winScore = StringKit.toInt(empArray.Value [tmpPos++].getValueString()); enemy.challengedWin = StringKit.toInt(empArray.Value [tmpPos++].getValueString()) == 1; list.Add(enemy); } GodsWarManagerment.Instance.setEnemyList(list); GodsWarManagerment.Instance.self = user; } List <int> scores = new List <int>(); ErlArray mpt = array.Value[pos++] as ErlArray; if (mpt.Value.Length != 0) { for (int i = 0; i < mpt.Value.Length; i++) { scores.Add(StringKit.toInt(mpt.Value[i].getValueString())); } GodsWarManagerment.Instance.currentScores = scores; } else { GodsWarManagerment.Instance.currentScores = null; } if (callback != null) { callback(); } } else { MessageWindow.ShowAlert((message.getValue("msg") as ErlType).getValueString()); if (callback != null) { callback = null; } } }
public override void read(ErlKVMessage message) { this.parseKVMsg(message); this.callback(); }
public override void read(ErlKVMessage message) { if (sendType == TYPE_INIT) { ErlType msg = message.getValue("msg") as ErlType; if (msg is ErlArray) { ErlArray array = msg as ErlArray; if (array == null) { return; } SdkFriendManager.Instance.createsdkFriendsInfos(array); if (callBack != null) { callBack(); } } } else if (sendType == TYPE_SEND) { string msg = (message.getValue("msg") as ErlType).getValueString(); if (msg != null) { if (callbacks != null) { callbacks(msg); } } } else if (sendType == TYPE_GET) { string msg = (message.getValue("msg") as ErlType).getValueString(); if (msg != null) { if (callbacks != null) { callbacks(msg); } } } else if (sendType == TYPE_INVITE) { string msg = (message.getValue("msg") as ErlType).getValueString(); if (msg != null) { if (callbacks != null) { callbacks(msg); } } } else if (sendType == TYPE_PRIZE_INIT) { ErlType msg = message.getValue("msg") as ErlType; if (msg is ErlArray) { ErlArray array = msg as ErlArray; if (array == null) { return; } if (callbackA != null) { callbackA(array); } } } else if (sendType == TYPE_PRIZE_LEVELINIT) { ErlType msg = message.getValue("msg") as ErlType; if (msg is ErlArray) { ErlArray array = msg as ErlArray; if (array == null) { return; } if (callbackA != null) { callbackA(array); } } } else if (sendType == TYPE_REBATK_MSG) { ErlType msg = message.getValue("msg") as ErlType; if (msg is ErlArray) { ErlArray array = msg as ErlArray; if (callbackA != null) { callbackA(array); } } } else if (sendType == TYPE_PRIZE_GET) { string msg = (message.getValue("msg") as ErlType).getValueString(); if (msg != null) { if (callbacks != null) { callbacks(msg); } } } else if (sendType == TYPE_ADD_SDKFRIEND) { string msg = (message.getValue("msg") as ErlType).getValueString(); if (msg != null) { if (callbacks != null) { callbacks(msg); } } } }
public override void read(ErlKVMessage message) { //海选报名前台不在乎结果 }
public void access() { ErlKVMessage message = new ErlKVMessage(FrontPort.ARENA_APPLY); access(message); }
public override void read(ErlKVMessage message) { ErlType type = message.getValue("msg") as ErlType; if (type is ErlArray) { ErlArray stateArray = type as ErlArray; string state = stateArray.Value[0].getValueString(); if (t == 0) { if (state == "0") { NoticeManagerment.Instance.setAlchemyNum(NoticeManagerment.Instance.getAlchemyNum() + 1); if (callback != null) { callback(1, 0); } } else if (state == "1") { NoticeManagerment.Instance.setAlchemyNum(NoticeManagerment.Instance.getAlchemyNum() + 1); if (callback != null) { callback(2, 0); } } else { MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("AlchemyContent03")); if (callback != null) { callback(0, 0); } } } else { int index = StringKit.toInt(state); if (index <= 10 && index >= 0) { NoticeManagerment.Instance.setAlchemyNum(NoticeManagerment.Instance.getAlchemyNum() + 10); if (callback != null) { long num = StringKit.toLong(stateArray.Value[1].getValueString()); callback(num, index); } else { MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("AlchemyContent03")); if (callback != null) { callback(-1, 0); } } } } } else { MessageWindow.ShowAlert(type.getValueString()); if (callback != null) { callback = null; } } }
public void access(CallBack <string> callback) { ErlKVMessage message = new ErlKVMessage(FrontPort.ACTIVE_LIST); access(message); }
public override void read(ErlKVMessage message) { parseMsg(message); }
//处理后台信息 public void initInfoByServer(ErlKVMessage message) { infoByServer = new GoddessAstrolabeInfo(); ErlType msgStar = message.getValue("star_point") as ErlType; if (msgStar != null) { ErlArray arr = msgStar as ErlArray; infoByServer.openStars = new int[arr.Value.Length]; for (int i = 0; i < arr.Value.Length; i++) { infoByServer.openStars [i] = StringKit.toInt((arr.Value [i] as ErlType).getValueString()); } } ErlType msgStarScore = message.getValue("star_score") as ErlType; if (msgStarScore != null) { infoByServer.star_score = StringKit.toInt((msgStarScore as ErlType).getValueString()); } ErlType msgAttr = message.getValue("attr") as ErlType; if (msgAttr != null && msgAttr is ErlList) { ErlList arr = msgAttr as ErlList; ErlArray attrArray; string name; for (int i = 0; i < arr.Value.Length; i++) { name = ((arr.Value [i] as ErlArray).Value [0] as ErlType).getValueString(); attrArray = (arr.Value [i] as ErlArray).Value [1] as ErlArray; if (name == "front") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.frontAddEffectInteger = getAttr [0]; infoByServer.frontAddEffectNumber = getAttr [1]; } else if (name == "middle") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.middleAddEffectInteger = getAttr [0]; infoByServer.middleAddEffectNumber = getAttr [1]; } else if (name == "behind") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.behindAddEffectInteger = getAttr [0]; infoByServer.behindAddEffectNumber = getAttr [1]; } else if (name == "all") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.allAddEffectInteger = getAttr [0]; infoByServer.allAddEffectNumber = getAttr [1]; } else if (name == "pve_attr") { infoByServer.addPveAttr = ((arr.Value [i] as ErlArray).Value [1] as ErlType).getValueString(); } } } ErlType msgFunc = message.getValue("func") as ErlType; if (msgFunc != null && msgFunc is ErlList) { ErlList arr = msgFunc as ErlList; string name; int num; for (int i = 0; i < arr.Value.Length; i++) { name = ((arr.Value [i] as ErlArray).Value [0] as ErlType).getValueString(); num = StringKit.toInt(((arr.Value [i] as ErlArray).Value [1] as ErlType).getValueString()); if (name == "friend") { infoByServer.addFriend = num; } else if (name == "equip_storage") { infoByServer.addEquipStorage = num; } else if (name == "card_storage") { infoByServer.addCardStorage = num; } else if (name == "max_pve") { infoByServer.addPveUse = num; } } } integrateOpenStar(); }
public override void read(ErlKVMessage message) { parseKVMsg(message); callback(); }
//后台推送更新 public void updateInfoByServer(ErlKVMessage message) { ErlType msgStar = message.getValue("star_point") as ErlType; if (msgStar != null) { ErlArray arr = msgStar as ErlArray; infoByServer.openStars = new int[arr.Value.Length]; for (int i = 0; i < arr.Value.Length; i++) { infoByServer.openStars [i] = StringKit.toInt((arr.Value [i] as ErlType).getValueString()); } } ErlType msgStarScore = message.getValue("star_score") as ErlType; if (msgStarScore != null) { infoByServer.star_score = StringKit.toInt((msgStarScore as ErlType).getValueString()); } ErlType msgAttr = message.getValue("attr") as ErlType; if (msgAttr != null && msgAttr is ErlList) { ErlList arr = msgAttr as ErlList; string name; ErlArray attrArray; for (int i = 0; i < arr.Value.Length; i++) { name = ((arr.Value [i] as ErlArray).Value [0] as ErlType).getValueString(); attrArray = (arr.Value [i] as ErlArray).Value [1] as ErlArray; if (name == "front") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.frontAddEffectInteger = getAttr [0]; infoByServer.frontAddEffectNumber = getAttr [1]; } else if (name == "middle") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.middleAddEffectInteger = getAttr [0]; infoByServer.middleAddEffectNumber = getAttr [1]; } else if (name == "behind") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.behindAddEffectInteger = getAttr [0]; infoByServer.behindAddEffectNumber = getAttr [1]; } else if (name == "all") { CardBaseAttribute[] getAttr = getAttrByErlArray(attrArray); infoByServer.allAddEffectInteger = getAttr [0]; infoByServer.allAddEffectNumber = getAttr [1]; } else if (name == "pve_attr") { infoByServer.addPveAttr = ((arr.Value [i] as ErlArray).Value [1] as ErlType).getValueString(); } } } ErlType msgFunc = message.getValue("func") as ErlType; if (msgFunc != null && msgFunc is ErlList) { ErlList arr = msgFunc as ErlList; string name; int num; int addNum = 0; for (int i = 0; i < arr.Value.Length; i++) { name = ((arr.Value [i] as ErlArray).Value [0] as ErlType).getValueString(); num = StringKit.toInt(((arr.Value [i] as ErlArray).Value [1] as ErlType).getValueString()); addNum = 0; if (name == "friend") { addNum = num - infoByServer.addFriend; infoByServer.addFriend = num; FriendsManagerment.Instance.getFriends().addMaxSize(addNum); } else if (name == "equip_storage") { addNum = num - infoByServer.addEquipStorage; infoByServer.addEquipStorage = num; StorageManagerment.Instance.updateEquipStorageMaxSpace(addNum); } else if (name == "card_storage") { addNum = num - infoByServer.addCardStorage; infoByServer.addCardStorage = num; StorageManagerment.Instance.updateRoleStorageMaxSpace(addNum); } else if (name == "max_pve") { addNum = num - infoByServer.addPveUse; infoByServer.addPveUse = num; UserManager.Instance.self.updatePvEPointMax(addNum); } } } // integrateOpenStar(); }
public void sendServer(ErlConnect connect, ErlKVMessage message, ReceiveFun receiveFun, List<object> argus, long timeOut) { ByteBuffer data = new ByteBuffer(); message.bytesWrite(data); //Log.Info ("+++"+string.Concat (data.getArray ())); //this._list.Add(new ErlEntry(connect, message.getPort(), receiveFun, argus, timeOut + TimeKit.getMillisTime())); connect.sendErl(data, 1, 1, 1, 1); }
public override void read(ErlKVMessage message) { ErlArray info = message.getValue("msg") as ErlArray; ErlArray donations; // 捐献列表// ErlArray processPrizes; // 进度奖励列表// if (info != null) { LastBattleManagement.Instance.lastBattlePhase = StringKit.toInt(info.Value[0].getValueString()); // 未开启// if (LastBattleManagement.Instance.lastBattlePhase == LastBattlePhase.NOT_OPEN) { LastBattleManagement.Instance.clearData(); } else { if (!compareTime()) { if (PlayerPrefs.HasKey(LastBattleManagement.lastBattleOldProcessKey + UserManager.Instance.self.uid)) { PlayerPrefs.DeleteKey(LastBattleManagement.lastBattleOldProcessKey + UserManager.Instance.self.uid); } if (PlayerPrefs.HasKey(LastBattleManagement.lastbattleDonationKey + UserManager.Instance.self.uid)) { PlayerPrefs.DeleteKey(LastBattleManagement.lastbattleDonationKey + UserManager.Instance.self.uid); } if (PlayerPrefs.HasKey(LastBattleManagement.lastBattleBossIDKey + UserManager.Instance.self.uid)) { PlayerPrefs.DeleteKey(LastBattleManagement.lastBattleBossIDKey + UserManager.Instance.self.uid); } if (PlayerPrefs.HasKey(LastBattleManagement.lastBattleBossHpKey + UserManager.Instance.self.uid)) { PlayerPrefs.DeleteKey(LastBattleManagement.lastBattleBossHpKey + UserManager.Instance.self.uid); } } // 备战阶段// if (LastBattleManagement.Instance.lastBattlePhase == LastBattlePhase.PREPARE) { // 最新进度// LastBattleManagement.Instance.newProcess = StringKit.toInt(info.Value[1].getValueString()); // 已领取备战奖励条目// processPrizes = info.Value[2] as ErlArray; setProcessPrize(processPrizes); // 女神鼓舞等级// LastBattleManagement.Instance.nvBlessLv = StringKit.toInt(info.Value[3].getValueString()); // 上次挑战小怪关卡id// LastBattleManagement.Instance.battleID = StringKit.toInt(info.Value[4].getValueString()); // 剩余小怪挑战次数// LastBattleManagement.Instance.battleCount = StringKit.toInt(info.Value[5].getValueString()); // 挑战小怪连胜次数// LastBattleManagement.Instance.battleWinCount = StringKit.toInt(info.Value[6].getValueString()); // 捐献商店下次刷新时间// LastBattleManagement.Instance.donationNextUpdateTime = StringKit.toInt(info.Value[7].getValueString()); // 捐献列表// donations = info.Value[8] as ErlArray; updateDonationList(donations); } // boss战阶段// else if (LastBattleManagement.Instance.lastBattlePhase == LastBattlePhase.BOSS) { // 最新进度// LastBattleManagement.Instance.newProcess = StringKit.toInt(info.Value[1].getValueString()); // 已领取备战奖励条目// processPrizes = info.Value[2] as ErlArray; setProcessPrize(processPrizes); // 女神鼓舞等级// LastBattleManagement.Instance.nvBlessLv = StringKit.toInt(info.Value[3].getValueString()); // 击杀boss个数 // LastBattleManagement.Instance.killBossCount = StringKit.toInt(info.Value[4].getValueString()); // 挑战boss// LastBattleManagement.Instance.bossID = StringKit.toInt(info.Value[5].getValueString()); // 当前血量// LastBattleManagement.Instance.currentBossHP = StringKit.toLong(info.Value[6].getValueString()); // 最大血量// LastBattleManagement.Instance.bossTotalHP = StringKit.toLong(info.Value[7].getValueString()); // 剩余boss挑战次数// LastBattleManagement.Instance.bossCount = StringKit.toInt(info.Value[8].getValueString()); // 下次boss挑战次数刷新时间// if (info.Value[9].getValueString() == "0") { LastBattleManagement.Instance.nextBossCountUpdateTime = 0; } else { LastBattleManagement.Instance.nextBossCountUpdateTime = StringKit.toInt(info.Value[9].getValueString()) + CommandConfigManager.Instance.lastBattleData.bossBattleCountUpdateTime; } } // 领奖阶段// else if (LastBattleManagement.Instance.lastBattlePhase == LastBattlePhase.AWARD) { // 物资进度// LastBattleManagement.Instance.newProcess = StringKit.toInt(info.Value[1].getValueString()); // 已领取备战奖励条目// processPrizes = info.Value[2] as ErlArray; setProcessPrize(processPrizes); } } if (callBack != null) { callBack(); callBack = null; } } }
public override void read(ErlKVMessage message) { base.read(message); ErlType type = message.getValue("msg") as ErlType; }
//解析ErlKVMessgae public void parseKVMsg(ErlKVMessage message) { int chapterType = StringKit.toInt((message.getValue("type") as ErlType).getValueString()); //副本类型 ErlArray kt = message.getValue("kt") as ErlArray; //活动副本 ErlArray sids = message.getValue("sids") as ErlArray; //副本sid信息,不同副本不同的数据格式 ErlType number = message.getValue("number") as ErlType; //讨伐使用次数 ErlType buy = message.getValue("buy") as ErlType; //购买次数 ErlType step = message.getValue("pstep") as ErlType; //今日修炼最大通关 暂无用 ErlList storyTimes = message.getValue("lv") as ErlList; //剧情噩梦难度使用次数 ErlType practicetime = message.getValue("practicetime") as ErlType; //修炼副本倒计时 //==================================爬塔 ErlType towerState = message.getValue("isfight") as ErlType; //可否挑战 ErlArray reGetFirstSid = message.getValue("frees") as ErlArray; //已经领取的sid列表 ErlType reset = message.getValue("reset") as ErlType; //爬塔已经重置的次数 ErlType lottery = message.getValue("lottery") as ErlType; //已经开宝箱的次数 ErlType lottery_buy = message.getValue("lottery_buy") as ErlType; //已经购买的开宝箱次数 if (practicetime != null) { FuBenManagerment.Instance.practiceDueTime = StringKit.toInt(practicetime.getValueString()); } if (chapterType == ChapterType.STORY) { int[][] storySids = new int[sids.Value.Length][]; ErlArray temp; for (int i = 0; i < storySids.Length; i++) { temp = sids.Value [i] as ErlArray; storySids [i] = new int[3]; storySids [i] [0] = StringKit.toInt((temp.Value [0] as ErlType).getValueString()); //sid storySids [i] [1] = StringKit.toInt((temp.Value [1] as ErlType).getValueString()); //step storySids [i] [2] = 0; } if (storyTimes != null && storySids != null && storySids.Length > 0) { int sidTemp; ErlArray tempErl; for (int i = 0; i < storyTimes.Value.Length; i++) { tempErl = storyTimes.Value [i] as ErlArray; sidTemp = StringKit.toInt((tempErl.Value [0] as ErlType).getValueString()); //sid for (int j = 0; j < storySids.Length; j++) { if (storySids [j] [0] == sidTemp) { storySids [j] [2] = StringKit.toInt((tempErl.Value [1] as ErlType).getValueString()); } } } } if (needSend(chapterType)) { FuBenManagerment.Instance.updateStory(storySids); } } else if (chapterType == ChapterType.WAR) { int[] warSids = new int[sids.Value.Length]; for (int i = 0; i < warSids.Length; i++) { warSids [i] = StringKit.toInt((sids.Value [i] as ErlType).getValueString()); } FuBenManagerment.Instance.updateWar(warSids, StringKit.toInt(number.getValueString()), StringKit.toInt(buy.getValueString())); } else if (chapterType == ChapterType.TOWER_FUBEN) //初始化爬塔信息 { int[] towerSid = new int[sids.Value.Length]; //爬塔通关mission sid int[] firtReadySid = new int[reGetFirstSid.Value.Length]; //已经领取首次宝箱的 for (int i = 0; i < towerSid.Length; i++) { towerSid[i] = StringKit.toInt((sids.Value[i] as ErlType).getValueString()); } for (int j = 0; j < firtReadySid.Length; j++) { firtReadySid[j] = StringKit.toInt((reGetFirstSid.Value[j] as ErlType).getValueString()); } FuBenManagerment.Instance.updateTower(towerSid, StringKit.toInt(towerState.getValueString()), firtReadySid, StringKit.toInt(reset.getValueString()), StringKit.toInt(lottery.getValueString()), StringKit.toInt(lottery_buy.getValueString())); } else if (chapterType == ChapterType.PRACTICE) { int[] praSids = new int[sids.Value.Length]; for (int i = 0; i < praSids.Length; i++) { praSids [i] = StringKit.toInt((sids.Value [i] as ErlType).getValueString()); } FuBenManagerment.Instance.updatePractice(praSids, StringKit.toInt(number.getValueString())); } else if (chapterType == ChapterType.ACTIVITY_CARD_EXP || chapterType == ChapterType.ACTIVITY_EQUIP_EXP || chapterType == ChapterType.ACTIVITY_MONEY || chapterType == ChapterType.ACTIVITY_SKILL_EXP) { int[][] activeSids = new int[kt.Value.Length][]; ErlArray temp; for (int i = 0; i < activeSids.Length; i++) { temp = kt.Value [i] as ErlArray; activeSids [i] = new int[5]; activeSids [i] [0] = StringKit.toInt((temp.Value [0] as ErlType).getValueString()); //类型 activeSids [i] [1] = StringKit.toInt((temp.Value [1] as ErlType).getValueString()); //次数 activeSids [i] [2] = StringKit.toInt((temp.Value [2] as ErlType).getValueString()); //最大次数 ErlList timeInfo = temp.Value [3] as ErlList; activeSids[i][3] = StringKit.toInt((temp.Value[4] as ErlType).getValueString());//已经购买次数 FuBenManagerment.Instance.updateActivityChapters(activeSids [i] [0], activeSids [i] [1], activeSids [i] [2], StringKit.toInt((temp.Value[3] as ErlType).getValueString()), activeSids[i][3]); // activeSids [i] [3] = StringKit.toInt ((temp.Value [3] as ErlType).getValueString ());//开始时间 // activeSids [i] [4] = StringKit.toInt ((temp.Value [4] as ErlType).getValueString ());//结束时间 } } }
public void procServerCmd() { if (this.erlConnect.ActiveTime >0 && TimeKit.getMillisTime () - this.erlConnect.ActiveTime >= 10000) { ErlKVMessage message = new ErlKVMessage ("echo"); message.addValue (null, new ErlInt (ConnectCount.getInstance ().number)); base.sendServer (this.erlConnect, message); //base.access (message); }else if (this.erlConnect.ActiveTime >0 && TimeKit.getMillisTime () - this.erlConnect.ActiveTime >= 1000){ } }
public override void read(ErlKVMessage message) { /* * [[4000,38,[281479271678950,真龙·安拉,[],2,36500,1,[3,[],[[11442,0,281479271679959,0,0],[11344,0,281479271679971,0,0],[2,0,281479271678953,0,0],[11237,0,281479271679953,0,0],[11226,0,281479271679982,0,0]]],44560,9,10]], * [290,0,[281479271678949,坠星的克劳瑞,[],4,911600,1,[3,[],[[],[],[4,0,281479271677953,0,0],[11442,0,281479271680955,0,0],[]]],13802,6,0]]]} */ ErlArray array = message.getValue("msg") as ErlArray; ErlArray itemArray; PvpOppInfo player; int ladderRank; int prestige; int medalSid; RankManagerment.Instance.ladderList.Clear(); for (int i = array.Value.Length - 1; i >= 0; i--) { itemArray = array.Value [i] as ErlArray; ladderRank = StringKit.toInt(itemArray.Value [0].getValueString()); prestige = StringKit.toInt(itemArray.Value [1].getValueString()); medalSid = StringKit.toInt(itemArray.Value [2].getValueString()); player = setOppInfo(itemArray.Value [3] as ErlArray); player.ladderRank = ladderRank; player.prestige = prestige; player.medalSid = medalSid; if (player.uid == UserManager.Instance.self.uid) { RankManagerment.Instance.myRank.Remove(type); RankManagerment.Instance.myRank.Add(type, ladderRank); } RankManagerment.Instance.ladderList.Add(player); } int nextUpdateTime = ServerTimeKit.getSecondTime() + 60; if (RankManagerment.Instance.nextTime.ContainsKey(type)) { RankManagerment.Instance.nextTime [type] = nextUpdateTime; } else { RankManagerment.Instance.nextTime.Add(type, nextUpdateTime); } //附加sdk信息 if (RankManagerment.Instance.ladderList != null && RankManagerment.Instance.ladderList.Count > 0) { string str = ""; for (int i = 0; i < RankManagerment.Instance.ladderList.Count; i++) { if (i != RankManagerment.Instance.ladderList.Count - 1) { str += RankManagerment.Instance.ladderList[i].uid + ","; } else { str += RankManagerment.Instance.ladderList[i].uid; } } //foreach (PvpOppInfo each in RankManagerment.Instance.ladderList) { // str += each.uid; //} if (str != "") { str = str.Substring(0, str.Length - 1); SdkFPort fp = FPortManager.Instance.getFPort <SdkFPort> (); fp.getSdkInfo(str, getSdkInfoCallBack); } else { getSdkInfoCallBack(null); } } else { getSdkInfoCallBack(null); } }
public void access(ErlKVMessage message, CallBack callback) { this.callback = callback; //ErlKVMessage message = new ErlKVMessage("/yxzh/role/get_user"); base.access(message); }
protected virtual void pingHandle(ErlConnect connect, ErlKVMessage erlMessage) { }
public void parseKVMsg(ErlKVMessage message) { Log.Info(message.Cmd+"|"+ message.toJsonString()); }
public void sendUser() { String strValue = ConfigHelper.GetAppConfig ("/yxzh/role/get_user"); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (messagePort)); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); }
public override void erlReceive(Connect connect, ErlKVMessage message) { this.readMessage (message); }
public void getRoadAwaken() { ErlKVMessage message = new ErlKVMessage(FrontPort.HERO_ROAD_GET_HR_AWAKEN); access(message); }
public void parseMessage(ByteBuffer socketbuffer) { int num = socketbuffer.readByte (); bool flag = (num & 8) != 0; bool flag2 = (num & 4) != 0; bool flag3 = (num & 2) != 0; ByteBuffer data = new ByteBuffer (this.length - 1); data.write (socketbuffer.toArray (), 0, this.length - 1); if (base.socket.Available >= 2) { byte[] buffer = new byte[2]; base.socket.Receive (buffer, SocketFlags.None); this.length = ByteKit.readUnsignedShort (buffer, 0); } else { this.length = 0; } if (flag) { data = this.encryptionCode (data, this._receiveChallengeCode); } if (flag3) { data = new ByteBuffer (ZIPUtil.Decompress (data.toArray ())); } if (flag2) { int num2 = data.readInt (); ByteBuffer buffer4 = new ByteBuffer (); buffer4.writeBytes (data.toArray (), 0, data.top - data.position); int num3 = (int)ChecksumUtil.Adler32 (buffer4); if (num2 != num3) { //MonoBehaviour.print(string.Concat(new object[] { "crc is err,crcValue", num2, ",nowCrc=", num3 })); // Log.info return; } } ErlKVMessage message = new ErlKVMessage (null); message.bytesRead (data); if (base._portHandler != null) { base._portHandler.erlReceive (this, message); } }
public void closeContect() { ErlKVMessage message = new ErlKVMessage ("/yxzh/close"); base.send (message); }
public void clear() { ErlKVMessage message = new ErlKVMessage(FrontPort.CLEARDATA); access(message); }
public override void erlReceive(Connect connect, ErlKVMessageClient message) { //this.readMessage (message); Log.Info(message.Cmd+"|"+ message.toJsonString()); if (messagePort == message.getPort()) { String strValue = ConfigHelper.GetAppConfig ("/yxzh/role/get_user"); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (message.getPort ())); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); base.send (this.erlConnect, msg); } if (message.Cmd == "/yxzh/role/get_user") { messagePort = message.getPort(); } }
public override void erlReceive(Connect connect, ErlKVMessage message) { long num = TimeKit.getMillisTime(); connect.ping = num - connect.PingTime; connect.PingTime = 0L; }
public override void read(ErlKVMessage message) { switch (sendType) { //初始化我的分享 case TYPE_INIT: if (parseKVMsgTypeInit(message) && callback != null) { callback(); } break; //一键分享给好友 case TYPE_SHARE: ErlType msgSHARE = message.getValue("msg") as ErlType; if (msgSHARE is ErlArray) { ErlArray array = msgSHARE as ErlArray; if (array == null) { return; } FriendsShareManagerment.Instance.setShareInfoUse(); int j = 0; int sid = StringKit.toInt(array.Value [j++].getValueString()); int num = StringKit.toInt(array.Value [j++].getValueString()); if (callbackII != null) { callbackII(sid, num); } } else { MonoBase.print(GetType() + "error:" + msgSHARE); } break; //一键点赞 case TYPE_PRAISE: ErlType msgPRAISE = message.getValue("msg") as ErlType; if (msgPRAISE is ErlArray) { ErlArray array = msgPRAISE as ErlArray; if (array == null) { return; } int j = 0; int sid = StringKit.toInt(array.Value [j++].getValueString()); int num = StringKit.toInt(array.Value [j++].getValueString()); int praiseNum = StringKit.toInt(array.Value [j++].getValueString()); int money = StringKit.toInt(array.Value [j++].getValueString()); FriendsShareManagerment.Instance.setPraiseNum(praiseNum); FriendsShareManagerment.Instance.setPraiseInfoUse(praiseNum); if (callbackIIII != null) { callbackIIII(sid, num, praiseNum, money); } } else { MonoBase.print(GetType() + "error:" + msgPRAISE); } break; } }
public override void read(ErlKVMessage message) { ErlType type = message.getValue("msg") as ErlType; if (type is ErlArray) { ErlArray array = type as ErlArray; int index = 0; //基础信息 int shakeCount = StringKit.toInt(array.Value [index++].getValueString()); int reShakeCount = StringKit.toInt(array.Value [index++].getValueString()); int selfIntegral = StringKit.toInt(array.Value [index++].getValueString()); int topIntegral = StringKit.toInt(array.Value [index++].getValueString()); int guildIntegral = StringKit.toInt(array.Value [index++].getValueString()); GuildManagerment.Instance.createGuildLuckyNvShenInfo(selfIntegral, guildIntegral, topIntegral, shakeCount, reShakeCount); //上次投掷结果,如果未领取状态 ErlType resultType = array.Value [index++] as ErlType; ErlArray resultArray = resultType as ErlArray; if (resultArray.Value.Length == 5) { string [] results = new string[5]; for (int i = 0; i < 5; ++i) { results [i] = resultArray.Value [i].getValueString(); } //生成结果缓存 GuildManagerment.Instance.createGuildShakeResult(results); } else { //清空结果 GuildManagerment.Instance.clearGuildShakeResult(); } //排行榜信息 RankManagerment.Instance.guildShakeList.Clear(); ErlType rankType = array.Value [index++] as ErlType; ErlArray rankArray = rankType as ErlArray; if (rankArray.Value.Length > 0) { for (int i = 0; i < rankArray.Value.Length; i++) { ErlArray temps = rankArray.Value [i] as ErlArray; if (temps != null && temps.Value.Length == 3) { string uid = temps.Value [0].getValueString(); string playerName = temps.Value [1].getValueString(); int integral = StringKit.toInt(temps.Value [2].getValueString()); GuildShakeRankItem temp = new GuildShakeRankItem(uid, playerName, integral); RankManagerment.Instance.guildShakeList.Add(temp); } } } if (callback != null) { callback(); } } }
public void TransParseMessage(ByteBuffer socketbuffer , bool isServer , ByteBuffer src) { try{ int num = socketbuffer.readByte (); bool flag = (num & 8) != 0; bool flag2 = (num & 4) != 0; bool flag3 = (num & 2) != 0; ByteBuffer data = new ByteBuffer (this.length - 1); data.write (socketbuffer.toArray (), 0, this.length - 1); if ((this.dataBuffer.bytesAvailable) >= 2) { byte[] buffer = new byte[2]; //base.socket.Receive (buffer, SocketFlags.None); this.dataBuffer.readBytes(buffer,0,2); this.length = ByteKit.readUnsignedShort (buffer, 0); } else { this.length = 0; } if (flag) { if (this.isServer) { data = this.encryptionCode (data, this._sendChallengeCode); } else { data = this.encryptionCode (data, this._receiveChallengeCode); } } if (flag3) { data = new ByteBuffer (ZIPUtil.Decompress (data.toArray ())); } if (flag2) { int num2 = data.readInt (); ByteBuffer buffer4 = new ByteBuffer (); buffer4.writeBytes (data.toArray (), 0, (int)data.bytesAvailable); int num3 = (int)ChecksumUtil.Adler32 (buffer4); if (num2 != num3) { Log.Error(string.Concat(new object[] { "crc is err,crcValue", num2, ",nowCrc=", num3 })); // Log.info //if (this.transCallBack != null) { // this.transCallBack.Invoke (); // } int len = (int)this.dataBuffer.bytesAvailable; int pos = this.dataBuffer.position; byte[] tmp = new byte[len]; byte[] bak = new byte[pos]; this.dataBuffer.position = 0; this.dataBuffer.readBytes (bak, 0, pos); this.dataBuffer.readBytes (tmp, 0, len); this.dataBuffer.clear (); this.dataBuffer = new ByteBuffer (tmp); if(!this.isServer){ base.socket.Send (bak);} if (this.dataBuffer.bytesAvailable > 0) { this.TransReceive (null, this.isServer); } return; } } ErlKVMessage message = new ErlKVMessage (null); this.tmpBuffer = data; message.bytesRead (data); Log.Debug(string.Concat( data.getArray())+"++++++"); this.myLen = this.dataBuffer.top; if (base._portHandler != null) { base._portHandler.erlReceive (this, message); } } catch(Exception e) { Log.Error (e.Message); if (this.dataBuffer.bytesAvailable > 0) { this.TransReceive (null, this.isServer); } else { int len = (int)this.dataBuffer.bytesAvailable; int pos = this.dataBuffer.position; byte[] tmp = new byte[len]; byte[] bak = new byte[pos]; this.dataBuffer.position = 0; this.dataBuffer.readBytes (bak, 0, pos); this.dataBuffer.readBytes (tmp, 0, len); this.dataBuffer.clear (); this.dataBuffer = new ByteBuffer (tmp); if (!this.isServer) { base.socket.Send (bak); } if (this.dataBuffer.bytesAvailable > 0) { this.TransReceive (null, this.isServer); } } } }
public void sendServer(ErlConnect connect , ErlKVMessage message) { DataAccess.getInstance().sendServer(connect, message, null, null, 0x4e20L); }