Ir para conteúdo

Item Que Avança Skill


Addict

Posts Recomendados

Essa Action funciona da seguinte forma, você ao clicar na pedra ou papel ou qualquer coisa que você quiser, imediatamente você irá ganhar 1 Shield Up.

Ou seja, você irá avançar 1 de Shield ou de Distance ou qualquer Skill que você quiser, chega de enrolar e vamos ao que interessa:

 

Primeiro de tudo abra a pasta actions e depois o arquivo actions.Xml e adicione a Tag abaixo:

 

 

<action itemid="4869" script="skill_shield.lua" />

 

Logo depois abra a pasta Scripts que fica dentro da pasta actions, copie qualquer

Arquivo renomei para skill_shield.lua e depois adicione o Code abaixo:

 

--Action de skill by Armageddom--

function onUse(cid, item, frompos, item2, topos)

 

if item.itemid == 4869 then

 

rand = math.random(1,1)

 

if rand == 1 then

doPlayerAddSkillTry(cid,5,1000)

doRemoveItem(item.uid,1)

doSendMagicEffect(frompos, 28)

doSendAnimatedText(getPlayerPosition(cid), "Shield Up", TEXTCOLOR_BLUE)

 

end

end

return 1

end

 

Explicando:

 

Na parte vermelha é o id do item que será usado para clikar, mude para

qualquer um que vc quiser.

Na parte azul é o número do id de cada barra de Skill, (0=first, 1=club) e assim vai.

Na parte preta é o efeito que irá fazer ao usar o objeto.

Na parte verde é a mensagem que irá sair junto com o efeito ao usar o objeto.

 

Créditos: Armageddom

Link para o comentário
Compartilhar em outros sites

Olá! Modifiquei o script para deixá-lo melhor, esse math.random é desnecessário, portanto tirei ele.

 

Esse math.random ele vai de 1 para 1, ou seja, é totalmente sem nexo e pode gerar leaks...

 

Aqui vai a minha versão do mesmo script:

 

--Action de skill by Armageddom modified by Nostradamus--

-- Configuração---
id_skill = 5
item_skill = 4869
num_skill = 2
-------------------

function onUse(cid, item, frompos, item2, topos)

  if item.itemid == item_skill  then

  doPlayerAddSkillTry(cid,id_skill,num_skill * 1000)
  doRemoveItem(item.uid,1)
  doSendMagicEffect(frompos, 28)
  doSendAnimatedText(getPlayerPosition(cid), "Skill Up", TEXTCOLOR_BLUE)

  end
end

 

Explicando:

 

id_skill -> É a ID do skill (0=first, 1=club, ...)

item_skill -> É o item que você dará USE

num_skill -> São quantos de skill que irá subir

Editado por Nostradamus
Link para o comentário
Compartilhar em outros sites

Ótima dica, Addict, e perfeita adaptação, Nostradamus!!

 

Só uma pergunta:

 

Não seria melhor 'item.itemuid' no lugar de 'item.itemid'?

Eu costumo trabalhar apenas com as UIDs, porque com as IDs normais fica muito generalisado.

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
Não seria melhor 'item.itemuid' no lugar de 'item.itemid'?

Eu costumo trabalhar apenas com as UIDs, porque com as IDs normais fica muito generalisado.

item.uid (você se atrapalhou) é ÓTIMO quando o item é FIXO.

(Porta, pedra, parede, etc)

 

 

Mas se o item é ESPECIFICO pra uma única função, a melhor forma é item.itemid

(que é o caso deste tutorial)

 

 

Ps.:

FIRST = primeiro

FIST = soco

Link para o comentário
Compartilhar em outros sites

O melhor seria item.itemAID, ou item.itemactionid não lembro agora como que é, pq dae pode ser item de quest isso, ou que o GM dar para o player, etc...

 

E não torna o item escolhido "inutilizável" para outras coisas.

Link para o comentário
Compartilhar em outros sites

  • 2 years later...
  • 1 year later...

bom percebi que ele n da 1 skill inteiro e sim só alguns porcentos

 

sim gabrielnardi

 

--Action de skill by Armageddom modified by Nostradamus And Eduardobean --

-- Configuração---
id_skill = 0
id_skill1 = 1
id_skill2 = 2
id_skill3 = 3
id_skill4 = 4
id_skill5 = 5
id_skill6 = 6
item_skill = 4869
-------------------

function onUse(cid, item, frompos, item2, topos)

  if item.itemid == item_skill  then

         doPlayerAddSkillTry(cid,id_skill,2 * 1000)
         doPlayerAddSkillTry(cid,id_skill1,2 * 1000)
         doPlayerAddSkillTry(cid,id_skill2,2 * 1000)
         doPlayerAddSkillTry(cid,id_skill3,2 * 1000)
         doPlayerAddSkillTry(cid,id_skill4,2 * 1000)
         doPlayerAddSkillTry(cid,id_skill5,2 * 1000)
         doPlayerAddSkillTry(cid,id_skill6,2* 1000)
         doRemoveItem(item.uid,1)
         doSendMagicEffect(frompos, 28)
         doSendAnimatedText(getPlayerPosition(cid), "Skill Up", TEXTCOLOR_BLUE)

  end
end

 

cortei o num_skill = 2 pois era uma coisa desnecessária

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Oi, algum de vcs sabe usar o :

doPlayerAddSkillTry(cid,X,Y)

de modo que almente 1 ponto inteiro de skill

pq o max q consegui foi almentar alguma porcentagem, ou almentar 3,6 pontos... eu preciso q seja exato, que nem acontece na funçao /addskill dos adm , uso OT 8.6 Alissow Server 4.11

Link para o comentário
Compartilhar em outros sites

Agora sim ele da um skill inteiro

Script Editado Por mim

 

function onUse(cid, item, frompos, item2, topos)

  if item.itemid == item.itemid then

         doPlayerAddSkillTry(cid,0,doPlayerAddSkill(cid, 0))
         doPlayerAddSkillTry(cid,1,doPlayerAddSkill(cid, 1))
         doPlayerAddSkillTry(cid,2,doPlayerAddSkill(cid, 2))
         doPlayerAddSkillTry(cid,3,doPlayerAddSkill(cid, 3))
         doPlayerAddSkillTry(cid,4,doPlayerAddSkill(cid, 4))
         doPlayerAddSkillTry(cid,5,doPlayerAddSkill(cid, 5))
         doPlayerAddSkillTry(cid,6,doPlayerAddSkill(cid, 6))
         doRemoveItem(item.uid,1)
         doSendMagicEffect(frompos, 28)
         doSendAnimatedText(getPlayerPosition(cid), "Skill Up", TEXTCOLOR_BLUE)
  end
end

 

Creditos ao dono do Tópico e a mim por arrumar o script

Editado por eduardobean
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...