Ir para conteúdo
  • Cadastre-se

Normal Aumentando Damage


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Galera venho hoje pedir a vocês uma ajudinha em uma spells BUFF.
Em todos os otserv á magias estilo FOGO(fire), Gelo(Ice), Veneno(Poison) e etc...

claro eles seguem seus combat damage:

 

COMBAT_PHYSICALDAMAGE 
COMBAT_ENERGYDAMAGE 
COMBAT_EARTHDAMAGE 
COMBAT_POISONDAMAGE 
COMBAT_FIREDAMAGE 
COMBAT_UNDEFINEDDAMAGE 
COMBAT_LIFEDRAIN 
COMBAT_MANADRAIN
COMBAT_HEALING 
COMBAT_DROWNDAMAGE 
COMBAT_ICEDAMAGE 
COMBAT_HOLYDAMAGE 
COMBAT_DEATHDAMAGE

 

Queria saber como eu posso criar uma spell que dure 5 minuntos aumentando 20% de dano de FOGO(COMBAT_FIREDAMAGE )

Exemplo: um player lvl 200 sorcerer usando exevo gran mas vis irá hitar 1500 de player. Ao ativa a spell buff, ele irá hitar quase 1700.

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 11/04/2017 ás 09:14, BangxD disse:

Galera venho hoje pedir a vocês uma ajudinha em uma spells BUFF.
Em todos os otserv á magias estilo FOGO(fire), Gelo(Ice), Veneno(Poison) e etc...

claro eles seguem seus combat damage:

 

COMBAT_PHYSICALDAMAGE 
COMBAT_ENERGYDAMAGE 
COMBAT_EARTHDAMAGE 
COMBAT_POISONDAMAGE 
COMBAT_FIREDAMAGE 
COMBAT_UNDEFINEDDAMAGE 
COMBAT_LIFEDRAIN 
COMBAT_MANADRAIN
COMBAT_HEALING 
COMBAT_DROWNDAMAGE 
COMBAT_ICEDAMAGE 
COMBAT_HOLYDAMAGE 
COMBAT_DEATHDAMAGE

 

Queria saber como eu posso criar uma spell que dure 5 minuntos aumentando 20% de dano de FOGO(COMBAT_FIREDAMAGE )

Exemplo: um player lvl 200 sorcerer usando exevo gran mas vis irá hitar 1500 de player. Ao ativa a spell buff, ele irá hitar quase 1700.

 

Também queria saber como aumentar os danos das magias por porcentagem. 

Link para o post
Compartilhar em outros sites
  • 1 month later...

Entao, desculpa a demora mas só vi esse post agora hahaha se tu tiver conhecimentos de lua vai ser fácil, só vou mandar a ideia p ti.

Pensei nisso agora, e nao sei se tem outro jeito de fazer mas é o seguinte: Vais ter que criar um storage pra cada elemento que a buff vai te dar, tipo ao usar a buff muda o storage do player pra 1, e qd a buff acabar muda pra -1. Ai em cada spell tu cria uma condição que checa o valor da storage respectiva do elemento, tipo se usar o exori mort tu checa se a storage da buff de death vale 1. Se valer 1 (player ta com a buff ligada) ai ela vai pegar o valor do dano e multiplicar por 1,20 (20%).

 

Exemplo de como ficaria mais ou menos o script da spell exori mort

 

	local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
	function onGetFormulaValues(cid, level, skill, attack, factor)  --> aqui c muda se quer skill, level, magic level e etc etc
    local min = formula dano minimo
    local max = formula formula dano maximo
    if getCreatureStorage(cid, 12345) == 1 then
        return -(min * 1,20), -(max * 1,20)
    else
        return -(min), -(max)
    end
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") --> aqui se deixa assim se depender da skill, ou deixa callback_param_levelmagicvalue se for ml
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
Editado por reisbro (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
19 horas atrás, reisbro disse:

Entao, desculpa a demora mas só vi esse post agora hahaha se tu tiver conhecimentos de lua vai ser fácil, só vou mandar a ideia p ti.

Pensei nisso agora, e nao sei se tem outro jeito de fazer mas é o seguinte: Vais ter que criar um storage pra cada elemento que a buff vai te dar, tipo ao usar a buff muda o storage do player pra 1, e qd a buff acabar muda pra -1. Ai em cada spell tu cria uma condição que checa o valor da storage respectiva do elemento, tipo se usar o exori mort tu checa se a storage da buff de death vale 1. Se valer 1 (player ta com a buff ligada) ai ela vai pegar o valor do dano e multiplicar por 1,20 (20%).

 

Exemplo de como ficaria mais ou menos o script da spell exori mort

 


	local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
	function onGetFormulaValues(cid, level, skill, attack, factor)  --> aqui c muda se quer skill, level, magic level e etc etc
    local min = formula dano minimo
    local max = formula formula dano maximo
    if getCreatureStorage(cid, 12345) == 1 then
        return -(min * 1,20), -(max * 1,20)
    else
        return -(min), -(max)
    end
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") --> aqui se deixa assim se depender da skill, ou deixa callback_param_levelmagicvalue se for ml
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

ruim disso que tenho que fazer isso em todas as magias, ai fica meio osso :D

Link para o post
Compartilhar em outros sites
22 horas atrás, BangxD disse:

ruim disso que tenho que fazer isso em todas as magias, ai fica meio osso :D

auheuahea é chatinho mesmo

 

eu tava com um sistema em mente parecido, e vou começar a programar e tentar deixar bem fácil pra editar e adicionar coisas novas. se eu conseguir fazer dar certo eu posto aqui pra ti

Link para o post
Compartilhar em outros sites
4 horas atrás, reisbro disse:

auheuahea é chatinho mesmo

 

eu tava com um sistema em mente parecido, e vou começar a programar e tentar deixar bem fácil pra editar e adicionar coisas novas. se eu conseguir fazer dar certo eu posto aqui pra ti

Obrigado, ficarei esperando!

Link para o post
Compartilhar em outros sites
  • 4 months later...
  • 4 weeks later...
  • Solução

Para evitar maiores modificações, você poderia utilizar esse aumento de dano apenas para player vs player (com monstros não funciona). Após usar a magia, o player só poderia utilizar novamente assim que o efeito do bônus no elemento (fire, ice, etc) acabasse. Então, teste assim:

 

Em spells/scripts crie um arquivo:

 

buffelemental.lua

 

Spoiler

local t = {
stors = {96572, 96573}, -- modifique apenas se for realmente necessário
effect_time = {5, "min"}, -- tempo de efeito da spell
["flam"] = {bonus = 10, element = COMBAT_FIREDAMAGE}, -- bonus = % de aumento no hit, element = tipo do dano
["tera"] = {bonus = 10, element = COMBAT_EARTHDAMAGE},
["ico"] = {bonus = 10, element = COMBAT_PHYSICALDAMAGE},
["frigo"] = {bonus = 10, element = COMBAT_ICEDAMAGE}
}

function onCastSpell(cid, var)
    local p, buff = getPlayerPosition(cid), t[var.string]
    local buff_on = getPlayerStorageValue(cid, t.stors[1])
    if not buff then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        doSendMagicEffect(p, CONST_ME_POFF)
        return true
    end
    if buff_on > os.time() then
        doPlayerSendCancel(cid, "Your elemental buff is already active.")
        doSendMagicEffect(p, CONST_ME_POFF)
        return true
    end
    setPlayerStorageValue(cid, t.stors[1], mathtime(t.effect_time) + os.time())
    local info = var.string..","..buff.bonus..","..buff.element
    setPlayerStorageValue(cid, t.stors[2], info)
    doSendMagicEffect(p, CONST_ME_MAGIC_GREEN)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, (var.string:upper()).." BUFF ON!")
    return true
end

function mathtime(table) -- by dwarfer
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1)
end
end
return error("Bad declaration in mathtime function.")
end

 

 

Edite as palavras "flam", "frigo" como queira ou adicione outras.

 

Em spells.xml: (Edite as palavras da magia, o maglvl, mana e os outros parâmetros de acordo com o que desejar, esse aí é apenas para servir como base caso você não saiba como fazer)

 

Spoiler

<instant name="Elemental Buff" words="utori buff" aggressive="1" params="1" needtarget="0" lvl="1" maglv="1" mana="10" soul="0" exhaustion="1" prem="1" enabled="1" script="buffelemental.lua">
 <vocation id="1"/>
 <vocation id="2"/>
<vocation id="3"/>
<vocation id="4"/>
<vocation id="5"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>
  </instant>

 

 

Em creaturescripts/scripts crie um arquivo:

 

buffelementalattack.lua

 

Spoiler

local protect, stors = {}, {96572, 96573} -- modifique os storages apenas se necessário

function onStatsChange(cid, attacker, type, combat, value)
    if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isPlayer(cid) and value >= 1 then
        if getPlayerStorageValue(attacker, stors[1]) > os.time() then
            if protect[attacker] then protect[attacker] = nil return true end
            local t = string.explode(tostring(getPlayerStorageValue(attacker, stors[2])), ",")
            local buff = {type = (t[1]:upper()).."!", bonus = tonumber(t[2])/100, element = tonumber(t[3])}
            if combat == buff.element then
                attack_bonus = math.ceil(2*value*(1+buff.bonus))
                protect[attacker] = true
                doTargetCombatHealth(attacker, cid, combat, -attack_bonus, -attack_bonus, CONST_ME_NONE)
                doSendAnimatedText(getPlayerPosition(attacker), buff.type, COLOR_TEAL)
                return false
            end
        end
    end
    return true
end

 

 

No login.lua, registre o evento adicionando: 

registerCreatureEvent(cid, "BuffElemental")

Em creaturescripts.xml, adicione a tag: 

 <event type="statschange" name="BuffElemental" event="script" value="buffelementalattack.lua"/>

Para utilizar a magia:

 

utori buff "flam -- o hit do player quando FIRE será aumentado em 10% como foi configurado lá na spell

 

Para os demais:

utori buff "tera
utori buff "ico
utori buff "frigo

Contato:

 

Link para o post
Compartilhar em outros sites
  • 3 years later...
Em 19/11/2017 em 12:09, Dwarfer disse:

Para evitar maiores modificações, você poderia utilizar esse aumento de dano apenas para player vs player (com monstros não funciona). Após usar a magia, o player só poderia utilizar novamente assim que o efeito do bônus no elemento (fire, ice, etc) acabasse. Então, teste assim:

 

Em spells/scripts crie um arquivo:

 

buffelemental.lua

 

  Mostrar conteúdo oculto


local t = {
stors = {96572, 96573}, -- modifique apenas se for realmente necessário
effect_time = {5, "min"}, -- tempo de efeito da spell
["flam"] = {bonus = 10, element = COMBAT_FIREDAMAGE}, -- bonus = % de aumento no hit, element = tipo do dano
["tera"] = {bonus = 10, element = COMBAT_EARTHDAMAGE},
["ico"] = {bonus = 10, element = COMBAT_PHYSICALDAMAGE},
["frigo"] = {bonus = 10, element = COMBAT_ICEDAMAGE}
}

function onCastSpell(cid, var)
    local p, buff = getPlayerPosition(cid), t[var.string]
    local buff_on = getPlayerStorageValue(cid, t.stors[1])
    if not buff then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        doSendMagicEffect(p, CONST_ME_POFF)
        return true
    end
    if buff_on > os.time() then
        doPlayerSendCancel(cid, "Your elemental buff is already active.")
        doSendMagicEffect(p, CONST_ME_POFF)
        return true
    end
    setPlayerStorageValue(cid, t.stors[1], mathtime(t.effect_time) + os.time())
    local info = var.string..","..buff.bonus..","..buff.element
    setPlayerStorageValue(cid, t.stors[2], info)
    doSendMagicEffect(p, CONST_ME_MAGIC_GREEN)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, (var.string:upper()).." BUFF ON!")
    return true
end

function mathtime(table) -- by dwarfer
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1)
end
end
return error("Bad declaration in mathtime function.")
end

 

 

Edite as palavras "flam", "frigo" como queira ou adicione outras.

 

Em spells.xml: (Edite as palavras da magia, o maglvl, mana e os outros parâmetros de acordo com o que desejar, esse aí é apenas para servir como base caso você não saiba como fazer)

 

  Mostrar conteúdo oculto


<instant name="Elemental Buff" words="utori buff" aggressive="1" params="1" needtarget="0" lvl="1" maglv="1" mana="10" soul="0" exhaustion="1" prem="1" enabled="1" script="buffelemental.lua">
 <vocation id="1"/>
 <vocation id="2"/>
<vocation id="3"/>
<vocation id="4"/>
<vocation id="5"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>
  </instant>

 

 

Em creaturescripts/scripts crie um arquivo:

 

buffelementalattack.lua

 

  Mostrar conteúdo oculto


local protect, stors = {}, {96572, 96573} -- modifique os storages apenas se necessário

function onStatsChange(cid, attacker, type, combat, value)
    if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isPlayer(cid) and value >= 1 then
        if getPlayerStorageValue(attacker, stors[1]) > os.time() then
            if protect[attacker] then protect[attacker] = nil return true end
            local t = string.explode(tostring(getPlayerStorageValue(attacker, stors[2])), ",")
            local buff = {type = (t[1]:upper()).."!", bonus = tonumber(t[2])/100, element = tonumber(t[3])}
            if combat == buff.element then
                attack_bonus = math.ceil(2*value*(1+buff.bonus))
                protect[attacker] = true
                doTargetCombatHealth(attacker, cid, combat, -attack_bonus, -attack_bonus, CONST_ME_NONE)
                doSendAnimatedText(getPlayerPosition(attacker), buff.type, COLOR_TEAL)
                return false
            end
        end
    end
    return true
end

 

 

No login.lua, registre o evento adicionando: 


registerCreatureEvent(cid, "BuffElemental")

Em creaturescripts.xml, adicione a tag: 


 <event type="statschange" name="BuffElemental" event="script" value="buffelementalattack.lua"/>

Para utilizar a magia:

 

utori buff "flam -- o hit do player quando FIRE será aumentado em 10% como foi configurado lá na spell

 

Para os demais:

utori buff "tera
utori buff "ico
utori buff "frigo

Boa noite, desculpe-me reviver o tópico, mas seria possivel editar esse script para aumentar o dano do personagem permanent?
Por exemplo, colocar pra usar um item, exemplo "mastermind potion", ao usar o item o jogador ganhará 5% de dano a mais tanto em atk basico quanto em magia, alguém poderia me ajudar por favor?

 

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo