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.

****
ink is Offline
Contact ink:

ink

Contributor

Messages by ink

    

Re: Reversaldef against own helpers..?

 June 17, 2019, 01:09:16 am View in topic context
 Posted by ink  in Reversaldef against own helpers..? (Started by FobiaZz June 15, 2019, 07:15:46 pm
 Board: M.U.G.E.N Development Help

I don’t think you can reversal your own helper. You can have that helper go into another state that turns it and sends it back once it makes contact though. Giving the same appearance as a reversal.
    

Re: Mr. Ansatsuken's WIP Thread! (Current project: BROLY! & Chi-Chi?!)

 June 16, 2019, 11:47:02 pm View in topic context
 Posted by ink  in Mr. Ansatsuken's WIP Thread! (Current project: BROLY! & Chi-Chi?!) (Started by Mr. Ansatsuken February 08, 2019, 05:30:28 am
 Board: Projects

Why wait? If he says yes or no your still going to release her. You have no respect. Lol
    

Re: Mr. Ansatsuken's WIP Thread! (Current project: BROLY! & Chi-Chi?!)

 June 16, 2019, 11:02:54 pm View in topic context
 Posted by ink  in Mr. Ansatsuken's WIP Thread! (Current project: BROLY! & Chi-Chi?!) (Started by Mr. Ansatsuken February 08, 2019, 05:30:28 am
 Board: Projects

I think it’s pretty disrespectful. You’re asking if you can do something, knowing you will release it either way. That’s a dick move plan and simple.

Maybe I’m old school but I respect creators wishes.
    

Re: Replicating PotS Hyper Portrait Glare effect in GIMP.

 June 12, 2019, 04:29:53 pm View in topic context
 Posted by ink  in Replicating PotS Hyper Portrait Glare effect in GIMP. (Started by RagingRowen June 08, 2019, 10:17:43 pm
 Board: Graphics

Unfortunately, I don’t use gimp. To me the filter that yours is missing is photoshop’s radial blur>zoom. That’s the filter that gives the images those streaky action lines.
    

Concept/study. Get more out of vars.

 June 12, 2019, 05:16:19 am View in topic context
 Posted by ink  in Concept/study. Get more out of vars. (Started by ink June 12, 2019, 05:16:19 am
 Board: Code Library

Like the title suggests, the goal for this piece of code was to save vars usage. Here I've put together the base for a buffer system, it uses 3 vars to buffer 11 basic button/direction inputs. I can't think of too many uses for this but I'm posting it so it's available to anyone looking to get more out of vars. Be sure to check the "Notes" section and here's a clip of DisplayToClipboard in action. https://i.imgur.com/hRA0vLZ.mp4

Also, since you're here to get more out of vars, you may want to check out http://mugenguild.com/forum/msg.1482141 too.

Thanks to JustNoPoint and Jesuszilla for answering any questions I had about buffer systems.

This is a helper that uses keyctrl.
Code:
;==========================================================================
;[Info]
;author = "Inktrebuchet"
;versiondate = 6/11/2018                 
;goal = do as much as possible with each var
;
;==========================================================================
;                Notes
;==========================================================================
;JustNoPoint had an idea, then I tried to make it.
;
;This is a proof of concept. For an actual buffer system check these out:
; http://mugenguild.com/forum/msg.2331601
; http://mugenguild.com/forum/msg.2366951
;
;Each variable uses up to 5 slots and is described in "Helper Var Usage" section.
;Buffer time can be set in the "Config Section" below.
;To set direction and button buffer times separately, search "Config" using ctrl+f.
;
;Base examples of trigger use:
;
;;Command "a" was pressed. Reference "Helper Var Usage" section for more info.
;trigger1 = ((helper(33336666),var(3) - ((helper(33336666),var(3)/100000000) * 100000000))/1000000)
;
;==========================================================================
;                Helper Var Usage
;==========================================================================
; numhelper(33336666) Variable usage:
; This is a record of the variables that are used
;
;var(0) :
; Buff.time =   (var(0) / 100000000)
; Back =        ((var(0) - ((var(0)/100000000) * 100000000))/1000000)
; Down =        ((var(0) - ((var(0)/1000000) * 1000000))/10000)
; Fwd =         ((var(0) - ((var(0)/10000) * 10000))/100)
; Up =          ((var(0) - ((var(0)/100) * 100))/1)
;;var(2) :
; Buff.time =   (var(2) / 100000000)
; X =           ((var(2) - ((var(2)/100000000) * 100000000))/1000000)
; Y =           ((var(2) - ((var(2)/1000000) * 1000000))/10000)
; Z =           ((var(2) - ((var(2)/10000) * 10000))/100)
; Start =       ((var(2) - ((var(2)/100) * 100))/1)
;;var(3) :
; Buff.time =   (var(3) / 100000000)
; A =           ((var(3) - ((var(3)/100000000) * 100000000))/1000000)
; B =           ((var(3) - ((var(3)/1000000) * 1000000))/10000)
; C =           ((var(3) - ((var(3)/10000) * 10000))/100)
;
;==========================================================================
[statedef 33336666]
ctrl = 0

;==========================================================================
;                Config Section
;==========================================================================
Anim = 9741                                          ;Blank anim

[State Config Time]
Type = varset
trigger1 = !time && !var(0)
var(0) = 20                                          ;Buffer time, this value should be set between 1 and 21

;==========================================================================
[state 33333333, Clipboard]
type = DisplayToClipboard
trigger1 = 1
text = "D.time=%d| %d %d %d %d "
params = (var(0) / 100000000), ((var(0) - ((var(0)/100000000) * 100000000))/1000000), ((var(0) - ((var(0)/1000000) * 1000000))/10000), ((var(0) - ((var(0)/10000) * 10000))/100), ((var(0) - ((var(0)/100) * 100))/1)

[state 33333333, Clipboard]
type = AppendToClipboard
trigger1 = 1
text = "XYZS.time=%d| %d %d %d %d "
params = (var(2) / 100000000), ((var(2) - ((var(2)/100000000) * 100000000))/1000000), ((var(2) - ((var(2)/1000000) * 1000000))/10000), ((var(2) - ((var(2)/10000) * 10000))/100), ((var(2) - ((var(2)/100) * 100))/1)

[state 33333333, Clipboard]
type = AppendToClipboard
trigger1 = 1
text = "ABC.time=%d| %d %d %d\nBy Inktrebuchet"
params = (var(3) / 100000000), ((var(3) - ((var(3)/100000000) * 100000000))/1000000), ((var(3) - ((var(3)/1000000) * 1000000))/10000), ((var(3) - ((var(3)/10000) * 10000))/100)

;==========================================================================
;                Buffer Directions
;==========================================================================
[State Timer Set Part 2]
Type = null
trigger1 = var(0) < 100000000
trigger1 = var(0) := var(0) * 100000000
trigger2 = var(0) = 0
trigger2 = var(0) := 100000000

[State Count Down]
type = null
Trigger1 = var(0) - ((var(0)/100) * 100) = [1, 98]
Trigger1 = var(0) := var(0) - 1

[State Count Down]
type = null
Trigger1 = var(0) - ((var(0)/10000) * 10000) = [99, 9998]
Trigger1 = var(0) := var(0) - 100

[state count them down]
type = null
Trigger1 = var(0) - ((var(0)/1000000) * 1000000) = [9999, 999998]
Trigger1 = var(0) := var(0) - 10000

[State Count Down]
type = null
Trigger1 = var(0) - ((var(0)/100000000) * 100000000) = [999999, 99999998]
Trigger1 = var(0) := var(0) - 1000000

;----------------------------------------------------------
[State Up]
Type = null
Trigger1 = command = "holdup"
Trigger1 = var(0) - ((var(0)/100) * 100) <= (1 * (floor(var(0) / 100000000)))
Trigger1 = Var(0) := var(0) + ((1 * (floor(var(0) / 100000000))) - (var(0) - ((var(0)/100) * 100)))

[State Fwd]
Type = null
trigger1 = enemynear,Pos X - Pos X >= 0 && command = "holdback" || enemynear,Pos X - Pos X < 0 && command = "holdfwd"
;Trigger1 = command = "holdfwd"
Trigger1 = var(0) - ((var(0)/10000) * 10000) <= (100 * (floor(var(0) / 100000000)))
Trigger1 = Var(0) := var(0) + ((100 * (floor(var(0) / 100000000))) - (var(0) - ((floor(var(0)/10000) * 10000) + (var(0) - ((var(0)/100) * 100)))))

[State Down]
Type = null
Trigger1 = command = "holddown"
Trigger1 = var(0) - ((var(0)/1000000) * 1000000) <= (10000 * (floor(var(0) / 100000000)))
Trigger1 = Var(0) := var(0) + ((10000 * (floor(var(0) / 100000000))) - (var(0) - ((floor(var(0)/1000000) * 1000000) + (var(0) - ((var(0)/10000) * 10000)))))

[State Back]
Type = null
trigger1 = enemynear,Pos X - Pos X >= 0 && command = "holdfwd" || enemynear,Pos X - Pos X < 0 && command = "holdback"
;Trigger1 = command = "holdback"
Trigger1 = var(0) - ((var(0)/100000000) * 100000000) <= (1000000 * (floor(var(0) / 100000000)))
Trigger1 = Var(0) := var(0) + ((1000000 * (floor(var(0) / 100000000))) - (var(0) - ((floor(var(0)/100000000) * 100000000) + (var(0) - ((var(0)/1000000) * 1000000)))))

;==========================================================================
;                Buffer X Y Z Start
;==========================================================================
[State Timer Set Part 1]
Type = null
trigger1 = time = 0
trigger1 = var(2) = 0
trigger1 = var(2) := var(0)  ;Config buffer time for ABCX is the same as directions by default. if changed, this value should be set between 1 and 21

[State Timer Set Part 2]
Type = null
trigger1 = var(2) < 100000000
trigger1 = var(2) := var(2) * 100000000
trigger2 = var(2) = 0
trigger2 = var(2) := 100000000

[State Count Down Start]
type = null
Trigger1 = var(2) - ((var(2)/100) * 100) = [1, 98]
Trigger1 = var(2) := var(2) - 1

[State Count Down Z]
type = null
Trigger1 = var(2) - ((var(2)/10000) * 10000) = [99, 9998]
Trigger1 = var(2) := var(2) - 100

[State Count Down Y]
type = null
Trigger1 = var(2) - ((var(2)/1000000) * 1000000) = [9999, 999998]
Trigger1 = var(2) := var(2) - 10000

[State Count Down X]
type = null
Trigger1 = var(2) - ((var(2)/100000000) * 100000000) = [999999, 99999998]
Trigger1 = var(2) := var(2) - 1000000

;----------------------------------------------------------
[State Start]
Type = null
Trigger1 = command = "start"
Trigger1 = var(2) - ((var(2)/100) * 100) <= (1 * (floor(var(2) / 100000000)))
Trigger1 = var(2) := var(2) + ((1 * (floor(var(2) / 100000000))) - (var(2) - ((var(2)/100) * 100)))

[State Z]
Type = null
Trigger1 = command = "z"
Trigger1 = var(2) - ((var(2)/10000) * 10000) <= (100 * (floor(var(2) / 100000000)))
Trigger1 = var(2) := var(2) + ((100 * (floor(var(2) / 100000000))) - (var(2) - ((floor(var(2)/10000) * 10000)   + (var(2) - ((var(2)/100) * 100)))))

[State Y]
Type = null
Trigger1 = command = "y"
Trigger1 = var(2) - ((var(2)/1000000) * 1000000) <= (10000 * (floor(var(2) / 100000000)))
Trigger1 = var(2) := var(2) + ((10000 * (floor(var(2) / 100000000))) - (var(2) - ((floor(var(2)/1000000) * 1000000)   + (var(2) - ((var(2)/10000) * 10000)))))

[State X]
Type = null
Trigger1 = command = "x"
Trigger1 = var(2) - ((var(2)/100000000) * 100000000) <= (1000000 * (floor(var(2) / 100000000)))
Trigger1 = var(2) := var(2) + ((1000000 * (floor(var(2) / 100000000))) - (var(2) - ((floor(var(2)/100000000) * 100000000) + (var(2) - ((var(2)/1000000) * 1000000)))))

;==========================================================================
;                Buffer A B C
;==========================================================================
[State Timer Set Part 1]
Type = null
trigger1 = time = 0
trigger1 = var(3) = 0
trigger1 = var(3) := var(0) ;Config buffer time for ABCX is the same as directions by default. if changed, this value should be set between 1 and 21

[State Timer Set Part 2]
Type = null
trigger1 = var(3) < 100000000
trigger1 = var(3) := var(3) * 100000000
trigger2 = var(3) = 0
trigger2 = var(3) := 100000000

[State Count Down C]
type = null
Trigger1 = var(3) - ((var(3)/10000) * 10000) = [99, 9998]
Trigger1 = var(3) := var(3) - 100

[State Count Down B]
type = null
Trigger1 = var(3) - ((var(3)/1000000) * 1000000) = [9999, 999998]
Trigger1 = var(3) := var(3) - 10000

[State Count Down A]
type = null
Trigger1 = var(3) - ((var(3)/100000000) * 100000000) = [999999, 99999998]
Trigger1 = var(3) := var(3) - 1000000

;----------------------------------------------------------
[State C]
Type = null
Trigger1 = command = "c"
Trigger1 = var(3) - ((var(3)/10000) * 10000) <= (100 * (floor(var(3) / 100000000)))
Trigger1 = var(3) := var(3) + ((100 * (floor(var(3) / 100000000))) - (var(3) - ((floor(var(3)/10000) * 10000) + (var(3) - ((var(3)/100) * 100)))))

[State B]
Type = null
Trigger1 = command = "b"
Trigger1 = var(3) - ((var(3)/1000000) * 1000000) <= (10000 * (floor(var(3) / 100000000)))
Trigger1 = var(3) := var(3) + ((10000 * (floor(var(3) / 100000000))) - (var(3) - ((floor(var(3)/1000000) * 1000000) + (var(3) - ((var(3)/10000) * 10000)))))

[State A]
Type = null
Trigger1 = command = "a"
Trigger1 = var(3) - ((var(3)/100000000) * 100000000) <= (1000000 * (floor(var(3) / 100000000)))
Trigger1 = var(3) := var(3) + ((1000000 * (floor(var(3) / 100000000))) - (var(3) - ((floor(var(3)/100000000) * 100000000) + (var(3) - ((var(3)/1000000) * 1000000)))))

;----------------------------------------------------------
[State BindToRoot]
type = BindToRoot
trigger1 = 1
time = 1
pos = 0,-2
ignorehitpause = 1

;==========================================================================

    

Re: Replicating PotS Hyper Portrait Glare effect in GIMP.

 June 09, 2019, 04:21:32 am View in topic context
 Posted by ink  in Replicating PotS Hyper Portrait Glare effect in GIMP. (Started by RagingRowen June 08, 2019, 10:17:43 pm
 Board: Graphics

    

Re: How do I "Anchor" a helper to the opponent?

 May 27, 2019, 09:21:12 pm View in topic context
 Posted by ink  in How do I "Anchor" a helper to the opponent? (Started by MarioManX1983 May 27, 2019, 05:29:06 pm
 Board: M.U.G.E.N Development Help

Since you are already using p2movetype != H in the destory state, you can use this posset instead of BindToTarget.

Code:
[State 3006, BindToEnemy]
type = posset
trigger1 = 1
x = enemy, pos x
y = enemy, pos y
ignorehitpause = 1

BindToTarget would work fine if the helper was the one hitting p2 because that would make the helper's target p2. I'm guessing that the root is hitting p2 though so that makes the root's target p2, not the helpers.


The only problem you will run into using that posset and the destory trigger is during Simul Mode. For example if you hit P4, that helper might bind to p2... or because of the destroyself trigger it could be destroyed right away since p2’s movetype wouldn’t = h.

To avoid that you can have the root store the target's player ID in a variable, then pass it to a var in the helper. That way even if the root’s target changes, the helper will stay bound to the correct target. That posset would look something like this.

Code:
[State , Save Root, Target, Id]
Type = null
Trigger1 = !time
Trigger1 = var(0) := Root,var(0)
ignorehitpause = 1

[State 3006, BindToRootsTarget]
type = posset
trigger1 = playeridexist(var(0))
x = playerid(var(0)), pos x
y = playerid(var(0)), pos y
ignorehitpause = 1


Or if this is meant for mugen 1.0+ and you want to get a little crazy and not use a root var, you could use this Cond() exploit

Code:
[State , Save Root, Target, Id]
Type = null
Trigger1 = !time
Trigger1 = var(0) := Root, Cond(NumTarget, Target, Cond(1, ID, 0), 0)
ignorehitpause = 1

[State 3006, BindToRootsTarget]
type = posset
trigger1 = playeridexist(var(0))
x = playerid(var(0)), pos x
y = playerid(var(0)), pos y
ignorehitpause = 1



    

Re: Undocumented Sctrls

 May 25, 2019, 03:42:11 am View in topic context
 Posted by ink  in Undocumented Sctrls (Started by Feddi09 May 25, 2019, 12:02:56 am
 Board: M.U.G.E.N Development Help

    

Re: Hitdefattr Detection Fail

 May 03, 2019, 09:55:52 pm View in topic context
 Posted by ink  in Hitdefattr Detection Fail (Started by Nep Heart May 03, 2019, 11:07:13 am
 Board: M.U.G.E.N Development Help

That is strange!

I did a quick test, which proves hitdefattr does register even with hitpausetime is 0. This one also worked in a helper.
Code:
[State -2, DEBUG]
type = DisplayToClipboard
trigger1 = enemy,movecontact
text = "%d "
params = enemy,HitDefAttr = SCA, NA, HA, SA
ignorehitpause = 1

I'm sure your code is doing more than this so there must be something within your method of detection that's causing it. Are you able to post your code?

    

Re: Hitdefattr Detection Fail

 May 03, 2019, 03:40:37 pm View in topic context
 Posted by ink  in Hitdefattr Detection Fail (Started by Nep Heart May 03, 2019, 11:07:13 am
 Board: M.U.G.E.N Development Help

Without know how your code works, I'm guessing this helper detects the hitdefattr once contact is made?

If yes, I'm thinking that you would only have that 1 tick to detect the hitdefattr. Helpers having the 1 tick delay might be preventing this.
    

Re: [Theme Thread] KOF XII Sprite thread

 April 25, 2019, 12:08:51 am View in topic context
 Posted by ink  in [Theme Thread] KOF XII Sprite thread (Started by Hoshi April 21, 2010, 10:07:34 pm
 Board: Graphics

Wow, this is getting really close! I'm looking forward to seeing this evolve further.

Great work.
    

Vans Loop

 April 24, 2019, 05:03:08 pm View in topic context
 Posted by ink  in Vans Loop (Started by ink April 24, 2019, 05:03:08 pm
 Board: Code Library

I wanted to document this recursion technique I learned from Vans. He first used it 7-8 years ago to program an alphabet system after noticing memory utilization taking a hit if he chucked a bunch of sctrls in a single state.

You have probably seen or heard about this error message from mugen "State machine stuck in loop (stopped after 2500 loops)", this loop technique looks at that further and takes advantage of it. Mugen allows a state to loop 2500 times in 1 tick before closing with that error message so if a counter is added to the state, it can keep track and stop the loop before it exceeds 2500 or if the loop need to exceed 2500 it can pause the loop for 1 tick and continue. This technique is great for reducing the amount of sctrls in a single state.

I've added some to this idea and shared a simple helper example below that’s organized with plenty of notes. There are some extras that aren't needed for this particular example but will help in understanding how the loop works for other applications. This code spawns 44 explods, 10 pixels apart from each other in 1 tick, but could spawn 2500 in 1 tick or 5000 in 2 ticks if the explod limit allowed it.

Without using this technique 44 separate explod sctrls would need to be in the state for them all to trigger on the same tick.

If there are questions or other examples you would like to share please leave a comment.

Code:
;===============================================================================
; Vans loop example
;===============================================================================
; Variable usage:
; This is a record of the variables that are used
;
; var(0) - loop counter
; var(1) - Loop limit to avoid infinite loop crash
;===============================================================================
[Statedef 500001]
anim = 9741 ;blank
ctrl = 0

[State 500001, 0] ;set loop limit. (only needed if loops are to exceed 2500, make changes to "if condition is false, loop" section if not needed.)
type = Varset
trigger1 = var(1) = 0
var(1) = 2500 ;max loops allowed in 1 tick.

[State 500001, 1] ;loop counter
type = VarAdd
trigger1 = time = 0
var(0) = 1

;==================================
;conditional code
;==================================
;if you read below in the "if condition is true, exit loop" section you will see this loop only ends after 44 explods are spawned.
[State 500001, 2]
type = Explod
trigger1 = time = 0
ID = 10000
anim = 40
pos = var(0)*10, 0 ;<<< explods will be set 10 pixels apart.
removetime = -1

;==================================
;if condition is true, exit loop
;==================================
[State 500001, 3]
type = ChangeState
;condition
trigger1 = numexplod(10000) >= 44 ; once this condition is met the loop ends.                     

;reset loop for next time.
trigger1 = var(1) := 0 || 1
trigger1 = var(0) := 0 || 1

value = 500002 ;end state

;==================================
;if condition is false, loop   
;==================================
[State 500001, 4]
type = ChangeState
trigger1 = time = 0
trigger1 = var(0) < var(1) ; var(0) < 2500 ; loops < loop limit
value = stateno

[State 500001, 5] ;if loop limit was met, wait 1 tick and then raise limit. (only needed if loops are to exceed 2500)
type = ChangeState
trigger1 = time = 1
trigger1 = var(1) := var(1) + 2500  ; increase loop limit.
value = stateno
;---------------------------------------------------------------------------------------------

[Statedef 500002] ;end state

[state 500002, 0]
type = destroyself
trigger1 = time > 20



    

Re: AI Detect Enemy's (Helper) Projectile System

 April 02, 2019, 04:59:35 am View in topic context
 Posted by ink  in AI Detect Enemy's (Helper) Projectile System (Started by ink May 17, 2017, 08:30:27 pm
 Board: Code Library

Updated the first post with a new version of "AI Detect Projectile System". This version is much faster and more simple, thanks to a loop I learned from Vans.

As always, everything is still compatible with previous versions.


Recalled that version and put the last one back up. The recalled version was not able to keep up with in some rare instances.

     Posted: April 28, 2019, 04:08:52 am
Small update to make this code compatible with all versions of MUGEN!
    

Re: How to ChangeState while falling without losing momentum/velocity?

 March 26, 2019, 04:43:01 pm View in topic context
 Posted by ink  in How to ChangeState while falling without losing momentum/velocity? (Started by Kolossoni March 26, 2019, 09:14:16 am
 Board: M.U.G.E.N Development Help

I thought it would just transfer over if not set in the new state.

Maybe something like this would work?
[Statedef ###]
type = ?
physics = ?
movetype = ?
ctrl = ?
anim = ###
velset = vel x, vel y
    

Re: Deathtanz Mantisk help: Border walls and attacks involving the walls.

 March 21, 2019, 11:55:13 am View in topic context
 Posted by ink  in Deathtanz Mantisk help: Border walls and attacks involving the walls. (Started by RedDragonCats17 March 17, 2019, 12:46:41 am
 Board: M.U.G.E.N Development Help

Nope, it’s the 3rd one. The trigger is to ensure it stops triggering if its at -5 or closer to parent(root), if it continues triggering the 4th velset will be interrupted or appear to be ignored.
    

Re: Deathtanz Mantisk help: Border walls and attacks involving the walls.

 March 21, 2019, 04:20:44 am View in topic context
 Posted by ink  in Deathtanz Mantisk help: Border walls and attacks involving the walls. (Started by RedDragonCats17 March 17, 2019, 12:46:41 am
 Board: M.U.G.E.N Development Help

My bad, I meant add it to the 3rd velset... you should have caught that! Lol
    

Re: Deathtanz Mantisk help: Border walls and attacks involving the walls.

 March 21, 2019, 03:34:46 am View in topic context
 Posted by ink  in Deathtanz Mantisk help: Border walls and attacks involving the walls. (Started by RedDragonCats17 March 17, 2019, 12:46:41 am
 Board: M.U.G.E.N Development Help

Pretty much the same deal. You need another trigger1 in the second velset so it’s not constantly triggering... try adding trigger1 = parentdist X < -5
    

Re: Deathtanz Mantisk help: Border walls and attacks involving the walls.

 March 20, 2019, 11:51:29 am View in topic context
 Posted by ink  in Deathtanz Mantisk help: Border walls and attacks involving the walls. (Started by RedDragonCats17 March 17, 2019, 12:46:41 am
 Board: M.U.G.E.N Development Help

That codes second velset has a note included. The pos y = 0 may need adjusted for it to work, maybe something like pos y > -100 would be better.
    

Re: Deathtanz Mantisk help: Border walls and attacks involving the walls.

 March 20, 2019, 03:49:05 am View in topic context
 Posted by ink  in Deathtanz Mantisk help: Border walls and attacks involving the walls. (Started by RedDragonCats17 March 17, 2019, 12:46:41 am
 Board: M.U.G.E.N Development Help

Updated that code, give it a try. Maybe gameheight works differently than I’m thinking... I’ll have to look into that later.
    

Re: Deathtanz Mantisk help: Border walls and attacks involving the walls.

 March 20, 2019, 02:44:56 am View in topic context
 Posted by ink  in Deathtanz Mantisk help: Border walls and attacks involving the walls. (Started by RedDragonCats17 March 17, 2019, 12:46:41 am
 Board: M.U.G.E.N Development Help

Thanks for posting the code. I changed or added a few triggers, I think this will work out but look it over and test it out. Explaining this is discord would have been a pain!


Code:
;------------------------------------------------------------------------------------------------------
[Statedef 2000]
movetype = A
anim = 2000
sprpriority = 3
 
[State 0, AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = noshadow
 
[State 0, VelSet]
type = VelSet
trigger1 = time = 0
x = 7
y = 0
 
[State 0, VelSet]
type = VelSet
Trigger1 = pos y = 0 ; assuming this projectile starts at pos y 0.
trigger1 = frontedgedist < 20
x = 0
y = -7
 
[State 0, VelSet]
type = VelSet
trigger1 = root,Pos Y - ScreenPos Y >= pos y
x = -7
y = 0
 
[State 0, VelSet]
type = VelSet
trigger1 = root,Pos Y - ScreenPos Y >= pos y
trigger1 = parentdist X = -5
x = 0
y = 7
 
[State 0, ChangeState]
type = ChangeState
trigger1 = parentdist Y = 0
Trigger1 = vel y > 0
value = 2001
 
;------------------------------------------------------------------------------------------------------
[Statedef 2001]
movetype = I
 
[State 0, DestroySelf]
type = DestroySelf
trigger1 = time = 0