Ir para conteúdo
  • Cadastre-se

(Resolvido)script quando o tempo da storage terminar player é teleportado


Ir para solução Resolvido por Wakon,

Posts Recomendados

bom gente primeiramente se estou no lugar errado agradeço se me colocarem no lugar certo

 

gente eu criei um script onde o player ganha uma storage com um certo tempo

como eu faço para quando o tempo dessa storage acabar o player é teleportado para o templo? 

 

por exemplo tenho o script:

 

local minutos = 10

function....

time = minutos*60

tempo = os.time + time

setPlayerStorageValue(cid, 11111111, tempo)

return true

end

 

nesse script ta falando que vai adicionar a storage 1111.... e o tempo dela é de 10 minutos, fiz esse script só pra ter como exemplo, como eu faço pra quando o tempo dessa storage for < 1 o player é teleportado? eu ja fiz por addevent por creature script com função login mas precisa de uma que quando o tempo acabar o player é teleportado

Link para o post
Compartilhar em outros sites

MMHUCMQ.png  Esta é uma mensagem automática, este tópico foi movido para a área correta.
  Regras do fórum: http://www.tibiaking.com/forum/topic/1281-regras-gerais/#comment-7680

Este tópico foi movido:
De: Scripting OTServ > OTServ > Geral
Para: Suporte OTServ > OTServ > Suporte de Scripts

Link para o post
Compartilhar em outros sites

To uma bosta em script, mas creio q ta certo, olha ai:

 

Fiz usando action:

 

Spoiler

function onUse(cid, item)
local tempo = 10 * 1000
time = os.time() + tempo
local stor = 1111
local town = getPlayerTown(cid)
local pos = getTownTemplePosition(town)

if getPlayerStorageValue(cid, stor) <= 0 then
	setPlayerStorageValue(cid, stor, time)
end

if getPlayerStorageValue(cid, stor) < time then
	doTeleportThing(cid, pos)
end
	return true
end

 

 

Cara, não testei essa action, e tipo, pelo o que eu to entendendo do que eu mesmo fiz, esse script vai ficar num loop de teleportart o player pro templo, pq tipo, se a storage está com valor 0, ele seta pra 10 minutos, ai quando acaba, teleporta o player pro templo, e seta de novo a storage com 10 minutos '-'

 

Se servir como base pra algo, fico feliz ^^

Link para o post
Compartilhar em outros sites

@Sekk ta mal em..

Utilize globalevents algo assim para dar tp no player

 

local k = {
	storage = 1111
}

function onThink(interval, lastExecution, thinkInterval)
	if getPlayerStorageValue(cid, k.storage) < os.time() and isPlayerPzLocked(cid) == true then
		return false
	else
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
		return true
	end
end

PS: Só vai dar tp se não tiver pz locked, assim não tem maneiras de bugar.

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

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

Use um globalevents como o vankk disse, porém utilize esse script:

local storage = XXXX -- Storage desejada.

function onThink(interval, lastExecution)
    for _, pid in ipairs(getPlayersOnline()) do
        local stor = getPlayerStorageValue(pid, storage)
        if (stor < os.time()) and stor > 0 then
            doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
            doSendMagicEffect(getPlayerPosition(pid), CONST_ME_TELEPORT)
            doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Seu tempo acabou.')
            setPlayerStorageValue(pid, storage, 0)
        end
    end
   return true
end

A tag é essa:

<globalevent name="checkTeleport" interval="1" event="script" value="checkTeleport.lua"/>

Não esqueça de alterar o nome do script em value! E talvez seja necessário alterar o interval para 1000, caso seu OT seja em MS.

Ser der algum problema, avise.

Link para o post
Compartilhar em outros sites
10 horas atrás, Sekk disse:

To uma bosta em script, mas creio q ta certo, olha ai:

 

Fiz usando action:

 

  Ocultar conteúdo



function onUse(cid, item)
local tempo = 10 * 1000
time = os.time() + tempo
local stor = 1111
local town = getPlayerTown(cid)
local pos = getTownTemplePosition(town)

if getPlayerStorageValue(cid, stor) <= 0 then
	setPlayerStorageValue(cid, stor, time)
end

if getPlayerStorageValue(cid, stor) < time then
	doTeleportThing(cid, pos)
end
	return true
end

 

 

Cara, não testei essa action, e tipo, pelo o que eu to entendendo do que eu mesmo fiz, esse script vai ficar num loop de teleportart o player pro templo, pq tipo, se a storage está com valor 0, ele seta pra 10 minutos, ai quando acaba, teleporta o player pro templo, e seta de novo a storage com 10 minutos '-'

 

Se servir como base pra algo, fico feliz ^^

cara então pelo que eu vi sim o seu script funciona não testei mas acho que funciona,. mas vou explicar uma coisa pra vc ai no caso é se eu clicar no item né... então quando eu clicar vai adicionar a storage ele n vai ersperar o tempo passar pra tp ele só vai tp se eu esperar o tempo acabar e clicar de novo no item, tendeu? mas cara vlw por tentar ajudar rsrs ta ai o meu gostei xD

6 horas atrás, Wakon disse:

Use um globalevents como o vankk disse, porém utilize esse script:


local storage = XXXX -- Storage desejada.

function onThink(interval, lastExecution)
    for _, pid in ipairs(getPlayersOnline()) do
        local stor = getPlayerStorageValue(pid, storage)
        if (stor < os.time()) and stor > 0 then
            doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
            doSendMagicEffect(getPlayerPosition(pid), CONST_ME_TELEPORT)
            doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Seu tempo acabou.')
            setPlayerStorageValue(pid, storage, 0)
        end
    end
   return true
end

A tag é essa:


<globalevent name="checkTeleport" interval="1" event="script" value="checkTeleport.lua"/>

Não esqueça de alterar o nome do script em value! E talvez seja necessário alterar o interval para 1000, caso seu OT seja em MS.

Ser der algum problema, avise.

putz não pensei em globalevents kkk vlw por me lembrar que existe kkkk em fim vlwzão por deixar o script pronto mas n precisava, vou marcar melhor resposta <3

6 horas atrás, vankk disse:

@Sekk ta mal em..

Utilize globalevents algo assim para dar tp no player

 


local k = {
	storage = 1111
}

function onThink(interval, lastExecution, thinkInterval)
	if getPlayerStorageValue(cid, k.storage) < os.time() and isPlayerPzLocked(cid) == true then
		return false
	else
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
		return true
	end
end

PS: Só vai dar tp se não tiver pz locked, assim não tem maneiras de bugar.

cara vlw msm vc tb rsrs pelo q eu vi é funcional xD eu n lembrei msm do globalevents fiz por tudo movements um script q acopla o outro depois fiz por creature action kkk mas n lembrava do globalevents vlw msm eu rsrs

Link para o post
Compartilhar em outros sites

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.

  • Conteúdo Similar

    • Por ILex WilL
      Olá, Alguém poderia me ajudar com uns Scripts? nem que seja cobrando, dependendo eu pago para me ajudar...
    • Por Kill of sumoners
      Boa noite, estou com um erro ao atacar um player em meu sv eu nao pego pk, nem sai magia, aparece a mensagem "voce so pode usar isso em criaturas"
      obs: magia em area acerta e pega pk, apenas as targets ou hits de arma nao vao 
    • Por Jpminatel
      Estou com os seguintes erros ; e procuro quem poça ajudar ai a eliminar esses 3 erros , erro 1 e 2 acontece qnd um pokemon usa ps   e o erro 3 é nas potions 
      [Error - TalkAction Interface] 
      [30/01/2022 17:04:25] data/talkactions/scripts/move1.lua:onSay
      [30/01/2022 17:04:25] Description: 
      [30/01/2022 17:04:25] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
      [30/01/2022 17:04:25] stack traceback:
      [30/01/2022 17:04:25]     data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
      Erro 2 ;
      [30/01/2022 18:08:53] [Error - Spell Interface] 
      [30/01/2022 18:08:53] In a timer event called from: 
      [30/01/2022 18:08:53] data/spells/scripts/ps/Earthquake.lua:onCastSpell
      [30/01/2022 18:08:53] Description: 
      [30/01/2022 18:08:53] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
      [30/01/2022 18:08:53] stack traceback:
      [30/01/2022 18:08:53]     data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
      [30/01/2022 18:08:53]     data/lib/newStatusSyst.lua:844: in function 'doMoveInArea2'
      [30/01/2022 18:08:53]     data/lib/pokemon moves.lua:1355: in function <data/lib/pokemon moves.lua:1351>
      [30/01/2022 18:08:54] [Error - Spell Interface] 
      [30/01/2022 18:08:54] In a timer event called from: 
      [30/01/2022 18:08:54] data/spells/scripts/ps/Earthquake.lua:onCastSpell
      [30/01/2022 18:08:54] Description: 
      [30/01/2022 18:08:54] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
      [30/01/2022 18:08:54] stack traceback:
      [30/01/2022 18:08:54]     data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
      [30/01/2022 18:08:54]     data/lib/newStatusSyst.lua:844: in function 'doMoveInArea2'
      [30/01/2022 18:08:54]     data/lib/pokemon moves.lua:1355: in function <data/lib/pokemon moves.lua:1351>
      [30/01/2022 18:18:20] [Error - TalkAction Interface] 
      [30/01/2022 18:18:20] data/talkactions/scripts/move1.lua:onSay
      [30/01/2022 18:18:20] Description: 
      [30/01/2022 18:18:20] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
      [30/01/2022 18:18:20] stack traceback:
      [30/01/2022 18:18:20]     data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
      [30/01/2022 18:18:20]     data/lib/newStatusSyst.lua:1119: in function 'doMoveInAreaMulti'
      [30/01/2022 18:18:20]     data/lib/pokemon moves.lua:458: in function 'docastspell'
      [30/01/2022 18:18:20]     data/talkactions/scripts/move1.lua:173: in function <data/talkactions/scripts/move1.lua:20>
      Erro 3 ; 
      erro potion 
      [30/01/2022 18:48:35] [Error - Action Interface] 
      [30/01/2022 18:48:35] data/actions/scripts/potion.lua:onUse
      [30/01/2022 18:48:35] Description: 
      [30/01/2022 18:48:35] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
      [30/01/2022 18:48:35] stack traceback:
      [30/01/2022 18:48:35]     data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
      [30/01/2022 18:48:35]     data/actions/scripts/potion.lua:45: in function <data/actions/scripts/potion.lua:43>
      [30/01/2022 18:48:39] [Error - Action Interface] 
      [30/01/2022 18:48:39] data/actions/scripts/potion.lua:onUse
      [30/01/2022 18:48:39] Description: 
      [30/01/2022 18:48:39] data/lib/some functions.lua:338: attempt to call global 'hasTile' (a nil value)
      [30/01/2022 18:48:39] stack traceback:
      [30/01/2022 18:48:39]     data/lib/some functions.lua:338: in function 'getThingFromPosWithProtect'
      [30/01/2022 18:48:39]     data/actions/scripts/potion.lua:45: in function <data/actions/scripts/potion.lua:43>
       
    • Por Barca Furada
      Boa noite meus caros colegas!
      Preciso de um Help!
       
       
      Quando eu coloco meu itens editados no meu xml e otb, acontece isso com os teleportes, perde todas as propriedades:
       
      No lado direito é sem meu Itemxml
      No lado Esquerdo é com meu Itemxml
       
      Como vcs pode vem ele perde a propriedade de destino!
       
      O arquivo Check File Signatures está desativados!
       
      Quando eu entro no REM com meu Itemxml, ele da essas mensagem de erro:
       
       
       
      Antes de fazer tudo isso eu No item editor, todos itens estava com essa borda vermelha, eu tinha dado reload em todos itens para o cliente OTCv8 conseguir visualizar, no primeiro momento achei que era isso que tinha acontecido para bugar meus teleportes, então eu dei reload em todos itens um por um e deixei o teleport sem dar reload, para ver se era esses o bug! e deu na mesma , quando edito o mapa para colocar novas hunt e cidade ele buga todos teleportes!
       
       
       
       
      No itemxml o teleport está com mesmo id!
       
      alguma alma bondosa para ajudar um colega?
    • Por mishell147
      Então Pessoal o meu site ele da esse error  do video, quando clico em creater character mais se eu clicar no endereço da URL e apertar enter aí me redireciona para página, mais se eu atualizar com F5 não redireciona, E na Database tem certinho os char samples, e tanto que cria normalmente eles.
      20210303_213835.mp4
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo