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.

*
Lemures is Offline
Contact Lemures:

Lemures

User

Messages by Lemures

    

Re: Learning Fundamentals

 May 15, 2010, 11:57:15 pm View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Okay, finally got it working. I had to bug someone for help through private messages and was pointed in the right direction. My original intent had been to recreate CVS hyper sparks, but as I had decided from the outset that i would not be aiming for accuracy to any previous encarnation of my char, I put something together using other hyper sparks via explodes and helpers and im quite happy with the result.

I havent had much time lately to work on my char (i got a promotion at work which is great, but the downside is my workweek just increased by about 14hrs), but I would still like to dedicate some time to MUGEN creation, even if only a slow crawl. So. next couple of questions...

First...

I would really like to give my char both Parry and Just Defend. I went into the code snippet archive and toyed with the corresponding code there, but even with the instructions, I dont seem to have the understanding to make it work. My shortcoming is probably in the Variables department. To date, Ive only used Vars for velocities and damage values - very elementary stuff.

So what I would like to know is if there is a poormans way to work these features in? A more basic, elementary method? As I said, Im not aiming for accuracy, I dont need these features to feel EXACTLY like they do in CVS/SF3/MoTW. I suppose Im just hoping that the reason the codes in the snippet archive are so complex (to me, at least) is because they aim for accuracy.

Second...

Im interested in giving my char a counter-attack, a la Geese Howard (low, mid and high, depending on button used). Do I simply create a starting state for each counter, then add a changestate triggered by the corresponding attack type and a code to nullify the damage?

Third...

When SNKs Kyo begins his punching combinations with strong punch, theres a frame or two in his windup where he will absorb and push through incoming attacks and swing away, as if blocking mid-attack. What sctrl is used for this?

Thanks.
    

Re: Learning Fundamentals

 April 25, 2010, 11:23:56 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Alright, I scrapped the whole Explod and ModifyExplod deal I was working with and started from scratch with Helper (this being my first time using that sctrl).

Here's what I got so far on that. The Pause, Playsnd and BGpalfx are unchanged. Here's the Helper...
Quote
[State 0, Helper]
type = Helper
trigger1 = animelemtime(3) = 0
helpertype = normal ;player
name =  "flowered spark rays"
ID = 8800
stateno = 8800
pos = 0, 0
postype = p1    ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 1
supermovetime = 999999
pausemovetime = 999999
supermove = 1
pausemove = 1

And here's the Helper's StateDef...
Quote
[statedef 8800]
type = A
physics = N
movetype = I
velset = 0,0
ctrl=0

[State 0, ChangeAnim]
type = ChangeAnim
trigger1 = time = 0
value = 8800

[State 0, DestroySelf]
type = DestroySelf
trigger1 = animtime = 0

It's a babystep, but at least with the use of Helper, the single-frame-30-tick animation IS finally counting through the pause, disappearing in unison with the end of the pause.

So the next step/question is, what sctrl do I use to modify the Helper during the pause (create the shrinking or expanding effect)? As it is no longer an Explod, ModifyExplod should have no effect on it.

I tried using the "size.xscale / size.yscale" parameters from Helper, but dividing or multiplying by time, while giving me an altered image, will not give me a continuous, smooth, flowing transformation. The image will be resized, but static.

Where do I go from here?

Thanks.
    

Re: Learning Fundamentals

 April 25, 2010, 01:00:00 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

I had to knock the char's animelem time back down to 1, because the pause would freeze him for 30ticks, and THEN he'd go through his own 30tick count.

Let me post the whole cluster-eph I'm working with. Maybe then the source of my trouble will show itself.

Quote
[State 0, Pause]
type = Pause
trigger1 = animelem = 3
time = 30
movetime =30
pausebg = 1
supermovetime=99999
pausemovetime=99999
;ignorehitpause =
;persistent =
pausemove=1

Like I said, I had to knock animelem 3 back down to its previous length of 1 tick.

Pause doesnt have all the parameters of SuperPause but of course, I wanted the background to darken and a sound, so...

Quote
[State 0, PlaySnd]
type = PlaySnd
trigger1 = animelem = 3
value = S8300,0
volume = 0
channel = -1
;lowpriority = -1
freqmul = 1.0
loop = 0
pan = 0
;abspan =
;ignorehitpause =
;persistent =

[State 0, BGPalFX]
type = BGPalFX
trigger1 = animelem = 3
time = 30
;add = 100, 100, 100
mul = 125, 125, 125
;sinadd = 0,0,0,10
;invertall = 0
;color = 256
;ignorehitpause =
;persistent =

And now for the explode. Its a single frame with a 30 tick duration.

Quote
[State 0, Explod]
type = Explod
trigger1 = animelem = 3
anim = 8800
ID = 3333
pos = 0,0
postype = p1  ;p2,front,back,left,right
facing = 1
vfacing = 1
bindtime = -1
vel = 0, 0
accel = 0, 0
random = 0,0
removetime = -2
supermovetime = 999999
pausemovetime = 999999
pausemove = 1
supermove  = 1
sprpriority = 0
ontop = 1
shadow = 0,0,0
ownpal = 0
removeongethit = 0
ignorehitpause = 1
;persistent = 1

The Explode will stay on screen for the duration of the pause. However, I don't know if it because the Explode's animation is 30 ticks long, or if its because the Pause is holding it there. All I know is that as the pause concludes, the Explode disappears.

So then I try to modify the Explode during the pause. I'm toying with this expression for that...

Quote
[State 0, ModifyExplod]
type = ModifyExplod
trigger1 = animelemtime (3) = 1
ID =3333
scale = 1.5/time, 1.5/time
supermovetime = 999999
pausemovetime = 999999
pausemove = 1
supermove = 1

I wasn't sure if that trigger was looking at the char's animelemtime, or the Explode's animelemtime. So I tried both "animelemtime (3) =1" and "animelemtime(1) = 1". Neither affected the explode at all...
    

Re: Learning Fundamentals

 April 25, 2010, 12:28:04 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

I'll try to word it better.

What I mean by "move" is "going through animation ticks".

The Pause is 30 ticks long. The animelem in which I pause is 30 ticks long as well. I did this as per your instructions to "time your animation to match the pausetime".

Or did I misunderstand and you were referring to the Explode's animation and NOT the char's? What i understood from your reply was that both the char and explodes should be allowed to move for the duration of the pause.

    

Re: Learning Fundamentals

 April 25, 2010, 12:11:49 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

I've been trying to work with Pause, but it hasnt been much more cooperative.

For some reason, it doesn't seem to allow me to move. I made the pause 30 ticks long, and allowed 30 ticks movetime. Also, the animelem that triggers the pause was extended to 30 ticks in my animations file. But it just won't work. The game will pause for 30 ticks, my char not allowed to move, and at the conclusion of the Pause, THEN my char will go through his 30 tick animelem.

Here's what I got.

Quote
[State 0, Pause]
type = Pause
trigger1 = animelem = 3
time = 30
movetime =30
pausebg = 1
supermovetime=99999
pausemovetime=99999
;ignorehitpause =
;persistent =

Why isn't this allowing me to move?
    

Re: Learning Fundamentals

 April 13, 2010, 10:54:32 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks for your reply, Zero.

The simple method of using an animation under the "anim=" parameter of the SuperPause state controller is what I was assuming/expecting to use. The sprites I'm using are ones I've either requested permission for or that are declared to be used freely. So I dig into these resources, breaking them down, pulling the sprites, looking through code but NEVER simply copying and pasting and NEVER using anything unless I understand how it works. And that's what I'm trying to do now.

Some effects are a bit more complicated than using an Explod

That's the part I'm interested in. I look through the work of my favorite coders and can, for the most part, understand what I'm looking at. This whole SuperPause animation deal really stumped me though because in their AIR file, pretty much every piece of anim that goes into their SuperPause animation consists of a single sprite. So that tells me that there's a lot more going on than just plugging in an anim.

I'm toying around with Explode and ModifyExplode and I think I might be on the right track. With explode I just add the single sprite I wanna use and use removetime to keep it on-screen long enough to see the effects of the modification.

With ModifyExplode, I'm trying to make it shrink via the "scale=" parameter. The shrinking needs to be smooth and continuous, so the only factor I could think to use was time. Here's what I'm working with...

[State 0, ModifyExplod]
type = ModifyExplod
trigger1 =1
ID =3333
scale = 1.5/time, 1.5/time
supermove = 1

The big problem I'm having is that the shrinking effect caused by the constant growth of the denominator (time) doesn't activate until AFTER the superpause, even though the sprite appears the moment the superpause begins.

I can only guess that its because the denominator is time and time is stopped during the superpause. I can't think of another viable denominator to use though that has a constant flow to it. I tried using "animtime", hoping that the explode's gameticks would be independant of game-time with the use of "supermove" and/or "supermovetime", but no luck.

So thats where I'm stuck for now. Any help would be appreciated. Thanks.
    

Re: Learning Fundamentals

 April 12, 2010, 10:49:17 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

I got it working. The problem was that the motion/input leads, obviously, into the first state. The change in velocity takes place in the second state, and I was asking the second state to recognize an input it was in no way connected to. So I made the two states into one then used my desired IfElse on VelSet there. It worked, but created a new problem - when my char was hit out of his rising attack, he would go into state 0 in mid-air. After trying to work with physics and type to solve the problem to no avail, I noticed StateTypeSet and the problem was solved soon after.

With the exception of guard damage and a few sounds, I pretty much have a classic, base version of my char. I even have the Explodes and palette effects working nicely. I've been able to find my way through most of this coding terrain without having to post a question for every speedbump; although doing so would've probably saved me dozens of hours, I wouldn't've learned all I've learned while digging through the docs for answers. I have plans to take my char further -  a few new specials, a new hyper, perhaps using new/unique sprites for some of his basic attacks. But I wanna have all the essentials covered before I start taking liberties with him. So, the next step...

SuperPause animations.

I had assumed, as per what I read in sctrls, that I would use the "anim" slot for the super sparkly power surging animations just about all characters have. But I see that's not the case. Only three or so unanimated frames exist for each SuperPause animation. How are these animations implemented then? As per the "supermovetime" controller in Explode, I'm assuming its through there.

I'm pretty lost on this one. Not too sure how to even approach it. I could really use some help on this one.

Thanks.
    

Re: Learning Fundamentals

 April 07, 2010, 09:59:54 pm View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks, again. I got the move working now.

I've given my char a couple of moves now and they're working nicely. The only issues I've encountered are implementing the appropriate velocity, but I've managed to find my way around them. But not I'm working on my char's rising attack and I've encountered a problem, involving velocity again, that I can't seem to find my way through.

I've been using IFELSE on special attacks' velsets to vary the velocity according to what button is being used. It's worked fine for the first two special attacks I've given the char, but I can't get it to work for the rising attack.

example:
velset = ifelse (command = "qcfa", 2, ifelse (command = "qcfb", 4, 6)), 0

What I'm trying to accomplish is having the char hit once while on the ground and again on ascent. To this end, I've split the move into two states (1200, 1210).

State1200 is working just fine, as the velset is 0,0. But when it changes state to 1210, I can't seem to get vel-y to respond appropriately to the iflelse triggers. It'll always give me the last possible value.

example:
velset = 0, ifelse (command = "dpa", -3, ifelse (command = "dpb", -6, -9)), 0. It will always give me "-9" on Vel Y regardless of the button I'm using.

I've tried toying with VelMul, VelAdd and even tried using variables, but no matter what, it always defaults to the last possible value of the ifelse.

Here are the relevant code snippets.

Quote
;Rising Attack
[StateDef 1200]
type = S
movetype= A
physics = S
juggle  = 1
velset = 0,0
ctrl = 0
anim = 1200
poweradd = 20
sprpriority = 2

[State 0, ChangeState]
type = ChangeState
trigger1 =time=12
value =1210
ctrl = 0

and...

Quote
[StateDef 1210]
type =S
movetype= A
physics = A
juggle  = 1
velset = 0, ifelse (command = "dpa", -3, ifelse (command = "dpb", -6, -9))
ctrl = 0
anim = 1210
poweradd = 20
sprpriority = 2

Where's the problem?

Danke.
    

Re: Learning Fundamentals

 April 05, 2010, 01:39:08 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks, Cyanide. I got GIMP, played around with it and managed to do it but the way I ended up doing it was both tedious and painful to my eyes. I ended up doing "rearrange colormap" and had to eyeball the hues (which was no fun) and did it frame by frame. Thankfully, there were only 6 frames to the running animation.

Navetsea, I just saw your post and tried it out. It worked great. Though I didn't see your post in time to save me from my initial soul-numbing technique, you saved me a LOT of trouble in the future. Thanks a lot.

Okay, next speedbump....

I'm finally working on my first Special Move. I had really been looking forward to it, expecting I had learned enough from working with "fwd+button" moves, such as overhead attacks but I can't get it to work. I've checked, double-checked, rearranged, and I can't get the move to respond. Here are the details...

sprites = group 1000 (5 frames)
anim = begin action 1000 (15 ticks)

command definition:
Quote
[Command]
name="qcfx"
command=~D,DF,F,x
time=15

[Command]
name="qcfy"
command=~D,DF,F,y
time=15

[Command]
name="qcfz"
command=~D,DF,F,z
time=15

statechange:
Quote
[state -1, qcfp]
type = changestate
value = 1000
triggerall = command = "qcfx" || command = "qcfy" || command = "qcfz"
triggerall = statetype = S
trigger1 = ctrl

statedef (just FF's punch template to be modified once I can get this to work):
Quote
[StateDef 1000]
type = S
movetype= A
physics = S
juggle  = 1
velset = 0,0
ctrl = 0
anim = 1000
poweradd = 20
sprpriority = 2

[State 1000, 1]
type = HitDef
trigger1 = AnimElem = 3
attr = S, NA
damage = 50
animtype = Light
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 10, 10
sparkno = 0
sparkxy = -10, -76
hitsound = 5, 0
guardsound = 6, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 12
ground.velocity = -4
airguard.velocity = -1.9,-.8
air.type = High
air.velocity = -1.4,-3
air.hittime = 12

[State 1000, end]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

I'm probably overlooking something very simple that I should be able to see by this point, but I keep missing it.

Thanks, guys.
    

Re: Learning Fundamentals

 March 30, 2010, 09:15:48 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Is there any program (short of the too-expensive-for-me photoshop) that can do this? I have IrfanView, which is free, but it seems to only be able to use "PAL" files. I'm guessing I need something that can read ".act"?
    

Re: Learning Fundamentals

 March 30, 2010, 08:50:10 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks again, Cyanide. I got the dodge working. I'll be working on the evasive rolls later because there's something else I need to work on first.

I wasn't 100% happy with my sprite alignment. It looked okay, but there were a few little twitches and shifts that were bugging me AND I found alignment to be extremely tedious. I was hoping to find an easier way and after looking for some tutorial vids, I found one that mentioned sprites by "DreamSlayer". They were recommended because they weren't pre-cropped and so were already perfectly aligned. So I'm going to start my SFF from scratch again. Sure, I'm throwing away quite a bit of time's worth of work, but the end result will be precise alignment and it'll save me a lot of time in the long run. But now I have this issue...

I pretty much have two sets of sprites to work with. Most of my character will be done with Dreamslayer sprites. However, the first set of sprites I was working with has several custom sprites I want to use as well, such as a set of running sprites.

I've already added over a hundred dreamslayer sprites to my new SFF and want to go ahead and add the custom sprites from the previous set. What I can't figure out is how to adapt these few custom sprites to my palette. I've tried to old Fighter Factory and FFU, but I can't find a way to make it work.

I'm sure there are several steps involved and might not be something where a quick explanation will suffice. If so, is there a thread or tutorial anyone could point me toward so I can make this work?

Thanks, y'all.
    

Re: Learning Fundamentals

 March 28, 2010, 09:03:18 pm View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks, Cyanide. Physics = N worked perfectly.

Well, I think thats about it as far as the character's base goes - I got the throw, the required sprites, attack variation depending on proximity to p2, jump attack variation depending on jump direction, appropriate sounds and sparks. I'm playing with him frequently to look for problems and, for a first attempt at least, I think he's coming along solidly.

Before I move on to Special Moves, I want to add a handful of features. The first two will be Dodge and Roll (forward and backward), a la KoF.

My guess is I have two choices for these evasive moves - either use NotHitBy and pretty much list every kind of attack under it, or omit clsn boxes altogether. Is there any reason why I should use one and not the other?

Or, in my novice naivette, are both of these bad ideas and I'm approaching this the wrong way altogether?

Danke.
    

Re: Learning Fundamentals

 March 27, 2010, 11:00:17 pm View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks for the replies, guys.

Its a slow crawl, but I'm making progress. I got the hitsparks working appropriately, including those in the grab via Explods.

And I finally figured out what the problem with the throw's "flying-out" animation was - I wasnt making ANY use of state 821. Instead, p2t flying-out was all part of state 820, so the whole thing was TargetBind. By the time the TargetBind ended, p2 was practically already on the floor, which is why "kill=1" wasnt kicking in til he hit the floor. So I had the TargetBind end at the moment of the throw's kick, then toyed with the VelSet to get p2 to fly out appropriately.

I've figured out a few things on my own this past week, each taking a couple of hours trying different triggers, reading docs, trial-and-error, etc. I got my char delivering different normal attacks based on how close he is to p2, learning to use IfElse triggers in the process. Also figured out how to give my char a different jump-attack depending on which direction he's jumping.

I'm currently working on "fwd+button" moves, such as an overhead attack to hit crouching opponents. This was my first foray into the Commands file, having to add "command != holdfwd" into a couple of normal attacks. So I have that attack working properly, including the hit/guard flags.

What I could use help with now is another of my "fwd+button" moves. In the move, takes a quick step/hop forward and throws a kick. My problem is with his movement forward. I pretty much want him to move forward during the entire attack.

In the StateDef, I toyed with the x-value in VelSet. He certainly moves forward, but he always stops abruptly. He'll move forward as far as I want him to, but the movement isn't present throughout the whole attack.

Then I tried using VelAdd, but that didnt get me the results I wanted. With x=1, my char will move forward slightly, but with x=2 he just shoots across the entire screen. And apprarently, VelAdd doesnt care much for decimals because I cant get the subtle variations I was hoping for with 1.1, 1.5, etc.

Then I played around with VelMul and VelSet, tried different values and combination between the 3 Vel sctrls but I just cant find anything that works. I just want him to move forward throughout the entire attack.

Any suggestions would be greatly appreciated. Thanks guys.
    

Re: Learning Fundamentals

 March 20, 2010, 03:29:02 pm View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Hello again.

Well, I've been keeping myself busy with required sprites and states and I've got my debug screen clear. I've added sound to the attacks as well(the"woosh" of the swings, the yells as my char attacks and the impact sounds when the attack connects). I'm currently playing around with hitsparks and throws and have a few issues I could use help with.

1. I'm using cvs2 hitsparks and there several of them, exploding in different directions and different angles. At first I had assumed it was a different angle of spark for each attack's strength level (200, 400, 600 then 210, 410, 610, etc.) but testing that theory out with a cvs char debunked it. I saw that the differently-angled orange sparks appeared randomly, regardless of which normal attack was being used. How do I implement this into my char and how do i ensure that only the orange sparks are used? (there are also blue and purple sparks for special and hyper attacks)

2a. My char's throw consists of two strikes - strong punch and strong kick, ending in animelem5 with the remaining frames accounting for the opponent flying out. I added sound to each simulated impact (animelems 2 & 5). I tried adding hitsparks to these frames, but couldn't get them to appear at all. How do I get the hitsparks to appear? Am I approaching this the wrong way and strike-throws must include the actual strike-states?

2b. When my char finishes the opponent with a throw, the opponent doesn't die until he hits the ground, even though state 820 (the corresponding "thrown" animation) has the damage split betwen animelem 2 & 5. How do I get the "kill=1" to activate at the throws final strike?

For questions 2a and 2b, I'll include my throw's code...

And if it makes any difference, I started my char on Fighter Factory and am now working on it on Fighter Factory Ultimate. I used the"throw creator" feature to match up the sprites.

Quote
[Statedef 800]
type = S
movetype= A
physics = S
juggle = 0
velset = 0,0
ctrl = 0
anim = 800

[State 800, 1]
type = HitDef
Trigger1 = Time = 0
attr = S, NT
hitflag = M
priority = 1, Miss
sparkno = -1
sprpriority = 1
p1facing = ifelse (command = "holdfwd", -1, 1)
p2facing = 1
p1stateno = 810
p2stateno = 820
fall = 1

[State 800, 2]
type = ChangeState
Trigger1 = AnimTime = 0
value = 0
ctrl = 1

;----------------------------------------------------------------------
[Statedef 810]
type = S
movetype= A
physics = N
anim = 810
poweradd = 60

[State 0, PlaySnd]
type = PlaySnd
trigger1 = animelem= 2
value = s2, 2
volume = 0

[State 0, PlaySnd]
type = PlaySnd
trigger1 = animelem= 5
value = s2, 5
volume = 0

[State 810, Bind 1]
type = TargetBind
trigger1 = AnimElem = 1
pos = 54, 0
[State 810, Bind 2]
type = TargetBind
trigger1 = AnimElem = 2
pos = 67, 0
[State 810, Bind 3]
type = TargetBind
trigger1 = AnimElem = 3
pos = 67, 2
[State 810, Bind 4]
type = TargetBind
trigger1 = AnimElem = 4
pos = 67, 0
[State 810, Bind 5]
type = TargetBind
trigger1 = AnimElem = 5
pos = 67, 0
[State 810, Bind 6]
type = TargetBind
trigger1 = AnimElem = 6
pos = 69, 15
[State 810, Bind 7]
type = TargetBind
trigger1 = AnimElem = 7
pos = 99, 18
[State 810, Bind 8]
type = TargetBind
trigger1 = AnimElem = 8
pos = 119, 31
[State 810, Bind 9]
type = TargetBind
trigger1 = AnimElem = 9
pos = 139, 57
[State 810, Hurt]
type = TargetLifeAdd
trigger1 = AnimElem = 9
value = -78

[State 810, Throw]
type = TargetState
trigger1 = AnimElem = 9
value = 821

[State 810, State End]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;----------------------------------------------------------------------
[Statedef 820]
type = A
movetype = H
physics = N
velset = 0,0

[State 820, 1]
type = ChangeAnim2
Trigger1 = Time = 0
value = 820

;----------------------------------------------------------------------
[Statedef 821]
type = A
movetype = H
physics = N
velset = 0,0
poweradd = 40

[State 821, 1] ;Gravity
type = VelAdd
Trigger1 = 1
y = .4

[State 821, 2] ; Recover near ground (use ChangeState)
type = ChangeState
triggerall = Vel Y > 0
triggerall = Pos Y >= -20
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5200 ;HITFALL_RECOVER

[State 821, 3] ; Recover in mid air (use SelfState)
type = SelfState
triggerall = Vel Y > 0
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5210 ;HITFALL_AIRRECOVER

[State 821, 4] ;Hit ground
type = SelfState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 5100 ;Hit ground

Thanks.
    

Re: Learning Fundamentals

 March 14, 2010, 01:04:12 pm View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks for you reply, Cyanide. I found all your points very useful, beginning with my "jump attack" issue. Through your response I learned that velset affects the characters vertical and horizontal movement and that omitting the command altogether defaults the character to its previous momentum.

I've been working with sctrls and the tutorial in docs and i'm making some progress. I've got my opponent responding to my attacks based on power and target (animtype and groundtype) and have set up the appropriate guardflags. I've even added some sound, giving my char a more solid feel and making him a little more enjoyable to playtest.

Another question for anyone willing to help...

I'm having trouble implementing my char's legsweep. As per sctrls, I tried using "animtype=back" but the opponent wasn't knocked off his feet. For the moment, I'm simply using "fall=1" but that doesn't take the opponent into state 5070 (tripped). How do I take my opponent into state 5070?

Thanks again to any who've replied and those who will. Hopefully its evident now that I'm quite serious about this new hobby, so if anyone's willing to take a few minutes to answer a question or two, it won't be time wasted. Eventually my creation(s) will hopefully be good enough to make it into a few permanent rosters.
    

Re: Learning Fundamentals

 March 14, 2010, 01:35:05 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Thanks so much for your reply.

1. As per FF's ElecbytePlayer template, my jumping light punch is action600. Its the same for all three jumps (bk, fwd, up). My physics ARE indeed set for air (A). So its not like my characters disappears out of the air and reappears on the ground. He goes through the entire animation no matter what direction he jumps in, but its as if he hits an invisible barrier as soon as he swings and falls stright down.

2. I found the guardflag and hitflag you refered to.

guardflag = MA
hitflag = MAF

What do "ma" and "maf" mean and what modification is necessary to nail that low hit?

3. The debug flood helped me figure out where to place my basic animations such as standing strikes, walk, stance, etc. But all of a sudden it'll say action 5000 is invalid and i have no idea what its asking for. So is it acceptable for me to just ignore it?

4. I'm going through it now. Funny how sometimes you don't look for something in the most obvious of places.

Sorry if I'm being a pain, but I've only been a coder for about 24hrs now  :P


    

Learning Fundamentals

 March 14, 2010, 12:12:05 am View in topic context
avatar  Posted by Lemures  in Learning Fundamentals (Started by Lemures March 14, 2010, 12:12:05 am
 Board: M.U.G.E.N Development Help

Hello all. First off, I hope I'm putting this in the right section.

After about two years of playing MUGEN, I've decided to finally jump in and take a shot at creating. I'm not into the visual aesthetics as much as I am into the control and "feel" or a character so, rather than spriting, I'll be learning to code.

I started by downloading a bunch of tutorials off youtube and although they do cover a lot of topics, there are a few basic fundamentals that seem to have been overlooked (at least in those tutorials I've watched). So I've been hitting various speedbumps and snags along the road, but I've managed to find my way through those parts of the maze.

What I hope for is to become a proficient coder. I'm not interested in just cutting and snipping and editting bits and pieces of code. What I want is to understand the code and be able to piece it together myself. To this end, I'm hoping I can get some help from whoever's willing to provide it.

I know I'm going to have a LOT of questions on this road and it would benefit no one for me to make a new thread for every little bump along the road. So I wish to make of this a thread that will provide answers not only for me, but for others who are just starting and don't yet have he familiarity with fighterfactory to figure their way out of every detail.

I've managed to get through the most basic of elements - stance, jump, backjump, fwdjump, standing attacks, backdash, crouch. I'm currently working on my character's jumping attacks. So here are the questions i have so far.

1. When my airborne character attacks, whether he is jumping straight up, back or forward, he will drop straight down with the attack. How do I repair this?

2. My character has a standing light kick that attacks the shin and I would like to make it unblockable by a standing character (must crouch to block) very much like KoF's Iori Yagami. How do i implement this?

3. Is there a master StateDef list available? Sometimes MUGEN will notify my of an invalid action and when I search for it in the constants, I'm unable to find it. For example, I have no idea what "invalid action 5000" is.

4. What are some reasonable damage parameters for attacks? Currently, I'm using 15 for light attacks, 25 for medium attacks and 40 for strong attacks. Though I favor games like CVS and SFA, I'm not really looking for exact accuracy - just something reasonable and fair.

Well, thats it for now. I actually have hundreds of questions, but one-step-at-a-time, right? Once I have my jump-attack issue resolved, we'll move forward.

Many thanks.