AD

Item Que Avança Skill

Por Addict, 16 de jun. de 2007 em Actions e Talkactions

script
12
3.6k
AddictA
16 de junho de 2007 às 22:52

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

NostradamusN
16 de junho de 2007 às 23:15

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 Junho 16 por Nostradamus

AddictA
17 de junho de 2007 às 00:08

Ótimo rapaz :-)

hopugopH
17 de junho de 2007 às 00:48

Ó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.

4 meses depois...
Conde SapoC
18 de outubro de 2007 às 17:33
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

bruxoB
18 de outubro de 2007 às 17:51

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.

2 anos depois...
06 de julho de 2010 às 19:44

Eu fico com ado Addict.. essa funfo melhor ake :D

07 de julho de 2010 às 00:33

AlexanderMatheus, só reviva tópico se tiver alguma dúvida sobre o mesmo, caso contrário é considerado flood.

Desta vez passa, se acontecer novamente você será punido.

1 ano depois...
19 de julho de 2011 às 19:13

tem como coloca para aumenta todos os skill

eduardo190696E
19 de julho de 2011 às 19:33

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

1 mês depois...
mayerkfM
03 de agosto de 2011 às 13:47

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

eduardo190696E
04 de agosto de 2011 às 17:26

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 Agosto 5 por eduardobean