Instalou as libs?
Alías, qual servidor está utilzando?
Instalou as libs?
Alías, qual servidor está utilzando?
Instalei sim, creio que tudo.
Sobre a questão de colocar:
<script>
<event name="PetDeath"/>
</script>
eu posso colocar em qualquer parte do monstro?
e o monstro continua no lugar de sempre? (data\monster) ?
SERVIDOR: Real Server 3.1
Sim em qualquer parte do XML do monstro e sim dentro da pasta data\monster.
Não pode esquecer de verificar se está assim também :
<flag convinceable="1"/>
Sim, eu deixei os rats pra fazer o teste e adicionei o script em cada monstro e os <flag convinceable="1"/> já estavam em 1.
Ainda não consigo comprar o pet.
info
Registrado: 31/12/69
Posts: 0
Reputação: 0
E incrível o sistema
Você manipula a criatura de um jeito espetacular salvando a criatura com o pet:setit
A única coisa chata seria as storages.
Mais ta incrível
Parabéns.
Então, cara, eu até fiz enquanto na fase de desenvolvimento por querys na database. O problema é que se toda hora eu tenho que salvar o pet na database e obter dados dela, acabei notando o pequeno lag que se criava na execução dos comandos, aí fiz por storage.
Obrigado a todos.
Eu não li o código (muito extenso), apenas tenho uma ideia de como ele funciona, então posso estar falando uma grande besteira, mas vamos lá...
Storages são armazenadas no banco de dados da mesma forma que seria se você criasse uma tabela especifica para os pets, então teoricamente (e provavelmente também na prática) o custo de salvar as informações é exatamente o mesmo. A diferença é quando salvar essas informações.
Se toda vez que você alterasse a storage de um player alterasse diretamente no banco de dados, o custo seria bem mais alto. Da mesma forma aconteceria se você alterasse a tabela de pets diretamente.
O motivo das storages serem mais rápidas é porque quando você altera uma storage, o banco de dados não é alterado imediatamente. A informação só é trocada na memória do servidor, de uma forma crua e rápida, e só é transmitida definitivamente ao banco de dados quando o player é salvo (quando é executado um save automático, quando o player sai do jogo, ou quando o servidor é fechado).
Agora que já está tudo feito por storages, não compensa alterar só por esse detalhe, mas uma coisa interessante de se fazer seria sobrecarregar (no sentido Lua) a função de save do open tibia:
__doPlayerSave__ = doPlayerSave function doPlayerSave(cid, shallow) get_pet(cid):save(shallow) return __doPlayerSave__(cid, shallow) end
Uma coisa interessante seria fazer proveito do "shallow", indicando à sua função de save se ela deve salvar todas as informações ou apenas as mais cruciais (para evitar, por exemplo, clonamento de itens ou algo assim).
O único problema de sobrecarregar a função Lua é que talvez ela não seja executada em todos os saves. Provavelmente quando o player sai do jogo ou o servidor desliga, uma função interna do open tibia é executada pra salvar o player, e não a função em Lua, então você teria que alterar diretamente no código fonte ou então criar um script que execute quando o player saia do jogo e quando o servidor feche, para que salvem o player.
Ou então usar storages, já que o open tibia vai cuidar de tudo direitinho pra você. É, tudo isso que eu escrevi não serviu pra nada mesmo.
info
Grupo: Campones
Registrado: 03/01/11
Posts: 36
Reputação: +8
Char no Tibia: Elder rawux

Testei aqui, muito bom o sistema Oneshot, Rep+
Me deu varias ideias, inclusive de uma vocation nova para meu projeto hahaha..
Sou leigo nesse assunto, mas será q n teria como modificar para tipo:
o pet avança lvl e ganha atributos, no caso nao só HP e MP mas tbm defesa e ataque.
Outra coisa que melhoraria o script seria o sistema de spells do pet ter como base
algum comando para soltar tal spell, exemplo: /pet cast m1 ou /pet cast Dark Bite, /pet cast Rock throw
algo assim para diferenciar os ataques do pet. É apenas uma sugestao, mais acho q ficaria mto bom ![]()
Testei aqui, muito bom o sistema Oneshot, Rep+
Me deu varias ideias, inclusive de uma vocation nova para meu projeto hahaha..
Sou leigo nesse assunto, mas será q n teria como modificar para tipo:
o pet avança lvl e ganha atributos, no caso nao só HP e MP mas tbm defesa e ataque.
Outra coisa que melhoraria o script seria o sistema de spells do pet ter como base
algum comando para soltar tal spell, exemplo: /pet cast m1 ou /pet cast Dark Bite, /pet cast Rock throw
algo assim para diferenciar os ataques do pet. É apenas uma sugestao, mais acho q ficaria mto bom
Eu planejo para um próximo update um sistema de atributos para pet. E sobre o comando /pet cast, irei aperfeiçoar-lo também.
Abraços.
E incrível o sistema
Você manipula a criatura de um jeito espetacular salvando a criatura com o pet:setit
A única coisa chata seria as storages.
Mais ta incrível
Parabéns.
Então, cara, eu até fiz enquanto na fase de desenvolvimento por querys na database. O problema é que se toda hora eu tenho que salvar o pet na database e obter dados dela, acabei notando o pequeno lag que se criava na execução dos comandos, aí fiz por storage.
Obrigado a todos.
Não use querys, vai acabar crashando de tantas consultas a db, a não ser que use cache com luasql, nesse caso é otimo, do contrario continue da forma que está pois está excelente. Storages não executam as querys quando são modificadas, elas salvam na memoria e só executam no logout e login.
No geral o sistema está muito bom, só a parte de spells que acho que poderia ser algo mais livre. Uma sugestão seria usar uma lib externa com todas as spells, e buscá-las apenas pelo seu nome, dai teria mais liberdade na criação das mesmas.
Meus parabéns, otimo sistema.
#Edit
Vi que as spells já são pelo nome, porem ela só da a configuração, se quiser uma spell diferente com varias areas, efeitos, conditions, creio que será mais complicado, a spell inteira criada num arquivo ou ate mesmo em uma função seria mais interessante.
ex.:
function do_pet_cast_spell(spell_name)
if spell_name "dark bite" then
-- executa a spell
elseif spell_name "furios bite" then -- sem criatividade kk
-- executa ,,,
else
-- ..
end
end
Dai ficaria algo mais livre pra criação. Isso é uma opnião minha apenas, e não sei se fica mais facil para os que detem pouco conhecimento de scripting.
Editado Janeiro 26 por dalvorsn
info
Grupo: Campones
Registrado: 07/10/12
Posts: 13
Reputação: +1

Vou testar no meu server 9.81 nao tenhu ctz que vai funcionar mas vo testar se funcionar eu dou rep+ xD
Mas pelo que vi o sistema parace muito bom e facil de configurar continua assim lek ![]()
Bom, como eu disse, é um sistema em fase de aprimoramento, então eu ainda quero sim mudar algumas coisas no sistema de magias e nos atributos do pet.
Editado Janeiro 26 por Oneshot
info
Grupo: Cavaleiro
Registrado: 26/02/11
Posts: 151
Reputação: +47
Char no Tibia: Tsuki no me

Cara muito legal
Ótimo pra ser usado em otservs próprios
info
Grupo: Campones
Registrado: 27/01/13
Posts: 1
Reputação: 0
Char no Tibia: [XY] Fil ou Roxyn

Hmm. Otimo sistem obrigado aê me ajudou =)
info
Grupo: Cavaleiro
Registrado: 19/09/07
Posts: 196
Reputação: +42
Char no Tibia: Programadorfp

Meus parabéns minha meta neste ano é ficar muito melhor em programação, sei apenas linguagem C++, C#, tenho preguiças de aprender Lua solo, muito bom, quem sabe não façamos umas turmas de estudo. Muito Bom Oneshot, logo logo você jpa lança a 2.0!!
info
Grupo: Artesão
Registrado: 20/01/13
Posts: 116
Reputação: +12
Char no Tibia: Alia Dori

Cara, na boa!
Eu acho que é o primeiro sistema de Pet que funciona, já vi vários antigamente aqui e nunca funcionava.
Excelente, nota 1000.
info
Grupo: Campones
Registrado: 19/01/13
Posts: 5
Reputação: 0
Descobri o que houve era o arquivo pet trainer.lua que eu tinha escrito de maneira errada.
Consegui colocar ele no mapa, porém ele não vende o pet, o que devo fazer?
Eu escrevo "sell", mas não acontece nada. Agora se eu escrever Revive ele diz "You don't have a pet".