Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate significance of some JSON values sent from launcher.exe to Tl.exe #30

Open
alexrp opened this issue May 23, 2022 · 5 comments
Labels
area: client Issues related to the launcher/client APIs. area: documentation Issues related to the documentation. area: research Issues related to reverse engineering of the game. cpu: x86 64 Issues that are specific to x86 (64-bit). os: windows Issues that are specific to Windows (10, 11, etc). state: approved Enhancements and tasks that have been approved.
Milestone

Comments

@alexrp
Copy link
Member

alexrp commented May 23, 2022

sealed class LauncherGameInfo
{
// TODO: account_bits, access_level, chars_per_server, user_permission
[JsonPropertyName("result-code")]
public int ResultCode { get; } = 200;
[JsonPropertyName("game_account_name")]
public string GameAccountName { get; } = "TERA";
[JsonPropertyName("master_account_name")]
public string MasterAccountName { get; }
[JsonPropertyName("ticket")]
public string Ticket { get; }
[JsonPropertyName("last_connected_server_id")]
public int LastServerId { get; }
public LauncherGameInfo(string accountName, string ticket, int lastServerId)
{
MasterAccountName = accountName;
Ticket = ticket;
LastServerId = lastServerId;
}
}

I seem to remember that they are not actually used by Tl.exe for anything (except chars_per_server), hence their omission in LauncherGameInfo, but we should confirm that.

@alexrp alexrp added state: approved Enhancements and tasks that have been approved. type: feature area: documentation Issues related to the documentation. area: client Issues related to the launcher/client APIs. area: research Issues related to reverse engineering of the game. labels May 23, 2022
@alexrp alexrp added this to the v1.0 milestone May 23, 2022
@alexrp alexrp self-assigned this May 23, 2022
@alexrp alexrp changed the title Investigate significance of some values sent from launcher.exe to Tl.exe Investigate significance of some JSON values sent from launcher.exe to Tl.exe May 25, 2022
@alexrp
Copy link
Member Author

alexrp commented May 31, 2022

user_permission is almost certainly related to the permission_mask in the server list XML response. I'd imagine Tl.exe filters out servers that the account doesn't have access to when sending the server list to TERA.exe.

@KYGAS
Copy link

KYGAS commented May 31, 2022

They don't get filtered out, the flag tells the client if user can access a "restricted" server.
A restricted server is a server with permission mask >= 1
If the server appears as restricted client will not attempt to access it unless user_permission >= permission_mask

Edit : This could be either user_permission or access_rights flag, unsure about that part

@alexrp alexrp modified the milestones: v1.0, v2.0 Jun 4, 2022
@justkeepquiet
Copy link

Read this https://disk.yandex.ru/i/izEgqMLhyi_qLQ about permissions and launcher.

@alexrp
Copy link
Member Author

alexrp commented Jun 17, 2023

@KYGAS

If the server appears as restricted client will not attempt to access it unless user_permission >= permission_mask

Can you clarify the exact behavior in this case? E.g. in the server list, does the server appear similarly to being offline, or full, or something?

@KYGAS
Copy link

KYGAS commented Jun 22, 2023

As far as I understand the scheme, the server appearance is completely dictated by the "server list string".
You can customize the name ( Online/Offline/Restricted/... )
Client, up to my knowledge, doesn't filter out servers it can not access, instead there is a PopUp field inside of the sls itself which gets called by the client if the server shouldn't be accessible 🤔

Sorry for late reply, i rarely check github D:

@alexrp alexrp modified the milestones: v2.0, v3.0, v4.0 Aug 17, 2023
@alexrp alexrp added os: windows Issues that are specific to Windows (10, 11, etc). cpu: x86 64 Issues that are specific to x86 (64-bit). labels Dec 14, 2023
@alexrp alexrp removed their assignment Jan 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: client Issues related to the launcher/client APIs. area: documentation Issues related to the documentation. area: research Issues related to reverse engineering of the game. cpu: x86 64 Issues that are specific to x86 (64-bit). os: windows Issues that are specific to Windows (10, 11, etc). state: approved Enhancements and tasks that have been approved.
Development

No branches or pull requests

3 participants