本文整理汇总了C#中Mooege.Net.MooNet.MooNetClient.MapLocalObjectID方法的典型用法代码示例。如果您正苦于以下问题:C# MooNetClient.MapLocalObjectID方法的具体用法?C# MooNetClient.MapLocalObjectID怎么用?C# MooNetClient.MapLocalObjectID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mooege.Net.MooNet.MooNetClient
的用法示例。
在下文中一共展示了MooNetClient.MapLocalObjectID方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddSubscriber
/// <summary>
/// Adds a client subscriber to object, which will eventually be notified whenever the object changes state.
/// </summary>
/// <param name="client">The client to add as a subscriber.</param>
/// <param name="remoteObjectId">The client's dynamic ID.</param>
public void AddSubscriber(MooNetClient client, ulong remoteObjectId)
{
// Map the subscriber's dynamic ID to to our dynamic ID so we know how to translate later on when the object makes a notify call
client.MapLocalObjectID(this.DynamicId, remoteObjectId);
this.Subscribers.Add(client);
// Since the client wasn't previously subscribed, it should not be aware of the object's state -- let's notify it
this.NotifySubscriptionAdded(client);
}
示例2: Channel
/// <summary>
/// Creates a new channel for given client with supplied remote object-id.
/// </summary>
/// <param name="client">The client channels is created for</param>
/// <param name="remoteObjectId">The remove object-id of the client.</param>
public Channel(MooNetClient client, ulong remoteObjectId = 0)
{
this.BnetEntityId = bnet.protocol.EntityId.CreateBuilder().SetHigh((ulong)EntityIdHelper.HighIdType.ChannelId).SetLow(this.DynamicId).Build();
this.D3EntityId = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ChannelId).SetIdLow(this.DynamicId).Build();
this.PrivacyLevel = bnet.protocol.channel.ChannelState.Types.PrivacyLevel.PRIVACY_LEVEL_OPEN_INVITATION;
this.MinMembers = 1;
this.MaxMembers = 8;
this.MaxInvitations = 12;
if (remoteObjectId != 0)
client.MapLocalObjectID(this.DynamicId, remoteObjectId); // This is an object creator, so we have to map the remote object ID
// The client can't be set as the owner (or added as a member) here because the server must first make a response
// to the client before using a mapped ID (presuming that this was called from a service).
// We'll just let the caller do that for us.
}
示例3: AddSubscriber
/// <summary>
/// Adds a client subscriber to object, which will eventually be notified whenever the object changes state.
/// </summary>
/// <param name="client">The client to add as a subscriber.</param>
/// <param name="remoteObjectId">The client's dynamic ID.</param>
public void AddSubscriber(MooNetClient client, ulong remoteObjectId)
{
// [D3Inferno]
// Remove Subscribers that have been disconnected.
// Apparently the RPCObject is not being cleaned up properly.
// See the comment at the top for more info.
// Conver to an Array so we can remove as we iterate.
foreach (var subscriber in this.Subscribers.ToArray())
{
if (!subscriber.Connection.IsConnected)
{
Logger.Warn("Removing disconnected subscriber {0}", subscriber);
this.Subscribers.Remove(subscriber);
}
}
// Map the subscriber's dynamic ID to to our dynamic ID so we know how to translate later on when the object makes a notify call
client.MapLocalObjectID(this.DynamicId, remoteObjectId);
this.Subscribers.Add(client);
// Since the client wasn't previously subscribed, it should not be aware of the object's state -- let's notify it
foreach (var subscriber in this.Subscribers)
this.NotifySubscriptionAdded(subscriber);
//this.NotifySubscriptionAdded(client);
}
示例4: Join
public void Join(MooNetClient client, ulong remoteObjectId)
{
client.MapLocalObjectID(this.DynamicId, remoteObjectId);
this.AddMember(client);
}