mirror of
https://github.com/edubart/otclient.git
synced 2025-10-17 13:03:27 +02:00
Merge pull request #934 from diath/fix_login_protocol
Fix parsing the premium status in newer login protocol versions
This commit is contained in:
@@ -322,4 +322,15 @@ StoreState = {
|
||||
Timed = 3
|
||||
}
|
||||
|
||||
AccountStatus = {
|
||||
Ok = 0,
|
||||
Frozen = 1,
|
||||
Suspended = 2,
|
||||
}
|
||||
|
||||
SubscriptionStatus = {
|
||||
Free = 0,
|
||||
Premium = 1,
|
||||
}
|
||||
|
||||
-- @}
|
||||
|
@@ -240,7 +240,20 @@ function ProtocolLogin:parseCharacterList(msg)
|
||||
end
|
||||
|
||||
local account = {}
|
||||
account.premDays = msg:getU16()
|
||||
if g_game.getProtocolVersion() > 1077 then
|
||||
account.status = msg:getU8()
|
||||
account.subStatus = msg:getU8()
|
||||
|
||||
account.premDays = msg:getU32()
|
||||
if account.premDays ~= 0 and account.premDays ~= 65535 then
|
||||
account.premDays = math.floor((account.premDays - os.time()) / 86400)
|
||||
end
|
||||
else
|
||||
account.status = AccountStatus.Ok
|
||||
account.premDays = msg:getU16()
|
||||
account.subStatus = account.premDays > 0 and SubscriptionStatus.Premium or SubscriptionStatus.Free
|
||||
end
|
||||
|
||||
signalcall(self.onCharacterList, self, characters, account)
|
||||
end
|
||||
|
||||
@@ -258,4 +271,4 @@ end
|
||||
function ProtocolLogin:onError(msg, code)
|
||||
local text = translateNetworkError(code, self:isConnecting(), msg)
|
||||
signalcall(self.onLoginError, self, text)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user