TO
pedido

Item Que Adiciona Skill Ao Clicar

Por tonynamoral, 11 de dez. de 2012 em Scripts

script
20
5.3k
tonynamoralT
11 de dezembro de 2012 às 11:52

Olá galera , eu gostaria de pedir um script que ao clicar em 1 item , o player ganhasse skill. sem ele deslogar.

RoksasR
11 de dezembro de 2012 às 11:55

Ele só poderia utilizar uma vez? Ou ele se removeria (o item) ?

 

@EDIT, Diga oque você gostaria que mudasse, aonde está ID você coloca o do seu item! Crie um arquivo chamado skillitem.lua na pasta data/actions e coloque isso dentro:

 

function onUse (cid,item,frompos,item2,topos)
  if item.itemid == ID DO ITEM then
doPlayerAddSkillTry(cid,SKILL,QUANTIDADE)
doRemoveItem (item.uid)
  end
end

 

Aonde está "SKILL" Você coloca o ID do Skill, e Quantidade , o total de Skills que o Player irá ganhar!

Lista IDSKILLS:

 

 0 Fist.
1 Club.
2 Sword.
3 Axe.
4 Distance.
5 Shielding.
6 Fishing.

 

Tag em actions.xml:

<action itemid="IDDOITEM" event="script" value="skillitem.lua"/>

Editado Dezembro 11 por Roksas

SmiXS
11 de dezembro de 2012 às 16:18
Ele só poderia utilizar uma vez? Ou ele se removeria (o item) ? @EDIT, Diga oque você gostaria que mudasse, aonde está ID você coloca o do seu item! Crie um arquivo chamado skillitem.lua na pasta data/actions e coloque isso dentro:
 function onUse (cid,item,frompos,item2,topos) if item.itemid == ID DO ITEM then doPlayerAddSkillTry(cid,SKILL,QUANTIDADE) doRemoveItem (item.uid) end end

Aonde está "SKILL" Você coloca o ID do Skill, e Quantidade , o total de Skills que o Player irá ganhar! Lista IDSKILLS:

 0 Fist. 1 Club. 2 Sword. 3 Axe. 4 Distance. 5 Shielding. 6 Fishing.

Tag em actions.xml:


 

Tecnicamente, seu script não irá dar skill ao player, e sim dará pontos de experiência ao mesmo.

 

@tony

Acho, que seu pedido só poderá ser resolvido se trocar algumas funções nas sources. O outro jeito mais fácil é fazer com que o player deslogue.

SlicerS
11 de dezembro de 2012 às 16:42

existe essa 'formula' aki..

doPlayerAddSkillTry(cid, skill, getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill), false)

mas ela n funciona, acredito eu, com magic lvl... entao o melhor jeito eh fazer o player deslogar, ou esquecer esse script ;/

 

ja tinha feito algu assim pra um outro pedido.. de uma olhada..

http://www.xtibia.com/forum/topic/198002-runa-que-aumenta-skill/page__view__findpost__p__1379956

Editado Dezembro 11 por Slicer

RoksasR
11 de dezembro de 2012 às 16:43

Pontos de experiência? Pelo que eu saiba SkillTry seria níveis de Skill, não?

OneshotO
11 de dezembro de 2012 às 16:49

Uma olhada no LUA_FUNCTIONS localizado em data/docs

 

doPlayerAddSkill(cid, skill[, amount = 1[, round = false]])

 

local config = {
   skillName = SKILL_FIST,
   skillAmount = 5,
   magicEffect = CONST_ME_MAGIC_BLUE,
   removeable = "yes"
}

--[[
   SKILL_FIST
   SKILL_CLUB
   SKILL_SWORD
   SKILL_AXE
   SKILL_DISTANCE
   SKILL_SHIELD
   SKILL_FISHING
   SKILL__MAGLEVEL
   SKILL__LEVEL
]]--

function onUse(cid, item, fromPosition, itemEx, toPosition)
   doPlayerAddSkill(cid, config.skillName, config.skillAmount, true)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your ".. SKILL_NAMES[config.skillName] .." has grown up.")
   doSendMagicEffect(fromPosition, config.magicEffect)
   if getBooleanFromString(config.removeable) == true then
       doRemoveItem(item.uid, 1)
   end
   return true
end

Editado Dezembro 11 por Oneshot

tonynamoralT
11 de dezembro de 2012 às 17:06

@Oneshot , eu nao entendi bem oq voce falo , mais eu colokei esse script q voce posto ai , mais naum deu em nada =x

SmiXS
11 de dezembro de 2012 às 17:08

@Oneshot

Não intendi bem, a mensagem que quis passar.

tonynamoralT
11 de dezembro de 2012 às 17:19

@Oneshot , no meu LUA_FUNCTIONS está assim

 

doPlayerAddSkill(cid, amount)

SlicerS
11 de dezembro de 2012 às 17:21

@/\

vc adiciono no actions/scripts/

boto a tag e blablabla? o.O

 

@oneShot

funciona com ML? '--'

OneshotO
11 de dezembro de 2012 às 17:28

@tonynamoral

 

Já tive o trabalho de fazer o script e testar, não darei suporte por instalação incorreta.

 

@SmiX

 

Só quis dizer que existe uma função que adiciona níveis de skill.

 

@Slicer

 

Funciona.

 

Só colocar SKILL__MAGLEVEL no lugar de SKILL_FIST.

caoticC
11 de dezembro de 2012 às 17:31

OneShot só da para adicionar skill né?

SlicerS
11 de dezembro de 2012 às 17:32

@oneShot

e eu me matando pra achar aquela formula kkk anyway, vlw ae ajudo paka xD

tonynamoralT
11 de dezembro de 2012 às 17:32

Santodeuscreupai , eu preciso aprender a instalar sáporra '-'

OneshotO
11 de dezembro de 2012 às 17:40

Crie um arquivo chamado skillstone.lua em data/actions/scripts, cole o conteúdo passado acima.

 

Adicione a seguinte linha no actions.xml

 

<action itemid="ID_DO_ITEM" event="script" value="skillstone.lua"/>