Ir para conteúdo
  • Cadastre-se

Suporte Somar Funcoes


Ir para solução Resolvido por deza,

Posts Recomendados

Alguém me ajuda a botar esse script nesse pf !

Gostaria que saísse esse efeito do script [1]

no script [2]

O efeito local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
 

Citar

script: 1

local tab = {
    [9] = 10, -- [vocationID] = número da cor do texto animado
    [10] = 30,
    [11] = 50,
    [12] = 70
}

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 onLogin(cid)
    if tab[getPlayerVocation(cid)] then
        ariseText(cid)
    end
    
    return true
end

 

Citar

Script: 2

 

-- 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)

-- Função que chama a aura
function efeitosAura(i,tm,cid)
    if(isCreature(cid)) then
            local atual = getCreaturePosition(cid)
        local posaura = {
            {x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
            {x=atual.x, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=atual.y, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
            {x=atual.x, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=atual.y, z=atual.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
            if(i<=8 and i>1) then
                doSendMagicEffect(atual, tipoaura)
            else
                doSendMagicEffect(atual, tipoaura)
            end
            doSendMagicEffect(atual, efeitocura)
        end
        if(i==8) then
            doSendMagicEffect(atual, tipoaura)
        elseif(i<8) then
            doSendMagicEffect(atual, tipoaura)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
            return efeitosAura(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
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)
            efeitosAura(1,tempo/8,cid)
    end
    return TRUE
end



 

 

Link para o post
Compartilhar em outros sites
53 minutos atrás, luanluciano93 disse:

O efeito do script 2 deve ser retirado e colocado o efeito do script 1?

SIM !

Retirar do 1 e colocar no 2
e retirar esse efeito do 2

pra quando ativar a aura ficar saindo esse efeito...

 

local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
Editado por deza (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Dentro da função onUse do script 2 tem o "efeitosAura(1,tempo/8,cid)" troca essa função pela função "ariseText(cid)" do script 1 (que por sinal pode ser uma função local) ... 

Apague toda a função local do efeitosAura do script 2 e substitua pela função ariseText(cid) e pela tabela TAB.

Link para o post
Compartilhar em outros sites
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  =[

Link para o post
Compartilhar em outros sites
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

 

Link para o post
Compartilhar em outros sites
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 = {}
 

Link para o post
Compartilhar em outros sites
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

 

Link para o post
Compartilhar em outros sites
54 minutos atrás, luanluciano93 disse:

aqui é só  ariseText(cid)

Lá em cima function ariseText(cid) muda pra local function ariseText(cid)

Muito obrigado por me guiar !

Essa parte que vc me guiou esta tudo certo, funcionado e sem erros, poderia me guiar na parte da cura, que so esta faltando isso para completar o script. ( a que esta no script 2 )

Link para o post
Compartilhar em outros sites
function ariseText(cid)
	if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then
		local texts = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ´ ."}
		doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)])

		if chances <= (porcentagem / 8) and getCreatureHealth(cid) < getCreatureMaxHealth(cid) then
			doCreatureAddHealth(cid, getCreatureMaxHealth(cid) / quantheal)
		end

		addEvent(ariseText, 600, cid)
	end
	return true
end

 

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.

  • Conteúdo Similar

    • Por braianlomas
      Como faço para corrigir esse problema para meu cliente, eu uso o tfs 0.3.6  
      Quero resolver esse problema que tenho no meu cliente, como e onde posso resolver?  
      Eu uso o tfs 0.3.6, não tenho as fontes do cliente, se você puder me dar eu vou amá-las para sempre  
       

       
    • Por A.Mokk
      Ola pessoal, estou tentando compilar o TFS 1.5 Downgrade para 8.60 atraves do MSVC 2022, ao tentar compilar da o seguinte erro:
       
       
      Fiz o download do MSVC, GitDash, TFS-SDK-3.2, e de varios boosts que tentei, ao fazer o seguinte procedimento no GitDash:
       
      Ao chegar em ./bootstrap-vcpkg.bat o GitDash nao consegue realizar o procedimento corretamente, alguem poderia me ajudar ?

      Tentei de diversas formas mas o mesmo erro sempre persiste, atualmente meu servidor utiliza TFS 0.4, consigo compilar sem nenhum problema no MSVC 2010, porem, as limitações do TFS 0.4 estão me fazendo precisar atualizar, se alguem souber como corrigir esses erros eu agradeço !

      Tutoriais utilizados :
      Compiling on Windows (vcpkg) · otland/forgottenserver Wiki · GitHub
      Compiling on Windows · otland/forgottenserver Wiki · GitHub
      Compilando TFS 1.3 com vídeo-aula - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
      Compilar TFS 1.3 Vcpkg - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
       
      O que acontece no Powershell:
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary 2.3.6
      Qual o motivo deste tópico? 
      Queria fazer com que os players não pudessem mexer no aleta sio, pois, agora os mesmos estão conseguindo mexer nos itens
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      canary para o cliente 13.16
      Qual o motivo deste tópico? 
      Não consigo encontrar onde ajusta
      to com o problema no 13.16  o exausted, por exemplo os kinas era pra combar exori, erori gran e exori min, porém não ta indo ta dando exausted o char ta soltando magia ou runa e não consegue usar as potions
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Andersontatuador
      Olá galera da TK, me chamo Anderson estou procurando alguém profissional em otservs e site.
      Já tenho um servidor o site e o cliente preciso só de uma pessoal competente, que esteja empenhado a trabalhar,
      não quero nada de graça, pois nessa onda fui mais roubado do quer eu pagar um profissional.
      caso alguém se interesse entrar em contato comigo através do whatsapp
      82 9 9304-9462
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo