ON

[Arquivado]Advanced Spell Config 0.6.1

Por Oneshot, 14 de nov. de 2010 em Noticias - Arquivo

5.0 (1)
13
2.1k
OneshotO
14 de novembro de 2010 às 10:00

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 Novembro 17 por Oneshot

joaohdJ
14 de novembro de 2010 às 10:17

Muito melhor desse jeito. Mais claro e entendível. Chego a acreditar que os servidores possam adotar esse sistema... Funcionaria com conditions também (eu sei que não)?

 

Muito bom mesmo!

 

 

flw

OneshotO
14 de novembro de 2010 às 10:18

Estarei dando uma olhada para ver se consigo adicionar suporte a Conditions. rsrs

Saymon14S
14 de novembro de 2010 às 11:46

Eu te amo, orra, muito bom do jeito que eu sou fanatico por magias isso é uma mao na roda, mais terei de estudar um pouco de tables

:rimbuk:

 

Abraços, rep+

KarislayerK
14 de novembro de 2010 às 11:58

Carai véio, muito bom mesmo, meus sinceros e calorosos parabéns!!!

 

REP+

OneshotO
16 de novembro de 2010 às 20:19

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.

Saymon14S
16 de novembro de 2010 às 20:49
- 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.

OneshotO
16 de novembro de 2010 às 21:44

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 Novembro 16 por Oneshot

calamgoC
18 de novembro de 2010 às 10:31

essas magias nao tem suporte a condition ainda né?

e nem formula tipo assim...

((lv*0.25 + maglv*3) * -2.3)

Editado Novembro 18 por senhor ok

Saymon14S
18 de novembro de 2010 às 11:14

Nossa nessa nova versao melhorou bastante ein, vo ficar aguardando as novas versões

:p

1 mês depois...
sxn0S
19 de dezembro de 2010 às 03:34

Muito bom cara ! continue assim,esperamos pelas novas atualizações !

1 mês depois...
EskyloE
21 de janeiro de 2011 às 20:26

Como já dito uma mãozona na roda! Parabéns pelo trab. Oneshot, já estou usando =D

 

7 anos depois...
StigalS
25 de abril de 2018 às 16:28
Esta noticia foi arquivada.
Este tópico está fechado e foi movido para Noticia - Arquivo.

+ Caso tenha atualizações você poderá criar outro tópico.