/* 地图相关gm指令 Instance Map Grid Nav Npc Move */ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.IO; using Sog; using ProtoCSStruct; using Sog.IO; using LitJson; using System.Text; namespace Game { public partial class GmCmdSvc { [GmApiMapping("伪造一个玩家")] public int AddFakePlayer(long userid, int uid) { if (uid >= 1000) { TraceLog.Error("GmCmdSvc.AddFakePlayer invalid uid {0}", uid); return -1; } var player = GameServerUtils.GetPlayerTableOp().GetPlayerByUid(uid); if (player != null) { TraceLog.Error("GmCmdSvc.AddFakePlayer uid {0} exist", uid); return -1; } player = new PlayerOnGame(uid, 0); player.UserID = uid; player.RealmID = 1; // player role不存DB player.SaveReqWaitAckTimeout = int.MaxValue; player.OnSaveReq(GameServerUtils.GetTimeMs()); player.DoNotSaveRole = true; GameServerUtils.GetPlayerTableOp().AddPlayer(player); var session = new PlayerSession(uid, 0); session.Player = player; GameServerUtils.GetPlayerTableOp().AddPlayerSession(uid, session); // 去friend上addFakePlayer var gm = new SSNotifyServerDealGMCmd(); gm.GmCmd.SetString("AddFakePlayer"); gm.CmdParams.SetString(string.Format("{0} {1}", uid, GameServerUtils.GetApp().ServerID)); GameServerUtils.GetPacketSender().SendToWorldServer((int)SSGameMsgID.DealgmcmdNotify, ref gm, uid); TraceLog.Trace("GmCmdSvc.AddFakePlayer uid {0} succ", uid); return 0; } public int GetFriendList(long userid, string[] cmdParams) { if (cmdParams.Length < 1) { TraceLog.Error("GmCmdSvc.GetFriendList no param, need uid"); return -1; } int.TryParse(cmdParams[0], out int uid); TraceLog.Trace("GmCmdSvc.GetFriendList uid {0}", uid); SSQueryFriendListReq ssreq = new SSQueryFriendListReq(); ssreq.Uid = uid; GameServerUtils.GetPacketSender().SendToWorldServer((int)SSGameMsgID.QueryFriendListReq, ref ssreq, uid); return 0; } public int FriendOp(long userid, string[] cmdParams) { if (cmdParams.Length < 3) { TraceLog.Error("GmCmdSvc.GetFriendList no param, need uid + friendUid + opType"); return -1; } int.TryParse(cmdParams[0], out int uid); int.TryParse(cmdParams[1], out int friendUid); int.TryParse(cmdParams[2], out int opType); TraceLog.Trace("GmCmdSvc.GetFriendList uid {0} friend {1} opType {2}", uid, friendUid, opType); CSFriendOpReq req = new CSFriendOpReq(); req.TargetUid = friendUid; req.OpType = opType; GameServerUtils.GetPacketSender().SendToWorldServer((int)CSGameMsgID.FriendOpReq, ref req, uid); return 0; } } }