Ir para conteúdo

Featured Replies

Postado
  • Autor
Em 04/02/2022 em 10:02, luanluciano93 disse:

conseguiu?

Oi boa tarde, eu tava fora esses dias.
Vou tentar agora, caso n consiga voce pode me guiar ?

Em 04/02/2022 em 10:02, luanluciano93 disse:

conseguiu?

Fiz oq vc disse, deu certo, porem quando desligo a aura que e por item, os símbolos não param de sair, poderia me ajudar  ?

26 minutos atrás, deza disse:

Oi boa tarde, eu tava fora esses dias.
Vou tentar agora, caso n consiga voce pode me guiar ?

Fiz oq vc disse, deu certo, porem quando desligo a aura que e por item, os símbolos não param de sair, poderia me ajudar  ?

Na vdd nao deu muit certo, nao esta healando  =[

  • Respostas 13
  • Visualizações 672
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • Autor
14 minutos atrás, luanluciano93 disse:

Coloque ai o código de como ficou ... 

Citar

-- CONFIGURAÇÕES
    aurastr = 9987 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 1000 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 20 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
    tempo = 10000 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 66 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 14 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)


local tab = {
    [9] = 215, -- [vocationID] = número da cor do texto animado
    [10] = 210,
    [11] = 180,
    [12] = 34
}

function ariseText(cid)
    local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
    doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)])
    if isPlayer(cid) then
        addEvent(ariseText, 600, cid)
    end
    
    return true
end

    


function onUse(cid, item, fromPosition, itemEx, toPosition)
doRemoveItem(item.uid,1)
    if(getPlayerStorageValue(cid, aurastr)==2) then
            setPlayerStorageValue(cid, estr, os.time()+2)
            setPlayerStorageValue(cid, aurastr, -1)
            doPlayerSendCancel(cid,"Voce desligou a Aura!")
            doPlayerSendTextMessage(cid,18,"Voce desligou a Aura!")
            
    else
            doPlayerSendCancel(cid,"Voce ligou a Aura!")
            doPlayerSendTextMessage(cid,18,"Voce ligou a Aura!")
            setPlayerStorageValue(cid, aurastr, 2)
            ariseText(cid)
    end
    return TRUE
end

 

Postado
7 horas atrás, deza disse:

Fiz oq vc disse, deu certo, porem quando desligo a aura que e por item, os símbolos não param de sair, poderia me ajudar  ?


Se você perceber, a função ariseText(cid) cria uma repetição, que dentro da função "chama" ela novamente ... 

 

O problema é que quando "chama" ela novamente não existe nunhuma checagem, por isso ela fica infinita ... 

Como dá para ver no script, ela deve continuar apena quando o valor da storage AURASTR estiver 2, portanto você deve fazer essa verificação para continuar a repetição ... 

 

function ariseText(cid)
	local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
	doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)])
	if isPlayer(cid) then
		addEvent(ariseText, 600, cid)
	end
	return true
end

 

Onde existe a verificação se ele é um jogador, coloque a verificação da storage ... 

if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then

 

A função function ariseText(cid) pode ser local, pois ela só funciona dentro desse script. 

local function ariseText(cid)

 

Todos os return TRUE ou return FALSE são gambiarras, o correto é minúsculos.

As configurações do script tbem devem ser locais, de preferência em uma tabela local tabelaX = {}
 

Postado
  • Autor
15 minutos atrás, luanluciano93 disse:


Se você perceber, a função ariseText(cid) cria uma repetição, que dentro da função "chama" ela novamente ... 

 

O problema é que quando "chama" ela novamente não existe nunhuma checagem, por isso ela fica infinita ... 

Como dá para ver no script, ela deve continuar apena quando o valor da storage AURASTR estiver 2, portanto você deve fazer essa verificação para continuar a repetição ... 

 


function ariseText(cid)
	local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
	doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)])
	if isPlayer(cid) then
		addEvent(ariseText, 600, cid)
	end
	return true
end

 

Onde existe a verificação se ele é um jogador, coloque a verificação da storage ... 


if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then

 

A função function ariseText(cid) pode ser local, pois ela só funciona dentro desse script. 


local function ariseText(cid)

 

Todos os return TRUE ou return FALSE são gambiarras, o correto é minúsculos.

As configurações do script tbem devem ser locais, de preferência em uma tabela local tabelaX = {}
 

Sinceramente, dessa vez não entendi quase nada =[
Eu não sei quase nada, to tentando seguir as ordens que vc esta ditando.

eu teria que trocar o 

if isPlayer(cid) then

 

por 

if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then

e isso ?

e essa parte aqui? eu adiciono onde ?

local function ariseText(cid)

Eu tentei fazer +/- oque vc disse, n deu erro no console, porem nao esta ativando !

 

Citar

-- CONFIGURAÇÕES
    aurastr = 9987 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 1000 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 20 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
    tempo = 10000 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 66 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 14 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)


local tab = {
    [9] = 215, -- [vocationID] = número da cor do texto animado
    [10] = 210,
    [11] = 180,
    [12] = 34
}

function ariseText(cid)
    local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
    doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)])
    if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then
        addEvent(ariseText, 600, cid)
    end
    return true
end

    


function onUse(cid, item, fromPosition, itemEx, toPosition)
doRemoveItem(item.uid,1)
    if(getPlayerStorageValue(cid, aurastr)==2) then
            setPlayerStorageValue(cid, estr, os.time()+2)
            setPlayerStorageValue(cid, aurastr, -1)
            doPlayerSendCancel(cid,"Voce desligou a Aura!")
            doPlayerSendTextMessage(cid,18,"Voce desligou a Aura!")
            
    else
            doPlayerSendCancel(cid,"Voce ligou a Aura!")
            doPlayerSendTextMessage(cid,18,"Voce ligou a Aura!")
            setPlayerStorageValue(cid, aurastr, 2)
            local function ariseText(cid)
            end
    end
    return true
end

 

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