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
7 minutos atrás, 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

 

 

Link para o post
Compartilhar em outros sites
Agora, subhe disse:

@Joaovettor Obrigado mano, fico no aguardo <3

 

 

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
4 minutos atrás, 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

 

Não foi testado ainda.

 

Spoiler

-- Script by LekoDS // Editado por ~Mathias Kenfi
local configuration = {
	storage = 263696,
	loltime = 2 * 1000,
	stamina = 60,
	interval = 60, -- intervalo de tempo de cura
}


function addStaminaInPos(cid, stamina, pos, time)
	if isInArea(getCreaturePos(cid), pos.x, pos.y) then
		if getPlayerStorageValue(cid, configuration.storage) <= 1 then
			setPlayerStorageValue(cid,configuration.storage,1)
			doPlayerSendTextMessage(cid, 22, "Você recuperou um pouco de stamina")
		end
		doPlayerAddStamina(cid, stamina)
		event = addEvent(valid(addStaminaInPos), time*1000, cid, stamina, pos)
	else
		setPlayerStorageValue(cid,configuration.storage,0)
		event = false
	end
	return event
end

function onStepIn(cid, item, position, fromPosition)
	if not(isPlayer(cid)) then
		return false
	end
	addStaminaInPos(cid, configuration.stamina, position, configuration.interval)
end

function onStepOut(cid, item, position, fromPosition)
	return doPlayerSendTextMessage(cid, 22, "Você não está mais regenerando stamina.")
end

 

 

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

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