Ir para conteúdo

Posts Recomendados

Olá pessoal! Eu desenvolvi um script simples que irá resolver um problema bem grande.

Quando um player troca de vocação de alguma maneira, a sua vida e mana continua a mesma. Então, um player cria um sorcerer ou druid, pega nível MUITO alto e troca para knight. Após pegar muitos níveis mais, dando spam com sua mana pool imensa, vira paladin, com vida e mana de knight e sorcerer respectivamente.

 

O script pode ser alterado como quiserem, ele funciona por talkaction.

 

Em data/talkactions/talkactions.xml, adicione:

 

<!-- Vocação -->

<talkaction words="!changeknight" script="knight.lua"/>

<talkaction words="!changepaladin" script="paladin.lua"/>

<talkaction words="!changedruid" script="druid.lua"/>

<talkaction words="!changesorcerer" script="sorcerer.lua"/>

 

Em data/talkactions/scripts, crie quatro scripts. knight.lua, paladin.lua, druid.lua e sorcerer.lua.

 

Respectivamente:

 

 

knight:

 

function onSay(cid,words,params)

level = getPlayerLevel(cid)

 

newhp = (level-8)*VIDA+100

 

 

newmana = (level-8)*MANA

 

 

doPlayerSetVocation(cid, 4)

playerid = getPlayerGUID(cid)

db.executeQuery("UPDATE `players` SET `healthmax`="..newhp..",`health`="..newhp..",`manamax`="..newmana..",`mana`="..newmana.." WHERE `players`.`id`= ".. playerid .."")

doRemoveCreature(cid)

end

 

Em vermelho a vida que o knight ganha por nível, e em azul a mana que ele ganha.

 

 

Paladin:

 

function onSay(cid,words,params)

level = getPlayerLevel(cid)

 

newhp = (level-8)*VIDA+100

 

 

newmana = (level-8)*MANA

 

 

doPlayerSetVocation(cid, 3)

playerid = getPlayerGUID(cid)

db.executeQuery("UPDATE `players` SET `healthmax`="..newhp..",`health`="..newhp..",`manamax`="..newmana..",`mana`="..newmana.." WHERE `players`.`id`= ".. playerid .."")

doRemoveCreature(cid)

end

 

Mesma coisa das cores.

 

 

Druid:

 

 

 

function onSay(cid,words,params)

level = getPlayerLevel(cid)

 

newhp = (level-8)*VIDA+100

 

 

newmana = (level-8)*MANA

 

 

doPlayerSetVocation(cid, 2)

playerid = getPlayerGUID(cid)

db.executeQuery("UPDATE `players` SET `healthmax`="..newhp..",`health`="..newhp..",`manamax`="..newmana..",`mana`="..newmana.." WHERE `players`.`id`= ".. playerid .."")

doRemoveCreature(cid)

end

 

 

 

E sorcerer:

 

 

 

function onSay(cid,words,params)

level = getPlayerLevel(cid)

 

newhp = (level-8)*VIDA+100

 

 

newmana = (level-8)*MANA

 

 

doPlayerSetVocation(cid, 1)

playerid = getPlayerGUID(cid)

db.executeQuery("UPDATE `players` SET `healthmax`="..newhp..",`health`="..newhp..",`manamax`="..newmana..",`mana`="..newmana.." WHERE `players`.`id`= ".. playerid .."")

doRemoveCreature(cid)

end

 

 

 

E é só isso.

Preciso de algumas sugestões de vocês para melhorar o script. Primeiro, algo que o player tem que dar em troca, talvez dias de premium, dinheiro, item, vocês que sabem. Segundo, algum bug que encontrarem, algo que os players estejam fazendo para "apelar" usando esse sistema, poste aqui que eu dou um jeito. Espero ter ajudado vocês, os créditos são todos meus.

Editado por _ferrari_
Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/
Compartilhar em outros sites

so de olhar o script ja encontro uma forma de se dar bem com ele

tipo so mage pego ml fast entao troco pra pala e kina ja imaginou um kina com ml 30+?

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-749521
Compartilhar em outros sites

blz cara eu queria isso mais assim adcionar com o god exemplo meu servidor la no vocantion criei umas vocaçao aew eu criei comando /addvocation e o nick do cara q eu quizesse q recebesse a vocaçao nova entendeu?? flws vlws

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-749874
Compartilhar em outros sites

eu ja tinha pensado nisso, mas resetar o ml e skills seria justo? pensei em deixar o ml 0 e reduzir skills para 30%, assim um kina com 100 de skill viraria sorc com 30 de skill. Ml é mais dificil de resolver, alguma sugestão?

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-750022
Compartilhar em outros sites

Ficou muito bom o script :)

O unico problema é a questão do ML mesmo :p

Tu poderia tentar fazer que tipow, ele ve o tanto de mana que o player ja gasto no char dele, e transforma o ML relativo a quanto de ML ele teria se ele fosse kina/paly/druid/sorc

Parece meio dificil, mas acho que é a unica maneira de arrumar.

 

Abraços

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-750034
Compartilhar em outros sites

limita o ml pra kina em 10 e paladino em 20 e mage o ml que o player tiver passa pro mage mesmo que o ml dele seja 1 nao importa esse sera o ml dele como mage.

 

e os skills poderiam ser assim se a pessoa e kina e quer ser mage os skills de melee dele ficam limitados em 30 no maximo e se ele quiser ser pala kina>pala os skills de melee se transforma em distance e vice versa.

mas tem um problema em se transforma pala>kina os skill de distance do pala se tranformara em que axe, club ou sword?

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-750263
Compartilhar em outros sites

nada justo e o cara ser kina com ml muito alto.

ou pala tb com ml absurdo.

 

se quer troca de vocaçao tem que saber o preço a pagar por isso.

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-751443
Compartilhar em outros sites

Tem um erro, level 1 tem 150 de vida e não 100

Btw, se for analisar os prós e os contras tá ruim

 

se for isso :

 

newhp = (level-8)*VIDA+100

 

esta certo e assim mesmo nao e pra por os 150 de life pode deixar assim mesmo.

Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-753171
Compartilhar em outros sites

Como o Wiltry falou, use o gasto de mana, se quiser, a função é esta:

doPlayerAddSpentMana(cid, amount)

E, poderia fazer tudo em um só script, penso eu, usando o for...

 

Ah, e para a skill, faça a mesma coisa...a função é esta:

doPlayerAddSkillTry(cid, skillid, n)

 

Bom, é isso (:

Editado por iRockStar
Link para o comentário
https://xtibia.com/forum/topic/114531-talkaction-troca-de-voca%C3%A7%C3%A3o-100/#findComment-757645
Compartilhar em outros sites

×
×
  • Criar Novo...