using Org.BouncyCastle.Bcpg; using ProtoCSStruct; using Sog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Game { public class WxFriendRankSvc { public static void OnPlayerOnLine(PlayerOnGame player) { //long now = GameServerUtils.GetTimeMs(); //if(now - player.RoleData.WxFriends.LasySyncTime > 86400 * 1000) //{ // player.RoleData.WxFriends.LasySyncTime = now; // //TODO QUERY friendlist from account //} //for(int i = 0; i < player.RoleData.WxFriends.Friends.Count; i++) //{ // ref var fone = ref player.RoleData.WxFriends.Friends[i]; // if(fone.Uid == 0) // { // SSQueryUidByWXIDReq sSQueryUidByWXIDReq = new SSQueryUidByWXIDReq(); // sSQueryUidByWXIDReq.Wxid.SetString(fone.Uid.ToString()); // GameServerUtils.GetPacketSender().SendToWorldServer((int)SSMsgID.QueryUidByWxidReq, // ref sSQueryUidByWXIDReq, player.UserID); // } // else // { // //if (now - fone.LasySyncTime > 10 * 60 * 1000) // { // SSQueryRankOneReq sSQueryRankOneReq = new SSQueryRankOneReq(); // sSQueryRankOneReq.Uid = fone.Uid; // sSQueryRankOneReq.RealmId = fone.RealmId; // sSQueryRankOneReq.RankId = 1; // GameServerUtils.GetPacketSender().SendToRankServer((int)SSGameMsgID.QueryRankOneReq, // ref sSQueryRankOneReq, player.UserID); // } // } //} } public static void OnQueryUidByWxidRes(StructPacket packaet) { ref var res = ref packaet.GetMessage(); long uid = packaet.ObjectID; PlayerOnGame player = GameServerUtils.GetPlayerTableOp().GetPlayerByUid(uid); if (player != null) { for (int i = 0; i < player.RoleData.WxFriends.Friends.Count; i++) { ref var fone = ref player.RoleData.WxFriends.Friends[i]; if (fone.Uid == 0 && fone.Account.GetString().Equals(res.Wxid.GetString())) { fone.Uid = res.Uid; fone.RealmId = res.RealmId; //查询排行榜 SSQueryRankOneReq sSQueryRankOneReq = new SSQueryRankOneReq(); sSQueryRankOneReq.Uid = fone.Uid; sSQueryRankOneReq.RealmId = fone.RealmId; sSQueryRankOneReq.RankId = 1; GameServerUtils.GetPacketSender().SendToRankServer((int)SSGameMsgID.QueryRankOneReq, ref sSQueryRankOneReq, player.UserID); break; } } } } public static void OnQueryRankOneRes(StructPacket packaet) { ref var res = ref packaet.GetMessage(); long uid = packaet.ObjectID ; PlayerOnGame player = GameServerUtils.GetPlayerTableOp().GetPlayerByUid(uid); if (player != null) { for (int i = 0; i < player.RoleData.WxFriends.Friends.Count; i++) { ref var fone = ref player.RoleData.WxFriends.Friends[i]; if (fone.Uid == res.Uid) { if (res.Ret == 0) { fone.RankInfo.CopyFrom(ref res.Rank); } fone.LasySyncTime = GameServerUtils.GetTimeMs(); break; } } } } } }