Mas você já editou a descrição do item, o que mais quer fazer?
- Forums
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Existe Alguma Funçao Que Retorna A Descrição Do Item?
Existe Alguma Funçao Que Retorna A Descrição Do Item?
By sabrina9292, 24 de jan. de 2012 in Archived
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

info
Group: Campones
Joined: 02/02/08
Posts: 29
Reputation: +1

Ahh...
Consegui, eu queria que o script lesse a descriçao do item para saber quanto de mana adicionar ao player, ficou assim:
function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 4863 then doPrintTable(getItemDescriptions(item.uid)) if itemEx.uid == cid then if getPlayerMana(itemEx.uid) >= math.ceil(getPlayerMaxMana(itemEx.uid)*0.2) then doPlayerAddMana(itemEx.uid,-getPlayerMaxMana(itemEx.uid)*0.2) doPlayerSendCancel(itemEx.uid,"Você armazenou ".. math.floor(getPlayerMaxMana(itemEx.uid)*0.2) .." pontos de mana dentro do ectoplasm container.") doRemoveItem(item.uid,1) doItemSetAttribute(doPlayerAddItem(cid, (item.itemid+1), 1), "description", "Neste recipiente, encontra-se armazenado ".. math.floor(getPlayerMaxMana(itemEx.uid)*0.2) .." pontos de mana.") doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) else doPlayerSendCancel(cid,"Você precisa ter no minimo ".. math.floor(getPlayerMaxMana(itemEx.uid)*0.2) .." pontos de mana para poder armazena-los.") end else doPlayerSendCancel(cid,"Você só pode armazenar sua própria mana.") doSendMagicEffect(toPosition, CONST_ME_POFF) end elseif item.itemid == 4864 then doTransformItem(item.uid,4863) doPlayerAddMana(cid, string.match(getItemDescriptions(item.uid).special, "%d+")) end return true end
Mas so agora fui perceber, dependendo da mana do player, sera possivel armazenar uma grande quantidade de mana e isso nao e bom... Poder healar 1000 de mana de uma vez so
So que ainda nao da pra usar debaixo de escadas, alguem sabe porque?
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

string.match(getItemDescriptions(item.uid).special, '%d+')
vai pegar quanto que ele salvou de mana no item.
se você não for usar numa action, mude o item.uid ali.
Edited Janeiro 24 by Demonbholder
info
Group: Visconde
Joined: 23/02/08
Posts: 273
Reputation: +101
Tibia Character: Foxx Rookslayer

So que ainda nao da pra usar debaixo de escadas, alguem sabe porque?
Deve ser porque ele tá checando a pessoa na stackpos errada. Tente assim:
pidPos = toPosition pidPos.stackpos = 253 pid = getThingFromPos(cidPos) if itemEx.uid == pid then
info
Group: Campones
Joined: 02/02/08
Posts: 29
Reputation: +1

Acho que nao deu certo nao =/
Não sei se fiz da forma correta, mas no final meu script ficou assim:
function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 4863 then pidPos = toPosition pidPos.stackpos = 253 pid = getThingFromPos(cid) if itemEx.uid == pid then if getPlayerMana(itemEx.uid) >= math.ceil(getPlayerMaxMana(itemEx.uid)*0.2) then doPlayerAddMana(itemEx.uid,-getPlayerMaxMana(itemEx.uid)*0.2) doPlayerSendCancel(itemEx.uid,"Você armazenou ".. math.floor(getPlayerMaxMana(itemEx.uid)*0.2) .." pontos de mana dentro do ectoplasm container.") doRemoveItem(item.uid,1) doItemSetAttribute(doPlayerAddItem(cid, (item.itemid+1), 1), "description", "Neste recipiente, encontra-se armazenado ".. math.floor(getPlayerMaxMana(itemEx.uid)*0.2) .." pontos de mana.") doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) else doPlayerSendCancel(cid,"Você precisa ter no minimo ".. math.floor(getPlayerMaxMana(itemEx.uid)*0.2) .." pontos de mana para poder armazena-los.") end else doPlayerSendCancel(cid,"Você só pode armazenar sua própria mana.") doSendMagicEffect(toPosition, CONST_ME_POFF) end elseif item.itemid == 4864 then [color=#ff0000] local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_TICKS, 100 * 1000) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, (string.match(getItemDescriptions(item.uid).special, "%d+"))*0.01) setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000) doAddCondition(cid, condition)[/color] doRemoveItem(item.uid,1) doPlayerAddItem(cid,4863,1) end return true end
So tenho mais uma duvida relacionada ao script...
A parte de vermelho, eu copiei de um script que tinha em um ot que um amigo meu me passou, sera que alguem pode me explica-la detalhadamente (principalmente esta parte "setConditionParam(condition, CONDITION_PARAM_SUBID, 1)" ou me passar o link de um tutorial



info
Group: Campones
Joined: 02/02/08
Posts: 29
Reputation: +1
Bom pessoal...
Eu tava dando uma olhada nos scripts aqui do forum, e achei um (simples) que me chamou bastante atençao... O script dofrerety (Armazenando Mana Com Ectoplasma Container)...
So que achei que podia dar uma melhorada nele...
Entao pensei que ficaria melhor se o valor da mana armazenada nao fosse sempre 100, tentei fazer com que o conteiner armazenasse 20% da mana total do player, ate ai tudo bem, o problema e na hora de adicionar a mana...
Como eu posso fazer para que o script consiga ler a quantidade da mana armazenada no item (descriçao do item)?
O script ficou assim:
Alguem tem uma ideia?
Ahhh... So pra aproveitar o topico...
Alguem sabe me dizer porque nao da pra usar este item debaixo de escadas?
Quando eu tento aparece "Você só pode armazenar sua própria mana."
Bom eh isso ai...
Desde ja...
Muito obrigada!!
Edited Janeiro 24 by sabrina9292