Gostaria de saber como fazer um teleport (portal) aparecer quando um player matasse um monstro em um quarto fechado, ou remover uma parece para q ele possa sair da sala tbm.
Alguem tem como me ajudar nisso?
Gostaria de saber como fazer um teleport (portal) aparecer quando um player matasse um monstro em um quarto fechado, ou remover uma parece para q ele possa sair da sala tbm.
Alguem tem como me ajudar nisso?
Tenho esse script aqui:
creaturescripts.xml:
<event type="death" name="MonsterTeleport" script="monsterteleport.lua"/>
monsterteleport.lua:
local tpId = 1387
local tps = {
["Monster"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30},
}
function removeTp(tp)
local t = getTileItemById(tp.pos, tpId)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(tp.pos, CONST_ME_POFF)
end
end
function onDeath(cid)
local tp = tps[getCreatureName(cid)]
if tp then
doCreateTeleport(tpId, tp.toPos, tp.pos)
doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(removeTp, tp.time*1000, tp)
end
return TRUE
end
No monstro, adicione isso antes de </monster>:
<script> <event name="MonsterTeleport"/> </script>
Configs:
Vermelho: Nome do Monstro
Verde: Posição onde o teleport aparecerá
Amarelo: Posição de onde o teleport levará o player
Azul: Tempo até o teleport sumir
• Estagiário desde 26/08/2012
• Colaborador desde 30/09/2012
• Moderador desde 24/01/2013
• Saída da equipe: ??/??/2013
Meus scripts:
Movement - Vocation Weapon
Mod - Partner System
Mod - Characters Market System (In Game) -- Exclusivo
Mod - Caixa Eletrônico
Mod - Vampire System
Mod - Summon Boost System
Mod - Defend The Generator
Sistema - RadBr Banishment System -- Super Exclusivo
Sistema - Advanced Quiz System -- Exclusivo
Talk - Comprando Pontos de EXP
Talk - Stop Time
Talk - Calculadora Ingame
Talk - Perfect Reset System -- Exclusivo
Tutorial - Aprendendo a Scriptear
Eu testei aqui cara, não deu certo não, eu mato o monster e não acontece nada...
brigado pela ajuda, mas tem alguma solução pra isso? tentei outros scripts tbm mas nada ta fucionando...
Não parei pra analisar o script do @LuckOake, mais usei como base.
Créditos pra ele então.
Vai em data/creaturescripts/scripts duplica um arquivo e nomeia para "tpKill" sem as aspas e nele cole:
local tpId = 1387 local tps = { ["Demon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30} } function onKill(cid, target, lastHit) local monster = getCreatureName(target) if tps[monster] then doCreateTeleport(tpId, tps[monster].toPos, tps[monster].pos) doCreatureSay(cid, "O teleport irá sumir em ".. tps[monster].time .." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tps[monster].time*1000, tps[monster].pos) end return true end function removeTp(pos) local position = {x=pos.x,y=pos.y,z=pos.z,stackpos=0} for i=1, 255 do position.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid == tpId then doRemoveItem(tile.uid) end end return true end
Agora em creaturescripts.xml cole a tag:
<event type="kill" name="TpKill" event="script" value="tpKill.lua"/>
E no arquivo creaturescripts/scripts/login.lua antes do último return true cole a tag:
registerCreatureEvent(cid, "TpKill")
Te ajudei. Então REP+
Meus Trabalhos:
O melhor pokebot!
soque isso e um pedido nao duvida.
soque isso e um pedido nao duvida.
se não for ajuda não comenta nada, rep- pela infração, criança.
não me chama de criança seu bosta
Não parei pra analisar o script do @LuckOake, mais usei como base.
Créditos pra ele então.
Vai em data/creaturescripts/scripts duplica um arquivo e nomeia para "tpKill" sem as aspas e nele cole:
local tpId = 1387 local tps = { ["Demon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30} } function onKill(cid, target, lastHit) local monster = getCreatureName(target) if tps[monster] then doCreateTeleport(tpId, tps[monster].toPos, tps[monster].pos) doCreatureSay(cid, "O teleport irá sumir em ".. tps[monster].time .." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tps[monster].time*1000, tps[monster].pos) end return true end function removeTp(pos) local position = {x=pos.x,y=pos.y,z=pos.z,stackpos=0} for i=1, 255 do position.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid == tpId then doRemoveItem(tile.uid) end end return true end
Agora em creaturescripts.xml cole a tag:
<event type="kill" name="TpKill" event="script" value="tpKill.lua"/>
E no arquivo creaturescripts/scripts/login.lua antes do último return true cole a tag:
registerCreatureEvent(cid, "TpKill")
Po cara, brigadão, finalmente fucionou...queria te da um +rep, mas não sei como, to procurando aki kkkkkk
Valeu ae cara
hum, tentei multiplicar esse script (pra criar o mesmo tipo de ação, mas em outro lugar)..porém não deu certo..
Não precisa multiplicar o script, basta adicionar novas pos no msm script desse modo:
local tps = { ["Demon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30}, ["Dragon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30}, ["Rat"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30} }
Como no exemplo, se adiciona virgulas no final de cada tag para poder colocar outra em baixo.
E o rep é só clicar na "setinha verde" abaixo de um post de alguém que você queira reputar.
Te ajudei. Então REP+
Meus Trabalhos:
O melhor pokebot!
local tpId = 1387 local tps = { ["Demon"] = {pos = {x=880, y=1313, z=7}, toPos = {x = 872, y = 1316, z = 7}, time = 60} ["Cyclops"] = {pos = {x=695, y=1209, z=7}, toPos = {x = 673, y = 1219 , z = 7}, time = 60} } function onKill(cid, target, lastHit) local monster = getCreatureName(target) if tps[monster] then doCreateTeleport(tpId, tps[monster].toPos, tps[monster].pos) doCreatureSay(cid, "Good job, leave this area in ".. tps[monster].time .." seconds.", TALKTYPE_ORANGE_1) addEvent(removeTp, tps[monster].time*1000, tps[monster].pos) end return true end function removeTp(pos) local position = {x=pos.x,y=pos.y,z=pos.z,stackpos=0} for i=1, 255 do position.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid == tpId then doRemoveItem(tile.uid) end end return true end
Fiz assim, mas esse erro ta aparecendo:
cannot open ...Tpkill...
} expected <to close { at line 2) near [
achei muito estranho pq na segunda linha não tem nenhum [
Cara, começa a usar a barrinha search.... Tem uma ótima funçao hehe...
Aki o do Vodkart:
Aí ele manda os scripts de matar monstros abrir tp / Remover parede / ganhar storage..
++REP (Ajudei)?
- REP (Não Ajudei)?
Tutoriais de ElfBot: http://www.xtibia.co...__fromsearch__1
Fórum Oficial: http://www.mreonline.com.br
local tpId = 1387
local tps = {
["Demon"] = {pos = {x=880, y=1313, z=7}, toPos = {x = 872, y = 1316, z = 7}, time = 60},
["Cyclops"] = {pos = {x=695, y=1209, z=7}, toPos = {x = 673, y = 1219 , z = 7}, time = 60}
}
function onKill(cid, target, lastHit)
local monster = getCreatureName(target)
if tps[monster] then
doCreateTeleport(tpId, tps[monster].toPos, tps[monster].pos)
doCreatureSay(cid, "Good job, leave this area in ".. tps[monster].time .." seconds.", TALKTYPE_ORANGE_1)
addEvent(removeTp, tps[monster].time*1000, tps[monster].pos)
end
return true
end
function removeTp(pos)
local position = {x=pos.x,y=pos.y,z=pos.z,stackpos=0}
for i=1, 255 do
position.stackpos = i
local tile = getTileThingByPos(pos)
if tile.itemid == tpId then
doRemoveItem(tile.uid)
end
end
return true
end
Faltou uma vírgula.
Toda vez que você adicionar um novo monstro na tabela, coloque uma vírgula no final.
• Estagiário desde 26/08/2012
• Colaborador desde 30/09/2012
• Moderador desde 24/01/2013
• Saída da equipe: ??/??/2013
Meus scripts:
Movement - Vocation Weapon
Mod - Partner System
Mod - Characters Market System (In Game) -- Exclusivo
Mod - Caixa Eletrônico
Mod - Vampire System
Mod - Summon Boost System
Mod - Defend The Generator
Sistema - RadBr Banishment System -- Super Exclusivo
Sistema - Advanced Quiz System -- Exclusivo
Talk - Comprando Pontos de EXP
Talk - Stop Time
Talk - Calculadora Ingame
Talk - Perfect Reset System -- Exclusivo
Tutorial - Aprendendo a Scriptear
muito estranho, agora não ta dando nenhum erro, mas só ta fucionando com o demon, o cyclops morre e não acontece nada, ja vi as coordenadas e estavam corretas, vi os scripts tbm, parecem estar corretos... alguem sabe o porque disso?
Consegui resolver um problema... era bobo (como eu imaginava)...Faltava uma letra maiuscula no nome do monster na data..
Brigadão ai a todos que me ajudaram.