Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda tile que remove parede


Ir para solução Resolvido por Caronte,

Posts Recomendados

Queria um script de quando um player pisa-se em um tile uma parede se transforma-se em outra parede e quando ele sai-se do tile a parede voltava ao normal ^^

 

Tipo igual a porta do cp do pxg, quando alguém chega perto da porta ela se abre sozinha.

 

Do Rep+ quem me ajudar   :)

Link para o post
Compartilhar em outros sites
  • Solução

local pos = { x = 123, y = 456, z = 7 } 
local itemid = 2160

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) 

   if not isPlayer(cid) then
       return true
    end
doRemoveItem(getTileItemById(pos, itemid).uid)

return true
end

function onStepOut(cid, item, position, fromPosition)  

   if not isPlayer(cid) then
       return true
    end

doCreateItem(itemid,1,pos) 

return true
end

<movevent type="StepIn" actionid="6353" event="script" value="arquivo.lua"/>
<movevent type="StepOut" actionid="6353" event="script" value="arquivo.lua"/>

Coloca action 6353 no Tile que vai fazer isso...

 

em itemid, coloque o Id da parede

em pos, coloque a posição da parede

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Funciono perfeitamente :) reputado :) teria como modificar essa script para tipo, a pessoa pisa no tile ai remove uma parede e é criada uma nova parede e em seguída essa parede nova é removida e criada outra, ai quando o player sai-se do tile a parede voltava ao normal. :) do outro rep+ rsrs :P

Editado por zangoosedoido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

3 tipos de paredes ? 


Tem como sim, é só eu entender completamente o que é, to quase indo dormir...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Deixa pra lá fico bom + achei um bug O.o tipo se 2 players ao mesmo tempo passar por cima do tile, a parede n é + removida, n deu nem um erro na distro + ta acontecendo isso :(

Link para o post
Compartilhar em outros sites

O seu otserver, players podem andar por cima dos outros ?

eu recomendaria fazer isso só na PZ...


local itemid = 1050 
local itempos = { x = 132, y = 415, z = 7 } 

local SoPlayer = "sim"

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) 

local pos = { x = getThingPos(cid).x, y = getThingPos(cid).y, z = getThingPos(cid).z }

  if not isPlayer(cid) and string.lower(SoPlayer) == "sim" then
     return true
   end

local tab = {
 [1] = {id = 1387, createpos = { x = pos.x - 1, y = pos.y - 1, z = pos.z , stackpos = 255}, topos = { x = pos.x - 2, y = pos.y - 2 , z = pos.z }},
 [2] = {id = 1387, createpos = { x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 255}, topos = { x = pos.x, y = pos.y - 2 , z = pos.z }},
 [3] = {id = 1387, createpos = { x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x + 2, y = pos.y - 2 , z = pos.z }},
 [4] = {id = 1387, createpos = { x = pos.x + 1, y = pos.y , z = pos.z, stackpos = 255 }, topos = { x = pos.x + 2, y = pos.y, z = pos.z }},
 [5] = {id = 1387, createpos = { x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x + 2, y = pos.y + 2, z = pos.z }},
 [6] = {id = 1387, createpos = { x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x, y = pos.y + 2, z = pos.z }},
 [7] = {id = 1387, createpos = { x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x - 2, y = pos.y + 2, z = pos.z }},
 [8] = {id = 1387, createpos = { x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 255 }, topos = { x = pos.x - 2, y = pos.y, z = pos.z }},
}

for i = 1, 8 do 
doCreateTeleport(tab[i].id, tab[i].topos, tab[i].createpos)
 doRemoveItem(getTileItemById(itempos, itemid).uid)
 if (getThingFromPos(tab[i].createpos)) then
doTeleportThing(getThingFromPos(tab[i].createpos).uid, tab[i].topos)
end

end


return true
end

function onStepOut(cid, item, position, fromPosition)  

   if not isPlayer(cid) and string.lower(SoPlayer) == "sim" then
      return true
    end
local pos = { x = fromPosition.x, y = fromPosition.y, z = fromPosition.z }
	
	
local tab = {
 [1] = {id = 1387, createpos = { x = pos.x - 1, y = pos.y - 1, z = pos.z , stackpos = 255}, topos = { x = pos.x - 2, y = pos.y - 2 , z = pos.z }},
 [2] = {id = 1387, createpos = { x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 255}, topos = { x = pos.x, y = pos.y - 2 , z = pos.z }},
 [3] = {id = 1387, createpos = { x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x + 2, y = pos.y - 2 , z = pos.z }},
 [4] = {id = 1387, createpos = { x = pos.x + 1, y = pos.y , z = pos.z, stackpos = 255 }, topos = { x = pos.x + 2, y = pos.y, z = pos.z }},
 [5] = {id = 1387, createpos = { x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x + 2, y = pos.y + 2, z = pos.z }},
 [6] = {id = 1387, createpos = { x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x, y = pos.y + 2, z = pos.z }},
 [7] = {id = 1387, createpos = { x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 255 }, topos = { x = pos.x - 2, y = pos.y + 2, z = pos.z }},
 [8] = {id = 1387, createpos = { x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 255 }, topos = { x = pos.x - 2, y = pos.y, z = pos.z }},
}
	
for l = 1, 8 do

doRemoveItem(getTileItemById(tab[l].createpos, 1387).uid)
doCreateItem(itemid,1,itempos) 
end


return true
end

Usa esse, que fiz agora...

Ta sem identação porque fiz correndo.


Ficou um efeito bem maneiro ao pisar no tile, e uma barreira de TPs...

Bw291Mp.png

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Tipo como configuro essa script ? e tipo n é que um player pode andar em cima dos outros é que coloquei a action id ao redor da porta pra tipo se pisa-se em qual quer tile que tive-se o action removeria a parede e substituía por outra, + quando eu loguei 2 accs e pisei com as 2 nos tiles que tem a action 1 das 2 accs bugaram, tipo quando eu pisava novamente com a acc bugada n removia + a parede :(

Link para o post
Compartilhar em outros sites
local itemid = 1050 
local itempos = { x = 132, y = 415, z = 7 } 
local SoPlayer = "sim"

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) 

  if not isPlayer(cid) and string.lower(SoPlayer) == "sim" then
     return true
   end
 
   if getGlobalStorageValue(5050) ~= 1 then
     setGlobalStorageValue(5050, 1)
     doRemoveItem(getTileItemById(itempos, itemid).uid)
    else
	 doTeleportThing(cid,fromPosition)
    end
end
return true
end

function onStepOut(cid, item, position, fromPosition)  

   if not isPlayer(cid) and string.lower(SoPlayer) == "sim" then
      return true
    end
	
setGlobalStorageValue(5050, -1)	
doCreateItem(itemid,1,itempos) 

return true
end

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Tem um end a mais eu acho:

local itemid = 1050 
local itempos = { x = 132, y = 415, z = 7 } 
local SoPlayer = "sim"

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) 

if not isPlayer(cid) and string.lower(SoPlayer) == "sim" then
return true
end

if getGlobalStorageValue(5050) ~= 1 then
setGlobalStorageValue(5050, 1)
doRemoveItem(getTileItemById(itempos, itemid).uid)
else
     doTeleportThing(cid,fromPosition)
end
return true
end

function onStepOut(cid, item, position, fromPosition) 

if not isPlayer(cid) and string.lower(SoPlayer) == "sim" then
return true
end
    
setGlobalStorageValue(5050, -1)    
doCreateItem(itemid,1,itempos) 

return true
end
Link para o post
Compartilhar em outros sites

Pego Normal + Quando 2 Players Pisa No Mesmo Tile Que Ta A Action A Porta N Abre + Vou Mostra Com Print

 

 

Onde Ta Pintado De Vermelho É Os Tiles Que Ta Com A Action

 

 

post-125336-0-14316300-1428244229_thumb.

Link para o post
Compartilhar em outros sites

É tinha mais um end, porque eu tava tirando coisas do script, agora que eu sei que é uma porta automática, vou fazer diferente.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo