Olof_Palme
New Member
- Joined
- May 13, 2019
- Messages
- 34
- Reaction score
- 4
necroing here, but has someone made this client work with the nostalrius distro?
necroing here, but has someone made this client work with the nostalrius distro?
I will try to make some sense of it and share any solution if I can.there are people lot that has managed to do lots of things with this 0client, sadly they don't even has shared how to use the client.
someone know how to login on custom otserv? 7.72 with this client?
It does, hereI do not understand much. But ... I think my server doesn't have RSA, it's nostalrius 7.72. Even changing RSA, I can't connect.
It does, here
You can find exhausting instructions here, other than the fact that your server stores it in the aforementioned place, not in key.pem, everything else should work for youSo theoretically it would be just changing the RSA of the Client and the same as that of otserv.cpp? Thank you very much.
As Olddies said on the previous page, you can find it inIn my old client, the game's ip was changed via INIT.LUA. Where can I change this on the client in question?
modules/gamelib/const.lua
You can find exhausting instructions here, other than the fact that your server stores it in the aforementioned place, not in key.pem, everything else should work for you
btw, next time use search function ^^
As Olddies said on the previous page, you can find it inmodules/gamelib/const.lua
Target ip its inThere is nothing referring to ip, host, in const.
And still thank you very much for your tips. Decoration.
tried to do this in entergame.lua: local function onCharacterList (protocol, characters, account, otui) - Try adding the server to the server list ServerList.add (MYIP, G.port, g_game.getClientVersion ())
But the Client's Enter Game doesn't open.
config/config.otml
Target ip its inconfig/config.otml
-- @docclass
ProtocolLogin = extends(Protocol, "ProtocolLogin")
LoginServerError = 10
LoginServerUpdate = 17
LoginServerMotd = 20
LoginServerUpdateNeeded = 30
LoginServerCharacterList = 100
LoginServerExtendedCharacterList = 101
function ProtocolLogin:login(host, port, accountName, accountPassword)
if string.len(host) == 0 or port == nil or port == 0 then
signalcall(self.onLoginError, self, tr("You must enter a valid server address and port."))
return
end
self.accountName = accountName
self.accountPassword = accountPassword
self.connectCallback = self.sendLoginPacket
self:connect(host, port)
end
function ProtocolLogin:cancelLogin()
self:disconnect()
end
function ProtocolLogin:sendLoginPacket()
local msg = OutputMessage.create()
msg:addU8(ClientOpcodes.ClientEnterAccount)
msg:addU16(2)
msg:addU16(772)
if g_game.getClientVersion() >= 980 then
msg:addU32(g_game.getClientVersion())
end
msg:addU32(g_things.getDatSignature())
msg:addU32(g_sprites.getSprSignature())
msg:addU32(PIC_SIGNATURE)
if g_game.getClientVersion() >= 980 then
msg:addU8(0) -- clientType
end
local offset = msg:getMessageSize()
if g_game.getClientVersion() >= 772 then
-- first RSA byte must be 0
msg:addU8(0)
-- xtea key
self:generateXteaKey()
local xteaKey = self:getXteaKey()
msg:addU32(xteaKey[1])
msg:addU32(xteaKey[2])
msg:addU32(xteaKey[3])
msg:addU32(xteaKey[4])
end
if g_game.getFeature(GameAccountNames) then
msg:addString(self.accountName)
else
msg:addU32(tonumber(self.accountName))
end
msg:addString(self.accountPassword)
if self.getLoginExtendedData then
local data = self:getLoginExtendedData()
msg:addString(data)
end
local paddingBytes = g_crypt.rsaGetSize() - (msg:getMessageSize() - offset)
assert(paddingBytes >= 0)
msg:addPaddingBytes(paddingBytes, 0)
if g_game.getClientVersion() >= 772 then
msg:encryptRsa()
end
if g_game.getFeature(GameProtocolChecksum) then
self:enableChecksum()
end
self:send(msg)
if g_game.getClientVersion() >= 772 then
self:enableXteaEncryption()
end
self:recv()
end
function ProtocolLogin:onConnect()
self.gotConnection = true
self:connectCallback()
self.connectCallback = nil
end
function ProtocolLogin:onRecv(msg)
while not msg:eof() do
local opcode = msg:getU8()
if opcode == LoginServerError then
self:parseError(msg)
elseif opcode == LoginServerMotd then
self:parseMotd(msg)
elseif opcode == LoginServerUpdateNeeded then
signalcall(EnterGame.onUpdateNeeded, self)
elseif opcode == LoginServerCharacterList then
self:parseCharacterList(msg)
elseif opcode == LoginServerExtendedCharacterList then
self:parseExtendedCharacterList(msg)
elseif opcode == LoginServerUpdate then
local signature = msg:getString()
signalcall(self.onUpdateNeeded, self, signature)
else
self:parseOpcode(opcode, msg)
end
end
self:disconnect()
end
function ProtocolLogin:parseError(msg)
local errorMessage = msg:getString()
signalcall(self.onLoginError, self, errorMessage)
end
function ProtocolLogin:parseMotd(msg)
local motd = msg:getString()
signalcall(self.onMotd, self, motd)
end
function ProtocolLogin:parseCharacterList(msg)
local characters = {}
if g_game.getClientVersion() > 1010 then
local worlds = {}
local worldsCount = msg:getU8()
for i=1, worldsCount do
local world = {}
local worldId = msg:getU8()
world.worldName = msg:getString()
world.worldIp = msg:getString()
world.worldPort = msg:getU16()
msg:getU8() -- unknow byte?
worlds[worldId] = world
end
local charactersCount = msg:getU8()
for i=1, charactersCount do
local character = {}
local worldId = msg:getU8()
character.name = msg:getString()
character.worldName = worlds[worldId].worldName
character.worldIp = worlds[worldId].worldIp
character.worldPort = worlds[worldId].worldPort
characters[i] = character
end
else
local charactersCount = msg:getU8()
for i=1,charactersCount do
local character = {}
character.name = msg:getString()
character.worldName = msg:getString()
character.worldIp = iptostring(msg:getU32())
character.worldPort = msg:getU16()
if g_game.getClientVersion() >= 980 then
character.unknown = msg:getU8()
end
characters[i] = character
end
end
local account = {}
account.premDays = msg:getU16()
signalcall(self.onCharacterList, self, characters, account)
end
function ProtocolLogin:parseExtendedCharacterList(msg)
local characters = msg:getTable()
local account = msg:getTable()
local otui = msg:getString()
signalcall(self.onCharacterList, self, characters, account, otui)
end
function ProtocolLogin:parseOpcode(opcode, msg)
signalcall(self.onOpcode, self, opcode, msg)
end
function ProtocolLogin:onError(msg, code)
local text = translateNetworkError(code, self:isConnecting(), msg)
signalcall(self.onLoginError, self, text)
end
Bro, can u help me?I am planing to delete everything that has to do with Tibia from my harddisk therefore I will publish files, I do not need anymore but the community.
I just packed them quickly, maybe they contain any copied files or wont even work at all (I doubt that).
I won't support help at all.
If you don't know how to work with them, do not download it.
This Client should contain files from this thread:
Gaming - OTClient vs Real Tibia Client 7.x
MEGA
This post is way older than my current client. Also the client in this thread is not even otcv8 which my current client is.he just posted this sh.t to call our attention and make us buy his own full working copy, pretty scam
you just post something that doesnt work, have to do tons of misteryous configurations to make it barely usable, you know what im talking about, shame on you dude... #peaceThis post is way older than my current client. Also the client in this thread is not even otcv8 which my current client is.
Your comment is literally bs considering that the client I’ve been using for Tibiara didn’t even exists at this time.
And wtf your talking at all? There is an active download link for the client I am showing off.
This thread was created about 5 years ago, what did you expect some download and run stuff so you can quick grab cash with a server? Go and learn how to make it work. I could make it easily work.you just post something that doesnt work, have to do tons of misteryous configurations to make it barely usable, you know what im talking about, shame on you dude... #peace
I just packed them quickly, maybe they contain any copied files or wont even work at all (I doubt that).
I won't support help at all.
If you don't know how to work with them, do not download it.
nah, im not gonna loose time with this pile os sh.t and i recommend everyone to do soThis thread was created about 5 years ago, what did you expect some download and run stuff so you can quick grab cash with a server? Go and learn how to make it work. I could make it easily work.
Just to make sure you're not blind: