Ir para conteúdo

[PEDIDO] Ajustar o meu script da alavanca dos rats em rookgaard

Featured Replies

Postado
local posi3 = {x=32102, y=32205, z=8} --
poss = {
[1] = {x=32099, y=32205, z=8},
[2] = {x=32100, y=32205, z=8},
[3] = {x=32101, y=32205, z=8}
}
 
local lever = {
[1] = {x=32098, y=32204, z=8},
[2] = {x=32104, y=32204, z=8}
}
local itemids = 5770
function onUse(cid, item, fromPosition, itemEx, toPosition)
        if item.itemid == 1945 then
                doCreateItem(itemids,poss[1])
                if getTileItemById(poss[2],4616).itemid ~= nil then
                        doTransformItem(getTileItemById(poss[2],4616).uid,itemids)
                end
                if getTileItemById(poss[3],4647).itemid > 0 then
                        doTransformItem(getTileItemById(poss[3],4647).uid,itemids)
                end
                for i=1,#lever do
                        if lever.x == fromPosition.x then
                                o = i
                        end
                end
                if o == 1 then
                        b = 2
                else
                        b = 1
                end
                doTransformItem(item.uid,item.itemid+1)
                doTransformItem(getTileItemById(lever,1945).uid,1946)
        elseif item.itemid == 1946 then
                for p = 1,#poss do
                doRelocate(poss[p], posi3)
                end
                for z =1,#poss do
                                poss[z].stackpos = 254
                                if getThingFromPos(poss[z]).itemid > 1000 then
                                        doRemoveItem(getThingFromPos(poss[z]).uid)
                                end
                                poss[z].stackpos = 1
                                if getThingFromPos(poss[z]).itemid > 1000 then
                                        doRemoveItem(getThingFromPos(poss[z]).uid)
                                end
 
                end
                for i=1,#lever do
                        if lever.x == toPosition.x then
                                o = i
                        end
                end
                if o == 1 then
                        b = 2
                else
                        b = 1
                end
                doCreateItem(4616,poss[1])
                doCreateItem(351,poss[2])
                doCreateItem(351,poss[3])
                doCreateItem(4616,poss[2])
                doCreateItem(4647,poss[3])
                doTransformItem(item.uid,item.itemid-1)
                doTransformItem(getTileItemById(lever,1946).uid,1945)
        end
        return TRUE
end 
 
 
ele funciona quase certo, porem quando é para sumir a ponte, na pos 1 aparece agua em vez da borda virada para a >
pensei ser por causa do "doCreateItem(4616,poss[1]) " mas quando se troca o id 4616(agua) para o 4645(borda >) da erro no script. 
  • Respostas 5
  • Visualizações 985
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • De antemão, peço perdão por reviver este tópico. Mas como não encontrei outro tópico solucionando isto eu disponibilizo a solução que encontrei. É simples, mas acredito que pode economizar o tempo

  • Caro TibiaParadise, este código é um script de uma action. Primeiramente devo avisar que o testei em um servidor 8.6 - T.F.S 0.4, pois não estava funcionando em um server de um amigo meu, desta form

Postado

^^

poss = {
[1] = {x=32099, y=32205, z=8},
[2] = {x=32100, y=32205, z=8},
[3] = {x=32101, y=32205, z=8}
}
 
local lever = {
[1] = {x=32098, y=32204, z=8},
[2] = {x=32104, y=32204, z=8}
}
 
local itemids = 5770
local exhausth = 2 
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
        if item.itemid == 1945 then 
if (getGlobalStorageValue(11548) <= os.time()) then
doTransformItem(getTileItemById(poss[1],4645).uid,itemids)
                doCreateItem(itemids,poss[1])
doCreateItem(itemids,poss[2])
                if getTileItemById(poss[2],4645).itemid ~= nil then
                        doTransformItem(getTileItemById(poss[2],4645).uid,itemids)
                end
                if getTileItemById(poss[3],4647).itemid > 0 then
                        doTransformItem(getTileItemById(poss[3],4647).uid,itemids)
                end
 
                doTransformItem(item.uid,item.itemid+1)
                doTransformItem(getTileItemById(lever[b],1945).uid,1946)
setGlobalStorageValue(11548,os.time()+exhausth)
end
 
 
        elseif item.itemid == 1946 then
doTransformItem(getTileItemById(poss[2],5770).uid,4619)
                doCreateItem(4616,poss[1])
 
                doCreateItem(351,poss[3])
                doCreateItem(4645,poss[1])
doCreateItem(9023,poss[1])
                doCreateItem(4647,poss[3])
                doTransformItem(item.uid,item.itemid-1)
                doTransformItem(getTileItemById(lever[b],1946).uid,1945)
        end
        return TRUE
end 

Editado por f.silva (veja o histórico de edições)

Postado
  • Autor

 

^^

poss = {
[1] = {x=32099, y=32205, z=8},
[2] = {x=32100, y=32205, z=8},
[3] = {x=32101, y=32205, z=8}
}
 
local lever = {
[1] = {x=32098, y=32204, z=8},
[2] = {x=32104, y=32204, z=8}
}
 
local itemids = 5770
local exhausth = 2 
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
        if item.itemid == 1945 then 
if (getGlobalStorageValue(11548) <= os.time()) then
doTransformItem(getTileItemById(poss[1],4645).uid,itemids)
                doCreateItem(itemids,poss[1])
doCreateItem(itemids,poss[2])
                if getTileItemById(poss[2],4645).itemid ~= nil then
                        doTransformItem(getTileItemById(poss[2],4645).uid,itemids)
                end
                if getTileItemById(poss[3],4647).itemid > 0 then
                        doTransformItem(getTileItemById(poss[3],4647).uid,itemids)
                end
 
                doTransformItem(item.uid,item.itemid+1)
                doTransformItem(getTileItemById(lever[b],1945).uid,1946)
setGlobalStorageValue(11548,os.time()+exhausth)
end
 
 
        elseif item.itemid == 1946 then
doTransformItem(getTileItemById(poss[2],5770).uid,4619)
                doCreateItem(4616,poss[1])
 
                doCreateItem(351,poss[3])
                doCreateItem(4645,poss[1])
doCreateItem(9023,poss[1])
                doCreateItem(4647,poss[3])
                doTransformItem(item.uid,item.itemid-1)
                doTransformItem(getTileItemById(lever[b],1946).uid,1945)
        end
        return TRUE
end 

 

agora a ponte nao some e da o seguinte erro:

 

[31/12/2014 11:17:02] [Error - Action Interface] 
[31/12/2014 11:17:02] data/actions/scripts/rats2.lua:onUse
[31/12/2014 11:17:02] Description: 
[31/12/2014 11:17:02] (luaDoTransformItem) Item not found
 
[31/12/2014 11:17:02] [Error - Action Interface] 
[31/12/2014 11:17:02] data/actions/scripts/rats2.lua:onUse
[31/12/2014 11:17:02] Description: 
[31/12/2014 11:17:02] (luaDoTransformItem) Item not found
 
[31/12/2014 11:17:03] [Error - Action Interface] 
[31/12/2014 11:17:03] data/actions/scripts/rats2.lua:onUse
[31/12/2014 11:17:03] Description: 
[31/12/2014 11:17:03] attempt to index a nil value
[31/12/2014 11:17:03] stack traceback:
[31/12/2014 11:17:03] [C]: in function 'getTileItemById'
[31/12/2014 11:17:03] data/actions/scripts/rats2.lua:30: in function <data/actions/scripts/rats2.lua:16>

up

  • 3 years later...
Postado

De antemão, peço perdão por reviver este tópico.
Mas como não encontrei outro tópico solucionando isto eu disponibilizo a solução que encontrei.
É simples, mas acredito que pode economizar o tempo de alguém que esteja passando por este problema:

Citar

local posi3 = {x=32102, y=32205, z=8} --
poss = {
[1] = {x=32099, y=32205, z=8},
[2] = {x=32100, y=32205, z=8},
[3] = {x=32101, y=32205, z=8}
}

local lever = {
[1] = {x=32098, y=32204, z=8},
[2] = {x=32104, y=32204, z=8}
}
local itemids = 5770
function onUse(cid, item, fromPosition, itemEx, toPosition)
        if item.itemid == 1945 then
                doCreateItem(itemids,poss[2])
                if getTileItemById(poss[1],4645).itemid ~= nil then
                        doTransformItem(getTileItemById(poss[1],4645).uid,itemids)
                end
                if getTileItemById(poss[3],4647).itemid > 0 then
                        doTransformItem(getTileItemById(poss[3],4647).uid,itemids)
                end
                for i=1,#lever do
                        if lever.x == fromPosition.x then
                                o = i
                        end
                end
                if o == 1 then
                        b = 2
                else
                        b = 1
                end
                doTransformItem(item.uid,item.itemid+1)
                doTransformItem(getTileItemById(lever,1945).uid,1946)
        elseif item.itemid == 1946 then
                for p = 1,#poss do
                doRelocate(poss[p], posi3)
                end
                for z =1,#poss do
                                poss[z].stackpos = 254
                                if getThingFromPos(poss[z]).itemid > 1000 then
                                        doRemoveItem(getThingFromPos(poss[z]).uid)
                                end
                                poss[z].stackpos = 1
                                if getThingFromPos(poss[z]).itemid > 1000 then
                                        doRemoveItem(getThingFromPos(poss[z]).uid)
                                end

                end
                for i=1,#lever do
                        if lever.x == toPosition.x then
                                o = i
                        end
                end
                if o == 1 then
                        b = 2
                else
                        b = 1
                end
                doCreateItem(4645,poss[1])
                doCreateItem(351,poss[2])
                doCreateItem(351,poss[3])
                doCreateItem(351,poss[1])
                doCreateItem(4613,poss[2])
                doCreateItem(4647,poss[3])
                doTransformItem(item.uid,item.itemid-1)
                doTransformItem(getTileItemById(lever,1946).uid,1945)
        end
        return TRUE
end 

 

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

Postado
4 horas atrás, YanRenat disse:

De antemão, peço perdão por reviver este tópico.
Mas como não encontrei outro tópico solucionando isto eu disponibilizo a solução que encontrei.
É simples, mas acredito que pode economizar o tempo de alguém que esteja passando por este problema:

 

Me ajudou demais, só preciso saber agora onde coloco esse código xD

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo