;==========================================================================
;Inktrebuchet
;Learning AI 6/14/2017
;==========================================================================
;
;==========================================================================
;Goal:
;-Detect enemy's projectile helper. For use with AI.
;
;==========================================================================
;notes:
;-set IntPersistIndex = 47 in constants part of the cns. This is because var(0) of this helper will need to be saved from one round to the next in root,var(48)
;-Enemy's projectile now has a PlayerID use PlayerID(helper(33333333),var(3)) as a redirect.
;
;base examples of trigger use:
;
;;Enemy's projectile helper's distance from character.
;trigger1 = PlayerIDExist(helper(33333333),var(3))
;trigger1 = PlayerID(helper(33333333),var(3)), p2bodydist x
;
;;Enemy's projectile helper's velocity.
;trigger1 = PlayerIDExist(helper(33333333),var(3))
;trigger1 = PlayerID(helper(33333333),var(3)), Vel X
;
;--------------------------------------------------------------------------
;
;==========================================================================
; Root var usage
;==========================================================================
; Root Variable usage:
; This is a record of the variables that are used
;
; var(48) - highest playerid + 1
;
;--------------------------------------------------------------------------
;
;==========================================================================
; Detect Enemy's Projectile Helper var usage.
;==========================================================================
; numhelper(33333333) Variable usage:
; This is a record of the variables that are used
;
; var(0) - highest playerid + 1
; var(3) - projectile player id while it exists
;
;--------------------------------------------------------------------------
[Statedef 33333333]
type = A
movetype = I
physics = N
ctrl = 0
anim = 9741 ; blank
velset = 0, 0
[state -2, clip board]
type = DisplayToClipboard
trigger1 = 1
text = " Highest Playerid + 1 = %d , Projectile helper's PlayerId = %d"
params = var(0), var(3)
;==========================================================================
; Detect Enemy's Projectile Helper, Condensed Version.
;==========================================================================
[State 33333333, 0]
type = Null
trigger1 = parent,var(48) = 0
trigger1 = (var(0) := 58)
trigger2 = parent,var(48) > 0
trigger2 = (var(0) := parent,var(48))
ignorehitpause = 1
[state 33333333, 1]
type = varadd
trigger1 = PlayerIdExist(var(0))
trigger2 = PlayerIdExist(var(0)+1)
trigger3 = PlayerIdExist(var(0)+2)
trigger4 = PlayerIdExist(var(0)+3)
trigger5 = PlayerIdExist(var(0)+4)
trigger6 = PlayerIdExist(var(0)+5)
trigger7 = PlayerIdExist(var(0)+6)
trigger8 = PlayerIdExist(var(0)+7)
trigger9 = PlayerIdExist(var(0)+8)
trigger10 = PlayerIdExist(var(0)+9)
trigger11 = PlayerIdExist(var(0)+10)
trigger12 = PlayerIdExist(var(0)+11)
trigger13 = PlayerIdExist(var(0)+12)
trigger14 = PlayerIdExist(var(0)+13)
trigger15 = PlayerIdExist(var(0)+14)
trigger16 = PlayerIdExist(var(0)+15)
trigger17 = PlayerIdExist(var(0)+16)
trigger18 = PlayerIdExist(var(0)+17)
trigger19 = PlayerIdExist(var(0)+18)
trigger20 = PlayerIdExist(var(0)+19)
trigger21 = PlayerIdExist(var(0)+20)
trigger22 = PlayerIdExist(var(0)+21)
trigger23 = PlayerIdExist(var(0)+22)
trigger24 = PlayerIdExist(var(0)+23)
trigger25 = PlayerIdExist(var(0)+24)
trigger26 = PlayerIdExist(var(0)+25)
v = 0
value = 1
ignorehitpause = 1
[State 33333333, 2]
type = Null
trigger1 = PlayerIdExist(var(0)-1)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-1),teamside = 2, PlayerID(var(0)-1),teamside = 1)
trigger1 = PlayerID(var(0)-1),hitdefattr = ASC, NP, SP, HP
trigger1 = var(3) := (var(0)-1)
trigger2 = PlayerIdExist(var(0)-2)
trigger2 = cond(root,teamside = 1, PlayerID(var(0)-2),teamside = 2, PlayerID(var(0)-2),teamside = 1)
trigger2 = PlayerID(var(0)-2),hitdefattr = ASC, NP, SP, HP
trigger2 = var(3) := (var(0)-2)
trigger3 = PlayerIdExist(var(0)-3)
trigger3 = cond(root,teamside = 1, PlayerID(var(0)-3),teamside = 2, PlayerID(var(0)-3),teamside = 1)
trigger3 = PlayerID(var(0)-3),hitdefattr = ASC, NP, SP, HP
trigger3 = var(3) := (var(0)-3)
trigger4 = PlayerIdExist(var(0)-4)
trigger4 = cond(root,teamside = 1, PlayerID(var(0)-4),teamside = 2, PlayerID(var(0)-4),teamside = 1)
trigger4 = PlayerID(var(0)-4),hitdefattr = ASC, NP, SP, HP
trigger4 = var(3) := (var(0)-4)
trigger5 = PlayerIdExist(var(0)-5)
trigger5 = cond(root,teamside = 1, PlayerID(var(0)-5),teamside = 2, PlayerID(var(0)-5),teamside = 1)
trigger5 = PlayerID(var(0)-5),hitdefattr = ASC, NP, SP, HP
trigger5 = var(3) := (var(0)-5)
trigger6 = PlayerIdExist(var(0)-6)
trigger6 = cond(root,teamside = 1, PlayerID(var(0)-6),teamside = 2, PlayerID(var(0)-6),teamside = 1)
trigger6 = PlayerID(var(0)-6),hitdefattr = ASC, NP, SP, HP
trigger6 = var(3) := (var(0)-6)
trigger7 = PlayerIdExist(var(0)-7)
trigger7 = cond(root,teamside = 1, PlayerID(var(0)-7),teamside = 2, PlayerID(var(0)-7),teamside = 1)
trigger7 = PlayerID(var(0)-7),hitdefattr = ASC, NP, SP, HP
trigger7 = var(3) := (var(0)-7)
trigger8 = PlayerIdExist(var(0)-8)
trigger8 = cond(root,teamside = 1, PlayerID(var(0)-8),teamside = 2, PlayerID(var(0)-8),teamside = 1)
trigger8 = PlayerID(var(0)-8),hitdefattr = ASC, NP, SP, HP
trigger8 = var(3) := (var(0)-8)
trigger9 = PlayerIdExist(var(0)-9)
trigger9 = cond(root,teamside = 1, PlayerID(var(0)-9),teamside = 2, PlayerID(var(0)-9),teamside = 1)
trigger9 = PlayerID(var(0)-9),hitdefattr = ASC, NP, SP, HP
trigger9 = var(3) := (var(0)-9)
trigger10 = PlayerIdExist(var(0)-10)
trigger10 = cond(root,teamside = 1, PlayerID(var(0)-10),teamside = 2, PlayerID(var(0)-10),teamside = 1)
trigger10 = PlayerID(var(0)-10),hitdefattr = ASC, NP, SP, HP
trigger10 = var(3) := (var(0)-10)
ignorehitpause = 1
[state 33333333, 3]
type = ParentVarSet
trigger1 = 1
v = 48
value = var(0)
ignorehitpause = 1
[State 33333333, BindToRoot]
type = BindToRoot
trigger1 =1
time = 1
facing = 1
pos =0,-10
ignorehitpause =1
persistent =1
;==========================================================================
;Inktrebuchet
;Learning AI 6/12/2017
;==========================================================================
;==========================================================================
;Goal:
;-Detect enemy's projectile helper. For use with AI.
;
;==========================================================================
;Thank you:
;Altoiddealer and Odb718 helped some with this one by answering questions here: http://mugenguild.com/forum/topics/detect-projectile-helper-179622.0.html
;
;notes:
;-set IntPersistIndex = 47 in constants part of the cns. This is because var(0) of this helper will need to be saved from one round to the next.
;-Helper heavy intros can throw off playerid count if skipped.
;
;base examples of trigger use:
;
;;Enemy's projectile helper's distance from character.
;trigger1 = PlayerIDExist(helper(33333333),var(3))
;trigger1 = PlayerID(helper(33333333),var(3)), p2bodydist x > 50
;
;
;--------------------------------------------------------------------------
;==========================================================================
; Root var usage
;==========================================================================
; Root Variable usage:
; This is a record of the variables that are used
;
; var(48) - highest playerid + 1
;
;--------------------------------------------------------------------------
;==========================================================================
; Detect Enemy's Projectile Helper var usage.
;==========================================================================
; numhelper(33333333) Variable usage:
; This is a record of the variables that are used
;
; var(0) - highest playerid + 1
; var(3) - projectile player id while it exists
;
;--------------------------------------------------------------------------
[Statedef 33333333]
type = A
movetype = I
physics = N
ctrl = 0
anim = 9741 ; blank
velset = 0, 0
[state -2, clip board] ; AI Common System Helper
type = DisplayToClipboard
trigger1 = 1
text = " Highest Playerid + 1 = %d , Projectile helper's PlayerId = %d"
params = var(0), var(3)
;==========================================================================
; AI Detect Enemy's (Helper) Projectile System
;==========================================================================
[state 33333333, 0] ; playerid's start at 58
type = varset
;trigger1 = roundstate = 2 ; commented out for intros. helper heavy intros can throw off playerid count if skipped.
trigger1 = parent,var(48) = 0
v = 0
value = 58
ignorehitpause = 1
persistent = 0
[state 33333333, 0] ; playerid's from previous rounds
type = varset
;trigger1 = roundstate = 2 ;
trigger1 = parent,var(48) > 0
;trigger1 = roundno != 1
v = 0
value = parent,var(48)
ignorehitpause = 1
persistent = 0
---------------------------
[state 33333333, 1] ;keeps track of player ids
type = varadd
trigger1 = PlayerIdExist(var(0))
trigger2 = PlayerIdExist(var(0)+1)
trigger3 = PlayerIdExist(var(0)+2)
trigger4 = PlayerIdExist(var(0)+3)
trigger5 = PlayerIdExist(var(0)+4)
trigger6 = PlayerIdExist(var(0)+5)
trigger7 = PlayerIdExist(var(0)+6)
trigger8 = PlayerIdExist(var(0)+7)
trigger9 = PlayerIdExist(var(0)+8)
trigger10 = PlayerIdExist(var(0)+9)
trigger11 = PlayerIdExist(var(0)+10)
trigger12 = PlayerIdExist(var(0)+11)
trigger13 = PlayerIdExist(var(0)+12)
trigger14 = PlayerIdExist(var(0)+13)
trigger15 = PlayerIdExist(var(0)+14)
trigger16 = PlayerIdExist(var(0)+15)
trigger17 = PlayerIdExist(var(0)+16)
trigger18 = PlayerIdExist(var(0)+17)
trigger19 = PlayerIdExist(var(0)+18)
trigger20 = PlayerIdExist(var(0)+19)
trigger21 = PlayerIdExist(var(0)+20)
trigger22 = PlayerIdExist(var(0)+21)
trigger23 = PlayerIdExist(var(0)+22)
trigger24 = PlayerIdExist(var(0)+23)
trigger25 = PlayerIdExist(var(0)+24)
trigger26 = PlayerIdExist(var(0)+25)
v = 0
value = 1
ignorehitpause = 1
;==========================================================================
;Save Enemy's Projectile Player Id
;==========================================================================
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-1)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-1),teamside = 2, PlayerID(var(0)-1),teamside = 1)
trigger1 = PlayerID(var(0)-1),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-1) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-2)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-2),teamside = 2, PlayerID(var(0)-2),teamside = 1)
trigger1 = PlayerID(var(0)-2),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-2) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-3)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-3),teamside = 2, PlayerID(var(0)-3),teamside = 1)
trigger1 = PlayerID(var(0)-3),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-3) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-4)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-4),teamside = 2, PlayerID(var(0)-4),teamside = 1)
trigger1 = PlayerID(var(0)-4),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-4) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-5)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-5),teamside = 2, PlayerID(var(0)-5),teamside = 1)
trigger1 = PlayerID(var(0)-5),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-5) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-6)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-6),teamside = 2, PlayerID(var(0)-6),teamside = 1)
trigger1 = PlayerID(var(0)-6),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-6) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-7)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-7),teamside = 2, PlayerID(var(0)-7),teamside = 1)
trigger1 = PlayerID(var(0)-7),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-7) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-8)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-8),teamside = 2, PlayerID(var(0)-8),teamside = 1)
trigger1 = PlayerID(var(0)-8),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-8) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-9)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-9),teamside = 2, PlayerID(var(0)-9),teamside = 1)
trigger1 = PlayerID(var(0)-9),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-9) ;projectiles ID
ignorehitpause = 1
[state 33333333, 15] ;
type = varset
trigger1 = PlayerIdExist(var(0)-10)
trigger1 = cond(root,teamside = 1, PlayerID(var(0)-10),teamside = 2, PlayerID(var(0)-10),teamside = 1)
trigger1 = PlayerID(var(0)-10),hitdefattr = ASC, NP, SP, HP
v = 3
value = (var(0)-10) ;projectiles ID
ignorehitpause = 1
;---------------------------------------------------------------------------------
[state 33333333, 0] ; needed to use past round 1!
type = ParentVarSet
trigger1 = 1
v = 48
value = var(0)
ignorehitpause = 1
;---------------------------------------------------------------------------------
[State 0, BindToRoot]
type = BindToRoot
trigger1 =1
time = 1
facing = 1
pos =0,-2
ignorehitpause =1
persistent =1