Postado Dezembro 31, 2014 10 anos 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.
Postado Dezembro 31, 2014 10 anos 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 Dezembro 31, 2014 10 anos por f.silva (veja o histórico de edições)
Postado Dezembro 31, 2014 10 anos 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
Postado Julho 26, 2018 6 anos 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 Julho 26, 2018 6 anos por YanRenat (veja o histórico de edições)
Postado Julho 26, 2018 6 anos 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.