Progress updating to cv981/pv973:

* Implemented the new client AND protocol version methods.
* Implemented the new speed laws added in cv980 (http://www.tibia.com/news/?subtopic=newsarchive&id=2251).
* Added more missing bytea to login packets (client version/type and some unknown bytes).
* Fixed the InputMessage::getDouble method.
* Cleaned up some of the const values.
* Started on the pending state features.

TODO:
* Pending game state feature.
* Ensure version compatibility hasn't been compromised.
This commit is contained in:
BeniS
2012-12-29 00:05:45 +13:00
parent 619285069c
commit 44e428bccb
29 changed files with 260 additions and 129 deletions

View File

@@ -50,8 +50,16 @@ function g_game.getSupportedProtocols()
return {
810, 853, 854, 860, 861, 862, 870,
910, 940, 944, 953, 954, 960, 961,
963, 970, 971, 980, 981
963, 970, 971, 973
}
end
function g_game.getSupportedClients(protocol)
clients = {
[971] = {980},
[973] = {981}
}
return clients[protocol] or {protocol}
end
g_game.setRsa(OTSERV_RSA)

View File

@@ -28,7 +28,12 @@ function ProtocolLogin:sendLoginPacket()
local msg = OutputMessage.create()
msg:addU8(ClientOpcodes.ClientEnterAccount)
msg:addU16(g_game.getOsType())
msg:addU16(g_game.getClientVersion())
msg:addU16(g_game.getProtocolVersion())
if g_game.getProtocolVersion() >= 971 then
msg:addU32(g_game.getClientVersion())
msg:addU8(182) -- clientType
end
msg:addU32(g_things.getDatSignature())
msg:addU32(g_sprites.getSprSignature())
@@ -113,6 +118,11 @@ function ProtocolLogin:parseCharacterList(msg)
character.worldIp = iptostring(msg:getU32())
character.worldPort = msg:getU16()
characters[i] = character
-- ??
if g_game.getProtocolVersion() >= 971 then
msg:getU8()
end
end
local account = {}