JA

Ajuda com SCRIPT.

Por JackSena, 08 de dez. de 2024 em Scripts

10
1.9k
JackSenaJ
08 de dezembro de 2024 às 19:55

Estou com esse script q to criando, a função já está pegando certinho, porem não para de funfar kkk o stopevent não ta funcionando alguem me ajuda?

 

 

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)
   
    local function regenVida(cid)
      doPlayerAddHealth(cid, 1000)
      addEvent(regenVida, 1 * 1000, cid)
    end
    regenVida(cid)
   
    return TRUE
  end
 
  function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)
   
    local function regenVida(cid)
    stopEvent(regenVida)
end
 
return TRUE
  end
 
 
 
se estiver no local errado por favor mover.

Editado Dezembro 8 por JackSena

El RusherE
08 de dezembro de 2024 às 20:09
local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida()
        if isPlayer(cid) then
            doPlayerAddHealth(cid, 1000) -- Adiciona vida ao jogador.
            regenEvent[cid] = addEvent(regenVida, 1 * 1000) -- Reagendar o evento.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1 * 1000) -- Inicializa o evento.

    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

 

JackSenaJ
09 de dezembro de 2024 às 16:31
20 horas atrás, El Rusher disse:
local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida()
        if isPlayer(cid) then
            doPlayerAddHealth(cid, 1000) -- Adiciona vida ao jogador.
            regenEvent[cid] = addEvent(regenVida, 1 * 1000) -- Reagendar o evento.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1 * 1000) -- Inicializa o evento.

    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

 

Boa tarte mano!! obg pelo apoio!! 

eu coloquei pra rodar aqui e agora deu isso no executavel -> image.png.03858fa41a6a66a61acf7a544698a8de.png

1 hora atrás, JackSena disse:

Boa tarte mano!! obg pelo apoio!! 

eu coloquei pra rodar aqui e agora deu isso no executavel -> image.png.03858fa41a6a66a61acf7a544698a8de.png

 

local eventos = {}
 
function regenVida(cid)
  doPlayerAddMana(cid, 1120)
  eventos[cid] = addEvent(regenVida, 1000, cid)
end
 
function pararRegen(cid)
  stopEvent(eventos[cid])
  eventos[cid] = nil
end
 
function onEquip(cid, item, position, fromPosition)
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
  doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
  doPlayerSay(cid, "POWER-UP!", 16)
  doSendMagicEffect(getPlayerPosition(cid), 95)
  regenVida(cid)
  return true
end
 
function onDeEquip(cid, item, position, fromPosition)
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
  doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
  doPlayerSay(cid, "Losing Strength!", 16)
  doSendMagicEffect(getPlayerPosition(cid), 95)
  pararRegen(cid)
  return true
end
 
function onLogin(cid)
  regenVida(cid) -- Start regeneration on login
end
 
function onLogout(cid)
  pararRegen(cid) -- Stop regeneration on logout
end

consegui colocar esse pra rodar, tentei adicionar função pra para quando desloga porem não consegui ainda,  quando o char desloga com o item no corpo da isso no executavel

image.png.fa9dcaef9000c91603d6576ea582decb.png


 

 

 

El RusherE
10 de dezembro de 2024 às 08:35

opa, bom dia, tenta assim entao por gentileza

 

local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida(cid)
        if isPlayer(cid) then
            doPlayerAddHealth(cid, 1000) -- Adiciona vida ao jogador.
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento com o `cid`.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

 

JackSenaJ
10 de dezembro de 2024 às 17:03
8 horas atrás, El Rusher disse:

opa, bom dia, tenta assim entao por gentileza

 

local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida(cid)
        if isPlayer(cid) then
            doPlayerAddHealth(cid, 1000) -- Adiciona vida ao jogador.
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento com o `cid`.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

 

Tentei usar e continuou dando o error :( 
image.png.ba6cfdaf4aa7bb00701198b7b7318c6e.png

El RusherE
10 de dezembro de 2024 às 19:50
local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida(cid)
        if isPlayer(cid) and getPlayerAccess(cid) > 0 then -- Verifica se o jogador ainda é válido.
            doPlayerAddHealth(cid, 1000)
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento.
        else
            regenEvent[cid] = nil -- Limpa o evento se o jogador não estiver mais online.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

"Player not found", sugere que a função luaDoPlayerAddMana está sendo chamada para um jogador que não existe mais no jogo. Isso pode acontecer se um jogador se desconectar enquanto o evento regenVida ainda está rodando.

Para corrigir isso, adiciona uma verificação extra se o jogador ainda está conectado antes de executar doPlayerAddHealth:

JackSenaJ
11 de dezembro de 2024 às 16:52
21 horas atrás, El Rusher disse:
local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida(cid)
        if isPlayer(cid) and getPlayerAccess(cid) > 0 then -- Verifica se o jogador ainda é válido.
            doPlayerAddHealth(cid, 1000)
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento.
        else
            regenEvent[cid] = nil -- Limpa o evento se o jogador não estiver mais online.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

"Player not found", sugere que a função luaDoPlayerAddMana está sendo chamada para um jogador que não existe mais no jogo. Isso pode acontecer se um jogador se desconectar enquanto o evento regenVida ainda está rodando.

Para corrigir isso, adiciona uma verificação extra se o jogador ainda está conectado antes de executar doPlayerAddHealth:

Coloquei pra rodar, ele parou de regenerar a vida =/

21 horas atrás, El Rusher disse:
local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida(cid)
        if isPlayer(cid) and getPlayerAccess(cid) > 0 then -- Verifica se o jogador ainda é válido.
            doPlayerAddHealth(cid, 1000)
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento.
        else
            regenEvent[cid] = nil -- Limpa o evento se o jogador não estiver mais online.
        end
    end

    regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end

"Player not found", sugere que a função luaDoPlayerAddMana está sendo chamada para um jogador que não existe mais no jogo. Isso pode acontecer se um jogador se desconectar enquanto o evento regenVida ainda está rodando.

Para corrigir isso, adiciona uma verificação extra se o jogador ainda está conectado antes de executar doPlayerAddHealth:

local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.
 
function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)
 
    local function regenVida(cid)
        if isPlayer(cid) then
            doPlayerAddHealth(cid, 1000) -- Adiciona vida ao jogador.
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento com o `cid`.
        end
    end
 
    regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    return TRUE
end
 
function onDeEquip(cid, item, position, fromPosition)
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
 
  -- Check if the event exists before trying to remove it
  if regenEvent[cid] then
      removeEvent(regenEvent[cid]) -- Cancels the event in execution.
      regenEvent[cid] = nil -- Remove the identifier to avoid future use.
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Event removed successfully.")
  else
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "No event to remove.")
  end
 
  return TRUE
end




Esse aqui quando eu removo o item ele diz ( 17:15 No event to remove. ) e continua regenerando e quadno deslogo da aquele erro 
image.png.8ae70be0133bdd0ed3165de7738b9be1.png
El RusherE
12 de dezembro de 2024 às 20:07

poe cid nesses parenteses ai

1 mês depois...
JackSenaJ
24 de janeiro de 2025 às 15:23
Em 12/12/2024 em 20:07, El Rusher disse:

poe cid nesses parenteses ai

aqueles parenteses é dessa função daqui, já tem CID neles, desculpa demora, tinha saido de ferias e ai viajei e as coisas ficou no pc em casa :S

 

 doPlayerAddHealth(cid, 1000) -- Adiciona vida ao jogador.

1 mês depois...
El RusherE
02 de fevereiro de 2025 às 14:37

tenta assim colega

 

local regenEvent = {} -- Tabela para armazenar os identificadores de eventos por jogador.

function onEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Activated Strength Blessing.")
    doSendAnimatedText(getPlayerPosition(cid), "Reloading!!", 210)
    doPlayerSay(cid, "POWER-UP!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    local function regenVida(cid)
        if isPlayer(cid) and getPlayerAccess(cid) > 0 then -- Verifica se o jogador ainda é válido.
            doPlayerAddHealth(cid, 1000)
            regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Reagendar o evento.
        else
            regenEvent[cid] = nil -- Limpa o evento se o jogador não estiver mais online.
        end
    end

    if isPlayer(cid) then -- Certifica-se de que o jogador é válido antes de inicializar o evento.
        regenEvent[cid] = addEvent(regenVida, 1000, cid) -- Inicializa o evento com o `cid`.
    end
    return TRUE
end

function onDeEquip(cid, item, position, fromPosition)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Strength Blessing Disabled.")
    doSendAnimatedText(getPlayerPosition(cid), "Weakening!!", 210)
    doPlayerSay(cid, "Losing Strength!", 16)
    doSendMagicEffect(getPlayerPosition(cid), 95)

    -- Parar o evento associado ao jogador.
    if regenEvent[cid] then
        stopEvent(regenEvent[cid]) -- Cancela o evento em execução.
        regenEvent[cid] = nil -- Remove o identificador para evitar uso futuro.
    end

    return TRUE
end