Ir para conteúdo

[Arquivado]Advanced Spell Config 0.6.1


Oneshot

Posts Recomendados

Fala, Galera!

 

Eu estive desenvolvendo durante um tempo um sistema avançado de configuração de magias. De modo que você pode criar várias áreas, vários efeitos, vários danos, sem fazer um monte de variáveis de combate. Isso reduz o tamanho de magias em até 50%, falando em linhas de programação. O único conhecimento que você irá precisar é de edição de tabelas.

 

Veja abaixo o template do Advanced Spell Config 0.6:

 

local spellConfig = {
  {damage = COMBAT_FIREDAMAGE,
   effect = CONST_ME_FIREAREA,
   area = createCombatArea(AREA_CIRCLE3X3),
   formula = {
	base = "magic", --[[skill or magic]]
	value = {-1, -100, -2, -200} --[[valores]]
}
  }
}

local combats = {}
for k, config in ipairs(spellConfig) do
  combats[k] = createCombatObject()
     setCombatParam(combats[k], COMBAT_PARAM_TYPE, config.damage)
     setCombatParam(combats[k], COMBAT_PARAM_EFFECT, config.effect)
     setCombatArea(combats[k], config.area)
     setCombatFormula(combats[k], (config.formula.base == "magic" and COMBAT_FORMULA_LEVELMAGIC or COMBAT_FORMULA_SKILL), unpack(config.formula.value))
end

function callCombat(p)
  return doCombat(unpack(p))
end

function onCastSpell(cid, var)
  for i, combat in ipairs(combats) do
     addEvent(callCombat, (#combats == 1 and 0 or 250*i), {cid, combat, var})
  end
  return LUA_NO_ERROR
end

 

Vocês podem estar pensando que eu só fiz complicar a vida de vocês, mas o código é grande apenas para uma variável de combate, imagine agora uma magia com 10 efeitos, 10 tipos de dano. Qual sairia melhor?

 

Você só precisar adicionar suas configurações na tabela spellConfig que o código irá fazer tudo sozinho.

 

local spellConfig = {
  {damage = COMBAT_FIREDAMAGE,
   effect = CONST_ME_FIREAREA,
   area = createCombatArea(AREA_CIRCLE3X3),
   formula = {-1, -100, -2, -200}
  },
  {damage = COMBAT_ICEDAMAGE,
   effect = CONST_ME_ICEATTACK,
   area = createCombatArea(AREA_CIRCLE3X3),
   formula = {-1, -100, -2, -200}
  },
  {damage = COMBAT_ENERGYDAMAGE,
   effect = CONST_ME_PURPLEENERGY,
   area = createCombatArea(AREA_CIRCLE3X3),
   formula = {-1, -100, -2, -200}
  }
}

 

Changelog

 

//0.6.1

- Revisado o sistema de fórmulas. O programador pode agora escolher se a fórmula é baseada em magiclevel ou skills.

- Corrigidos alguns bugs na estrutura do código.

 

//0.5.0

- Adicionado a praticidade de criação de "n" variáveis combat através da tabela spellConfig.

 

 

 

 

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

Olá, Ékstibianos.

 

O mais tardar, essa semana, estarei lançando o ASC 1.0.1 que conterá diferentes sistemas como:

 

- Suporte a magias de área com efeitos animados. (CONST_ANI_)

- Suporte a condition particular por combate.

- Suporte a fórmulas mais dinâmicas.

 

Não deixem de recomendar o tópico :)

 

Abraços,

Oneshot.

Link para o comentário
Compartilhar em outros sites

- Suporte a condition particular por combate.

 

Woow, gostei bastante.

 

- Suporte a magias de área com efeitos animados.

 

Isso seria varios efeitos em uma area só ? o.O

 

 

Abraços, Recomendado.

Link para o comentário
Compartilhar em outros sites

Na verdade não, mas sim aquelas magias que usam os efeitos CONST_ANI como efeito principal.

Não tenho nenhuma magia aqui para exemplificar, mas creio que você entendeu.

 

Agora sobre o que você falou, acho que futuramente, irei implementar.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 1 month later...
  • 7 years later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...