Ir para conteúdo
  • Cadastre-se

(Resolvido)Erro stamina system


Ir para solução Resolvido por ikaroangelo21,

Posts Recomendados

Boa noite :)

então, eu tava procurando esse script, e todos que eu testava dava algum erro, e achei esse script do jeito que eu queria.. 

porem está dando um erro no script quando eu piso no tile, ai não tá adicionando a stamina :/

alguem pode me ajudar ?

Uso Tfs 0.4  8.60

 

Erro

[1:15:44.787] [Error - MoveEvents Interface]
[1:15:44.789] data/movements/scripts/treinertile.lua:onStepIn
[1:15:44.790] Description:
[1:15:44.791] (luaAddEvent) Callback parameter should be a function.

 

Script 

-- Script by LekoDS
local configuration = {
storage = 263696, -- storage
loltime = 2 * 1000, -- tempo
stamina = 60, -- minutos ganhos de Stamina
}

function onStepIn(cid, item, position, fromPosition)
	if (isPlayer(cid)) == false then
		elseif getPlayerStorageValue(cid, configuration.storage) >= 0 then
		doPlayerSendTextMessage(cid, 27, "You entered an area of regeneration of Stamina. In 10 seconds you regenerate 60 minutes of Stamina.")
		addEvent(doPlayerAddExp, configuration.time, cid, 10)
		addEvent(doSendMagicEffect, configuration.time, getThingPos(cid),21)
		return false
		
		elseif getPlayerStorageValue(cid, configuration.storage) == -1 then
		doPlayerSendTextMessage(cid, 27, "You entered an area of regeneration of Stamina. In 10 seconds you regenerate 60 minutes of Stamina.")
		setPlayerStorageValue(cid,configuration.storage,0)
		stam = addEvent(doPlayerAddStamina, configuration.time, cid, configuration.stamina)
		effect = addEvent(doSendMagicEffect, configuration.time, getThingPos(cid),12)
		return false
	end
end

function onStepOut(cid, item, position, fromPosition)
	doPlayerSendTextMessage(cid, 27, "You failed to regenerate stamina.")
	setPlayerStorageValue(cid,configuration.storage,-1)
	stopEvent(stam)
	stopEvent(effect)
end

 

Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites
  Em 28/03/2020 em 04:24, subhe disse:

Boa noite :)

então, eu tava procurando esse script, e todos que eu testava dava algum erro, e achei esse script do jeito que eu queria.. 

porem está dando um erro no script quando eu piso no tile, ai não tá adicionando a stamina :/

alguem pode me ajudar ?

Uso Tfs 0.4  8.60

 

Erro

[1:15:44.787] [Error - MoveEvents Interface]
[1:15:44.789] data/movements/scripts/treinertile.lua:onStepIn
[1:15:44.790] Description:
[1:15:44.791] (luaAddEvent) Callback parameter should be a function.

 

Script 

-- Script by LekoDS
local configuration = {
storage = 263696, -- storage
loltime = 2 * 1000, -- tempo
stamina = 60, -- minutos ganhos de Stamina
}

function onStepIn(cid, item, position, fromPosition)
	if (isPlayer(cid)) == false then
		elseif getPlayerStorageValue(cid, configuration.storage) >= 0 then
		doPlayerSendTextMessage(cid, 27, "You entered an area of regeneration of Stamina. In 10 seconds you regenerate 60 minutes of Stamina.")
		addEvent(doPlayerAddExp, configuration.time, cid, 10)
		addEvent(doSendMagicEffect, configuration.time, getThingPos(cid),21)
		return false
		
		elseif getPlayerStorageValue(cid, configuration.storage) == -1 then
		doPlayerSendTextMessage(cid, 27, "You entered an area of regeneration of Stamina. In 10 seconds you regenerate 60 minutes of Stamina.")
		setPlayerStorageValue(cid,configuration.storage,0)
		stam = addEvent(doPlayerAddStamina, configuration.time, cid, configuration.stamina)
		effect = addEvent(doSendMagicEffect, configuration.time, getThingPos(cid),12)
		return false
	end
end

function onStepOut(cid, item, position, fromPosition)
	doPlayerSendTextMessage(cid, 27, "You failed to regenerate stamina.")
	setPlayerStorageValue(cid,configuration.storage,-1)
	stopEvent(stam)
	stopEvent(effect)
end

Essa script parece meio confusa, vou tentar fazer uma nova pra você aqui

 

Mostrar mais  

 

Link para o post
Compartilhar em outros sites
  Em 28/03/2020 em 04:34, subhe disse:

@Joaovettor Obrigado mano, fico no aguardo <3

 

 

Mostrar mais  

Uma dúvida, você quer que adicione stamina a cada segundo, ou que depois de alguns segundos a pessoa receba a stamina?

Link para o post
Compartilhar em outros sites

@Joaovettor então, eu queria que a cada 2 minutos parado em cima do tile treinando.. ele ganhasse 1 minuto de stamina

completando os 2 minutos ele ja ganhasse 1 minuto de stamina

n35408.gif

Link para o post
Compartilhar em outros sites
  Em 28/03/2020 em 04:38, subhe disse:

@Joaovettor então, eu queria que a cada 2 minutos parado em cima do tile treinando.. ele ganhasse 1 minuto de stamina

completando os 2 minutos ele ja ganhasse 1 minuto de stamina

 

Expand   Mostrar mais  

Não foi testado ainda.

 

  Mostrar conteúdo oculto

 

Link para o post
Compartilhar em outros sites

@Joaovettor vou testar aqui, jaja edito

@Joaovettor da esse erro ao pisar no tile

[1:46:16.413] [Error - MoveEvents Interface]
[1:46:16.416] data/movements/scripts/treinertile.lua:onStepIn
[1:46:16.417] Description:
[1:46:16.418] data/lib/032-position.lua:2: attempt to index local 'fromPosition' (a number value)
[1:46:16.418] stack traceback:
[1:46:16.418]   data/lib/032-position.lua:2: in function 'isInArea'
[1:46:16.419]   data/movements/scripts/treinertile.lua:11: in function 'addStaminaInPos'
[1:46:16.420]   data/movements/scripts/treinertile.lua:29: in function <data/movements/scripts/treinertile.lua:25>

 

n35408.gif

Link para o post
Compartilhar em outros sites
  • Solução
eventsId = {}

local function rechargeStamina(cid)
if not isPlayer(cid) then
	eventsId[cid] = nil
	return
end

    doPlayerAddStamina(cid, 1)
    eventsId[cid] = addEvent(rechargeStamina, 3 * 60 * 1000, cid)
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if isPlayer(cid) then
        eventsId[cid] = addEvent(rechargeStamina, 3 * 60 * 1000, cid)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bem vindo aos trainers VIP's " .. getCreatureName(cid) .."! Você receberá 1 minuto de stamina a cada 3 minutos nos trainers VIP's.")
    end

    return true
end

function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if isPlayer(cid) then
        stopEvent(eventsId[cid])
        eventsId[cid] = nil
    end

    return true
end

Onde tem 1 = ganho de stamina.

Onde tem 3 = o tempo para ganhar 1 minuto.

Somente modificar, testado em otx 8.60.

Editado por ikaroangelo21 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@ikaroangelo21 Tinha dado um erro, mas só foi mudar uma linha, que funcionou, obrigado aos dois <3

 

REP+ aos dois que me ajudaram <3 

n35408.gif

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo