public static void CreatePlayerImage(CSCommon.MapInfo_Npc nd, MapInstance map, ulong playerId) { PlayerImage ret = new PlayerImage(); ret.mId = ServerFrame.Util.GenerateObjID(ServerFrame.GameObjectType.PlayerImage); RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetOffPlayerData(pkg, playerId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { CSCommon.Data.RoleCom rc = new CSCommon.Data.RoleCom(); _io.Read(rc); OffPlayerData pd = new OffPlayerData(); pd.Deserizle(rc); ret.InitPlayerData(pd, rc); var init = new NpcInit(); init.GameType = eActorGameType.PlayerImage; init.Data = nd; init.OwnerMapData = map.MapInfo; if (!ret.Initialize(init)) { return; } ret.mAttackTarget = playerId; ret.Reborn(); ret.OnEnterMap(map); }; }
public RoleSyncInfo(PlayerImage pi) { RoleCom rc = pi.RoleData; OffPlayerData pd = pi.PlayerData; NPCData nd = pi.NPCData; RoleId = pi.Id; RoleName = pi.RoleName; RoleLevel = (ushort)pi.RoleLevel; Camp = rc.Camp; Sex = rc.Sex; Profession = rc.Profession; LocationX = nd.Position.X; LocationZ = nd.Position.Z; Direction = nd.Direction; RoleHp = nd.RoleHp; RoleMaxHp = pd.value.MaxHP; WeaponId = pd.WeapFacdeid; Speed = pd.value.Speed; }