Ir para conteúdo
  • 0

Duvida getItemAttribute


eduardo190696

Pergunta

eu adicionei 2 atributos na descrição de um item

 

doItemSetAttribute(pend, "description", string.format("Power: %s\nLevel: %s", power, lvl))

 

Agora não consigo pegar eles deles separadamente com a função getItemAttribute, se alguém puder me ensinar como eu pego o valor que estará em Power, e o Level para que eu possa criar um comando que saco o level do player seja menor que o do item ele não possa usar.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

local incorreto, movido

 

 

local txt = "Power: 80\nLevel: 50"

print(txt:match("Power: (.*)\n"))
print(txt:match("Level: (.*)"))

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

  • 0

acho que você não me entendeu.

 

 

eu preciso pegar os valores do

 

doItemSetAttribute(pend, "description", string.format("Power: %s\nLevel: %s", power, lvl))

 

Mais eles separados exemplo :

 

if getPlayerLevel(cid) < getItemAttribute(item.uid, "description", "Level: %s") then 
end

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

  • 0

local txt = getItemAttribute(item.uid, "description")
local lvl = tonumber(txt:match("Level: (.*)"))
local power = tonumber(txt:match("Power: (.*)\n"))

 

achu q o unico q n intendeu aki eh vc u,U

 

e aconcelho a por '.' no final do lvl e do power ali pra ficar mais facil de usar o match e n ter problemas depois...

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

  • 0


[03/02/2013 16:07:55] [Error - Action Interface]
[03/02/2013 16:07:55] data/actions/scripts/******/******.lua:onUse
[03/02/2013 16:07:55] Description:
[03/02/2013 16:07:55] data/actions/scripts/******/******.lua:7: attempt to compare number with nil
[03/02/2013 16:07:55] stack traceback:
[03/02/2013 16:07:55]  data/actions/scripts/******/******.lua:7: in function <data/actions/scripts/******/******.lua:1>

 

Linha 7

 


local txt = getItemAttribute(item.uid, "description")
local power = txt:match("Name: (.*)\n")
local lvl = txt:match("Level: (.*)")

if lvl > getPlayerLevel(cid) then
		return doPlayerSendCancel(cid, "Your level is too low to use it.")
end

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

  • 0

visse q editei o topico? botando o tonumber( )...

esse item ae tava com a description setada? pq cabei de testar aki assim..

 

if param == "set" then
  local item = getPlayerSlotItem(cid, 8).uid
  if item > 1 then
  doSetItemAttribute(item, "description", "Power: 80.\nLevel: 50.")
  end
end
---
if param == "get" then
  local item = getPlayerSlotItem(cid, 8).uid
  if item > 1 then
  local lvl = getItemAttribute(item, "description"):match("Level: (.*).")
  local power = getItemAttribute(item, "description"):match("Power: (.*).\n")
  sendMsgToPlayer(cid, 20, "Level = ".. lvl .."\nPower = ".. power)
  if tonumber(lvl) > getPlayerLevel(cid) then
	 sendMsgToPlayer(cid, 20, "You can't use it!")
  else
	 sendMsgToPlayer(cid, 20, "You can use it!")
  end
  end
end

 

 

e deu tudo certo... ;x

22:22 Level = 50
Power = 80
22:22 You can use it!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...