116 lines
2.9 KiB
Lua
116 lines
2.9 KiB
Lua
function g_game.getRsa()
|
|
return G.currentRsa
|
|
end
|
|
|
|
function g_game.findPlayerItem(itemId, subType)
|
|
local localPlayer = g_game.getLocalPlayer()
|
|
if localPlayer then
|
|
for slot = InventorySlotFirst, InventorySlotLast do
|
|
local item = localPlayer:getInventoryItem(slot)
|
|
if item and item:getId() == itemId and (subType == -1 or item:getSubType() == subType) then
|
|
return item
|
|
end
|
|
end
|
|
end
|
|
|
|
return g_game.findItemInContainers(itemId, subType)
|
|
end
|
|
|
|
function g_game.chooseRsa(host)
|
|
if G.currentRsa ~= CIPSOFT_RSA and G.currentRsa ~= OTSERV_RSA then return end
|
|
if host:ends('.tibia.com') or host:ends('.cipsoft.com') then
|
|
g_game.setRsa(CIPSOFT_RSA)
|
|
|
|
if g_app.getOs() == 'windows' then
|
|
g_game.setCustomOs(OsTypes.Windows)
|
|
else
|
|
g_game.setCustomOs(OsTypes.Linux)
|
|
end
|
|
else
|
|
if G.currentRsa == CIPSOFT_RSA then
|
|
g_game.setCustomOs(-1)
|
|
end
|
|
g_game.setRsa(OTSERV_RSA)
|
|
end
|
|
|
|
-- Hack fix to resolve some 760 login issues
|
|
if g_game.getClientVersion() <= 760 then
|
|
g_game.setCustomOs(2)
|
|
end
|
|
end
|
|
|
|
function g_game.setRsa(rsa, e)
|
|
e = e or '65537'
|
|
g_crypt.rsaSetPublicKey(rsa, e)
|
|
G.currentRsa = rsa
|
|
end
|
|
|
|
function g_game.isOfficialTibia()
|
|
return G.currentRsa == CIPSOFT_RSA
|
|
end
|
|
|
|
function g_game.getSupportedClients()
|
|
return {
|
|
740, 741, 750, 760, 770, 772,
|
|
780, 781, 782, 790, 792,
|
|
|
|
800, 810, 811, 820, 821, 822,
|
|
830, 831, 840, 842, 850, 853,
|
|
854, 855, 857, 860, 861, 862,
|
|
870, 871,
|
|
|
|
900, 910, 920, 931, 940, 943,
|
|
944, 951, 952, 953, 954, 960,
|
|
961, 963, 970, 971, 972, 973,
|
|
980, 981, 982, 983, 984, 985,
|
|
986,
|
|
|
|
1000, 1001, 1002, 1010, 1011,
|
|
1012, 1013, 1020, 1021, 1022,
|
|
1030, 1031, 1032, 1033, 1034,
|
|
1035, 1036, 1037, 1038, 1039,
|
|
1040, 1041, 1050, 1051, 1052,
|
|
1053, 1054, 1055, 1056, 1057,
|
|
1058, 1059, 1060, 1061, 1062,
|
|
1063, 1064, 1070, 1071, 1072,
|
|
1073, 1074, 1075, 1076
|
|
}
|
|
end
|
|
|
|
-- The client version and protocol version where
|
|
-- unsynchronized for some releases, not sure if this
|
|
-- will be the normal standard.
|
|
|
|
-- Client Version: Publicly given version when
|
|
-- downloading Cipsoft client.
|
|
|
|
-- Protocol Version: Previously was the same as
|
|
-- the client version, but was unsychronized in some
|
|
-- releases, now it needs to be verified and added here
|
|
-- if it does not match the client version.
|
|
|
|
-- Reason for defining both: The server now requires a
|
|
-- Client version and Protocol version from the client.
|
|
|
|
-- Important: Use getClientVersion for specific protocol
|
|
-- features to ensure we are using the proper version.
|
|
|
|
function g_game.getClientProtocolVersion(client)
|
|
local clients = {
|
|
[980] = 971,
|
|
[981] = 973,
|
|
[982] = 974,
|
|
[983] = 975,
|
|
[984] = 976,
|
|
[985] = 977,
|
|
[986] = 978,
|
|
[1001] = 979,
|
|
[1002] = 980
|
|
}
|
|
return clients[client] or client
|
|
end
|
|
|
|
if not G.currentRsa then
|
|
g_game.setRsa(OTSERV_RSA)
|
|
end
|