| E ai, blz? Lá pra meados de 2006 (caralho, como faz tempo) eu estava tentando implantar a Série de Fibonacci no Mugen, e com a ajuda do SmS o código funcionou que foi uma blz... mas nunca postei (na verdade, eu achei que tinha postado... mas descobri hoje que nunca postei :P) a real utilização para esse código. Para quem não conhece o que é a Série de Fibonacci, aqui vai uma breve explicação copiada da Wikipedia Quote Consiste em uma sequência de crescimento natural,numérica por exemplo: 1, 1, 2, 3 ... A sequência de Fibonacci define como 1,1,2,3,5,8,13,21,34,55,89,144,233,... ou seja, o número seguinte é a soma de seus dois antecessores. Depois de quebrar a cabeça, o SmS desenvolveu esse código que faz a soma (correta :P) da Série de Fibonacci. Quote [State 200, 1] type = VarSet triggerall = time = 1 trigger1 = var(23)=1 trigger1 = var(22):=Var(20)+Var(21) trigger1 = var(24):=Var(22) trigger2 = var(23)=2 trigger2 = var(20):=Var(21)+Var(22) trigger2 = var(24):=Var(20) trigger3 = var(23)=3 trigger3 = var(21):=Var(22)+Var(20) trigger3 = var(24):=Var(21) trigger4 = var(23)=0 trigger4 = var(20):=1 V= 23 value = ifelse(Var(23) = 3,1,Var(23)+1) e para controle, fiz esse pequeno DisplayToClipBoard Quote [State -2, DisplayToClipBoard] type = DisplayToClipBoard trigger1 = 1 text = "var(20) %d, var(21) %d, var(22) %d, var(23) %d, var(24) %d" params = var(20),var(21),var(22),var(23),var(24) Mas depois de tudo isso, pra que serve essa porra de código maluco? Esse código tem 1001 utilidades como: randomização, sistema de experiência, sistema de danos, seleção de golpes, advanced guard e até uma ativação de AI mais elaborada, assim como a programação da própria AI. E como fazer isso? No Rock, eu comecei a utilizar o VarRandom bem simples e sem vínculo com o Fibonacci. Quote [State -3, VarRandom] type = VarRandom triggerall = Var(2) = 1 trigger1 = 1 v = 4 range = 7 Dessa maneira a var(4) fica randomizando de 1 a 7 sem parar, mas isso depois que a var(2) for ativada. Aplicando o código Fibonacci conforme escrevemos acima, teremos: Quote [State -3, VarRandom] type = VarRandom triggerall = Var(2) = 1 trigger1 = 1 v = 4 range = var(20),var(24) O valor da randomização ficará entre essas duas variáveis. Mas em certos pontos os valores podem passar de 121393,196418... portanto é bom zerar as variáveis depois de certo valor. Além desse tipo de randomização, poderemos fazer a escolha de um golpe "secreto"... aqueles golpes mais fodões que só podem ser ativados em situações extremas :P Ainda com base no VarRandom acima, podemos fazer vários tipos de randomização na escolha do golpe: Quote [State xxx, ChangeState] type = ChangeState triggerall = Var(24) = Var(21) trigger1 = 1 value = yyy Quote [State xxx, ChangeState] type = ChangeState trigger1 = 1 value = ifelse(Var(20)-Var(22)=Var(21),yyy,zzz) Quote [State xxx, ChangeState] type = ChangeState triggerall = Var(24) = Var(22) trigger1 = 1 value = yyy Além dessa, podemos fazer muitas outras randomizações utilizando os valores que são passados pela Série de Fibonacci. Também podemos fazer um sistema de danos utilizando a var(23), apesar desse sistema de danos ser bem simples é possível adicionar mais elementos a ele. O valor da var(23) sempre fica como 1, 2 e 3. Mas adicionando um simples contador a ela, podemos ter algo assim (continuando com a base da var(23) feito lá pra cima): Quote [State xxx,VarSet] type = VarSet triggerall = (Var(23) = 2&&MoveType = A) value = 1 Assim, seu personagem teria certas condições para ter um ganho de danos e até daria para fazer um outro tipo de randomização. Por enquanto é isso, de 2006 até agora dei uma boa enferrujada com o Mugen... mas aos poucos vou voltando. Assim que der, vou postar as outras coisas que consegui fazer com esse código.
www.paodemugen.com.br |