- summary: Says whether the character was created, and when the name was the problem, exactly what was wrong with it.
- area: Game.Character.Management
- confidence: 0.89
Says whether the character was created, and when the name was the problem, exactly what was wrong with it.
- Kind event
- Area Game.Character.Management
- Named by beta, gamemapping
Answers CharacterCreationRequest - success and every kind of refusal arrive
through this one message.
READ THE RESULT FIRST, THE REASON SECOND
TWO MEMBERS, AND ONLY ONE OF THEM ALWAYS MEANS SOMETHING. The result says what happened. The reason describes the NAME, and it is meaningful only when the result says the name was the problem - on every other outcome it is whatever the server left it at, usually the zero value, and reading it will tell you the name was fine while the creation failed for some other reason entirely.
SUCCESS IS THE ZERO VALUE of the result. That is the client's own test: it treats zero as created and anything greater as a refusal, then switches on the refusal to choose what to show. The distinct refusals the 3.6.10.10 client recognises are, in its own words: no reason given, the name was invalid, you already have too many characters, and you are not allowed to - which its popup calls "not a subscriber". Newer values exist in the enum that the client does not handle individually.
WHAT TO DO WITH IT
ON SUCCESS, RE-READ THE CHARACTER LIST. The event carries no character: it does not tell you the id, the name or anything else about what was created. The real client marks the creation validated and moves on; the new character reaches it through the list, not through this message.
ON AN INVALID NAME, THE REASON IS ACTIONABLE - it is the only refusal where you learn something you can fix without asking the player.
IT ARRIVES BY TYPE. The request went out uncorrelated, so nothing links this event back to it by uid. Do not wait for a matching uid; wait for the event.
BEWARE THE PADDING. The message is padded with a member of the SAME enum type as the result, and which member is padding changes between builds. Read by role, never by field number.
When you may send it
- Requires
authenticatedobserved
Related messages
- Arrives after
CharacterCreationRequest
Fields
| # | Field | Type | Meaning | You set it |
|---|---|---|---|---|
| 2 | result | CharacterCreationResult | Whether the character was created, and if not, which class of refusal it was. | never |
| 3 | reason | NameCompliance | What was wrong with the name. Only meaningful when the result says the name was rejected. | never |
Recovered with score 190, confidence 0.89, margin 190 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 3.
Aucun avis à afficher.