Postado Julho 16, 2018 7 anos 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 Julho 16, 2018 7 anos por vine96 (veja o histórico de edições)
Postado Julho 16, 2018 7 anos 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 [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Julho 17, 2018 7 anos 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.