Bom, hoje o conceito do opcodes já é difundido nos servidores, mas alguns mais antigos não possuem. Esse que vou trazer foi testado nas versões 8.54, então vamos lá.
Uma explicação breve do que são os Opcodes, esse é um sistema essencial pra todo otServer, pois ele permite o desenvolvimento de muitas outras funcionalidade de forma mais simples. Através dos opcodes é possível fazer a troca de informação entre servidor e cliente em tempo real.
(Obs: Será necessário a source do servidor)
PROTOCOLGAME.H
PROTOCOLGAME.CPP
ENUMS.H
PLAYER.H
LUASCRIPT.CPP
LUASCRIPT.H
CREATUREEVENT.H
CREATUREEVENT.CPP
GAME.H
GAME.CPP
Agora na pasta data do servidor você irá abrir o /creaturescripts/creaturescripts.xml e vai adicionar:
<event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/>
Agora em /creaturescripts crie o arquivo extendedopcode.lua e adicione nele:
OPCODE_LANGUAGE = 1
function onExtendedOpcode(cid, opcode, buffer)
if opcode == OPCODE_LANGUAGE then
-- otclient language
if buffer == 'en' or buffer == 'pt' then
-- example, setting player language, because otclient is multi-language...
--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)
end
else
-- other opcodes can be ignored, and the server will just work fine...
end
end
Créditos: MaXwEllDeN 100% por adaptar o código