Ir para conteúdo
  • 0

Tempo Nesse Script


MonsterOt

Pergunta

Tem como botar o tempo 3 minutos e 15 segundos?

 

local time = 3 -- tempo em minutos para o player ser expulso

local newpos = {x=125,y=47,z=7} -- local para onde o player será teleportado

 

function onStepIn(cid, item, position, fromPosition)

addEvent(function()

doTeleportThing(cid, newpos)

doSendMagicEffect(newpos, 10)

end, time*60*1000)

return true

end

 

Script by : Leoxtibia

Editado por MonsterOt
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

ali no segundos so você por 105 seg

 

local newpos = {x=125,y=47,z=7} -- local para onde o player será teleportado
local config = {
s = 11548, -- n mexa
exhau = 30 -- quantos segundos
}

function onStepIn(cid, item, position, fromPosition)
if (getPlayerStorageValue(cid, config.s) <= os.time()) then
setPlayerStorageValue(cid,config.s,os.time()+config.exhau)
addEvent(function()
doTeleportThing(cid, newpos)
doSendMagicEffect(newpos, 10)
end, time*60*1000)
return true
end
end

Link para o comentário
Compartilhar em outros sites

  • 0

só mudar:

 

local time = 3

 

para

 

local time = 3.25

 

SkyLigh, sua script vai dar um erro porque você deletou a declaração da variável "time" e usou ela no addEvent, vai dar erros.

Ele não quer exaust, ele quer mudar o tempo que leva pro player ser teletransportado (com fins de ser removido de algum lugar).

 

O seu script pode causar erros indesejados no console do server, caso o player morra ou dê logout antes do tempo ter passado. Pode ser usadado abusivamente também, caso o player fique pisando várias e várias vezes no mesmo tile onde a ação é executada, você vai criar uma série de addEvents que estão programados para ocorrer, aí se o player logar, todos esses addEvents vão dar erro e vai chover erro no server, pode até travar o servidor por algum tempo. Se vários players fizerem isso ao mesmo tempo, é capaz de criar um freeze tão grande que todos os players do server serão kickados ou pior, o server dá crash, meio improvável mas pode acontecer...

 

Pra evitar abusos/erros, basta utilizar essa script corrigida:

 

local time = 3.25 -- tempo em minutos para o player ser expulso
local newpos = {x=125,y=47,z=7} -- local para onde o player será teleportado
local events = {} -- não modifique

local function doKickPlayer(cid)
   if not isCreature(cid) then
    events[cid] = nil
    return
   end
   doTeleportThing(cid, newpos, false)
   doSendMagicEffect(newpos, 10)
end

function onStepIn(cid, item, position, fromPosition)
if events[cid] then stopEvent(events[cid]) end
events[cid] = addEvent(doKickPlayer, time * 60 * 1000, cid)
return true
end

Editado por brun123
Link para o comentário
Compartilhar em outros sites

  • 0

Teria como fazer por segundos esse?

 

 

local time = 3.25 -- bota aki só os segundos

local newpos = {x=125,y=47,z=7} -- local para onde o player será teleportado

local events = {} -- não modifique

 

local function doKickPlayer(cid)

if not isCreature(cid) then

events[cid] = nil

return

end

doTeleportThing(cid, newpos, false)

doSendMagicEffect(newpos, 10)

end

 

function onStepIn(cid, item, position, fromPosition)

if events[cid] then stopEvent(events[cid]) end

events[cid] = addEvent(doKickPlayer, time * 60 * 1000, cid)

return true

end

Editado por MonsterOt
Link para o comentário
Compartilhar em outros sites

  • 0

aprendeu matemática na escola não?

 

só fazer:

 

local time = (segundos) / 60

 

bem simples não?

 

se insiste tanto em ser por segundos, só remover lá embaixo, na função addEvent, esse trecho do tempo:

 

* 60

 

que o time passa a contar como segundos, ou então você divide o próprio time por 60 como acabei de mostrar acima.

dá tudo na mesma, matemática é bonito assim mesmo, não precisa falar :)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...