Ir para conteúdo

Featured Replies

Postado

Eaí pessoal beleza? então, como meu servidor é tfs 1.3 e as funções é bem diferente das antigas. Estou estudando bastante a linguagem lua em tfs 1.3. Já fiz vários scripts simples porém esse não estou conseguindo fazer.. alguém pode me ajudar? e se conseguir arrumar me diga o que faltou...

 

O script consiste no seguinte: o player tem um item, e ao colocar ele em uma determinada posição e puxar a alavanca ele vai dizer na descrição do item assim: esse item pertence a:(nome do player).

Bom vamos ao script. O que eu já fiz nele? 

1º - Checagem para o player usar somente a cada 10secs evitando assim spam -100%

2º - Preço cobrado pelo serviço: o player só pode puxar a alavanca se tiver tanto de dinheiro - 100%

3º - Transform os ids para ter a animação da alavanca - 100%

4º - Animações e mensagens de erro caso não tenha os itens necessários ou precise esperar o tempo - 100%

 

O que não estou conseguindo fazer funcionar:

Checar se o item está na posição desejada

Dar a descrição no item

 

Base: 

TFS 1.3 OTX 3.10

 

Aqui vai o código:

 local money = 2160
local quantmoney = 100
local sto = 13456
local time = 10

function onUse(player, item, fromPosition, target, toPosition, isHotkey, param, cid)

	if player:getStorageValue(sto) > os.time() then
		player:sendCancelMessage("You need to wait "..player:getStorageValue(sto) - os.time().." seconds to use this lever again.")
		player:getPosition():sendMagicEffect(3)
		return true
	end
	 
	if  player:getItemCount(money) < quantmoney then
		player:sendCancelMessage("You dont have "..quantmoney.." pieces of "..getItemName(money)..".")
		player:getPosition():sendMagicEffect(3)
		return true
	end

	if item.itemid == 1945 then
		item:transform(1946)
	elseif
		item.itemid == 1946 then
		item:transform(1945)
	end

	local itemdesc = item:getPosition({x= 32632, y= 32476, z= 7, stackpos= 1})

	if itemdesc.itemid == false then
		player:sendCancelMessage("You need take the item in correct position.")
		player:getPosition():sendMagicEffect(3)
		return true
	end

	item:setAttribute(itemdesc.uid, ITEM_ATTRIBUTE_DESCRIPTION, "Este item pertence ao jogador "..player:getName())
	player:removeItem(money, quantmoney)
	player:getPosition():sendMagicEffect(30)
	player:setStorageValue(sto, os.time()+time)
		
return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.

Editado por vine96 (veja o histórico de edições)

Postado
local money = 2160
local quantmoney = 100
local sto = 13456
local time = 10
local pos = {x= 32632, y= 32476, z= 7}
function onUse(player, item, fromPosition, target, toPosition, isHotkey, param, cid)
	if player:getStorageValue(sto) > os.time() then
		player:sendCancelMessage("You need to wait "..player:getStorageValue(sto) - os.time().." seconds to use this lever again.")
		player:getPosition():sendMagicEffect(3)
		return true
	elseif  player:getItemCount(money) < quantmoney then
		player:sendCancelMessage("You dont have "..quantmoney.." pieces of "..getItemName(money)..".")
		player:getPosition():sendMagicEffect(3)
		return true
	end
	local var = Tile(pos):getItems()
	if not var then
		player:sendCancelMessage("You need take the item in correct position.")
		player:getPosition():sendMagicEffect(3)
		return true
	end
	item:transform(item.itemid == 1945 and 1946 or 1945)
	var:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "Este item pertence ao jogador "..player:getName())
	player:removeItem(money, quantmoney)
	player:getPosition():sendMagicEffect(30)
	player:setStorageValue(sto, os.time()+time)		
return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor

@Vodkart testei aqui e agora ele não remove o dinheiro e não dá a descrição =/

Tá dando esse erro aqui no distro: 

Lua Script Error: [Action Interface]
data/actions/scripts/newscripts/attribute.lua:onUse
data/actions/scripts/newscripts/attribute.lua:23: attempt to call method 'setAttribute' (a nil value)
stack traceback:
        [C]: in function 'setAttribute'
        data/actions/scripts/newscripts/attribute.lua:23: in function <data/actions/scripts/newscripts/attribute.lua:6>

Parece que essa linha ele não tá reconhecendo: 

var:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "Este item pertence ao jogador "..player:getName())

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo