Ir para conteúdo

[talkaction] Troca De Vocação 100%


_ferrari_

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
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
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
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
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
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
Compartilhar em outros sites

×
×
  • Criar Novo...