Ir para conteúdo

Pergunta

Alguém poderia simplificar esse script pra mim?

  Mostrar conteúdo oculto

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:

  Mostrar conteúdo oculto

 

Obrigado pela atenção e pelo tempo.

Editado por Newtonnotwen
Link para o comentário
https://xtibia.com/forum/topic/192138-action-simplifica/
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

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 por Oneshot
Link para o comentário
https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1318323
Compartilhar em outros sites

  • 0

Faltou oque eu disse, tipo:

 

-Esse script seu adiciona o item, mas quando usa a alavanca novamente não volta ao normal.

  Em 17/08/2012 em 22:32, Oneshot disse:

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 por Newtonnotwen
Link para o comentário
https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1318330
Compartilhar em outros sites

  • 0

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:

  Mostrar conteúdo oculto

Depois:

  Mostrar conteúdo oculto

Depois do depois:

  Mostrar conteúdo oculto
Editado por Newtonnotwen
Link para o comentário
https://xtibia.com/forum/topic/192138-action-simplifica/#findComment-1319163
Compartilhar em outros sites

  • 0
  Em 19/08/2012 em 00:06, Vodkart disse:

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

  • 0

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

  • 0

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

×
×
  • Criar Novo...