Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Area Com Limite Level


Ir para solução Resolvido por Farathor,

Posts Recomendados

Boa Tarde Galera Do TK!!

Alguém poderia me ajudar? já procurei em tudo e não consigo achar essa script

preciso de uma script que faça a seguinte função \/

Uma area de Mato que é cheia de monstro + queria que essa area, quando o jogador pegar o level 190 ele toma teleport para o templo e aparece a seguinte msg > Você upou 190 e foi kickado da Floresta.

Alguém pode ajudar?

TIBIA : 8.60

TFS 0.4

+ REP :)

Link para o post
Compartilhar em outros sites

Não testei.

Spoiler

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

	local posi = {x=1, y=1, z=1} -- Posição X começo da sala
	local posf = {x=1, y=1, z=1} -- Posição Y final da sala
	local pos = getCreaturePosition(cid) -- ele vai checar todo o qudrado de posi e posf
	local tp = {x=1, y=1, z=1} -- para onde o player vai ir --
	if getPlayerLevel(cid) < 190 then
	return false
		else
	if isInArea(pos, posi, posf) and isPlayer(cid) == true then
			doPlayerSendTextMessage(cid,18,"Atingiu o nivel 190! Foi expulso do mato")
			doTeleportThing(cid, tp)
		end
end
end

 

 

 

Function OnHelp
local rep = 1
If getMyhelp == rep +
    end

Link para o post
Compartilhar em outros sites

@iBribe

Aonde coloca a script e a tag.xml?

Não sei aonde por ela kkk e nem a tag como é.

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

@iBribe

Aonde coloca a script e a tag.xml?

Não sei aonde por ela kkk e nem a tag como é.

movements/script


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

	local posi = {x=1, y=1, z=1} -- Posição X começo da sala
	local posf = {x=1, y=1, z=1} -- Posição Y final da sala
	local pos = getCreaturePosition(cid) -- ele vai checar todo o qudrado de posi e posf
	local tp = {x=1, y=1, z=1} -- para onde o player vai ir --
	if getPlayerLevel(cid) < 190 then
	return false
		else
	if isInArea(pos, posi, posf) and isPlayer(cid) == true then
			doPlayerSendTextMessage(cid,18,"Atingiu o nivel 190! Foi expulso do mato")
			doTeleportThing(cid, tp)
		end
end
end

movements.xml

<movevent type="StepIn" itemid="Ids dos pisos que a area possui." event="script" value="NomeArquivo.lua"/>

 

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

 

Function OnHelp
local rep = 1
If getMyhelp == rep +
    end

Link para o post
Compartilhar em outros sites
2 minutos atrás, OfWar disse:

@iBribe

Mas os mesmos pisos tem na city na rua. Vai da ruim n vai? Kkk

 

1 minuto atrás, iBribe disse:

não. Pode colocar

a área é indicada em outra linha de código.

 

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

 

Function OnHelp
local rep = 1
If getMyhelp == rep +
    end

Link para o post
Compartilhar em outros sites

@iBribe

esta dando esse error \/

Citar

[01/11/2017 17:14:21] [Error - MoveEvents Interface] 
[01/11/2017 17:14:21] data/movements/scripts/desert.lua:onStepIn
[01/11/2017 17:14:21] Description: 
[01/11/2017 17:14:21] (internalGetPlayerInfo) Player not found when requesting player info #3

[01/11/2017 17:14:21] [Error - MoveEvents Interface] 
[01/11/2017 17:14:21] data/movements/scripts/desert.lua:onStepIn
[01/11/2017 17:14:21] Description: 
[01/11/2017 17:14:21] data/movements/scripts/desert.lua:7: attempt to compare boolean with number
[01/11/2017 17:14:21] stack traceback:
[01/11/2017 17:14:21]     data/movements/scripts/desert.lua:7: in function <data/movements/scripts/desert.lua:1>
 

 

Editado por OfWar (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
function onAdvance(cid, skill, oldlevel, newlevel)
	local PositionA = {x=0, y=0, z=0} -- Posição Superior esquerda do map
	local PositionB = {x=0, y=0, z=0} --	Posição Inferior direita do map
	local PositionExit = {x=0, y=0, z=0}
	local PlayerPos = getCreaturePosition(cid)
	
	if isInArea(PlayerPos, PositionA, PositionB) then
		if skill == SKILL__LEVEL and getPlayerLevel(cid) >= 190 then
			doTeleportThing(cid, PositionExit)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You can no longer hover in this hunt.")
			return false
	end
    return true
end

 

 

Te ajudei ?? Que tal fazer uma contribuição ?

Doar

Link para o post
Compartilhar em outros sites

@DboExplorer

deu error, também não sei aonde por ela e nem sei a tag direito, é em movement ou action?

 

error \/

Citar

[02/11/2017 00:05:16] [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/desert.lua)

 

Link para o post
Compartilhar em outros sites
5 minutos atrás, OfWar disse:

@DboExplorer

deu error, também não sei aonde por ela e nem sei a tag direito, é em movement ou action?

 

error \/

 

<event type="advance" name="Hunt190Block" event="script" value="nomearq.lua"/>

 

registerCreatureEvent(cid, "Hunt190Block")

Creaturescripts.xml/Login.lua

 

Te ajudei ?? Que tal fazer uma contribuição ?

Doar

Link para o post
Compartilhar em outros sites

@DboExplorer

Mano funcionou perfeitamente em 1 andar, + eu esqueci de falar uma coisa kk, a cave tem 3 andares como faço pra deixar nos outros andares também? Tenho que criar varias scripts ou dentro dessa tem como?

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

Não testei, do jeito que eu fiz, ele vai ficar checando de 1 em 1 minuto os jogadores online e se eles estiverem dentro da area e com level > que 190 eles são teleportados

Em globalevents/scripts coloque o script:

-- Feito por Farathor (Eduardo Rodrigues) --

local inicio = {x=1, y=1, z=1} -- Posição canto superior esquerdo
local fim = {x=1, y=1, z=1} -- Posição canto inferior direito
function onThink(interval, lastExecution, thinkInterval)
    for _, pid in ipairs(getPlayersOnline())do
        if getPlayerLevel(pid) >= 190 and isInArea(getThingPos(pid), inicio, fim)) then
            doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente jogadores com level menor que 190 podem ficar ai!")
            doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
            doSendMagicEffect(getThingPos(pid), CONST_ME_TELEPORT)
        end    
    end
    return true
end

 

em globalevents.xml adicione a tag

<globalevent name="checkArea" interval="60000" event="script" value="nome_do_script.lua"/>
Editado por Farathor (veja o histórico de edições)

[progress=green]50[/progress]

 

Link para o post
Compartilhar em outros sites

@Farathor

Ja consegui por, mas a cave tem 3 andares queria q pegasse em todos andares como faço?  Vou ter q por de andar em andar? Fazer várias scripts?

Link para o post
Compartilhar em outros sites
1 minuto atrás, OfWar disse:

@Farathor

Ja consegui por, mas a cave tem 3 andares queria q pegasse em todos andares como faço?  Vou ter q por de andar em andar? Fazer várias scripts?

Não, no meu script em local inicio você colocar a posição na qual abrange todo o andar do lado superior esquerdo do 3 andar e no local fim você coloca o inferior direito do primeiro andar, deu pra entender mais ou menos?

[progress=green]50[/progress]

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

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