i would rather use a state map , it has to be put in the helper, though otherwise it will mess up the player. another good point of those is that you can immediately move to a different map if you detect special opponents.(yet another) example of a statemap.fight starts. my player calls helper "AIstatemap" , and that helper's starting state is state 100,000.[statedef 100 000];this is the starting state, herewe can check soem stuff and guess possible future actions.;a lot of this can be reused for later states in the statemap.; even some general checking can be added in state-2 with an ishelper 100 000 trigger to cover more stuff.; the point of this is getting the ai code as apart from the char as possible.; this changes to getting away from p2type =changestatevalue = 100 001trigger1 = p2dist X < 100; this changes to getting near to p2 type =changestatevalue = 100 002trigger1 = p2dist X > 100; you keep on coding like that inside the helper's states for more situations;then in the parent you check the helper state to know about the ai current mindsettype = changestatevalue = shoryukentriggerall= AItrigger1 = helper 100,000 , stateno = 100,001 ; i.e., if we are geting away, we have higher chances of retaliating with a dp because; p2 is near and he is following us
Cyanide said, September 01, 2007, 04:11:39 amQuoteVar overriding, as I believe PotS said, is almost impossible to avoid. Mugen can activate it's own and 'disobey' (shocker Shocked), in the form of some glitches that still lie in the system.Mugen does not ignore variables. I've never seen anything i've coded using variables ignore them unless i've done something dumb that allows it to. If this is to do with your AI experiments i'm sure we explained this.My comment really is as far as my own experience goes.I'm someone who hates coding in states dealing with AIR so I usually have a code in each of the chars I create and AI for, that triggers a dodge state as soon as stateno = 40 (if a char does have this as the jumpstart anim/state) is triggered randomly by the default AI, to be activated 100% of the time.I have seen many of my AIs disobey what I have coded, a really low percentage of the time mind you. I'd have to guess it would be about 2% of the time, because I've run over 300 trials of this (by simply watching my AIs fight) where the dodge state triggers more times than the jump, but where the jump may still complete itself.P.O.T.S. by ken said, September 01, 2007, 06:08:50 amTee Hee Hee said, August 31, 2007, 02:59:56 amVar overriding, as I believe PotS said, is almost impossible to avoid. Mugen can activate it's own and 'disobey' (shocker ), in the form of some glitches that still lie in the system.whatI don't remember saying anything like that, Mugen will only "activate its own and disobey" if you're using sysvars without adapting the common states or if the opponent is flawed and messes with your vars during custom states.That's my bad. It wasn't you and I believe I misread the post that I was referring to. I'm too lazy to re-read this topic right now, but again, I'm pretty sure I must have misread something. Side-Note:We need a :shrug: smiley. And I wanted to type a :huh get it: smiley or a :beg: smiley after that little side-note.
QuoteI have seen many of my AIs disobey what I have coded, a really low percentage of the time mind you. I'd have to guess it would be about 2% of the time, because I've run over 300 trials of this (by simply watching my AIs fight) where the dodge state triggers more times than the jump, but where the jump may still complete itself.And as i stated in the other thread, this would be because there is also an evade state the human player can use. Just because AI is on does not mean this state will never be used. The default mugen AI is still in effect. Thats why moves that aren't specified in your AI code can still occur.That would be something to consider for adaptative AI, disabling basic changestates if you plan to use it. Simple but not thought of.
Cyanide said, September 02, 2007, 07:31:21 amQuoteI have seen many of my AIs disobey what I have coded, a really low percentage of the time mind you. I'd have to guess it would be about 2% of the time, because I've run over 300 trials of this (by simply watching my AIs fight) where the dodge state triggers more times than the jump, but where the jump may still complete itself.And as i stated in the other thread, this would be because there is also an evade state the human player can use. Just because AI is on does not mean this state will never be used. The default mugen AI is still in effect. Thats why moves that aren't specified in your AI code can still occur.That would be something to consider for adaptative AI, disabling basic changestates if you plan to use it. Simple but not thought of.I do disable the default AI states.I always put inQuotetriggerall = !var(59)For commands I don't want to activate when the AI already has.QuoteAnd as i stated in the other thread, this would be because there is also an evade state the human player can use. Just because AI is on does not mean this state will never be used. The default mugen AI is still in effect. Thats why moves that aren't specified in your AI code can still occur.BTW I wasn't the one who asked about that. I think you may be mixing up my post about "Problems with Mugen Creation" with something else.
there are hard coded commands, like walking and jumping that still occur, as cyanide pointed out. you can try to ctrlset to 0 when the ai is on.
R[E]ika said, September 03, 2007, 07:27:54 pmthere are hard coded commands, like walking and jumping that still occur, as cyanide pointed out. you can try to ctrlset to 0 when the ai is on.Yeah, but sometimes that leads to glitches or else freezing @_@I usually just run over it by coding in a dodge state whenever the jump is triggered where I don't want it.BTW R[E]ika got some new info for you
Make ChangeStates for standard commands. That could prevent AI from random changestates. Am I wrong? Examples:[State -1, Jump]type = ChangeStatevalue = 40triggerall = !var(0)triggerall = StateType != Atriggerall = Ctrl || StateNo = 100trigger1 = command = "holdup" && command != "holddown"trigger2 = command = "highjump"[State -1, Walk]type = ChangeStatevalue = 20triggerall = !var(0) && Ctrltriggerall = StateType = S;triggerall = Pos Y = 0triggerall = P2MoveType != A && !InGuardDisttriggerall = command != "holddown" && command != "holdup"trigger1 = (command = "holdfwd" && command != "holdback") || (command = "holdback" && command != "holdfwd")[State -1, Crouch]type = ChangeStatevalue = 10triggerall = !var(0) && Ctrltriggerall = StateType = S;triggerall = Pos Y = 0triggerall = P2MoveType != A && !InGuardDisttrigger1 = command = "holddown"
Elix said, September 03, 2007, 07:50:32 pmMake ChangeStates for standard commands. That could prevent AI from random changestates. Am I wrong? Examples:[State -1, Jump]type = ChangeStatevalue = 40triggerall = !var(0)triggerall = StateType != Atriggerall = Ctrl || StateNo = 100trigger1 = command = "holdup" && command != "holddown"trigger2 = command = "highjump"[State -1, Walk]type = ChangeStatevalue = 20triggerall = !var(0) && Ctrltriggerall = StateType = S;triggerall = Pos Y = 0triggerall = P2MoveType != A && !InGuardDisttriggerall = command != "holddown" && command != "holdup"trigger1 = (command = "holdfwd" && command != "holdback") || (command = "holdback" && command != "holdfwd")[State -1, Crouch]type = ChangeStatevalue = 10triggerall = !var(0) && Ctrltriggerall = StateType = S;triggerall = Pos Y = 0triggerall = P2MoveType != A && !InGuardDisttrigger1 = command = "holddown"The thing about that is that sometimes the code for the jump isn't located anywhere within the character.I don't know why, (me being a lazy person, I never put a lot of effort into checking), but I assume the common.cns can take care of the jump at default.Moreover, many chars I've seen don't even define the jump ( [statedef 40] or otherwise ) which has left me stumped. Nowhere in the CNS, nowhere in the CMD and I'm just lost as far as that goes.
mugen's internal ai will sstill trigger the jump as long as you have control, that's why the assert specials for nowalk were created.
R[E]ika said, September 03, 2007, 08:01:29 pmmugen's internal ai will sstill trigger the jump as long as you have control, that's why the assert specials for nowalk were created.Thank You Man that makes everyting so much harder. @_@BTW I sent you a PM
yah, i noticed. about the prevstateno thingie, that's why i suggest statemaps, though i know implementing statemaps just like that is hard.
R[E]ika said, September 03, 2007, 08:06:33 pmthough i know implementing statemaps just like that is hard.I'll learn.