Então, primeiramente obrigado a todos que lerem e tentarem ajudar, realmente preciso fazer isso :(
Eu tenho um servidor de um jogo (tibia) que é feito através de módulos C++, LUA e XML (porém, os editáveis são só em LUA e XML) Para rodar o jogo, tem um cliente específico (otclientv8) (open source) em que há diversos módulos feitos com LUA que pode editar a vontade.
Para realizar uma ligação "servidor <-> client" eu posso fazer através de envio de protocolo numa função chamada Extended OpCode, na parte do cliente do jogo, fica assim:
if protocolGame then
local myValue = math.random(1, 2)
protocolGame:sendExtendedOpcode(52, myValue)
end
Aí, para receber em meu servidor eu uso:
function onExtendedOpcode(cid, opcode, buffer)
if opcode == 52 then
local myValue = tonumber(buffer)
if myValue == 1 then
doPlayerSay(cid, 'valor eh 1')
elseif myValue == 2 then
doPlayerSay(cid, 'valor eh 2')
else
doPlayerSay(cid, 'valor indefinido')
end
end
end
Só que, o problema é o seguinte, no meu servidor falta a função para enviar uma informação de volta pro cliente, essa função tenho apenas em C++, que é exatamente esta:
int32_t LuaInterface::luaDoSendPlayerExtendedOpcode(lua_State* L)
{
//doPlayerSendExtendedOpcode(cid, opcode, buffer)
std::string buffer = popString(L);
int32_t opcode = popNumber(L);
ScriptEnviroment* env = getEnv();
if(Player* player = env->getPlayerByUID(popNumber(L)))
{
player->sendExtendedOpcode(opcode, buffer);
lua_pushboolean(L, true);
}
lua_pushboolean(L, false);
return 1;
}
Não entendo de C++ e vim aqui perguntar 2 coisas:
Teria como alguém me ajudar? Ou com poucas informações como estas fica complicado? Entrego qualquer que seja o que precisa, porque estou precisando muuuuuito fazer isto!!
Agradeço pela atenção