Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] Action para porta que teleporta se tiver level necessário


Ir para solução Resolvido por Rusherzin,

Posts Recomendados

function onUse(cid, item, fromPosition, item2, toPosition)
 

local pos = {x=437, y=58, z=7}

	if getPlayerLevel(cid) >= 5 then
	doTeleportThing(cid, pos)
	doSendMagicEffect(getPlayerPosition(cid), 10)
	doPlayerSendTextMessage(cid, 22, "msg se TIVER level e passar!")

	else
	doPlayerSendTextMessage(cid, 22, "msg se não tiver level.")

end
return TRUE
end

Tag actions.xml

 

	<action actionid="2572" event="script" value="NOMEDOARQUIVO.lua"/>

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Muda essa linha:
 

local pos = {x=437, y=58, z=7}

Por essa:
 

local pos = {x= getCreaturePosition(cid).x, y= getCreaturePosition(cid).y+2, z= getCreaturePosition(cid).z} 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Tenho um novo problema, configurar pra quando a position do player for do outro lado ele executar 2 quadrados pra cá (y-2) ao invés de executar novamente o (y+2)

Link para o post
Compartilhar em outros sites

Cria outro arquivo e outra tag com action diferente e usa nesse tipo de portas que tu desejas..

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local doorPos = {x=getThingPosition(item.uid).x, y=getThingPosition(item.uid).y, z=getThingPosition(item.uid).z}
local playerPos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
local pLevel = 100 --Level necessário para teleportar.
local canpass = "Você passou da porta!" -- Mensagem que vai ser enviada ao passar
local cannotpass = "Você precisa de level " ..pLevel.. " pelo menos para passar desta porta."

	if getPlayerLevel(cid) >= pLevel then
		if playerPos.y = doorPos.y then
			if playerPos.x = doorPos.x+1 then 
				doTeleportThing(cid, (doorPos.x-1,doorPos.y,doorPos.z))
			elseif playerPos.x = doorPos.x-1 then
				doTeleportThing(cid, (doorPos.x+1,doorPos.y,doorPos.z))
			end
		doSendMagicEffect(getPlayerPosition(cid), 10)
		doPlayerSendTextMessage(cid, 22, canpass)
		elseif playerPos.x = doorPos.x then
			if playerPos.y = doorPos.y+1 then
				doTeleportThing(cid, (doorPos.x,doorPos.y-1,doorPos.z))
			elseif playerPos.y = doorPos.y-1 then
				doTeleportThing(cid, (doorPos.x,doorPos.y+1,doorPos.z))
			end
		doSendMagicEffect(getPlayerPosition(cid), 10)
		doPlayerSendTextMessage(cid, 22, canpass)
		else doPlayerSendTextMessage(cid, 22, "Você tem que ficar na frente da porta para passar.")
		end
	else
		doPlayerSendTextMessage(cid, 22, cannotpass)
	end

return TRUE
end

Tenta ai...

Ele vai teletransportar o player para o outro lado sempre.. funciona para portar viradas dos 2 lados.

Se quiser portas que cada uma precisa de um level me fala... Se for só um level em cada porta esse aí ta bom

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

troca a linha 12 por isso daqui:

doTeleportThing(cid, {doorPos.x - 1,doorPos.y,doorPos.z})

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • Solução
function onUse(cid, item, fromPosition, itemEx, toPosition)

local doorPos = {x=getThingPosition(item.uid).x, y=getThingPosition(item.uid).y, z=getThingPosition(item.uid).z}
local playerPos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
local pLevel = 100 --Level necessário para teleportar.
local canpass = "Você passou da porta!" -- Mensagem que vai ser enviada ao passar
local cannotpass = "Você precisa de level " ..pLevel.. " pelo menos para passar desta porta."

        if playerPos.y > doorPos.y and getPlayerLevel(cid) >= pLevel then
                doTeleportThing(cid, {x= doorPos.x, y= doorPos.y-1, z= doorPos.z})
                doSendMagicEffect(getPlayerPosition(cid), 10)
                doPlayerSendTextMessage(cid, 22, canpass)

        elseif playerPos.y < doorPos.y and getPlayerLevel(cid) >= pLevel then
                doTeleportThing(cid, {x= doorPos.x, y= doorPos.y+1, z= doorPos.z})
                doSendMagicEffect(getPlayerPosition(cid), 10)
                doPlayerSendTextMessage(cid, 22, canpass)

        elseif getPlayerLevel(cid) < pLevel then
        doPlayerSendTextMessage(cid, 22, cannotpass)

        end
        
return TRUE
end

Testei e funcionou aqui, e nem precisa estar exatamente na frente da porta..

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

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

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