FA
pedido

Jungle Maw Prison

Por Fabiian, 16 de nov. de 2013 em Scripts

resolvido
tibia
script
otserv
17
3.3k
FabiianF
16 de novembro de 2013 às 18:06

Ola galera, queria um script que quando vc pisa numa "Jungle Maw" Jungle_Maw.gif

ela te prende por 30 segundos. Impossível de se mover para nenhum lado...

 

ID: Jungle Maw (aberta) = 4208

ID: Jungle Maw (Fechada) = 4209

 

se alguém puder ajudar ficarei muito grato! REP+

Editado Novembro 16 por Fabiian

gonorreiaswatG
16 de novembro de 2013 às 18:10

Vou tentar montar pra ti, é fácil.

Só que não estou em casa e então preciso ver se ela funciona como script;

 

Já edito.

FabiianF
16 de novembro de 2013 às 18:15

o Script pra ela seria MoveEvent function "onStepIn", o meu problema é que não estou conseguindo fazer o player ou monstro ficar preso no item... tentei a Condition_Paralyze, mas os players andam mesmo com forma super forte do tipo (-99999999, 0, -9999999, 0).

eu queria que impedisse totalmente o movimento. ^^

gonorreiaswatG
16 de novembro de 2013 às 18:19

É só por a tag abaixo:

mayNotMove(cid, true)

Dentro da parte do script e pronto.

Falta só configurar o tempo, se quiser, posta o script e eu arrumo pra ti.

 

E para remover a 'paralização', basta por para executar tag com valor "false".

 

Boa sorte.

Editado Novembro 16 por Adriano Swatt

FabiianF
16 de novembro de 2013 às 18:30
function onStepIn(cid, item, pos)
	if isPlayer(cid) == 1 then
		-- Passou Player
		doSendMagicEffect(pos, 0)
	elseif isCreature(cid) == 1 then
		-- Passou Bicho
		doSendMagicEffect(pos, 3)
	end
	doPlayerAddHealth(cid, -30)
	doTransformItem(item.uid,4209)
	doDecayItem(item.uid)
	return 1
end

Aonde eu encaixo essa tag no code ?

SertthoonS
16 de novembro de 2013 às 18:46

script legal, mas vai encher o saco dos players :p

FabiianF
16 de novembro de 2013 às 18:50

essa é a ideia, quero colocar esse script em uma spell... Mas claro que também vou criar uma spell para se soltar da trap algo como "pisotear armadilha"!

gonorreiaswatG
16 de novembro de 2013 às 19:18

Tenta assim:

 

local tempo = 30 -- tempo em segundos
function onStepIn(cid, item, pos)
    if isPlayer(cid) == 1 then
        -- Passou Player
        doSendMagicEffect(pos, 0)
    elseif isCreature(cid) == 1 then
        -- Passou Bicho
        doSendMagicEffect(pos, 3)
    end
    doPlayerAddHealth(cid, -30)
mayNotMove(cid, true)
addEvent(Liberar, tempo * 1000, cid)
    doTransformItem(item.uid,4209)
    doDecayItem(item.uid)
    return 1
end
 
function Liberar(cid)
mayNotMove(cid, false)
end

 

Fiz correndo pois não estou em casa e estou indo assistir filme na minha sogra...

Porém, teste aí e poste o resultado.

 

Boa sorte.

FabiianF
16 de novembro de 2013 às 20:07

Funcionou em players mas em monstros eles não travam se puder ajudar assim que possível, ficarei muito grato!

ja ganhou seu REP+ por ajudar, valeu !

gonorreiaswatG
16 de novembro de 2013 às 21:00

Teste assim:

 

local tempo = 30 -- tempo em segundos
function onStepIn(cid, item, pos)
    if isPlayer(cid) == 1 then
        -- Passou Player
mayNotMove(cid, true)
addEvent(Liberar, tempo * 1000, cid)
        doSendMagicEffect(pos, 0)
    elseif isCreature(cid) == 1 then
        -- Passou Bicho
mayNotMove(cid, true)
addEvent(Liberar, tempo * 1000, cid)
        doSendMagicEffect(pos, 3)
    end
    doPlayerAddHealth(cid, -30)
mayNotMove(cid, true)
addEvent(Liberar, tempo * 1000, cid)
    doTransformItem(item.uid,4209)
    doDecayItem(item.uid)
    return 1
end
 
function Liberar(cid)
mayNotMove(cid, false)
end

 

Não sei se usa "cid" mesmo para monster, mas teste aí.

FabiianF
16 de novembro de 2013 às 22:38

ainda não funcionou, talvez não seja "cid" que se usa para monstros. Mas se não for qual seria ?

gonorreiaswatG
16 de novembro de 2013 às 23:08

Cara, já que é pra funcionar em tudo que passar pelo tile, testa assim:

 

local tempo = 30 -- tempo em segundos
function onStepIn(cid, item, pos)
    doPlayerAddHealth(cid, -30)
mayNotMove(cid, true)
addEvent(Liberar, tempo * 1000, cid)
    doTransformItem(item.uid,4209)
    doDecayItem(item.uid)
    return 1
end
end
 
function Liberar(cid)
mayNotMove(cid, false)
end

 

Sei lá, é que não estou em casa agora e não estou achando a função exata para este script verificar o monstro.

 

Boa sorte.

Editado Novembro 16 por Adriano Swatt

LuckOakeL
16 de novembro de 2013 às 23:22

Não adianta usar mayNotMove em monstros, não vai funcionar.

 

Use doChangeSpeed(cid, -getCreatureSpeed(cid)).

 

Tá aqui o script:

local tempo = 30 -- Tempo em segundos

function onStepIn(cid, item, pos)
    if isMonster(cid) then
        doCreatureSetStorage(cid, "base_speed", getCreatureBaseSpeed(cid))
        doChangeSpeed(cid, -getCreatureSpeed(cid))
    else
        mayNotMove(cid, true)
    end
    doCreatureAddHealth(cid, -30)
    addEvent(function() if not isCreature(cid) then return true end if isMonster(cid) then doChangeSpeed(cid, getCreatureStorage(cid, "base_speed")) else mayNotMove(cid, false) end end, tempo*1000)
    doTransformItem(item.uid, 4209)
    return true
end

Editado Novembro 16 por LuckOake

gonorreiaswatG
16 de novembro de 2013 às 23:31

 

Não adianta usar mayNotMove em monstros, não vai funcionar.

 

Use doChangeSpeed(cid, -getCreatureSpeed(cid)).

 

Tá aqui o script:

local tempo = 30 -- Tempo em segundos

function onStepIn(cid, item, pos)
    if isMonster(cid) then
        doCreatureSetStorage(cid, "base_speed", getCreatureBaseSpeed(cid))
        doChangeSpeed(cid, -getCreatureSpeed(cid))
    else
        mayNotMove(cid, true)
    end
    doCreatureAddHealth(cid, -30)
    addEvent(function() if not isCreature(cid) then return true end if isMonster(cid) then doChangeSpeed(cid, getCreatureStorage(cid, "base_speed")) else mayNotMove(cid, false) end end, tempo*1000)
    doTransformItem(item.uid, 4209)
    return true
end

 

Ah sim, muito interessante.

Na verdade o script pega a velocidade do monstro e depois subtrai, tornando então velocidade zero, ou seja, monster parado.

 

Interessante.

Obrigado por contribuir, pois estava quebrando a cabeça para isso.

FabiianF
17 de novembro de 2013 às 12:34

Bom, testei aqui deu tudo certinho.. Muito obrigado pela ajuda galera !