Ir para conteúdo
  • Cadastre-se

(Resolvido)onStepOut Movements


Ir para solução Resolvido por Diiego Liima,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

BBaiak barão

Qual o motivo deste tópico? 

Erro Tile Recuperar staminia

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

[02/08/2022 18:59:59] [Error - MoveEvents Interface] 
[02/08/2022 18:59:59] data/movements/scripts/2022/tile_stamina.lua:onStepOut
[02/08/2022 18:59:59] Description: 
[02/08/2022 18:59:59] data/movements/scripts/2022/tile_stamina.lua:27: attempt to perform arithmetic on field 'time' (a function value)
[02/08/2022 18:59:59] stack traceback:
[02/08/2022 18:59:59]     data/movements/scripts/2022/tile_stamina.lua:27: in function <data/movements/scripts/2022/tile_stamina.lua:24>
[02/08/2022 18:59:59]     [C]: in function 'doTeleportThing'
[02/08/2022 18:59:59]     data/movements/scripts/2022/tile_stamina.lua:19: in function <data/movements/scripts/2022/tile_stamina.lua:12>

 

Você tem o código disponível? Se tiver publique-o aqui: 

 -------------- Config by PedroSTT ----------
local storage = 6452
local time = 1 -- quantos minutos para pisar no tile e restaurar novamente


---------- Script by: Adriano Swatt --------
local maxstamina = 2520  -- quantidade máxima de Stamina (Não sei se é este valor mesmo)
local qtdd = 1 -- quantidade de Stamina é adicionada
local tempo = 270 -- em segundos para cada regeneração
local tileid, action = 1284, 12129 -- ID do Piso de Stamina, ActionID usada no Piso
----------- FIM DAS CONFIGURAÇÕES -----------
function onStepIn(cid, item, position, fromPosition)
local getpos = getPlayerPosition(cid)
local tilepos = getTileItemById(getpos, tileid).actionid
local getsta = getPlayerStamina(cid)
    if getsta < maxstamina and isPlayer(cid) then
        addEvent(GetStamina, 100, cid)
    else
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "Sua stamina ja esta cheia.")
    end
return true
end
function onStepOut(cid, item, position, fromPosition)
local dura = time * 60000
    stopEvent(GetStamina)
    setPlayerStorageValue(cid, storage+ os.time+ dura, 1)
return true
end
function GetStamina(cid)
local getpos = getPlayerPosition(cid)
local dura = time * 60000 
local tilepos = getTileItemById(getpos, tileid).actionid
local getsta = getPlayerStamina(cid)
    if tilepos == action then    
        if getsta < maxstamina and isPlayer(cid) then
         if getPlayerStorageValue(cid, storage) == -1 then
            doPlayerSendCancel(cid, "Sua stamina esta subindo.")
            setPlayerStamina(cid, getsta + qtdd)
            addEvent(GetStamina, tempo * 1000, cid)
         else
         doTeleportThing(cid, fromPosition)
         doPlayerSendCancel(cid, "aguarde")
         end
        else
            doTeleportThing(cid, fromPosition)
            doPlayerSendCancel(cid, "Sua stamina ja esta cheia.")
        end
    end
return true
end

 

Sempre quando entra no tile e sai ele da esse erro. Porem agora criando esse Típico ele apresentou outro erro tbm.

 

Citar

[02/08/2022 19:02:40] [Error - MoveEvents Interface] 
[02/08/2022 19:02:40] In a timer event called from: 
[02/08/2022 19:02:40] data/movements/scripts/2022/tile_stamina.lua:onStepIn
[02/08/2022 19:02:40] Description: 
[02/08/2022 19:02:40] (luaGetThingPosition) Thing not found

 

[02/08/2022 19:02:40] [Error - MoveEvents Interface] 
[02/08/2022 19:02:40] In a timer event called from: 
[02/08/2022 19:02:40] data/movements/scripts/2022/tile_stamina.lua:onStepIn
[02/08/2022 19:02:40] Description: 
[02/08/2022 19:02:40] (internalGetPlayerInfo) Player not found when requesting player info #23

 

Link para o post
Compartilhar em outros sites
11 horas atrás, Fiapets disse:

.Qual servidor ou website você utiliza como base? 

BBaiak barão

Qual o motivo deste tópico? 

Erro Tile Recuperar staminia

Está surgindo algum erro? Se sim coloque-o aqui. 

 

Você tem o código disponível? Se tiver publique-o aqui: 


 -------------- Config by PedroSTT ----------
local storage = 6452
local time = 1 -- quantos minutos para pisar no tile e restaurar novamente


---------- Script by: Adriano Swatt --------
local maxstamina = 2520  -- quantidade máxima de Stamina (Não sei se é este valor mesmo)
local qtdd = 1 -- quantidade de Stamina é adicionada
local tempo = 270 -- em segundos para cada regeneração
local tileid, action = 1284, 12129 -- ID do Piso de Stamina, ActionID usada no Piso
----------- FIM DAS CONFIGURAÇÕES -----------
function onStepIn(cid, item, position, fromPosition)
local getpos = getPlayerPosition(cid)
local tilepos = getTileItemById(getpos, tileid).actionid
local getsta = getPlayerStamina(cid)
    if getsta < maxstamina and isPlayer(cid) then
        addEvent(GetStamina, 100, cid)
    else
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "Sua stamina ja esta cheia.")
    end
return true
end
function onStepOut(cid, item, position, fromPosition)
local dura = time * 60000
    stopEvent(GetStamina)
    setPlayerStorageValue(cid, storage+ os.time+ dura, 1)
return true
end
function GetStamina(cid)
local getpos = getPlayerPosition(cid)
local dura = time * 60000 
local tilepos = getTileItemById(getpos, tileid).actionid
local getsta = getPlayerStamina(cid)
    if tilepos == action then    
        if getsta < maxstamina and isPlayer(cid) then
         if getPlayerStorageValue(cid, storage) == -1 then
            doPlayerSendCancel(cid, "Sua stamina esta subindo.")
            setPlayerStamina(cid, getsta + qtdd)
            addEvent(GetStamina, tempo * 1000, cid)
         else
         doTeleportThing(cid, fromPosition)
         doPlayerSendCancel(cid, "aguarde")
         end
        else
            doTeleportThing(cid, fromPosition)
            doPlayerSendCancel(cid, "Sua stamina ja esta cheia.")
        end
    end
return true
end

 

Sempre quando entra no tile e sai ele da esse erro. Porem agora criando esse Típico ele apresentou outro erro tbm.

 

 

-- Stamine Trainer
	-- <movevent type="StepIn" actionid="22120" event="script" value="stamine_trainer.lua"/>
	-- <movevent type="StepOut" actionid="22120" event="script" value="stamine_trainer.lua"/>


STAMINA_MESSAGE = "Você ganhou 1 minutos de Stamina."
STAMINA_TIME = 60 * 2000
STAMINA_EFFECT = 12
STAMINA_ADD = 1

function event(cid)
    if isPlayer(cid) then
        doPlayerAddStamina(cid, STAMINA_ADD)       
        doPlayerSendTextMessage(cid, 27, STAMINA_MESSAGE)
        eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
end

function onStepIn(cid, item, position, fromPosition, pos)
    if isPlayer(cid) then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bem-vindo a área de treino, você receberá 1 de stamina a cada 2 minutos.")
    eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
    return true
end

function onStepOut(cid, item, position, fromPosition)
    if isPlayer(cid) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você parou de treinar, agora não está mais regenerando Stamina.")
        stopEvent(eventCheck)
    end
    return true
end

 

Link para o post
Compartilhar em outros sites
5 horas atrás, Diiego Liima disse:

-- Stamine Trainer
	-- <movevent type="StepIn" actionid="22120" event="script" value="stamine_trainer.lua"/>
	-- <movevent type="StepOut" actionid="22120" event="script" value="stamine_trainer.lua"/>


STAMINA_MESSAGE = "Você ganhou 1 minutos de Stamina."
STAMINA_TIME = 60 * 2000
STAMINA_EFFECT = 12
STAMINA_ADD = 1

function event(cid)
    if isPlayer(cid) then
        doPlayerAddStamina(cid, STAMINA_ADD)       
        doPlayerSendTextMessage(cid, 27, STAMINA_MESSAGE)
        eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
end

function onStepIn(cid, item, position, fromPosition, pos)
    if isPlayer(cid) then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bem-vindo a área de treino, você receberá 1 de stamina a cada 2 minutos.")
    eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
    return true
end

function onStepOut(cid, item, position, fromPosition)
    if isPlayer(cid) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você parou de treinar, agora não está mais regenerando Stamina.")
        stopEvent(eventCheck)
    end
    return true
end

 

 

Amigo funcionou 100%, mais teria como coloca para ter um tempo para a pessoa poder acessar de novo essa area...

Link para o post
Compartilhar em outros sites

@Fiapets Vê se é isso, não testei

-- Stamine Trainer
	-- <movevent type="StepIn" actionid="22120" event="script" value="stamine_trainer.lua"/>
	-- <movevent type="StepOut" actionid="22120" event="script" value="stamine_trainer.lua"/>


  STAMINA_MESSAGE = "Você ganhou 1 minutos de Stamina."
  STAMINA_TIME = 60 * 2000
  STAMINA_EFFECT = 12
  STAMINA_ADD = 1

  ACCESS_AREA_STORAGE = 154578
  ACCESS_AREA_TIME = 1 -- Tempo definido em minutos
  ACCESS_AREA_DENIED_MESSAGE = "Você tem que esperar " ..ACCESS_AREA_TIME.. " minuto(s) para começar acessar a area de treino novamente."
  
  function event(cid)
      if isPlayer(cid) then
          doPlayerAddStamina(cid, STAMINA_ADD)       
          doPlayerSendTextMessage(cid, 27, STAMINA_MESSAGE)
          eventCheck = addEvent(event, STAMINA_TIME, cid)
      end
  end
  
  function onStepIn(cid, item, position, fromPosition, pos)
      if isPlayer(cid) then

        if (getPlayerStorageValue(cid, ACCESS_AREA_STORAGE) > os.time()) then
          doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ACCESS_AREA_DENIED_MESSAGE)
          doTeleportThing(cid, fromPosition)
          return false;
        end

        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bem-vindo a área de treino, você receberá 1 de stamina a cada 2 minutos.")
        eventCheck = addEvent(event, STAMINA_TIME, cid)
      end
      return true
  end
  
  function onStepOut(cid, item, position, fromPosition)
      if isPlayer(cid) then
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você parou de treinar, agora não está mais regenerando Stamina.")
        stopEvent(eventCheck)
        setPlayerStorageValue(cid, ACCESS_AREA_STORAGE, os.time() + (ACCESS_AREA_TIME * 60))
      end
      return true
  end

 

Editado por MatteusDeli (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
12 horas atrás, Fiapets disse:

 

Amigo funcionou 100%, mais teria como coloca para ter um tempo para a pessoa poder acessar de novo essa area...

local storage = 18481 -- storage que salva a ultima vez que o player entrou (pra evitar spams)

STAMINA_MESSAGE = "Você ganhou 1 minutos de Stamina."
STAMINA_TIME = 60 * 2000
STAMINA_EFFECT = 12
STAMINA_ADD = 1

function event(cid)
    if isPlayer(cid) then
        doPlayerAddStamina(cid, STAMINA_ADD)       
        doPlayerSendTextMessage(cid, 27, STAMINA_MESSAGE)
        eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
end

function onStepIn(cid, item, position, fromPosition, pos)
    if isPlayer(cid) then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bem-vindo a área de treino, você receberá 1 de stamina a cada 2 minutos.")
    eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
    return true
end

function onStepOut(cid, item, position, fromPosition)
    if isPlayer(cid) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você parou de treinar, agora não está mais regenerando Stamina.")
        stopEvent(eventCheck)
    end
    return true
end

function onStepIn(cid, item, pos, lastPos, fromPos, toPos, actor)
	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		fazQualquerCoisa(cid, position)
	else
		doTeleportThing(cid, fromPos)
		doPlayerSendCancel(cid, "You gotta wait a few seconds before you can enter trainning room again")
	end
return true
end

 

Link para o post
Compartilhar em outros sites
Em 03/08/2022 em 23:39, Diiego Liima disse:

local storage = 18481 -- storage que salva a ultima vez que o player entrou (pra evitar spams)

STAMINA_MESSAGE = "Você ganhou 1 minutos de Stamina."
STAMINA_TIME = 60 * 2000
STAMINA_EFFECT = 12
STAMINA_ADD = 1

function event(cid)
    if isPlayer(cid) then
        doPlayerAddStamina(cid, STAMINA_ADD)       
        doPlayerSendTextMessage(cid, 27, STAMINA_MESSAGE)
        eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
end

function onStepIn(cid, item, position, fromPosition, pos)
    if isPlayer(cid) then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bem-vindo a área de treino, você receberá 1 de stamina a cada 2 minutos.")
    eventCheck = addEvent(event, STAMINA_TIME, cid)
    end
    return true
end

function onStepOut(cid, item, position, fromPosition)
    if isPlayer(cid) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você parou de treinar, agora não está mais regenerando Stamina.")
        stopEvent(eventCheck)
    end
    return true
end

function onStepIn(cid, item, pos, lastPos, fromPos, toPos, actor)
	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		fazQualquerCoisa(cid, position)
	else
		doTeleportThing(cid, fromPos)
		doPlayerSendCancel(cid, "You gotta wait a few seconds before you can enter trainning room again")
	end
return true
end

 

 

Esse deu certo, OBG

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo