Newtonnotwen 80 Postado Agosto 17, 2012 Share Postado Agosto 17, 2012 (editado) Alguém poderia simplificar esse script pra mim? function onUse(cid, item, fromPosition, itemEx, toPosition) local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true if getTileItemById(pos, id).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(pos).uid,1) doCreateItem(id2, 1, pos) else doCreateItem(id, 1, pos) end local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true if getTileItemById(pos, id).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(pos).uid,1) doCreateItem(id2, 1, pos) else doCreateItem(id, 1, pos) end local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true if getTileItemById(pos, id).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(pos).uid,1) doCreateItem(id2, 1, pos) else doCreateItem(id, 1, pos) end local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true if getTileItemById(pos, id).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(pos).uid,1) doCreateItem(id2, 1, pos) else doCreateItem(id, 1, pos) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end O que ele faz? Cria um tile na posição indicada ao puxar alanca e ao puxar novamente cria outro tipo de tile. Oque eu quero? Como pode observar sua edição é consideravelmente demorada, eu queria então simplifica-lo em uma areá usando a função pos1 to pos2. Ex: Pos1 (x = 100 y = 100 z = 7) Pos2 (x = 150 y = 150 z = 7) Assim ficando uma area de 50x50 ou seja totalizando a modificação 2500 tiles que se localizam nesta. Utilizando a função pos1 x pos2 (pos1 to pos2). Assim fica muito fácil a edição. Observe melhor na imagem: Imagem: Antes: Depois: Obrigado pela atenção e pelo tempo. Editado Agosto 17, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/ Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Agosto 17, 2012 Share Postado Agosto 17, 2012 (editado) Santo Lua, se você continuasse esse padrão, você teria um script com cerca de 23000 linhas. local area_frompos = {x = 100, y = 100, z = 7} local area_topos = {x = 150, y = 150, z = 7} function onUse(cid, item, fromPosition, itemEx, toPosition) for x = area_frompos.x, area_topos.x do for y = area_frompos.y, area_topos.y do local position = {x = x, y = y, z = area_frompos.z} local g = getTileItemById(position, 1284) if g.uid > 0 then doRemoveItem(g.uid) end doCreateItem(1284, 1, position) end end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Editado Agosto 17, 2012 por Oneshot Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1318323 Compartilhar em outros sites More sharing options...
0 Newtonnotwen 80 Postado Agosto 18, 2012 Autor Share Postado Agosto 18, 2012 (editado) Faltou oque eu disse, tipo: -Esse script seu adiciona o item, mas quando usa a alavanca novamente não volta ao normal. Santo Lua, se você continuasse esse padrão, você teria um script com cerca de 23000 linhas. local area_frompos = {x = 100, y = 100, z = 7} local area_topos = {x = 150, y = 150, z = 7} function onUse(cid, item, fromPosition, itemEx, toPosition) for x = area_frompos.x, area_topos.x do for y = area_frompos.y, area_topos.y do local position = {x = x, y = y, z = area_frompos.z} local g = getTileItemById(position, 1284) if g.uid > 0 then doRemoveItem(g.uid) end doCreateItem(1284, 1, position) end end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Eu sei kkk, na verdade entendo pouco de script, por isso pedi ajuda. @up Editado Agosto 17, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1318330 Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Agosto 18, 2012 Share Postado Agosto 18, 2012 Como é para ser feito? Puxar a alavanca e deletar os itens, puxar denovo e criar? Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319159 Compartilhar em outros sites More sharing options...
0 Newtonnotwen 80 Postado Agosto 18, 2012 Autor Share Postado Agosto 18, 2012 (editado) Quando usar a alavanca cria o tile no lugar de um, depois voltar o tile que estava. Ex: O chão é constituído de uma areá 5x5 do tile de id 405 (Alavanca foi puxada) Agora o chão é constituído de uma areá 5x5 do tile de id 406 (Alavanca foi puxada novamente) O chão é constituído de uma areá 5x5 do tile de id 405 (mesma coisa do anterior) (Alavanca foi puxada novamente) Agora o chão é constituído de uma areá 5x5 do tile de id 406 (um ciclo continuo) Obrigado pela atenção. Antes: Depois: Depois do depois: Editado Agosto 18, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319163 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 e porque não usa a função 'doTransformItem' ao invés de ficar removendo e criando? Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319184 Compartilhar em outros sites More sharing options...
0 Raidou 16 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 e porque não usa a função 'doTransformItem' ao invés de ficar removendo e criando? Bem lembrado desta funçao,simplica mais um tanto ainda. Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319186 Compartilhar em outros sites More sharing options...
0 Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 Pode ser, mas o problema é que esse script não é meu, eu apenas editei ele, não entendo muito dessas funções. Se puder fazer pra mim agradeço. Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319200 Compartilhar em outros sites More sharing options...
0 Raidou 16 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 Eu estou começando agora em .LUA. Quando eu ficar mais experiente,vou postar sistemas,scripts,tudo que vier na cabeça e seja bom. Sou muito criativo rsrs. Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319212 Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 Ah, não tinha ideia que seria aplicado na transformação de um chão. Pensei que seria para criar itens mesmo em uma área. Enfim, local area_frompos = {x = 100, y = 100, z = 7} local area_topos = {x = 150, y = 150, z = 7} local tiles = {406, 407} function onUse(cid, item, fromPosition, itemEx, toPosition) for x = area_frompos.x, area_topos.x do for y = area_frompos.y, area_topos.y do local position = {x = x, y = y, z = area_frompos.z} local g = getTileItemById(position, tiles[1]) if g.uid > 0 then doTransformItem(g.uid, tiles[2]) else g = getTileItemById(position, tiles[2]) if g.uid > 0 then doTransformItem(g.uid, tiles[1]) else doCreateItem(tiles[1], position) end end end end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319221 Compartilhar em outros sites More sharing options...
0 Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 Funcionou perfeitamente, amanhã ti dou REP+, porque acabei de dar um aqui. -------------------------------------- Pedido atendido. Pedido atendido por: Oneshot Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319245 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 eu tinha feito essa função mas não postei ontem porque ficou dando apagão aqui ._. function TransformTiles() for x = 100, 150 do for y = 100, 150 do local m,n = getTileItemById({x=x, y=y, z=7}, 405),getTileItemById({x=x, y=y, z=7}, 406) if m.uid > 0 then doTransformItem(m.uid, 406) elseif n.uid > 0 then doTransformItem(n.uid, 405) end end end return true end Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319490 Compartilhar em outros sites More sharing options...
0 Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 Vodkart, muito obrigado, amanhã ti dou REP+. Hoje vou dar pro Oneshot. Obrigado pela compreensão. Link para o comentário https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319786 Compartilhar em outros sites More sharing options...
Pergunta
Newtonnotwen 80
Alguém poderia simplificar esse script pra mim?
function onUse(cid, item, fromPosition, itemEx, toPosition)
local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true
if getTileItemById(pos, id).uid == 0 then x = false end
if x == true then
doRemoveItem(getThingfromPos(pos).uid,1)
doCreateItem(id2, 1, pos)
else
doCreateItem(id, 1, pos)
end
local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true
if getTileItemById(pos, id).uid == 0 then x = false end
if x == true then
doRemoveItem(getThingfromPos(pos).uid,1)
doCreateItem(id2, 1, pos)
else
doCreateItem(id, 1, pos)
end
local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true
if getTileItemById(pos, id).uid == 0 then x = false end
if x == true then
doRemoveItem(getThingfromPos(pos).uid,1)
doCreateItem(id2, 1, pos)
else
doCreateItem(id, 1, pos)
end
local id,id2,pos,x = 1284,1284,{x=POS, y=POS, z=POS},true
if getTileItemById(pos, id).uid == 0 then x = false end
if x == true then
doRemoveItem(getThingfromPos(pos).uid,1)
doCreateItem(id2, 1, pos)
else
doCreateItem(id, 1, pos)
end
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
return true
end
O que ele faz? Cria um tile na posição indicada ao puxar alanca e ao puxar novamente cria outro tipo de tile.
Oque eu quero?
Como pode observar sua edição é consideravelmente demorada, eu queria então simplifica-lo em uma areá usando a função pos1 to pos2.
Ex:
Pos1 (x = 100 y = 100 z = 7)
Pos2 (x = 150 y = 150 z = 7)
Assim ficando uma area de 50x50 ou seja totalizando a modificação 2500 tiles que se localizam nesta.
Utilizando a função pos1 x pos2 (pos1 to pos2).
Assim fica muito fácil a edição.
Observe melhor na imagem:
Imagem:
Antes:
Depois:
Obrigado pela atenção e pelo tempo.
Editado por NewtonnotwenLink para o comentário
https://xtibia.com/forum/topic/192138-action-simplifica/Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados