Ir para conteúdo

Featured Replies

Postado
  • Autor
eventsId = {}

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

    doPlayerSetStamina(cid, getPlayerStamina(cid) + 1)

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

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if isPlayer(cid) then
        eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid)
    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

Agora ele só adicionará a cada minuto.

 

Ok, agora está tudo funcionando certo!

Só uma dúvida, vai adicionar a stamina a cada um minuto a partir do momento que ele pisa no tile certo? quando ele pisar vai começar a contagem no caso.

Obrigado pela ajuda de todos!!

Att,
Grafit.

  • Respostas 14
  • Visualizações 3.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • eventsId = {} local function rechargeStamina(cid)     if not isPlayer(cid) then         eventsId[cid] = nil         return     end     doPlayerSetStamina(cid, getPlayerStamina(cid) + 1)     eventsI

  • Adriano SwaTT
    Adriano SwaTT

    Teste este: Registre em movements.xml as tags abaixo: <movevent type="StepIn" actionid="12129" event="script" value="tile_stamina.lua"/>     <movevent type="StepOut" actionid="12129" even

  • TFS 1.1:   TFS 0.3.6 ~ 0.4: OTX 2:   Salve como stamina_tile.lua em movements/script   movements.xml:     <movevent event="StepIn" itemid="407" script="stamina_tile.lua" /&gt

Postado

Ok, agora está tudo funcionando certo!

Só uma dúvida, vai adicionar a stamina a cada um minuto a partir do momento que ele pisa no tile certo? quando ele pisar vai começar a contagem no caso.

Obrigado pela ajuda de todos!!

 

Sim, quando ele pisar no tile, um minuto depois ele vai ganhar um de stamina e assim por diante. Isso enquanto estiver no tile, se ele sair, cancela.

Por exemplo, ele pisou, começou a contagem, faltando 1s pra receber a stamina ele sai. Vai cancelar e ele não vai receber stamina.

Postado
  • Autor

Sim, quando ele pisar no tile, um minuto depois ele vai ganhar um de stamina e assim por diante. Isso enquanto estiver no tile, se ele sair, cancela.

Por exemplo, ele pisou, começou a contagem, faltando 1s pra receber a stamina ele sai. Vai cancelar e ele não vai receber stamina.

Muito obrigado!

Exatamente como eu queria

Att,
Grafit.

  • 2 years later...
Postado
On 25/1/2015 at 10:12 PM, Adriano SwaTT said:

Teste este:

Registre em movements.xml as tags abaixo:

 


<movevent type="StepIn" actionid="12129" event="script" value="tile_stamina.lua"/>
    <movevent type="StepOut" actionid="12129" event="script" value="tile_stamina.lua"/>

 

Crie o arquivo tile_stamina.lua e cole o código abaixo dentro:

 


---------- 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 = 5 -- em segundos para cada regeneração
local tileid, action = 412, 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 já está cheia.")
    end
return true
end

function onStepOut(cid, item, position, fromPosition)
    stopEvent(GetStamina)
return true
end

function GetStamina(cid)
local getpos = getPlayerPosition(cid)
local tilepos = getTileItemById(getpos, tileid).actionid
local getsta = getPlayerStamina(cid)

    if tilepos == action then    
        if getsta < maxstamina and isPlayer(cid) then
            doPlayerSendCancel(cid, "Sua stamina está subindo.")
            setPlayerStamina(cid, getsta + qtdd)
            addEvent(GetStamina, tempo * 1000, cid)
        else
            doTeleportThing(cid, fromPosition)
            doPlayerSendCancel(cid, "Sua stamina já está cheia.")
        end
    end
return true
end

 

Poste o resultado.

Boa sorte.

 

brigado pra mi deu certo :D

  • 2 years later...
Postado
Em 26/01/2015 em 15:25, Elwyn disse:

 

Sim, quando ele pisar no tile, um minuto depois ele vai ganhar um de stamina e assim por diante. Isso enquanto estiver no tile, se ele sair, cancela.

Por exemplo, ele pisou, começou a contagem, faltando 1s pra receber a stamina ele sai. Vai cancelar e ele não vai receber stamina.

 

 

Galera, desculpa reviver o tópico, mas estou precisando de uma força... a script funcionou, mas quando o player sai do tile não para de subir a stamina..

 

Poderiam dar uma força?

 

TFS 1.3 versão 12.

 

Valeu

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo