Struct InstanceDetailsBroadcast
Broadcast carrying the state of an instance to one of its members.
public struct InstanceDetailsBroadcast : IBroadcast
- Implements
-
IBroadcast
- Inherited Members
Remarks
Answered for every request, including the ones with nothing to report — a character that is not in an instance gets InInstance false rather than silence, for the same reason the channel list answers with an empty list: a panel the player opened and that never fills in is indistinguishable from a hung game.
Fields
DifficultyName
Name of the difficulty the instance was opened at, for display.
public string DifficultyName
Field Value
InInstance
False when the character is not in an instance; every other field is then unset.
public bool InInstance
Field Value
IsPrivate
Whether the instance is hidden from the dungeon finder's public list.
public bool IsPrivate
Field Value
Remarks
Shown to every member, not only the leader. Whether strangers can walk into the run they are in is something all of them have an interest in knowing; only the leader can change it.
LeaderCharacterID
Character ID of the leader, or 0 when the leader could not be identified.
public long LeaderCharacterID
Field Value
Remarks
An ID, not a name. The client resolves it through ClientNamingSystem, which
answers from a disk-backed cache and asks the server only for an ID it has never seen —
so a leader the viewer has grouped with before costs nothing to name, and the name it
shows is the same one every other panel shows for that character.
This does not widen who can be named: the ID is found by a walk over the answering scene server's own characters, so a leader running the party from another scene server is still unidentifiable and still arrives here as 0. What changed is that the name is no longer resolved twice, once per system, from two different sources.
Members
Everyone currently standing in the instance.
public InstanceMemberData[] Members
Field Value
RemainingSeconds
Seconds until the instance closes on its own, or 0 when it is not time-bounded.
public int RemainingSeconds
Field Value
Remarks
A snapshot. The client counts down from it between refreshes rather than being sent a tick, so the number on screen keeps moving without a message per second.
SceneName
Scene name of the instance.
public string SceneName
Field Value
ViewerIsLeader
Whether the character being answered is the leader, and so may remove others.
public bool ViewerIsLeader
Field Value
Remarks
Decided by the server and sent, rather than inferred client-side by comparing IDs. The client's copy of this only decides whether the controls are drawn; the server re-checks on the request itself, because a drawn control is not an authorisation.