Vlw, rep+
Uma dúvida, não teria como tirar esse limite apenas com a source do server, mesmo que tivesse que adicionar cada ShotEffect novo? (do jeito que é feito com MagicEffect)
Se tiver como, eu tenho os MagicEfffects configurados já, daí só copiar e renomear p/ os missiles, seria muito útil p/ os que não possuem source do otc.







info
Grupo: Conde
Registrado: 01/07/13
Posts: 521
Reputação: +291
Bom, ai vai um código para quem quer ou pretende utilizar muitos shotEffects em seu servidor. Após o tutorial o seu novo limite será de 65.534 shotEffects.
No TFS 0.3.6
Vá em Protocolgame.cpp e procure por:
substitua por:
Ainda em Protocolgame.cpp procure a função:
E substitua por:
Agora em Protocolgame.h procure por:
E substitua por:
Depois procure por:
E substitua por:
Agora vamos em Game.cpp
Procure por:
E substitua por:
Agora procure por:
E substitua por:
Agora vamos em Game.h
Procure por:
E substitua por:
Agora procure por:
E substitua por:
Agora vamos em Player.h
Procure por:
E substitua por:
Agora vamos até Const.h
Procure por:
E lá depois do ultimo ShotEffect adicione:
E altere o SHOT_EFFECT_LAST dessa forma:
Agora vamos em Tools.cpp
Procure por:
E lá depois de:
Vocês adicionam:
Ficando assim:
Compile e agora vamos no seu servidor
data/lib/000-constant.lua
Antes de:
CONST_ANI_WEAPONTYPEVocês adicionam:
Depois procure por:
CONST_ANI_NONEE mudem para:
Agora ache:
CONST_ANI_LASTE deixe assim:
Pronto, a parte do código de fonte/servidor está concluída.
"Ah, então já posso usar inúmeros shotEffects.."
NÃO!
Vamos agora as modificações no nosso OTclient.
Apenas uma observação:
FFFE em decimal é 65534, ou seja, seu servidor irá ler shot Effects do 0 até o 65534, evitando trabalho de vocês adicionarem 1 à 1.
Abra a source do seu OTclient com Microsoft Visual Studio ou CodeBlocks e vamos lá:
Vá em Protocolgameparse.cpp
Procure a função:
Substitua por:
Ainda na source do seu OTclient vá em Const.h
Procure por:
E adicione antes:
DETALHE: Observe o número anterior, o meu é 66, por isso o novo que usei foi 67.
Feito isso, compile seu OTclient. Depois vão em OTclient/modules/things/things.lua
E dentro da função:
Adicione a feature:
Salvem e pronto, felicidades com seus 65534 ShotEffects.
Atenciosamente, Douglas!
Créditos
Douglas (Lordbaxx) - Trabalhei no OTclient para fazer com que o código funcionasse sem estorva.
KotZletY - Consegui entender mais sobre, graças á ele.
Editado Dezembro 21 por Lordbaxx