Mas você já editou a descrição do item, o que mais quer fazer?
- Fórum
- 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?
Por sabrina9292, 24 de jan. de 2012 em Archived
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +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
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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.
Editado Janeiro 24 por Demonbholder
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: 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
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +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
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +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!!
Editado Janeiro 24 por sabrina9292