MonsterOt 1 Postado Setembro 18, 2012 Share Postado Setembro 18, 2012 teria como fazer se o player sair do tile antes de ser teleportado o tempo pare de contar, e se ele entrar de volta no tile comece a contar do 0. Tem como fazer isso? local events ={}local tempo = 30 -- tempo em segundos local pos = {x = 1, y = 1, z = 1} local function doTeleportThingNoError(guid, pos) local cid = getPlayerByGUID(guid) if not isCreature(cid) then return end doTeleportThing(cid, pos) end function onStepIn(cid, item, oldPos) doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado") events[getPlayerGUID(cid)] = addEvent(doTeleportThingNoError, tempo * 1000, getPlayerGUID(cid), pos) return true end function onStepOut(cid, item, pos) doPlayerSendTextMessage(cid, 28, "Contagem zerada.") stopEvent(events[getPlayerGUID(cid)]) events[getPlayerGUID(cid)] = nil return true end Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/ Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Setembro 18, 2012 Share Postado Setembro 18, 2012 local config = { wait = 30 -- TEMPO DE EXECUÇÃO DO TELEPORTE; EM SEGUNDOS position = {x = 1, y = 1, z = 7} -- POSIÇÃO DE TELEPORTE events = {} } function teleportEvent(cid, seconds) if not isCreature(cid) then config.events[cid] = nil return true end seconds = seconds - 1 if seconds == 0 then doTeleportThing(cid, config.position) config.events[cid] = nil else config.events[cid] = addEvent(teleportEvent, 1 * 1000, cid, (seconds - 1)) end end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Contagem iniciada. Você será teleportado em ".. config.wait .." segundos.") config.events[cid] = addEvent(teleportEvent, 1 * 1000, cid, config.wait) return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Não saia do piso!\nContagem zerada.") stopEvent(config.events[cid]) config.events[cid] = nil return true end Fiz de cabeça, talvez não funcione. Faça um teste e me avise. Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1341704 Compartilhar em outros sites More sharing options...
0 MonsterOt 1 Postado Setembro 18, 2012 Autor Share Postado Setembro 18, 2012 Deu esse erro: Quando sai do tile o tempo já para. oque eu quero mesmo é quando sair do tile o tempo volte para "0" Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342038 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Setembro 18, 2012 Share Postado Setembro 18, 2012 (editado) Faltou umas vírgulas no config. local config = { wait = 30, -- TEMPO DE EXECUÇÃO DO TELEPORTE; EM SEGUNDOS position = {x = 1, y = 1, z = 7}, -- POSIÇÃO DE TELEPORTE events = {} } function teleportEvent(cid, seconds) if not isCreature(cid) then config.events[cid] = nil return true end seconds = seconds - 1 if seconds == 0 then doTeleportThing(cid, config.position) config.events[cid] = nil else config.events[cid] = addEvent(teleportEvent, 1 * 1000, cid, (seconds - 1)) end end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Contagem iniciada. Você será teleportado em ".. config.wait .." segundos.") config.events[cid] = addEvent(teleportEvent, 1 * 1000, cid, config.wait) return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Não saia do piso!\nContagem zerada.") stopEvent(config.events[cid]) config.events[cid] = nil return true end PS: Créditos inteiramente do Oneshot, estou apenas corrigindo um erro. Editado Setembro 18, 2012 por LuckOake Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342088 Compartilhar em outros sites More sharing options...
0 MonsterOt 1 Postado Setembro 18, 2012 Autor Share Postado Setembro 18, 2012 (editado) Ta bugado depois que passa 30 segundos o player nao é teleportado Editado Setembro 18, 2012 por MonsterOt Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342108 Compartilhar em outros sites More sharing options...
0 brun123 369 Postado Setembro 19, 2012 Share Postado Setembro 19, 2012 você configurou a posição? essa script que o notle postou está diminuindo o "seconds" em 2 a cada segundo, não sei se vocês perceberam... MonsterOt, cara, já te passei 2x em outros tópicos essa script... em vez de ficar pedindo várias vezes a mesma coisa, porque não especifica ao máximo o que você realmente quer? depende do que você quer fazer, talvez nem precisa de onStepOut, talvez precise implementar a função isInRange... local events ={} local tempo = 30 -- tempo em segundos local pos = {x = 1, y = 1, z = 1} local function doTeleportThingNoError(guid, pos) local cid = getPlayerByGUID(guid) events[guid] = nil if not isCreature(cid) then return end doTeleportThing(cid, pos) end function onStepIn(cid, item, oldPos) if events[getPlayerGUID(cid)] then stopEvent(events[getPlayerGUID(cid)]) doPlayerSendTextMessage(cid, 27, "Contagem zerada.") end doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado") events[getPlayerGUID(cid)] = addEvent(doTeleportThingNoError, tempo * 1000, getPlayerGUID(cid), pos) return true end Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342174 Compartilhar em outros sites More sharing options...
0 notle2012 233 Postado Setembro 19, 2012 Share Postado Setembro 19, 2012 você configurou a posição? essa script que o notle postou está diminuindo o "seconds" em 2 a cada segundo, não sei se vocês perceberam... MonsterOt, cara, já te passei 2x em outros tópicos essa script... em vez de ficar pedindo várias vezes a mesma coisa, porque não especifica ao máximo o que você realmente quer? depende do que você quer fazer, talvez nem precisa de onStepOut, talvez precise implementar a função isInRange... local events ={} local tempo = 30 -- tempo em segundos local pos = {x = 1, y = 1, z = 1} local function doTeleportThingNoError(guid, pos) local cid = getPlayerByGUID(guid) events[guid] = nil if not isCreature(cid) then return end doTeleportThing(cid, pos) end function onStepIn(cid, item, oldPos) if events[getPlayerGUID(cid)] then stopEvent(events[getPlayerGUID(cid)]) doPlayerSendTextMessage(cid, 27, "Contagem zerada.") end doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado") events[getPlayerGUID(cid)] = addEvent(doTeleportThingNoError, tempo * 1000, getPlayerGUID(cid), pos) return true end rsrs realmente os tópico do monsterot parece quase a mesma coisa coloca mais detalhes fica mais fácil pra ajuda eu ja vi brun123 postando umas 2 vez pra te ajuda em outros topico não sei cade link quando achar edit aqui Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342211 Compartilhar em outros sites More sharing options...
0 MonsterOt 1 Postado Setembro 19, 2012 Autor Share Postado Setembro 19, 2012 (editado) foi mal por nao explicar melhor ta quase perfeito seu script brun123 só falto isso: quando o player sair do tile o tempo para de contar Editado Setembro 19, 2012 por MonsterOt Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342213 Compartilhar em outros sites More sharing options...
0 notle2012 233 Postado Setembro 19, 2012 Share Postado Setembro 19, 2012 pelo oq eu entendi esse pode ressorver seu problema testa ai local events ={} local tempo = 30 -- tempo em segundos local pos = {x = 160, y = 54, z = 7} local function doTeleportThingNoError(guid, pos) local cid = getPlayerByGUID(guid) events[guid] = nil if not isCreature(cid) then return end doTeleportThing(cid, pos) doCreatureSetNoMove(cid, false) end function onStepIn(cid, item, oldPos) if events[getPlayerGUID(cid)] then stopEvent(events[getPlayerGUID(cid)]) doPlayerSendTextMessage(cid, 27, "Contagem zerada.") end doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado") doCreatureSetNoMove(cid, true) events[getPlayerGUID(cid)] = addEvent(doTeleportThingNoError, tempo * 1000, getPlayerGUID(cid), pos) return true end Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342235 Compartilhar em outros sites More sharing options...
0 MonsterOt 1 Postado Setembro 19, 2012 Autor Share Postado Setembro 19, 2012 (editado) notle2012 o player nao pode se mover porque? eu so queria que na hora que o player sair de cima do tile, o tempo dos 30 segundos pare de contar. e depois que o player voltar no tile o tempo volte para "0" e comece a contar tudo de novo o script do brun123 ja faz quando o player volta no tile o tempo ficar "0", só falta fazer o tempo parar de correr na hora que o player sai do tile Editado Setembro 19, 2012 por MonsterOt Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342244 Compartilhar em outros sites More sharing options...
0 brun123 369 Postado Setembro 19, 2012 Share Postado Setembro 19, 2012 Tem que colocar as tags de stepin/stepout local events ={} local tempo = 30 -- tempo em segundos local pos = {x = 1, y = 1, z = 1} local function doTeleportThingNoError(guid, pos) local cid = getPlayerByGUID(guid) events[guid] = nil if not isCreature(cid) then return end doTeleportThing(cid, pos) end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if events[getPlayerGUID(cid)] then stopEvent(events[getPlayerGUID(cid)]) doPlayerSendTextMessage(cid, 27, "Contagem zerada.") end doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado") events[getPlayerGUID(cid)] = addEvent(doTeleportThingNoError, tempo * 1000, getPlayerGUID(cid), pos) return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) if events[getPlayerGUID(cid)] then stopEvent(events[getPlayerGUID(cid)]) events[getPlayerGUID(cid)] = nil doPlayerSendTextMessage(cid, 27, "Contagem zerada.") end end[/spoiler] Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342265 Compartilhar em outros sites More sharing options...
0 SuddenAttack 0 Postado Setembro 19, 2012 Share Postado Setembro 19, 2012 (editado) Suspenderam minha conta.. como faz esse stepin/stepout? rep+ pros 2 que tentam me ajudar vlw Editado Setembro 19, 2012 por SuddenAttack Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342276 Compartilhar em outros sites More sharing options...
0 notle2012 233 Postado Setembro 19, 2012 Share Postado Setembro 19, 2012 (editado) notle2012 o player nao pode se mover porque? eu so queria que na hora que o player sair de cima do tile, o tempo dos 30 segundos pare de contar. e depois que o player voltar no tile o tempo volte para "0" e comece a contar tudo de novo o script do brun123 ja faz quando o player volta no tile o tempo ficar "0", só falta fazer o tempo parar de correr na hora que o player sai do tile ata mais esse tbm era bom assim player não ia se move ate passa 30s , brun123 posto outro ver ai veio Tem que colocar as tags de stepin/stepout fica em data\movements\movements.xml Editado Setembro 19, 2012 por notle2012 Link para o comentário https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/#findComment-1342277 Compartilhar em outros sites More sharing options...
Pergunta
MonsterOt 1
teria como fazer se o player sair do tile antes de ser teleportado o tempo pare de contar, e se ele entrar de volta no tile comece a contar do 0.
Tem como fazer isso?
Link para o comentário
https://xtibia.com/forum/topic/194415-tem-como-adicionar-isso-nesse-script/Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados