brun123 369 Postado Agosto 20, 2012 Share Postado Agosto 20, 2012 Claro que não some, o autor do tópico que deve ter alguma coisa no login.lua ou no vocations.xml que faz retornar a vocação Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/page/2/#findComment-1320981 Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Agosto 21, 2012 Share Postado Agosto 21, 2012 Primeiramente, obrigado pela contribuição, continue a estudar a linguagem Lua e melhorar seus scripts. Mas, sinceramente, você não fez nada aí, simplesmente se utilizou de um "bug", ou melhor, de uma verificação interna dos servidores relacionado ao sistema de promotion. Quando você configura duas vocações X e Y, onde o fromvoc de Y é X e usa a função doPlayerSetVocation(cid, Y), ao sair do jogo, o sistema verifica outra variável do jogador, o promotionLevel, se esse é menor que o necessário para ser a vocação Y, então ele automaticamente retorna a vocação para X. Para exemplificar melhor, tomaremos como exemplo, Sorcerer e Master Sorcerer <vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="2" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> Veja, como dito anteriormente, o fromvoc da vocação Master Sorcerer (ID 5) é o Sorcerer (ID 1). Ao, equivocadamente, usar a função doPlayerSetVocation(cid, 5) sem usar antes doPlayerSetPromotionLevel(cid, 1), você está "bugando" o sistema, fazendo com que a vocação não seja permanente. Mas, mesmo assim, belo artifício usado. Abraços. Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/page/2/#findComment-1321457 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 21, 2012 Autor Share Postado Agosto 21, 2012 Inicialmente obrigado, na verdade isso foi verdadeiramente na sorte, eu tava editando ai percebi que perdia. Obrigado pelo conhecimento transmitido, excelente tutorial. Só não dou REP+ porque to devendo 3. Mas lá pra frente eu posso dar. Att: Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/page/2/#findComment-1321472 Compartilhar em outros sites More sharing options...
Posts Recomendados