yes, é possível, só colocar uma storage para checar em qual pos mandar elar ![]()
[Resolvido]Teleport Com Script De Mudar As Coordenadas
Por Spectrusz, 29 de ago. de 2012 em Scripts
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

data\globalevents\scripts\tp.lua
function onThink(interval, lastExecution, thinkInterval)
local pos = {
[1] = {x = 160, y = 50, z = 7}, -- Coordenadas do destino
[2] = {x = 160, y = 51, z = 7}, -- Coordenadas do destino
[3] = {x = 160, y = 52, z = 7}, -- Coordenadas do destino
[4] = {x = 160, y = 53, z = 7}, -- Coordenadas do destino
[5] = {x = 160, y = 54, z = 7}, -- Coordenadas do destino
}
local po = {x=160, y=51, z=7} -- aqui coloca tp que vai aparecer
local time = 5
doCreateTeleport(1387, pos[math.random(1,5)],po)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(deleteTp, time*60*1000)
addEvent(doBroadcastMessage, time*1000*60, "O portal do evento foi fexado. Próximo evento em 2 horas.")
return true
end
function deleteTp()
local delete = getTileItemById(pos, 1387)
doRemoveItem(delete.uid, 1)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
end
data\globalevents\globalevents.xml
adiciona isso
<globalevent name="evento" interval="3600" event="script" value="tp.lua"/>
@Vodkart
Eu ainda não entendo muito storage, na verdade, eu não sei oque é de verdade :x
Se tiver um tópico pra passar que me ajude a entender, adoraria ler ^^
Mas vou procurando saber oque é aqui, obrigado pela informação, aposto que logo será útil para mim ![]()
@notle2012
Você é o cara que mais me responde aqui no forum rsrs
Obrigado pela ajuda amigo, vou testar aqui a script, daqui a pouco edito e digo se funcionou ou não...
--edit
A script funciona quase toda, ela só não deleta o portal, ai cria um em baixo do outro e acaba sempre teleportando para o mesmo lugar ):
Acredito que o problema esteja aqui:
function deleteTp()
local delete = getTileItemById(pos, 1387)
doRemoveItem(delete.uid, 1)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
end
Me ajuda a terminar '---'
Editado Agosto 29 por Spectrusz
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit

function deleteTp() local delete = getTileItemById(pos, 1387) if delete.uid > 0 then doRemoveItem(delete.uid, 1) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end
Notle
usa assim
doCreateTeleport(1387, pos[math.random(1, #pos)],po)
Editado Agosto 29 por Skymagnum
info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

blz
deixa monta pra ele
fico assim
function onThink(interval, lastExecution, thinkInterval)
local pos = {
[1] = {x = 160, y = 50, z = 7}, -- Coordenadas do destino
[2] = {x = 160, y = 51, z = 7}, -- Coordenadas do destino
[3] = {x = 160, y = 52, z = 7}, -- Coordenadas do destino
[4] = {x = 160, y = 53, z = 7}, -- Coordenadas do destino
[5] = {x = 160, y = 54, z = 7}, -- Coordenadas do destino
}
local po = {x=160, y=51, z=7} -- aqui coloca tp que vai aparecer
local time = 5
doCreateTeleport(1387, pos[math.random(1, #pos)],po)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(deleteTp, time*60*1000)
addEvent(doBroadcastMessage, time*1000*60, "O portal do evento foi fexado. Próximo evento em 2 horas.")
return true
end
function deleteTp()
local delete = getTileItemById(pos, 1387)
if delete.uid > 0 then
doRemoveItem(delete.uid, 1)
doSendMagicEffect(pos, CONST_ME_TELEPORT)
end
return true
end
Ainda não funciona T.T
Da esse erro no distro:
[29/08/2012 23:16:08] [Error - GlobalEvent Interface] [29/08/2012 23:16:08] In a timer event called from: [9/08/2012 23:16:08] data/globalevents/scripts/tp.lua:onThink [29/08/2012 23:16:08] Description: [29/08/2012 23:16:08] attempt to index a nil value [29/08/2012 23:16:08] stack traceback: [29/08/2012 23:16:08] [C]: in function 'getTileItemById' [29/08/2012 23:16:08] data/globalevents/scripts/tp.lua:18: in function <data/globalevents/scripts/tp.lua:17>
O problema é nessa linha:
local delete = getTileItemById(pos, 1387)
Já tentei colocar assim:
local delete = getTileItemById(po, 1387)
assim:
local delete = getTileItemById(pos, 1387).uid
assim:
local delete = getTileItemById(po, 1387).uid
e assim:
local delete = getTileItemById(pos, 1387)
E ainda nada T.T
Editado Agosto 29 por Spectrusz
É porque po/pos não foi declarado nessa 2ª function, o certo seria:
local teleportPosition = {x=160, y=51, z=7} -- aqui coloca tp que vai aparecer
local pos = {
[1] = {x = 160, y = 50, z = 7}, -- Coordenadas do destino
[2] = {x = 160, y = 51, z = 7}, -- Coordenadas do destino
[3] = {x = 160, y = 52, z = 7}, -- Coordenadas do destino
[4] = {x = 160, y = 53, z = 7}, -- Coordenadas do destino
[5] = {x = 160, y = 54, z = 7}, -- Coordenadas do destino
}
function onThink(interval, lastExecution, thinkInterval)
local time = 5
doCreateTeleport(1387, pos[math.random(1, #pos)], teleportPosition)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(deleteTp, time*60*1000)
addEvent(doBroadcastMessage, time*1000*60, "O portal do evento foi fexado. Próximo evento em 2 horas.")
return true
end
function deleteTp()
local delete = getTileItemById(teleportPosition, 1387)
if delete.uid > 0 then
doRemoveItem(delete.uid, 1)
doSendMagicEffect(teleportPosition, CONST_ME_TELEPORT)
end
return true
end
A script vai funcionar, mas não sei se é exatamente o que você quer...
Ela cria um teleporte no posição teleportPosition com um destino aleatório que pode ser qualquer um dentro daquelas especificadas na tabela "pos". Depois de 5 min esse teleporte é destruído e mais 1 hora depois outro é criado, com mesmo efeito, aleatório, por 5 min bla bla...
Achei que você quisesse um teleporte fixo que de 2 em 2 min mude o destino, não precisa usar storage pra fazer isso.
A propósito, storage são valores que vão ser armazenados, só pra guardar uma informação, por exemplo, em qual estado está uma certa quest do player, aí eu pego a storage value de key 100 e coloco o valor 1, seria o estágio inicial. Aí num NPC, quando o player conversa com esse NPC, ele verifica qual o valor da key 100 do player (o campo 100 de valores armazenados) pra ver qual o estágio da quest... Se for 1, vai pedir um item X, ai depois que o player entregar, coloca o valor como 2, ai pede um item Y, ai coloca o valor como 3 que seria a quest concluída, só um exemplo...
Existem storages para players e storages globais, que seria um storage que vale pro server inteiro, utilizada em quests globais, como por exemplo anihilator... Também muito utilizada pra customizar o quest log, editando o quests.xml
Editado Agosto 29 por brun123
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Não precisa deletar o tp, só usar globalstoragevalue , os.time() + movements para mandar o jogador para posições diferentes
@brun123
Muito obrigado cara, funcionou perfeitamente!!
E você tem rasão, não era exatamente como eu queria, mas eu posso colocar para um teleporte aparecer exatamente 1 segundo depois que ele abrir, assim funciona como eu pedi XD
Mas não é só isso que eu pedi que eu quero, quero envolver essa script com outras, do jeito que eu estou pensando, acho que vou precisar usar storage ou colocar a outra script toda dentro dessa, mas vou ver com calma, quero fazer algo novo que não tem em nenhum ot, então preciso fazer parte da script xD
Quero ver se loto meu ot com esse systema que estou planejando ![]()
@vorkart
Sou bem novo nisso, você poderia representar isso dentro de uma script, me ajudaria muito, se quiser, responda por mensagem privada, vou reportar esse tópico como dúvida sanada =P
@all
Obrigado a todos, assim que eu tiver um rep+ eu mando pro brun123, eu já tinha dado rep no notle2012
Vou ir dormir, boa noite a todos!
Editado Agosto 29 por Spectrusz




info
Grupo: Campones
Registrado: 12/08/12
Posts: 40
Reputação: +3
Olá, quero criar um teleporte, que de 20 em 20min mude as coordenadas dele, isso é possível?
Dúvida sanada:
O brun123 terminou a script do notle2012 que recebeu modificação do Skymagnum
Editado Agosto 29 por Spectrusz