/// <summary> /// 获取属性增加数据 /// </summary> /// <returns></returns> private List <EquipAddInfo> GetPropAddList() { EquipAddInfo info = null; string[] prop_arr = Define.EquipPropStr.Split(','); List <EquipAddInfo> list = new List <EquipAddInfo>(); for (int i = 0; i < prop_arr.Length; i++) { string prop_str = prop_arr[i]; int prop_value = GameConvert.IntConvert(cur_equip_info.GetType().GetField(prop_str).GetValue(cur_equip_info)); if (prop_value == 0) { continue; } info = new EquipAddInfo(); info.prop_name = prop_str; info.prop_base_value = prop_value; list.Add(info); } return(list); }
/// <summary> /// 设置属性信息 /// </summary> private void SetPropInfo() { float fight = 0; List <EquipAddInfo> prop_list = EquipConfig.GetPropAddDataListByID(-1, int.Parse(select_equip.itemID), select_equip.star, select_equip.strongLevel); for (int i = 0; i < prop_list.Count; i++) { EquipAddInfo info = prop_list[i]; PropFightInfo prop_fight = PropChangeFightConfig.GetEquipInfo(info.prop_name); string prop_name_label = string.Format("prop_name_{0}", i.ToString()); UILabel prop_name = UtilTools.GetChild <UILabel>(panel.equipProp, prop_name_label); prop_name.text = TextManager.GetUIString(info.prop_name); string prop_txt_label = string.Format("prop_value_{0}", i.ToString()); UILabel cur_prop_txt = UtilTools.GetChild <UILabel>(panel.equipProp, prop_txt_label); float prop_value = GameConvert.FloatConvert((info.prop_base_value + info.prop_star_value + info.prop_strong_value)); //cur_prop_txt.text = prop_fight.IsPercent==0?prop_value.ToString():string.Format("{0}%", prop_value*100); cur_prop_txt.text = prop_value.ToString(); fight += PropChangeFightConfig.GetPropForFightValue(info.prop_name, prop_value); } UILabel fight_txt = UtilTools.GetChild <UILabel>(panel.equipProp, "fight_value"); fight_txt.text = GameConvert.IntConvert(fight).ToString(); }
public override void LoadData(System.Xml.XmlElement element) { base.LoadData(element); m_object_url = element.GetAttribute("ObjectURL"); m_object_value = GameConvert.BoolConvert(element.GetAttribute("ObjectValue")); m_is_return = GameConvert.BoolConvert(element.GetAttribute("IsReturn")); }
private void OnRefreshEquip(GameEventTypes eventType, object[] args) { if (GameConvert.IntConvert(args[0]) == 0) { SetInfo(); } }
//公会开除 public void onKictOutSucc(object val) { int roleId = GameConvert.IntConvert(val); for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++) { GuildMemberInfo info = GuildMainMediator.mMyGuild.memberList[i]; if (info.id == roleId) { GuildMainMediator.mMyGuild.memberList.Remove(info); } } if (GUIManager.HasView("guildofficepanel")) { GuildOfficeMediator.guildOfficeMediator.SetMemberGridData(); } if (GUIManager.HasView("guilddonationpanel")) { GuildDonationMediator.guilddonationMediator.SetDayDonateData(); GuildDonationMediator.guilddonationMediator.SetDonationInfo(); } if (GUIManager.HasView("guildinteractpanel")) { GuildInteractMediator.guildinteractMediator.SetPowerGridDate(); } }
private bool DidReceiveGeneratorNPC(int wHandleCode, byte[] wByteBuffer, int wDataSize) { int dataLen = wByteBuffer.Length; if (dataLen < wDataSize) { Debug.LogError("Generator NPC data Error!!"); return(false); } CMD_SC_NPC_GENERATOR npcGenerator = GameConvert.ByteToStruct <CMD_SC_NPC_GENERATOR>(wByteBuffer, wByteBuffer.Length); // Debug.Log("****************************************"); // Debug.Log("NPC_GENERATOR_ServerTime==========="+npcGenerator.gsServerTime); // Debug.Log("NPC_GENERATOR_ServerId============="+npcGenerator.gsServerId); // Debug.Log("NPC_GENERATOR_ActorId=============="+npcGenerator.gsActorId); // Debug.Log("NPC_GENERATOR_NavigId=============="+npcGenerator.gsNavigId); // Debug.Log("NPC_GENERATOR_NavigRot============="+npcGenerator.gsNavigRot); // Debug.Log("NPC_GENERATOR_Z===================="+npcGenerator.gsZ); // Debug.Log("NPC_GENERATOR_Y===================="+npcGenerator.gsY); // Debug.Log("****************************************"); if (onReceiveGeneratorNPCEvent != null) { onReceiveGeneratorNPCEvent(npcGenerator); } return(true); }
public static ushort ReadDescDataString(ref ByteBuffer buffer, ref string text) { int dataDescLen = Marshal.SizeOf(typeof(tagDataDescribe)); if ((buffer.Length - buffer.Position) <= dataDescLen) { return(0); } byte[] descData = buffer.PopByteArray(dataDescLen); tagDataDescribe desc = GameConvert.ByteToStruct <tagDataDescribe>(descData); if (desc.wDataDescribe == CommonDefine.DTP_NULL) { return(0); } byte[] data = buffer.PopByteArray(desc.wDataSize); text = System.Text.Encoding.Unicode.GetString(data); if (text.Length > 0) { text = text.Substring(0, text.IndexOf((char)0)); } return(desc.wDataDescribe); }
private void OnUserScoreResp(Packet packet) { int dataStruct = Marshal.SizeOf(typeof(CMD_GR_UserScore)); if (packet.DataSize < dataStruct) { Debug.LogWarning("data error!"); return; } CMD_GR_UserScore score = GameConvert.ByteToStruct <CMD_GR_UserScore>(packet.Data); PlayerInfo player = GameApp.GameSrv.FindPlayer(score.dwUserID); if (player == null) { Debug.LogWarning("player is not exists!"); return; } player.Money = score.lScore; player.BankMoney = score.lInsure; player.DrawCount = score.dwDrawCount; player.LostCount = score.dwLostCount; player.WinCount = score.dwWinCount; bool isSelf = (score.dwUserID == GameApp.GameData.UserInfo.UserID); if (isSelf) { GameApp.GameData.UserInfo.CurMoney = score.lScore; GameApp.GameData.UserInfo.CurBank = score.lInsure; GameApp.GameSrv.CallGameUserUpdatedEvent(); } }
private void OnConfigServerResp(Packet packet) { int dataStruct = Marshal.SizeOf(typeof(CMD_GR_ConfigServer)); if (packet.DataSize < dataStruct) { Debug.LogWarning("data error!"); return; } CMD_GR_ConfigServer config = GameConvert.ByteToStruct <CMD_GR_ConfigServer>(packet.Data); SGameRoomItem item = GameApp.GameListMgr.FindRoomItem(GameApp.GameData.EnterRoomID); if (item != null) { item.GameRule = config.dwServerRule; item.DeskCount = config.wTableCount; item.DeskPeople = config.wChairCount; if ((config.dwServerRule & (uint)CommonDefine.SR_ALLOW_AVERT_CHEAT_MODE) > 0) { item.AutoSit = true; } if ((config.wServerType & (uint)CommonDefine.GAME_GENRE_EDUCATE) > 0) { item.IsEducate = true; } } }
//强化成功 public void strongUpEquipSucc(object val, Dictionary <string, object> list) { int card_id = GameConvert.IntConvert(val); EquipItemInfo info = new EquipItemInfo(); info.uuid = list["UUID"].ToString(); info.itemID = list["itemID"].ToString(); info.star = GameConvert.IntConvert(list["star"]); info.strongLevel = GameConvert.IntConvert(list["strongLevel"]); info.gem1 = GameConvert.IntConvert(list["gem1"]); info.gem2 = GameConvert.IntConvert(list["gem2"]); info.gem3 = GameConvert.IntConvert(list["gem3"]); EquipMediator.cur_equip = info; EquipConfig.RefreshEquipData(card_id, info); EquipStrongMediator.equipStrongMediator.SetInfo(info.star, info.strongLevel); GUIManager.SetPromptInfo(TextManager.GetUIString("UI2024"), null); //GetquipList(card_id); EquipMediator.equipMediator.RefreshOpenFunc(info.star, info.strongLevel); EquipMediator.equipMediator.SetEquipGridInfo(card_id); }
//获取当前装备星级和强化等级 public void getStarAndStrongLv(object obj, object data) { int star = GameConvert.IntConvert(obj); int level = GameConvert.IntConvert(data); EquipMediator.equipMediator.RefreshOpenFunc(star, level); }
/// <summary> /// 装备继承返回 /// </summary> /// <param name="obj"></param> /// <param name="list"></param> public void returnInheritResult(object obj, List <object> list) { EquipItemInfo info = null; //id == 0 背包装备 id>0玩家装备 int card_id = GameConvert.IntConvert(obj); int play_id = 0; for (int i = 0; i < list.Count; ++i) { info = new EquipItemInfo(); Dictionary <string, object> Info = list[i] as Dictionary <string, object>; info.uuid = Info["UUID"].ToString(); info.itemID = Info["itemID"].ToString(); info.star = GameConvert.IntConvert(Info["star"]); info.strongLevel = GameConvert.IntConvert(Info["strongLevel"]); info.gem1 = GameConvert.IntConvert(Info["gem1"]); info.gem2 = GameConvert.IntConvert(Info["gem2"]); info.gem3 = GameConvert.IntConvert(Info["gem3"]); play_id = i == 0 ? card_id : 0; EquipConfig.RefreshEquipData(play_id, info); if (i == 0) { EquipMediator.cur_equip = info; } EquipMediator.equipMediator.SetEquipGridInfo(play_id); } EquipMediator.equipMediator.RefreshOpenFunc(info.star, info.strongLevel); }
//宝石镶嵌开槽卸下结果返回 public void returnGemResult(object obj, List <object> list) { EquipItemInfo info = null; //id == 0 背包装备 id>0玩家装备 int card_id = GameConvert.IntConvert(obj); for (int i = 0; i < list.Count; ++i) { info = new EquipItemInfo(); Dictionary <string, object> Info = list[i] as Dictionary <string, object>; info.uuid = Info["UUID"].ToString(); info.itemID = Info["itemID"].ToString(); info.star = GameConvert.IntConvert(Info["star"]); info.strongLevel = GameConvert.IntConvert(Info["strongLevel"]); info.gem1 = GameConvert.IntConvert(Info["gem1"]); info.gem2 = GameConvert.IntConvert(Info["gem2"]); info.gem3 = GameConvert.IntConvert(Info["gem3"]); } EquipConfig.RefreshEquipData(card_id, info); EquipMediator.cur_equip = info; EquipMediator.equipMediator.RefreshOpenFunc(info.star, info.strongLevel); Facade.SendNotification(NotificationID.GemChoose_Hide); }
public override string ToString() { StringBuilder builder = new StringBuilder(); builder.Append($"1{Sp}{Red}{Sp}" + $"2{Sp}{Green}{Sp}" + $"3{Sp}{Blue}{Sp}" + $"11{Sp}{Red2}{Sp}" + $"12{Sp}{Green2}{Sp}" + $"13{Sp}{Blue2}{Sp}" + $"6{Sp}{ID}{Sp}" + $"7{Sp}{GameConvert.SingleToString(Opacity)}{Sp}" + $"15{Sp}1{Sp}18{Sp}0{Sp}8{Sp}1"); if (PlayerColor != -1 && PlayerColor != 0) { builder.Append($"{Sp}4{Sp}{PlayerColor}"); } if (Blending) { builder.Append($"{Sp}5{Sp}1"); } if (TargetChannelID != 0) { builder.Append($"{Sp}9{Sp}{TargetChannelID}{Sp}10{Sp}{(ColorHSV == null ? new Hsv().ToString() : ColorHSV.ToString())}"); if (CopyOpacity) { builder.Append($"{Sp}17{Sp}1"); } } return(builder.ToString()); }
private bool AnalysisSystemMessage(Packet packet) { int dataStruct = Marshal.SizeOf(typeof(CMD_CS_MarqueeMessage)); if (packet.DataSize < dataStruct) { com.QH.QPGame.GameUtils.Logger.Net.LogError("CMD_CS_MarqueeMessage Data Error !"); return(true); } ByteBuffer listDataBuff = ByteBufferPool.PopPacket(packet.Data); int dataSzie = Marshal.SizeOf(typeof(CMD_CS_MarqueeMessage)); int dataCount = packet.DataSize / dataSzie; for (int i = 0; i < dataCount; i++) { byte[] tempData = listDataBuff.PopByteArray(dataSzie); CMD_CS_MarqueeMessage msg = GameConvert.ByteToStruct <CMD_CS_MarqueeMessage>(tempData); GameApp.Account.CallMarqueeMessageEvent(msg.MsgType, msg.MsgID, msg.MsgPlayCount, (float)msg.MsgInterval, msg.szMessage, msg.MsgStartTime, msg.MsgNumberID, msg.MsgPlayTime); } ByteBufferPool.DropPacket(listDataBuff); return(true); }
/// <summary> /// 消耗信息 /// </summary> private void SetCostInfo() { EquipStar star_info = EquipStarConfig.GetEquipStarInfo(cur_equip_info.id, cur_star_num); if (star_info == null || string.IsNullOrEmpty(star_info.cost)) { return; } string[] need_str_arr = star_info.cost.Split(';'); // 默认打开球队卡牌界面 List <object> listObj = new List <object>(); for (int i = 0; i < need_str_arr.Length; i++) { EquipCostInfo info = new EquipCostInfo(); string[] info_arr = need_str_arr[i].Split(':'); info.item_id = GameConvert.IntConvert(info_arr[0]); info.need_num = GameConvert.IntConvert(info_arr[1]); if (info.item_id == 0) { continue; } listObj.Add(info); } panel.costGrid.AddCustomDataList(listObj); }
// ============================ S - C ==============================. private bool DidReceiveGameStation(int wHandleCode, byte[] wByteBuffer, int wDataSize) { int dataLen = wByteBuffer.Length; if (dataLen < wDataSize) { Debug.LogError("Game Station Data Error !"); return(false); } CMD_SC_GF_GAME_STATION gameStationS = GameConvert.ByteToStruct <CMD_SC_GF_GAME_STATION>(wByteBuffer, wByteBuffer.Length); if (onLoadGameStationSuccessEvent != null) { onLoadGameStationSuccessEvent(gameStationS); } // Debug.Log("****************************************"); // Debug.Log("GAME_STATION_JI_TAI==========="+gameStationS.gsJiTaiLeiXing); // Debug.Log("GAME_STATION_GAME_RATE========"+gameStationS.gsGameRate); // Debug.Log("GAME_STATION_POWER_MIN========"+gameStationS.gsPowerMin); // Debug.Log("GAME_STATION_PEAK============="+gameStationS.gsPeak); // Debug.Log("GAME_STATION_SERVER_TIME======"+gameStationS.gsServerTime); // Debug.Log("GAME_STATION_MAP_ID==========="+gameStationS.gsMapID); // Debug.Log("GAME_STATION_SELF_VOUCHER====="+gameStationS.gsSelfVoucher); // Debug.Log("****************************************"); return(true); }
/// <summary> /// 是否材料足够 /// </summary> private bool IsMaterials() { EquipStar star_info = EquipStarConfig.GetEquipStarInfo(cur_equip_info.id, cur_star_num); if (star_info == null || string.IsNullOrEmpty(star_info.cost)) { return(false); } string[] need_str_arr = star_info.cost.Split(';'); for (int i = 0; i < need_str_arr.Length; i++) { string[] info_arr = need_str_arr[i].Split(':'); int item_id = GameConvert.IntConvert(info_arr[0]); int need_num = GameConvert.IntConvert(info_arr[1]); int total_num = ItemManager.GetBagItemCount(item_id.ToString()); if (need_num > total_num) { return(false); } } return(true); }
public void SendUserSettings() { CMD_GF_GameOption option = new CMD_GF_GameOption(); byte[] dataBuffer = GameConvert.StructToByteArray(option); Fishing.Instance.SendMessageToGameCenter(CMD_Fishing.MDM_GF_GAME_FRAME, CMD_Fishing.SUB_GF_GAME_OPTION, 0, dataBuffer); }
/// <summary> /// 刷新可能合成晶体 /// </summary> /// <param name="notification"></param> private void GemRefresh(INotification notification) { if (GUIManager.HasView("gemcompoundpanel")) { int type = GameConvert.IntConvert((notification.Body as List <object>)[0]); Item data = (notification.Body as List <object>)[1] as Item; Item item = GetListItemData(data); if (item == null) { return; } BagChangeType change_type = (BagChangeType)Enum.Parse(typeof(Equip_Pos), (type).ToString()); ItemInfo info = ItemManager.GetItemInfo(item.itemID); if (info.tabType != (int)ItemType.Gem) { return; } if (item.amount < 3 || change_type == BagChangeType.Remove) { panel.chooseGrid.DeleteCustomData(item, true); } else if (change_type == BagChangeType.Update && item.amount > 2) { panel.chooseGrid.UpdateCustomData(item); } else if (change_type == BagChangeType.Add) { panel.chooseGrid.AddCustomData(item); panel.chooseGrid.UpdateCustomView(); } } }
public void SendUserRegist(string name, Byte gender, string password, string referrerID) { string pwd = MD5Util.GetMD5Hash(password); var register = new CMD_GP_RegisterAccounts(); register.cbGender = gender; register.wFaceID = gender; register.szAccounts = name; register.szNickName = name; register.szInsurePass = pwd; register.szLogonPass = pwd; register.szSpreader = referrerID; register.szMachineID = GameApp.GameData.MAC; register.cbValidateFlags = GameHelper.GetServerSidePlatform(); register.dwPlazaVersion = (uint)GameVersion.ProcessVersion(GameApp.GameData.Version); //Logger.Net.Log("send regist request|username:"******" |password:" + pwd); byte[] dataBuffer = GameConvert.StructToByteArray(register); SendToHallSvr(MainCommand.MDM_GP_LOGON, SubCommand.SUB_GP_REGISTER_ACCOUNTS, 0, dataBuffer); //TODO 移除 GameApp.GameData.Account = name; GameApp.GameData.Password = pwd; }
/// <summary> /// 下注 /// </summary> public void DownBET(CBETItem _BetItem) { if (CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum > m_lCurrentChip) { if (m_bIsBetTime) { CMusicManger_JSYS._instance.PlaySound("InputScore"); //获取游戏记录 NPacket packet = NPacketPool.GetEnablePacket(); packet.CreateHead(MainCmd.MDM_GF_GAME, SubCmd.SUB_C_PLAY_BET); CMD_C_PlayBet playBet; playBet.nAnimalIndex = _BetItem.m_iBetID; playBet.lBetChip = m_lCurrentChip; byte[] dataBuffer = GameConvert.StructToByteArray <CMD_C_PlayBet>(playBet); int len = Marshal.SizeOf(typeof(CMD_C_PlayBet)); packet.AddBytes(dataBuffer, len); CGameEngine.Instance.Send(packet); } else { AddTiShi("非下注时间无法下注"); } } else { AddTiShi("金币不足,请充值"); } }
//捐钱成功 public void onGuildDonateSucc(object val, Dictionary <string, object> data) { GuildMainMediator.mMyGuild.guildFunds = GameConvert.IntConvert(val); GuildMemberInfo info = ChangeMemberData(data); for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++) { GuildMemberInfo item = GuildMainMediator.mMyGuild.memberList[i]; if (item.id == info.id) { GuildMainMediator.mMyGuild.memberList.Remove(item); GuildMainMediator.mMyGuild.memberList.Add(info); } } if (GUIManager.HasView("guildmainpanel")) { GuildMainMediator.guildmainMediator.SetGuildFunds(); } if (GUIManager.HasView("guilddonationpanel")) { GuildDonationMediator.guilddonationMediator.SetDayDonateData(); GuildDonationMediator.guilddonationMediator.SetDonationInfo(); } }
private void OutputInfo() { string content = ""; listTrans.Clear(); int i = 0; for (i = 0; i < ballerGrid.transform.childCount; i++) { Transform child = ballerGrid.transform.GetChild(i); listTrans.Add(child); } listTrans.Sort(CompareItem); for (i = 0; i < listTrans.Count; i++) { Transform child = listTrans[i]; string vector = ""; float pox = child.transform.localPosition.x; float poy = child.transform.localPosition.y; vector = GameConvert.IntConvert(pox) + "," + GameConvert.IntConvert(poy); content += vector + ";"; } Debug.Log("-------POS-----: " + content); }
public static void WhatTheFuck() { GameConvert.ByteToStruct <STEnjoyGameAtt>(null, 0); GameConvert.StructToByteArray <STEnjoyGameAtt>(new STEnjoyGameAtt()); typeof(GameConvert).MakeGenericType(typeof(STEnjoyGameAtt)); GameConvert.ByteToStruct <CMD_S_ContinueJettons_temp>(null, 0); GameConvert.StructToByteArray <CMD_S_ContinueJettons_temp>(new CMD_S_ContinueJettons_temp()); GameConvert.ByteToStruct <STAnimalInfo>(null, 0); GameConvert.StructToByteArray <STAnimalInfo>(new STAnimalInfo()); GameConvert.ByteToStruct <STAnimalPrize>(null, 0); GameConvert.StructToByteArray <STAnimalPrize>(new STAnimalPrize()); GameConvert.ByteToStruct <STEnjoyGamePrizeInfo>(null, 0); GameConvert.StructToByteArray <STEnjoyGamePrizeInfo>(new STEnjoyGamePrizeInfo()); GameConvert.ByteToStruct <STAnimalAttArray>(null, 0); GameConvert.StructToByteArray <STAnimalAttArray>(new STAnimalAttArray()); GameConvert.ByteToStruct <STAnimalAtt>(null, 0); GameConvert.StructToByteArray <STAnimalAtt>(new STAnimalAtt()); GameConvert.ByteToStruct <STEnjoyGameAtt>(null, 0); GameConvert.StructToByteArray <STEnjoyGameAtt>(new STEnjoyGameAtt()); GameConvert.ByteToStruct <GamePrizeRecord>(null, 0); GameConvert.StructToByteArray <GamePrizeRecord>(new GamePrizeRecord()); }
private bool AnalysisLogonRecord(Packet packet) { int dataStruct = Marshal.SizeOf(typeof(CMD_GH_LogonRecord)); if (packet.DataSize < dataStruct) { com.QH.QPGame.GameUtils.Logger.Net.LogError("LogonRecord Success Data Error CMD_GH_LogonRecord!"); return(false); } ByteBuffer listDataBuff = ByteBufferPool.PopPacket(packet.Data); int dataSzie = Marshal.SizeOf(typeof(CMD_GH_LogonRecord)); int dataCount = packet.DataSize / dataSzie; List <LogonRecordItem> logonRecordList = new List <LogonRecordItem>(); for (int i = 0; i < dataCount; i++) { byte[] tempData = listDataBuff.PopByteArray(dataSzie); CMD_GH_LogonRecord logonRecord = GameConvert.ByteToStruct <CMD_GH_LogonRecord>(tempData); LogonRecordItem logonItem = new LogonRecordItem(); logonItem.dwLogonIP = logonRecord.dwLogonIP; logonItem.dwTmlogonTime = logonRecord.dwTmlogonTime; logonRecordList.Add(logonItem); } ByteBufferPool.DropPacket(listDataBuff); GameApp.Account.CallLogonRecordEvent(logonRecordList); return(true); }
private void SetGemInfo() { GameObject child_gem; int gem_state; string gem_data_info = select_equip.gem1 + ";" + select_equip.gem2 + ";" + select_equip.gem3;; string[] gem_data_arr = gem_data_info.Split(';'); for (int i = 0; i < 3; i++) { child_gem = panel.gemInfo.GetChild(i).gameObject; gem_state = GameConvert.IntConvert(gem_data_arr[i]); GameObject suo = child_gem.transform.FindChild("suo").gameObject; UITexture icon = child_gem.transform.FindChild("icon").GetComponent <UITexture>(); suo.SetActive(gem_state == -1); icon.transform.gameObject.SetActive(gem_state > 0); if (gem_state > 0) { LoadSprite.LoaderItem(icon, gem_state.ToString(), false); } } }
//游戏记录 private bool AnalysisGameRecord(Packet packet) { //int dataStruct = Marshal.SizeOf(typeof(CMD_GH_GameRecord)); //if (packet.DataSize < dataStruct) //{ // Debug.LogError("Game Record Data Error CMD_GH_GameRecord!"); // return false; //} List <GameRecordItem> gameRecordList = new List <GameRecordItem>(); if (packet.DataSize > 0) { ByteBuffer listDataBuff = ByteBufferPool.PopPacket(packet.Data); int dataSzie = Marshal.SizeOf(typeof(CMD_GH_GameRecord)); int dataCount = packet.DataSize / dataSzie; for (int i = 0; i < dataCount; i++) { byte[] tempData = listDataBuff.PopByteArray(dataSzie); CMD_GH_GameRecord gameRecord = GameConvert.ByteToStruct <CMD_GH_GameRecord>(tempData); GameRecordItem gameItem = new GameRecordItem(); gameItem.dwAllCount = gameRecord.dwAllCount; gameItem.dwAmount = gameRecord.dwAmount; gameItem.dwEndTime = gameRecord.dwEndTime; gameItem.dwGameKind = gameRecord.dwGameKind; gameRecordList.Add(gameItem); } ByteBufferPool.DropPacket(listDataBuff); } GameApp.Account.CallGameRecordEvent(gameRecordList); return(true); }
/// <summary> /// 下注返回 /// </summary> /// <param name="packet"></param> public void UserBetReturn(NPacket packet) { packet.BeginRead(); //去掉包头 byte[] _buffer = new byte[SocketSetting.SOCKET_PACKAGE]; int len = Marshal.SizeOf(typeof(CMD_S_PlayBet)); packet.GetBytes(ref _buffer, len); CMD_S_PlayBet _cPlayBet; _cPlayBet = GameConvert.ByteToStruct <CMD_S_PlayBet>(_buffer); if (_cPlayBet.wChairID == CGameEngine.Instance.MySelf.DeskStation) { CBETManger._instance.BetReturnSet(_cPlayBet.nAnimalIndex, _cPlayBet.lBetChip, _cPlayBet.lBetChip); CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum -= _cPlayBet.lBetChip; if (CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum < 0) { CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum = 0; } CBackGroundManger._instance.m_bIsGameStatus = true; } else { CBETManger._instance.BetReturnSet(_cPlayBet.nAnimalIndex, _cPlayBet.lBetChip, 0); } }
public byte[] ToBytes(Packet packet) { var pHead = new CMD_Head_8(); pHead.MainCmdID = (ushort)packet.MainCmd; pHead.SubCmdID = (ushort)packet.SubCmd; pHead.CheckCode = (byte)packet.CheckCode; pHead.DataSize = (ushort)(CommonDefine.TCP_HEAD_8_SIZE + packet.DataSize); pHead.MessageVer = (byte)CommonDefine.VERSION; var buffer = ByteBufferPool.PopPacket(); byte[] headBuffer = GameConvert.StructToByteArray <CMD_Head_8>(pHead); buffer.Position = 0; buffer.PushByteArray(headBuffer); if (packet.Data != null) { buffer.PushByteArray(packet.Data); } var bytes = buffer.ToByteArray(); ByteBufferPool.DropPacket(buffer); if (EnableEncrypt) { bytes = Encrypt(bytes); } return(bytes); }