YesNoOk

Show content

This section allows you to browse the content for this member. Note that you can only see content for which you have sufficient viewing permissions.

*****
Bea is Offline
Contact Bea:

Bea

Contributor

Messages by Bea

    

Re: Post your picture thread

 April 05, 2006, 03:57:22 pm View in topic context
 Posted by Bea  in Post your picture thread (Started by Gaptooth INC. April 02, 2006, 11:06:12 pm
 Board: All That's Left

And who said scars always makes one look uglier? ;P
Sometimes it gives one a more interesting look, showing experience and so on. :)
    

Re: Post your picture thread

 April 05, 2006, 03:41:10 pm View in topic context
 Posted by Bea  in Post your picture thread (Started by Gaptooth INC. April 02, 2006, 11:06:12 pm
 Board: All That's Left

I simple can't belive KFM says he's ugly...
    

Re: Guild all over teh world

 March 12, 2006, 04:11:06 am View in topic context
 Posted by Bea  in Where do you live? (Started by PotS March 11, 2006, 06:21:05 am
 Board: All That's Left

Indeed, but Lula is trully near illiterate. He didn't finish elementary school...
I still wonder how he got elected in the first place.  :-\

Edit:

And I bet that you have not heard about a politician relative being arrested with U$ 100.000,00 in his underware during a major corruption scandal. :P
    

Re: Guild all over teh world

 March 12, 2006, 04:03:21 am View in topic context
 Posted by Bea  in Where do you live? (Started by PotS March 11, 2006, 06:21:05 am
 Board: All That's Left

Are you sure you want to know?

Our president is a corrupt, nearly illiteareted man who knows nothing about politics.
Corruptions runs wild around here and most of the politics only care about they party agenda.
Not to mention recent scandals such as:
http://en.wikipedia.org/wiki/Mensalao

And the fact that a major telecom injected nearly one millon dollars at a small gaming company owned by the president son.

And I find capoeira mostly disgusting... :(

That's all I have to say about Brazil political environment for now. :P
    

Re: Guild all over teh world

 March 11, 2006, 08:20:36 pm View in topic context
 Posted by Bea  in Where do you live? (Started by PotS March 11, 2006, 06:21:05 am
 Board: All That's Left

Curitiba, Parana, Brazil here. Visit at your own discretion... Wheater is pretty random. One never knows what will happen within the next hour.

Kisses.  :-*
    

Bézier curves in mugen

 October 02, 2005, 08:15:52 pm View in topic context
 Posted by Bea  in Bézier curves in mugen (Started by Bea October 02, 2005, 08:15:52 pm
 Board: Code Library

The idea:
 - To implement a basic bézigon (path made of two or more bezier curves) using mugen script language.

Edit due to Val suggestion:

a bezier code is a smooth curve calculated from at least three points, using this code you can make your projectile fly smooth curves from position a to position b (good for homing projectiles etc).

The code below will generate two quadratics bézier curves with random control points starting at player position and ending out of screen. The child helper will smoothly follow the bézier curves creating a quite nice move. :P

The sources:
 - http://www.gamedev.net/reference/articles/article888.asp
 - http://www.gamedev.net/reference/articles/article1584.asp
 - http://www.wtamu.edu/academic/anns/mps/math/mathlab/col_algebra/col_alg_tut54_bi_theor.htm
 - http://en.wikipedia.org/wiki/Bernstein_polynomial
 - http://en.wikipedia.org/wiki/Bezier_curve

The result:

Quote
;---------------------------------------------------------------------------
; Bézier control points helper
[Statedef 3510]
type    = S
movetype= A
physics = N
velset = 0,0
ctrl = 0
anim = 9999
SprPriority = 2

[State 3510, Generate Point 0]
Type = Null
trigger1 = fvar(2) := 0
persistent = 0

[State 3510, Generate Point 0]
Type = Null
trigger1 = fvar(3) := pos y
persistent = 0

[State 3510, Generate Control points]
Type = Null
trigger1 = (1) || fvar(4) := 160 * random/1000.0 * facing; * ifelse(random < 500, 1, -1)
trigger1 = (1) || fvar(5) := -15 -60 * random/1000.0
trigger1 = (1) || fvar(6) := 320 * random/1000.0 * facing; * ifelse(random < 500, 1, -1)
trigger1 = (1) || fvar(7) := -10 -60 * random/1000.0 + 120 * ifelse(random < 500, 0, 1)
trigger1 = (1) || fvar(8) := 320 * random/1000.0 * facing; * ifelse(random < 500, 1, -1)
trigger1 = (1) || fvar(9) := -10 -60 * random/1000.0
trigger1 = (1) || fvar(10) := 320 * random/1000.0 * facing; * ifelse(random < 500, 1, -1)
trigger1 = (1) || fvar(11) := -10 -60 * random/1000.0
trigger1 = (1) || fvar(12) := 320 * random/1000.0 * facing; * ifelse(random < 500, 1, -1)
trigger1 = (1) || fvar(13) := -15 -60 * random/1000.0 + 120 * ifelse(random < 500, 0, 1)
trigger1 = (1) || fvar(14) := (320 + 80 * random/1000.0) * facing; * ifelse(random < 500, 1, -1)
trigger1 = (1) || fvar(15) := -240 * random/1000.0
persistent = 0

;Spawn the helpers
[State 3510, Helpers]
Type = Helper
trigger1 = time = 0
stateno = 3512
ownpal = 1
id = 3510
pos = 0,0

[State 3510, DestroySelf]
Type = DestroySelf
trigger1 = numhelper(3510) = 0

;---------------------------------------------------------------------------
; Bézier points
[Statedef 3512]
type    = S
movetype= A
physics = N
velset = 0,0
ctrl = 0
anim = 3310
SprPriority = 2

[State 3512, NoShadow]
Type = AssertSpecial
trigger1 = 1
flag = noShadow

[State 3512, VarSet]
Type = VarSet
trigger1 = var(1) = 0
var(1) = parent, var(0)

[State 3512, Control how many steps I had taken]
Type = VarAdd
trigger1=  fvar(11) >= 1.0
v = 4
value = 1

[State 3512, A]
Type = VarSet
trigger1 = var(0) = 0
trigger2 = fvar(11) >= 1.0
fvar(10) = 1.0
ignorehitpause = 1

[State 3512, A]
Type = VarSet
trigger1 = var(0) = 0
trigger2 = fvar(11) >= 1.0
fvar(11) = 0.0
ignorehitpause = 1

[State 3512, Generate Control points]
Type = Null
trigger1 = fvar(11) = 0.0
trigger1 = (1) || fvar(2) := ifelse(var(4) = 0, parent, fvar(2), fvar(8))
trigger1 = (1) || fvar(3) := ifelse(var(4) = 0, parent, fvar(3), fvar(9))
trigger1 = (1) || fvar(4) := parent, fvar(4 + var(4) * 6)
trigger1 = (1) || fvar(5) := parent, fvar(5 + var(4) * 6)
trigger1 = (1) || fvar(6) := parent, fvar(6 + var(4) * 6)
trigger1 = (1) || fvar(7) := parent, fvar(7 + var(4) * 6)
trigger1 = (1) || fvar(8) := parent, fvar(8 + var(4) * 6)
trigger1 = (1) || fvar(9) := parent, fvar(9 + var(4) * 6)

[State 3512, Generate X my offset]
Type = varset
trigger1 = 1
fvar(0)= fvar(2)*fvar(10)*fvar(10)*fvar(10)+ 3 * fvar(4)*fvar(10)*fvar(10)*fvar(11)
ignorehitpause = 1

[State 3512, Generate X my offset]
Type = varset
trigger1 = 1
fvar(0) = fvar(0)+ 3 * fvar(6)*fvar(10)*fvar(11)*fvar(11) + fvar(8)*fvar(11)*fvar(11)*fvar(11)
ignorehitpause = 1

[State 3512, Generate Y my offset]
Type = varset
trigger1 = 1
fvar(1)=fvar(3)*fvar(10)*fvar(10)*fvar(10)+ 3 * fvar(5)*fvar(10)*fvar(10)*fvar(11)
ignorehitpause = 1

[State 3512, Generate Y my offset]
Type = varset
trigger1 = 1
fvar(1) = fvar(1)+ 3 * fvar(7)*fvar(10)*fvar(11)*fvar(11)+fvar(9)*fvar(11)*fvar(11)*fvar(11)
ignorehitpause = 1

[State -3, M]
Type = VarSet
trigger1 = Pos X - (fvar(0) + (parent, pos x)) != 0
fvar(12) = -((Pos Y - fvar(1))/(Pos X - (fvar(0) + (parent, pos x)))* facing)

[State -3, M] ;There can be no triangle if both points share the same X cord
Type = VarSet
trigger1 = Pos X - (fvar(0) + (parent, pos x)) = 0
fvar(12) = 0

[State -3, Angle]
Type = AngleDraw
trigger1 = 1
value = Atan(fvar(12)) * (180.0/Pi) + 180 * ifelse(facing=1,(Pos X - (fvar(0) + (parent, pos x)) > 0),(Pos X - (fvar(0) + (parent, pos x)) < 0))

[State 3512, PosSet]
Type = PosSet
trigger1 = 1
x = fvar(0) + (parent, pos x)
y = fvar(1)
ignorehitpause = 1

[State 3512, A]
Type = VarAdd
trigger1 = 1
fv = 10
value = -0.02
ignorehitpause = 1

[State 3512, A]
Type = VarAdd
trigger1 = 1
fv = 11
value = 0.02
ignorehitpause = 1

[State 3512, Pause]
Type = Trans
trigger1 = 1
trans = add
ignorehitpause = 1

[State 3512, DestroySelf]
Type = DestroySelf
trigger1 = var(4) = 2
ignorehitpause = 1

How it works:
- The mother helper creates several control points, saving them in fvar(4) and onward
- Each node iteration requires 4 points (we're using quadratic bézier curves here). For each node bigger than 1, the start point is last node end point
- For a path with N nodes, the mother helper needs to generate 4 * N points. In our example the starting point fvar(2), fvar(3) is 0,0.
- In the child helper, var(4) represents the number of nodes our path will have
- Each control point is made of a set of fvars. Fvars with even numbered indexes represents the X component of the point. Fvars with odd numbered indexes represents the Y component of the point.
- The X component of the control point must be adjusted by facing to guarantee that the curve will follow the right direction.
- In the child helper, fvar(10) and fvar(11) means the amount of the curve already done in parts of 1.0. They're increased and decrease by a fixed amount which must be a fraction of 1.0. The size of this increment determines how many points it will take to fully iterate a node. To find out the increment, divide 1.0 per the number of points you want to draw in each curve. In our example here we have 50 points (1.0/50 = 0.02)
- In the child helper, fvar(10) is always incremented and fvar(11) is always decremented
- The child helper destroys itself when he finishs the whole path, saving in var(4) the number of nodes already completed.
- The given code computes the angle between the current point and the next one and apply it to the child helper.

That's it. If you got any other doubt, ask.

Kisses.
    

Re: Bitwise shifting & Powers of two

 April 19, 2005, 02:10:44 pm View in topic context
 Posted by Bea  in Bitwise shifting & Powers of two (Started by Winane April 19, 2005, 01:23:42 pm
 Board: Code Library

Not really. Everything seems fine except for assuming that 2**22 will work on every mugen system. :)
Mine gets broken at 2**21, for one. :)

And lovely way you did to get power(2,x).
    

Re: Books, Anyone?

 March 23, 2005, 12:34:57 am View in topic context
 Posted by Bea  in Books (Started by Sepp September 06, 2004, 07:17:29 pm
 Board: Entertainment

Oh gosh...
I forgot about Edgar Allan Poe and H. P. Lovecraft.
Cthulhu mythos owns.
    

Re: Books, Anyone?

 March 21, 2005, 05:15:54 pm View in topic context
 Posted by Bea  in Books (Started by Sepp September 06, 2004, 07:17:29 pm
 Board: Entertainment

Well, I had a good time reading Shogun and Tai Pan by James Clavell.
Frank Herberts Dune is also a good call.
The Hunt for the Red October by Tom Clancy is also worth reading.
Most of Anne Rice books are nice and entertaining.

And of course, there is J. J. Tolkien. :P

Those are the ones I can remember right now.
    

Re: Special Attacks and Such

 January 03, 2005, 02:57:57 pm View in topic context
 Posted by Bea  in Special Attacks and Such  (Started by Breakfast July 04, 2004, 12:44:56 am
 Board: Code Library

You know, checking projectile hit within the same state that the projectile is spawned isn't good code practice... Character tend to leave that state before the projectile hits its target and then, bang!, no life added.
Such code should be put at a special state such [State -2]

Kisses.
    

Re:Creators Code Permissions

 February 18, 2004, 12:23:34 pm View in topic context
 Posted by Bea  in Creator's Permissions (Started by JustNoPoint January 08, 2004, 06:34:32 pm
 Board: Resource Releases

Er... I forgot to update my post since I added a main page for my site. So I now want people to enter it before downloading my stuff and for doing such I had to turn off hotlinking of zip and rar files... :P
But the files of all my character continues free for anyone too use, copy or change the programmer name in the def file and release it as his own. :P

Have fun...
 
    

Aimed projectile

 February 05, 2004, 11:53:55 am View in topic context
 Posted by Bea  in Aimed projectile  (Started by Bea February 05, 2004, 11:53:55 am
 Board: Code Library

Hello, hello, hello.
After having messed with angles in mugen, I couldn't help but waste my whole night thinking in normals, vectors and so on... I almost lost my sleep due to that... :P
So, the first thing I did today as I got myself to my computer was to program a code for aimed projectiles based on the calculus of normalized vectors.

So, here is the code :P:

;Finds the X component of the vector Player, EnemyNear
;Formula to find the components of a given vector AB
;V(x) = B(x) - A(x)
;V(y) = B(y) - A(y)
[State 1640, X]
Type = VarSet
Trigger1 = 1
fvar(13) = (EnemyNear(0), Pos X - Pos X) * Facing ;Adjust the direction towards player facing

;Finds the Y component of the vector Player, EnemyNear
[State 1640, Y]
Type = VarSet
trigger1 = 1
fvar(14) = (EnemyNear(0), pos Y - Pos Y)

;Finds the vector length
;Formula of the length of a given vector AB
;|AB| = (AB(x)^2  + AB(y)^2)^1/2
[State 1640, Vector Length]
Type = VarSet
trigger1 = 1
fvar(15) = Exp(0.5*ln((fvar(13) * fvar(13))+(fvar(14) * fvar(14))))

;To find the normalized vector one has to use
;the following formula:
;Normal(AB) = V(AB)/|AB|
;So, you divide the X and Y components of one vector by it's length
;Obs:
;Normalized vector = The normalized vector of X is a vector in the same direction
;but with norm (length) 1.
;Now that we have the normalized vector, we multiply it by the desired absolute velocity,
;such as 5 pixels per frame.

;Projectile
[State 1640, Projectile]
Type = Projectile
trigger1 = animelem = 2
projanim = 1010
projhitanim = 1020
projremanim = 1020
projremovetime = 240
projpriority = 1
projshadow = -1
projsprpriority = 2
projid = 1000
offset = 0 ,-35
velocity = (Fvar(13)/fvar(15)) * 5.0, (FVar(14)/fvar(15)) * 5.0 ;Normalizes the components
;and multiply by the desired absolute velocity.
attr = S, NP
hitflag = MAF
damage  = Floor(((3 + (3 * Random/1000.0)) * Fvar(28) + 0.5)), Floor(1 + (Random/1000.0) * Fvar(28) + 0.5)
animtype = Hard
guardflag = M
pausetime = 0,12
sparkno = 1
sparkxy = 26,0
hitsound = 5, 2
guardsound = 6, 1
guard.sparkno = 40
ground.type = High
ground.velocity = -2.4
ground.slidetime = 12
ground.hittime  = 12
air.velocity = -2.4,-4.5
air.fall = 1
air.recover = 0
ignorehitpause = 1
getpower = 50, 75
givepower = 20, 30

Well, now I have to find the next funny formula to code in mugen... :P

kisses.
    

Angle between player and the nearest opponent

 February 04, 2004, 10:40:36 pm View in topic context
 Posted by Bea  in Angle between player and the nearest opponent  (Started by Bea February 04, 2004, 10:40:36 pm
 Board: Code Library

Okay, okay, okay. After a few minutes smacking my head against the wall, I gotta this code to calculate the angle between player and EnemyNear(0):
(Btw, I'm giving away a code to calculate absolute distance between player and EnemyNear(0) with it :P)

[State -3, Distance Between Player and the Nearest enemy]
Type = VarSet
trigger1 = 1
fvar(10) = Exp(0.5*ln((((EnemyNear(0), Pos X) - (Pos X)) * (( EnemyNear(0), Pos X) - (Pos X)) + ((EnemyNear(0), Pos Y - Pos Y) * (EnemyNear(0), Pos Y - Pos Y)))))

[State -3, M]
Type = VarSet
trigger1 = EnemyNear(0), Pos X != Pos X
fvar(11) = -((EnemyNear(0), Pos Y - Pos Y)/(EnemyNear(0), Pos X - Pos X))

[State -3, M] ;There can be no triangle if both points share the same X cord
Type = VarSet
trigger1 = EnemyNear(0), Pos X = Pos X
fvar(11) = 0

[State -3, Angle]
Type = VarSet
trigger1 = 1
fvar(12) = Atan(fvar(11)) * (180.0/Pi) ;Angle given in degrees.

And that was "Yet another code no one will use, nor will give a damn" brought to you by SMEE.
Now, there is no need to point out that no one other than would use this code. :P

Edit: Removed the ABS in the M formula and fixed the inverted cartesian plan that mugen uses by multipling M by -1.

Have fun.  
    

Re:Creators Code Permissions

 January 09, 2004, 11:27:10 am View in topic context
 Posted by Bea  in Creator's Permissions (Started by JustNoPoint January 08, 2004, 06:34:32 pm
 Board: Resource Releases

Well, I might add mine as well:
Mr. Karate Gb (http://ma.smeenet.org/files/karate.rar)
Ryo Gb (http://ma.smeenet.org/files/ryogb.rar)
Rugal Gb (http://ma.smeenet.org/files/rugalgb.rar)
Andy Gb (http://ma.smeenet.org/files/AndyGb.rar)
Buffed Up Karate Gb (http://ma.smeenet.org/files/HNNKarate.rar)

The only thing I ask other people to mention is that the AI activation code that is used was first developed by Kamek (or at least keep the mention in the cns, as I do). Otherwise, one can take those, change the creator name in DEF file, make another readme.txt and release them as their own.

Have fun.
    

Re:If you win a perfect match...

 November 19, 2003, 06:48:31 pm View in topic context
 Posted by Bea  in If you win a perfect match...  (Started by squallcolin November 19, 2003, 08:19:35 am
 Board: Tips, Tricks, Tutorials

You just need the winperfect trigger and maybe a time trigger...
There is no need to check your life, to check p2 life or whatever. Winperfect only triggers when you win a round with a full life bar...
    

Re:If you win a perfect match...

 November 19, 2003, 11:18:45 am View in topic context
 Posted by Bea  in If you win a perfect match...  (Started by squallcolin November 19, 2003, 08:19:35 am
 Board: Tips, Tricks, Tutorials

No, no, no!!! That's ugly and doesn't makes sense when you have a winperfect trigger.
People, please, read the whole triggers.txt. There are lots of unusual triggers that no one uses there.

Instead of using Life >= 999, use this:
[State whatever, I don't care]
Type = Explod
trigger1 = winperfect
...

Kisses.
    

Re:Square roots and General Roots in mugen...

 November 07, 2003, 01:30:03 pm View in topic context
 Posted by Bea  in Square roots and General Roots in mugen...  (Started by Bea November 07, 2003, 12:20:13 pm
 Board: Code Library

Winane: The most significant one is the ** operator, which has a bad precision, doesn't like to be in expressions and doesn't accept float numbers as its base. The other thing is expression processing. Mugen hates complex expression with passion and will give you broken results whereas it can...
Also, it's float number precision is really bad...
So, math in mugen is like a nightmare.
    

Square roots and General Roots in mugen...

 November 07, 2003, 12:20:13 pm View in topic context
 Posted by Bea  in Square roots and General Roots in mugen...  (Started by Bea November 07, 2003, 12:20:13 pm
 Board: Code Library

Well, well, well. I know that many here might not be too found on math, but there is a thing some might find interesting. It was originally posted at MugenDev an year ago.
There are two ways to get a square root of a number in mugen.
The first one is by using the exp and ln functions in this way:
;Square Root
[State WhatEver, I don't Care]
Type = VarSet
trigger1 = Something
fvar(39) = exp(0.5*ln(fvar(38)))

This soluction is nice, cleaner and will give more accurate results than the second method below. Thanks to ANMC for pointing me out that the exp function in mugen ain't broken as some other math functions are and could be used this way.
You can always try to generalize the function so you won't be limited to square roots:
;Root Function
[State WhatEver, Root]
Type = VarSet
trigger1 = Something
fvar(39) = exp((1.0/fvar(37)) * ln(fvar(38)))

Here fvar(37) represents the root base (2, 3, 4 and so on). Keep in mind that square roots and roots functions are very slow.

Also, you can use exp to calculate power in this way: exp(fvar(37)*ln(fvar(38))). This gives a better result than the ** operator in mugen.

Now, on the second method, that I'll be posting just for my own sake, as I spent some good nights awake and lost many precious dating hours trying to figure out the code. It has rounding error problems, is slower than the code above and so on, but it works quite nicelly.
This code is based in taylor series:

;Square Root of a number using Taylor series.
[State 666, SquareRoot1]
Type = VarSet
trigger1 = 1
fv = 0
value = Value ;We'll be storing the value we want to get the sqrt in the parent's fvar(0)

[State 666, SquareRoot10]
Type = VarSet
trigger1 = 1
fv = 1
value = 0.5*ln(fvar(0)) ;This is the main key for the success.

[State 666, SquareRoot11]
Type = VarSet
trigger1 = 1
fv = 2
value = fvar(1)*fvar(1)/2.0 ;Remember guys, the ** operator does not work very well in mugen

[State 666, SquareRoot12]
Type = VarSet
trigger1 = 1
fv = 3
value = fvar(2)*fvar(1)/6.0 ;fvar(1)**3/3!

[State 666, SquareRoot13]
Type = VarSet
trigger1 = 1
fv = 4
value = fvar(3)*fvar(1)/24.0 ;fvar(1)**4/4!

[State 666, SquareRoot14]
Type = VarSet
trigger1 = 1
fv = 5
value = fvar(4)*fvar(1)/120.0 ;fvar(1)**5/5!

[State 666, SquareRoot15]
Type = VarSet
trigger1 = 1
fv = 6
value = fvar(5)*fvar(1)/720.0 ;fvar(1)**6/6!

[State 666, SquareRoot16]
Type = VarSet
trigger1 = 1
fv = 7
value = fvar(6)*fvar(1)/5040.0 ;fvar(1)**7/7!

[State 666, SquareRoot17]
Type = VarSet
trigger1 = 1
fv = 8
value = fvar(7)*fvar(1)/40320.0 ;fvar(1)**8/8!

[State 666, SquareRoot18]
Type = VarSet
trigger1 = 1
fv = 9
value = fvar(8) *fvar(1)/362880.0 ;fvar(1)**9/9!

[State 666, SquareRoot19]
Type = VarSet
trigger1 = 1
fv = 10
value = fvar(9)*fvar(1)/3628800.0 ;fvar(1)**10/10!

[State 666, SquareRoot19]
Type = VarSet
trigger1 = 1
fv = 11
value = fvar(10)*fvar(1)/39916800.0 ;fvar(1)**11/11!

[State 666, SquareRoot20]
Type = VarSet
trigger1 = 1
fv = 12
value = fvar(11)*fvar(1)/479001600.0 ;fvar(1)**12/12!

[state 666, SquareRoot22]
Type = VarSet
trigger1 = 1
fvar(39) = 1+fvar(1)+fvar(2)+fvar(3)+fvar(4)+fvar(5)+fvar(6)+fvar(7)+fvar(8) +fvar(9)+fvar(10)+fvar(11)+fvar(12)
;The result is stored at fvar(39)

If you need to calculate the root of a number with mugen, stick with the first method. It has several advantages over the one I developed using Taylor series.

Have fun. :P