Ir para conteúdo
  • Cadastre-se

(Resolvido)Parede que se move


Ir para solução Resolvido por Yan Liima,

Posts Recomendados

Agora fuincionou muito obrigado, só que nao perfeitamente as portas abrem mas se o player estiver no meio delas ela fecha e impressa o player tem jeito?

Link para o post
Compartilhar em outros sites
  • Respostas 46
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Fiz de um modo diferente, tenta assim: local c = { closeDelay = 2000, -- tempo em que ira fechar (1000ms = 1s) busyArea = {from = {x=100, y=100, z=7}, to = {x=100, y=100, z=7}}, -- area que chec

ta ai o video explicando o sistema   Untitled.wmv

Posted Images

local c = {
	closeDelay = 2000, -- tempo em que ira fechar (1000ms = 1s)
	wallPlaces = {
		[1000] = {fromPos = {x=1000, y=1000, z=7}, toPos = {x=1000, y=1000, z=7}}, -- [ID_DA_PAREDE] = {posicao original, posicao movida}
		[1000] = {fromPos = {x=1000, y=1000, z=7}, toPos = {x=1000, y=1000, z=7}}
	}
}

local function backWalls(wallId, fromPos, toPos)
	local thing = getTileItemById(fromPos, wallId).uid
	local tid = getTopCreature(toPos).uid
	if(thing ~= 0) then
		if(tid == 0) then
			doRemoveItem(thing)
			doCreateItem(wallId, 1, toPos)
		else
			addEvent(backWalls, 100, wallId, fromPos, toPos)
		end
	end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	for wallId, i in pairs(c.wallPlaces) do
		local thing = getTileItemById(i.fromPos, wallId).uid
		if(thing ~= 0) then
			doRemoveItem(thing)
			doCreateItem(wallId, 1, i.toPos)
			addEvent(backWalls, c.closeDelay, wallId, i.toPos, i.fromPos)
		end
	end
	return true
end

 

Editado por MaTTch (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, maury123 disse:

erro

Sem título.png

ué n tem nada de doRemoveItem cara eu to até o talo de trabalho por isso n fiz o video ainda mais hoje eu garanto que crio juro por deus

a tendi o do cara funciono n sei pq o meu n funciono .-. vou fazer o video msm assim

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

Fiz de um modo diferente, tenta assim:

local c = {
	closeDelay = 2000, -- tempo em que ira fechar (1000ms = 1s)
	busyArea = {from = {x=100, y=100, z=7}, to = {x=100, y=100, z=7}}, -- area que checa se há players (bote a area em volta da porta movivel)
	wallPlaces = {
		{wallId = 1000, from = {x=100, y=100, z=7}, to = {x=100, y=100, z=7}}, -- {id da parede, posicao original, posicao movida}
		{wallId = 1000, from = {x=100, y=100, z=7}, to = {x=100, y=100, z=7}}
	}
}

local isUsing = false
local function backWalls()
	for x = c.busyArea.from.x, c.busyArea.to.x do
		for y = c.busyArea.from.y, c.busyArea.to.y do
			local tid = getTopCreature({x=x, y=y, z=c.busyArea.to.z}).uid
			if(tid ~= 0) then
				addEvent(backWalls, c.closeDelay)
				return false
			end
		end
	end
	for _, i in pairs(c.wallPlaces) do
		local thing = getTileItemById(i.to, i.wallId).uid
		if(thing ~= 0) then
			doRemoveItem(thing)
			doCreateItem(i.wallId, 1, i.from)
		end
	end
	isUsing = false
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	if(not isUsing) then
		for _, i in pairs(c.wallPlaces) do
			local thing = getTileItemById(i.from, i.wallId).uid
			if(thing ~= 0) then
				doRemoveItem(thing)
				doCreateItem(i.wallId, 1, i.to)
			end
		end
		isUsing = true
		addEvent(backWalls, c.closeDelay)
	end
	return true
end

 

Link para o post
Compartilhar em outros sites
5 horas atrás, maury123 disse:

nao deu erro mas olha so

poke.avi

olha o video da tela

ta ai o video explicando o sistema

 

Untitled.wmv

Link para o post
Compartilhar em outros sites

entaão lenardo88 gostei muito do video só nao entendo pq suas scrips nao funcionam aqui da erro a do mattch agora funcionou perfeitamente, mas como tbm tenho as portas meio abertas preciso dessa suas funcionando no meu serv

 

a do mattch só da pra colocar duas paredes como mostrei no video masa fico gratos ao dois e espero resposta

Editado por maury123 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
2 horas atrás, maury123 disse:

entaão lenardo88 gostei muito do video só nao entendo pq suas scrips nao funcionam aqui da erro a do mattch agora funcionou perfeitamente, mas como tbm tenho as portas meio abertas preciso dessa suas funcionando no meu serv

 

a do mattch só da pra colocar duas paredes como mostrei no video masa fico gratos ao dois e espero resposta

 

 

 

oks então, cara é que é complicado pra mim ajudar a turma do tk no meio da semana pq trabalho mtt mnsm kk to com trabalho até o talo to em horario de almoço e noite vo pra facul vou pegar o script dele e vo acoplar a porta meio aberta, más assim preciso da colaboração pq só vou conseguir fazer isso depois da facul 22:30 pode ser? vc aguarda?

Link para o post
Compartilhar em outros sites

eu aguardo sim, estarei ate online esperando

então mano ja que vc vai acoplar uma na outra tente fazer assim: vc acopla a porta meio aberta como a sua, tira aquele tempo de feixar a porta da script dele e cria um stepout pra fecha a porta ta ligado ai fica perfeito.

tem outra coisa man essas portas sao diferente das suas sera que vai funcionar com essas tbm? pq aqui as partes sao juntas

Portas.png

Link para o post
Compartilhar em outros sites
4 horas atrás, maury123 disse:

eu aguardo sim, estarei ate online esperando

então mano ja que vc vai acoplar uma na outra tente fazer assim: vc acopla a porta meio aberta como a sua, tira aquele tempo de feixar a porta da script dele e cria um stepout pra fecha a porta ta ligado ai fica perfeito.

tem outra coisa man essas portas sao diferente das suas sera que vai funcionar com essas tbm? pq aqui as partes sao juntas

Portas.png

a ta acho q meio que entendi pq ta dando erro no script -.- kkkkkk, o meu otserver eu desenhei 2 portas uma pro lado esquerdo outro pro direito, ai tinha q colocar as duas posições :s  e ele n tava achando a posição da segunda porta, em fim vou fazer um script ok aguardae umas 22:30 volto da facul e ja posto eu vo começar a desenvoilver agora .-. mas n sei se vai dar tempo de fazer o tutor e tudo mais aguardae agora vai funfa .-.

Link para o post
Compartilhar em outros sites

ta certo e a respeito das portas que mostrei no print sera q da certo? c tem skype?

eai mano alguma notiçia?

Link para o post
Compartilhar em outros sites
4 horas atrás, maury123 disse:

ta certo e a respeito das portas que mostrei no print sera q da certo? c tem skype?

eai mano alguma notiçia?

cara tenho skype leonardo.artuso1

 

ta ai tenta esse:

 

no arquivo .lua coloque

Spoiler

seg = 0.5                -- segundos
delay = seg*1000         -- não modificar
pos = {x=278, y=1147, z=6}


function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
addEvent(c, delay, item, position, lastPosition, fromPosition, toPosition)
return true
end

function c(cid, item, position, lastPosition, fromPosition, toPosition)
item = {13485, 13483}
item2 = {13486, 13484}

if getTileItemById(pos, item[1]).uid > 0 then
for i = 1, 2 do
doTransformItem(getTileItemById(pos, item[1]).uid, item[2])
addEvent(d, delay, item, position, lastPosition, fromPosition, toPosition)

end
end
return true
end


function d(cid, item, position, lastPosition, fromPosition, toPosition)
item = {13483, 13481}
item2 = {13484, 13482}


if getTileItemById(pos, item[1]).uid > 0 then
for i = 1, 2 do
doTransformItem(getTileItemById(pos, item[1]).uid, item[2])
end
end
return true
end

o script acima éo que fecha a porta ou seja vc vai por em volta dos pisos que ficam em frente a porta

 

agora em outro arquivo.lua coloque:

 

Spoiler

seg = 0.5                 -- segundos
delay = seg*1000         -- não modificar
pos = {x=278, y=1147, z=6}    -- posição dessa porta


function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
addEvent(a, delay, item, position, lastPosition, fromPosition, toPosition, actor)
return true
end

 
function a(cid, item, position, lastPosition, fromPosition, toPosition)
item = {13481, 13483}   -- item dua sua porta meio fechada em seguida a meio aberta


if getTileItemById(pos, item[1]).uid > 0 then
for i = 1, 2 do
doTransformItem(getTileItemById(pos, item[1]).uid, item[2])
addEvent(b, delay, cid, item, position, lastPosition, fromPosition, toPosition)
end
end
return true
end


function b(cid, item, position, lastPosition, fromPosition, toPosition)
item = {13483, 13485} 

 

if getTileItemById(pos, item[1]).uid > 0 then
for i = 1, 2 do
doTransformItem(getTileItemById(pos, item[1]).uid, item[2])
end
end
return true
end

o script acima é o que vai abrir a porta portanto os pisos ficam em frente a porta

 

adc no skype eu ajudo e em movements aquelas tags que eu te passei do stepIn e stepOn

Link para o post
Compartilhar em outros sites
7 horas atrás, maury123 disse:

deu erro nao coloquei os ids e nem x,y,x só testei pra ver se funcionava, vc ta off no skype

Sem título.png

cara n sei pq ta dando erro ai mais se testo? lembra tem que por a pos do lado direito da sua porta ->

Link para o post
Compartilhar em outros sites

ai a funcionando essa script? e n coloquei pos nenhuma n só fiz testar pra ver se dava erro

só coloquei o lua e no xml pra ver se dava erro e deu

ela ta funcionando ai?

Link para o post
Compartilhar em outros sites
23 horas atrás, maury123 disse:

ai a funcionando essa script? e n coloquei pos nenhuma n só fiz testar pra ver se dava erro

só coloquei o lua e no xml pra ver se dava erro e deu

ela ta funcionando ai?

s é nmecessário colocar a pos :s pq se n vai dar erro testa certinho, e outra ta ligado a tag, o seu tfs é outra versão que o meu então copia uma tag stepin e stepout do seu e testa, mas lembre-se a posição é necessária sim pq eu fiz tudo em base de variavel, se vc n coloca posição ele da erro na função onde tem a variavel "pos" então testa certo pra ve

Link para o post
Compartilhar em outros sites

então man a tag creio que seja a msm da sua pq eu uso uma aq da masterball quest é iguam a sua olha oque muda é que é uniqueid

    <movevent type="StepIn" uniqueid="12345-12352" event="script" value="master.lua"/>

fiz tudo certinho agora coloquei a pos msm assim da erro, "cannot load script" creio que n esta lendo a script então é a tag

to meio perdido de como colocar os ids das portas por serem diferentes das suas olha só elas não sao dividadas em duas como as suas

Sem título.png

Link para o post
Compartilhar em outros sites
1 hora atrás, maury123 disse:

então man a tag creio que seja a msm da sua pq eu uso uma aq da masterball quest é iguam a sua olha oque muda é que é uniqueid

    <movevent type="StepIn" uniqueid="12345-12352" event="script" value="master.lua"/>

fiz tudo certinho agora coloquei a pos msm assim da erro, "cannot load script" creio que n esta lendo a script então é a tag

to meio perdido de como colocar os ids das portas por serem diferentes das suas olha só elas não sao dividadas em duas como as suas

Sem título.png

Cara lá onde eu deixei o comentário de item das portas, onde eu disse pra por o id da porta fechada se coloca onde eu disse pra colocar o meio aberta se coloca man VC me adicionou no skype? Bora se falar por lá? Se for possível tem como colocar um script que usa stepin aki pra eu estudar e ver o q tem de diferente?

 

Nossa to vendo aki o seu precisa de 4 itens .-. Pensei q era só 3

Editado por lenardo88 (veja o histórico de edições)
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