;本体が弾に関してするのは、このhelper作成だけ [State 800, 弾ヘルパー] type = Helper trigger1 = animElem = 7, = 0 name = "shot_800" ID = 800 StateNo = 801 postype = p1 pos = 0, 0 keyctrl = 0 superMoveTime = 0 pauseMoveTime = 0 IgnoreHitPause =0 ;------------------------------------------------ ;ヘルパー ;------------------------------------------------ [Statedef 801] type = A MoveType = I Physics = N ctrl = 0 Anim = 666 Spriority = -5 IgnoreHitPause = 1 [State 801, 変なのに当たらない様に] type = NotHitBy trigger1 = 1 value = SCA, AA, AP, AT IgnoreHitPause = 1 [State 801, 見えない様に] type = AssertSpecial trigger1 = 1 flag = Invisible flag2 = Noshadow [State 801, ヘルパー消去] type = DestroySelf triggerAll = IsHelper trigger1 = time > 120 trigger2 = var(2) = 1 trigger2 = var(7) = 1 trigger2 = var(12) = 1 trigger2 = var(17) = 1 trigger2 = var(22) = 1 ;------------------------------------------------ ;共用パラメータ ;------------------------------------------------ [State 801, 相手のx座標取得] type = varSet trigger1 = 1 var(58) = ifElse(enemyNear(0),alive, enemyNear(0),pos x, enemyNear(1),pos x) [State 801, 相手のy座標取得] type = varSet trigger1 = 1 var(59) = ifElse(enemyNear(0),alive, enemyNear(0),pos y + enemyNear(0),const(size.mid.pos.y), enemyNear(1),pos y + enemyNear(1),const(size.mid.pos.y)) [State 801, 同IDヘルパーとの区別用変数] type = varSet trigger1 = time = 0 var(50) = 800 + (root,NumHelper(800)-1)*10 [State 801] type = playSnd trigger1 = time = 0 value = 220, 2 [State 801, 弾1] type = varSet trigger1 = time = 1 var(2) = 0 [State 801, 弾2] type = varSet trigger1 = time = 1 var(7) = 0 [State 801, 弾3] type = varSet trigger1 = time = 1 var(12) = 0 [State 801, 弾4] type = varSet trigger1 = time = 1 var(17) = 0 [State 801, 弾5] type = varSet trigger1 = time = 1 var(22) = 0 ;この先は同じ様なものが5個あるだけです ;------------------------------------------------ ;弾1の設定 ;------------------------------------------------ [State 801, 弾1のx初期位置] type = varAdd trigger1 = time = 0 var(0) = 40 [State 801, 弾1のy初期位置] type = varAdd trigger1 = time = 0 var(1) = -58 [State 801, 弾1と相手との角度計算] type = varSet trigger1 = time < 15 fvar(4) = atan( (var(59) - (pos y + var(1)))/abs(var(58) - (pos x + facing*var(0)) + 0.00001) ) [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 15 fvar(2) = 0 [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 15 fvar(3) = 0 [State 801, 飛んで行く方向決定補助] type = varSet trigger1 = time = 15 var(3) = facing*abs(var(58) - (pos x + facing*var(0)))/(var(58) - (pos x + facing*var(0))) [State 801, 弾1のx加速度] type = varSet trigger1 = 1 fvar(0) = ifElse(time < 15, -fvar(2)/10, var(3)*2*cos(fvar(4))) [State 801, 弾1のy加速度] type = varSet trigger1 = 1 fvar(1) = ifElse(time < 15, 0, 2*sin(fvar(4))) [State 801, 弾1のx速度];初期値も設定 type = varAdd trigger1 = 1 fvar(2) = fvar(0) +ifElse(time = 1, 5, 0) [State 801, 弾1のy速度];初期値も設定 type = varAdd trigger1 = 1 fvar(3) = fvar(1) [State 801, 弾1のx位置] type = varAdd trigger1 = 1 var(0) = fvar(2) [State 801, 弾1のy位置] type = varAdd trigger1 = 1 var(1) = fvar(3) [State 801, 弾1グレイズ用] type = varSet trigger1 = var(2) != 1 trigger1 = p2StateNo = [100, 119] var(2) = -1 [State 801, 弾1グレイズ用] type = varSet trigger1 = var(2) != 1 trigger1 = p2StateNo != [100, 119] var(2) = 0 [State 801, グレイズ音] type = playSnd trigger1 = var(2) = -1 trigger1 = abs(var(59) - (pos y + var(1))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(0))) < 15 value = 0, 2 [State 801, グレイズされました] type = varSet trigger1 = var(2) = -1 trigger1 = abs(var(59) - (pos y + var(1))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(0))) < 15 var(2) = 1 [State 801, 弾1接触] type = varSet trigger1 = root,projContactTime(var(50)) = 1 ;trigger2 = root,projCancelTime(var(50)) != -1 var(2) = 1 [State 801, 発射音] type = playSnd trigger1 = var(2) != 1 trigger1 = time = 15 value = 220, 3 [State 801, 弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(2) = 0 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = MAFP animtype = Medium air.animtype = Medium fall.animtype = Medium pausetime = 0, 10 projID = var(50) projAnim = 6800 ;projHitAnim = ;projRemAnim = projRemove = 1 projRemoveTime = 1 projpriority = 1 projhits = 1 projScale = 0.2, 0.2 offset = var(0), var(1) posType = p1 sparkno = s20000 guard.sparkno = 40 sparkxy = 0, 0 hitsound = s220,1 guardsound = s0,5 ground.slidetime = 10 ground.hittime = 10 ground.velocity = -5,0 airguard.velocity = -3, -2 air.velocity = -3, -2 air.hittime = 10 [State 801, グレイズ弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(2) = -1 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = P projID = var(50) projAnim = 6801 projRemoveTime = 1 projScale = 0.2, 0.2 offset = var(0), var(1) posType = p1 ;------------------------------------------------ ;弾2の設定 ;------------------------------------------------ [State 801, 弾2のx初期位置] type = varAdd trigger1 = time = 0 var(5) = 40 [State 801, 弾2のy初期位置] type = varAdd trigger1 = time = 0 var(6) = -58 [State 801, 弾2と相手との角度計算] type = varSet trigger1 = time < 20 fvar(9) = atan( (var(59) - (pos y + var(6)))/abs(var(58) - (pos x + facing*var(5)) + 0.00001) ) [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 20 fvar(7) = 0 [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 20 fvar(8) = 0 [State 801, 飛んで行く方向決定補助] type = varSet trigger1 = time = 20 var(8) = facing*abs(var(58) - (pos x + facing*var(5)))/(var(58) - (pos x + facing*var(5))) [State 801, 弾2のx加速度] type = varSet trigger1 = 1 fvar(5) = ifElse(time < 20, -fvar(7)/10, var(8)*2*cos(fvar(9))) [State 801, 弾2のy加速度] type = varSet trigger1 = 1 fvar(6) = ifElse(time < 20, -fvar(8)/10, 2*sin(fvar(9))) [State 801, 弾2のx速度];初期値も設定 type = varAdd trigger1 = 1 fvar(7) = fvar(5) +ifElse(time =1, 4, 0) [State 801, 弾2のy速度];初期値も設定 type = varAdd trigger1 = 1 fvar(8) = fvar(6) +ifElse(time =1, -3, 0) [State 801, 弾2のx位置] type = varAdd trigger1 = 1 var(5) = fvar(7) [State 801, 弾2のy位置] type = varAdd trigger1 = 1 var(6) = fvar(8) [State 801, 弾2グレイズ用] type = varSet trigger1 = var(7) != 1 trigger1 = p2StateNo = [100, 119] var(7) = -1 [State 801, 弾2グレイズ用] type = varSet trigger1 = var(7) != 1 trigger1 = p2StateNo != [100, 119] var(7) = 0 [State 801, グレイズ音] type = playSnd trigger1 = var(7) = -1 trigger1 = abs(var(59) - (pos y + var(6))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(5))) < 15 value = 0, 2 [State 801, グレイズされました] type = varSet trigger1 = var(7) = -1 trigger1 = abs(var(59) - (pos y + var(6))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(5))) < 15 var(7) = 1 [State 801, 弾2接触] type = varSet trigger1 = root,projContactTime(var(50)+1) = 1 ;trigger2 = root,projCancelTime(var(50)+1) != -1 var(7) = 1 [State 801, 発射音] type = playSnd trigger1 = var(7) != 1 trigger1 = time = 20 value = 220, 3 [State 801, 弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(7) = 0 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = MAFP animtype = Medium air.animtype = Medium fall.animtype = Medium pausetime = 0, 10 projID = var(50)+1 projAnim = 6800 ;projHitAnim = ;projRemAnim = projRemove = 1 projRemoveTime = 1 projpriority = 1 projhits = 1 projScale = 0.2, 0.2 offset = var(5), var(6) posType = p1 sparkno = s20000 guard.sparkno = 40 sparkxy = 0, 0 hitsound = s220,1 guardsound = s0,5 ground.slidetime = 10 ground.hittime = 10 ground.velocity = -5,0 airguard.velocity = -3, -2 air.velocity = -3, -2 air.hittime = 10 [State 801, グレイズ弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(7) = -1 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = P projID = var(50)+1 projAnim = 6801 projRemoveTime = 1 projScale = 0.2, 0.2 offset = var(5), var(6) posType = p1 ;------------------------------------------------ ;弾3の設定 ;------------------------------------------------ [State 801, 弾3のx初期位置] type = varAdd trigger1 = time = 0 var(10) = 40 [State 801, 弾3のy初期位置] type = varAdd trigger1 = time = 0 var(11) = -58 [State 801, 弾3と相手との角度計算] type = varSet trigger1 = time < 35 fvar(14) = atan( (var(59) - (pos y + var(11)))/abs(var(58) - (pos x + facing*var(10)) + 0.00001) ) [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 25 fvar(12) = 0 [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 25 fvar(13) = 0 [State 801, 飛んで行く方向決定補助] type = varSet trigger1 = time = 25 var(13) = facing*abs(var(58) - (pos x + facing*var(10)))/(var(58) - (pos x + facing*var(10))) [State 801, 弾3のx加速度] type = varSet trigger1 = 1 fvar(10) = ifElse(time < 25, -fvar(12)/10, var(13)*2*cos(fvar(14))) [State 801, 弾1のy加速度] type = varSet trigger1 = 3 fvar(11) = ifElse(time < 25, -fvar(13)/10, 2*sin(fvar(14))) [State 801, 弾3のx速度];初期値も設定 type = varAdd trigger1 = 1 fvar(12) = fvar(10) +ifElse(time = 1, 4, 0) [State 801, 弾3のy速度];初期値も設定 type = varAdd trigger1 = 1 fvar(13) = fvar(11) +ifElse(time = 1, 3, 0) [State 801, 弾3のx位置] type = varAdd trigger1 = 1 var(10) = fvar(12) [State 801, 弾3のy位置] type = varAdd trigger1 = 1 var(11) = fvar(13) [State 801, 弾3グレイズ用] type = varSet trigger1 = var(12) != 1 trigger1 = p2StateNo = [100, 119] var(12) = -1 [State 801, 弾3グレイズ用] type = varSet trigger1 = var(12) != 1 trigger1 = p2StateNo != [100, 119] var(12) = 0 [State 801, グレイズ音] type = playSnd trigger1 = var(12) = -1 trigger1 = abs(var(59) - (pos y + var(11))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(10))) < 15 value = 0, 2 [State 801, グレイズされました] type = varSet trigger1 = var(12) = -1 trigger1 = abs(var(59) - (pos y + var(11))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(10))) < 15 var(12) = 1 [State 801, 弾3接触] type = varSet trigger1 = root,projContactTime(var(50)+2) = 1 ;trigger2 = root,projCancelTime(var(50)+2) != -1 var(12) = 1 [State 801, 発射音] type = playSnd trigger1 = var(12) != 1 trigger1 = time = 25 value = 220, 3 [State 801, 弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(12) = 0 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = MAFP animtype = Medium air.animtype = Medium fall.animtype = Medium pausetime = 0, 10 projID = var(50)+2 projAnim = 6800 ;projHitAnim = ;projRemAnim = projRemove = 1 projRemoveTime = 1 projpriority = 1 projhits = 1 projScale = 0.2, 0.2 offset = var(10), var(11) posType = p1 sparkno = s20000 guard.sparkno = 40 sparkxy = 0, 0 hitsound = s220,1 guardsound = s0,5 ground.slidetime = 10 ground.hittime = 10 ground.velocity = -5,0 airguard.velocity = -3, -2 air.velocity = -3, -2 air.hittime = 10 [State 801, グレイズ弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(12) = -1 projID = var(50)+2 projAnim = 6801 projRemoveTime = 1 projScale = 0.2, 0.2 offset = var(10), var(11) posType = p1 ;------------------------------------------------ ;弾4の設定 ;------------------------------------------------ [State 801, 弾4のx初期位置] type = varAdd trigger1 = time = 0 var(15) = 40 [State 801, 弾4のy初期位置] type = varAdd trigger1 = time = 0 var(16) = -58 [State 801, 弾4と相手との角度計算] type = varSet trigger1 = time < 30 fvar(19) = atan( (var(59) - (pos y + var(16)))/abs(var(58) - (pos x + facing*var(15)) + 0.00001) ) [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 30 fvar(17) = 0 [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 30 fvar(18) = 0 [State 801, 飛んで行く方向決定補助] type = varSet trigger1 = time = 30 var(18) = facing*abs(var(58) - (pos x + facing*var(15)))/(var(58) - (pos x + facing*var(15))) [State 801, 弾4のx加速度] type = varSet trigger1 = 1 fvar(15) = ifElse(time < 30, -fvar(17)/10, var(18)*2*cos(fvar(19))) [State 801, 弾4のy加速度] type = varSet trigger1 = 1 fvar(16) = ifElse(time < 30, -fvar(18)/10, 2*sin(fvar(19))) [State 801, 弾4のx速度];初期値も設定 type = varAdd trigger1 = 1 fvar(17) = fvar(15) +ifElse(time =1, 3, 0) [State 801, 弾4のy速度];初期値も設定 type = varAdd trigger1 = 1 fvar(18) = fvar(16) +ifElse(time =1, -4, 0) [State 801, 弾4のx位置] type = varAdd trigger1 = 1 var(15) = fvar(17) [State 801, 弾4のy位置] type = varAdd trigger1 = 1 var(16) = fvar(18) [State 801, 弾4グレイズ用] type = varSet trigger1 = var(17) != 1 trigger1 = p2StateNo = [100, 119] var(17) = -1 [State 801, 弾4グレイズ用] type = varSet trigger1 = var(17) != 1 trigger1 = p2StateNo != [100, 119] var(17) = 0 [State 801, グレイズ音] type = playSnd trigger1 = var(17) = -1 trigger1 = abs(var(59) - (pos y + var(16))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(15))) < 15 value = 0, 2 [State 801, グレイズされました] type = varSet trigger1 = var(17) = -1 trigger1 = abs(var(59) - (pos y + var(16))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(15))) < 15 var(17) = 1 [State 801, 弾4接触] type = varSet trigger1 = root,projContactTime(var(50)+3) = 1 ;trigger2 = root,projCancelTime(var(50)+3) != -1 var(17) = 1 [State 801, 発射音] type = playSnd trigger1 = var(17) != 1 trigger1 = time = 30 value = 220, 3 [State 801, 弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(17) = 0 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = MAFP animtype = Medium air.animtype = Medium fall.animtype = Medium pausetime = 0, 10 projID = var(50)+3 projAnim = 6800 ;projHitAnim = ;projRemAnim = projRemove = 1 projRemoveTime = 1 projpriority = 1 projhits = 1 projScale = 0.2, 0.2 offset = var(15), var(16) posType = p1 sparkno = s20000 guard.sparkno = 40 sparkxy = 0, 0 hitsound = s220,1 guardsound = s0,5 ground.slidetime = 10 ground.hittime = 10 ground.velocity = -5,0 airguard.velocity = -3, -2 air.velocity = -3, -2 air.hittime = 10 [State 801, グレイズ弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(17) = -1 projID = var(50)+3 projAnim = 6801 projRemoveTime = 1 projScale = 0.2, 0.2 offset = var(15), var(16) posType = p1 ;------------------------------------------------ ;弾5の設定 ;------------------------------------------------ [State 801, 弾5のx初期位置] type = varAdd trigger1 = time = 0 var(20) = 40 [State 801, 弾5のy初期位置] type = varAdd trigger1 = time = 0 var(21) = -58 [State 801, 弾5と相手との角度計算] type = varSet trigger1 = time < 35 fvar(24) = atan( (var(59) - (pos y + var(21)))/abs(var(58) - (pos x + facing*var(20)) + 0.00001) ) [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 35 fvar(22) = 0 [State 801, 飛んで行く前に一旦初期化] type = varSet trigger1 = time = 35 fvar(23) = 0 [State 801, 飛んで行く方向決定補助] type = varSet trigger1 = time = 35 var(23) = facing*abs(var(58) - (pos x + facing*var(20)))/(var(58) - (pos x + facing*var(20))) [State 801, 弾5のx加速度] type = varSet trigger1 = 1 fvar(20) = ifElse(time < 35, -fvar(22)/10, var(23)*2*cos(fvar(24))) [State 801, 弾5のy加速度] type = varSet trigger1 = 1 fvar(21) = ifElse(time < 35, -fvar(23)/10, 2*sin(fvar(24))) [State 801, 弾5のx速度];初期値も設定 type = varAdd trigger1 = 1 fvar(22) = fvar(20) +ifElse(time = 1, 3, 0) [State 801, 弾5のy速度];初期値も設定 type = varAdd trigger1 = 1 fvar(23) = fvar(21) +ifElse(time = 1, 4, 0) [State 801, 弾5のx位置] type = varAdd trigger1 = 1 var(20) = fvar(22) [State 801, 弾5のy位置] type = varAdd trigger1 = 1 var(21) = fvar(23) [State 801, 弾5グレイズ用] type = varSet trigger1 = var(22) != 1 trigger1 = p2StateNo = [100, 119] var(22) = -1 [State 801, 弾5グレイズ用] type = varSet trigger1 = var(22) != 1 trigger1 = p2StateNo != [100, 119] var(22) = 0 [State 801, グレイズ音] type = playSnd trigger1 = var(22) = -1 trigger1 = abs(var(59) - (pos y + var(21))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(20))) < 15 value = 0, 2 [State 801, グレイズされました] type = varSet trigger1 = var(22) = -1 trigger1 = abs(var(59) - (pos y + var(21))) < 15 trigger1 = abs(var(58) - (pos x + facing*var(20))) < 15 var(22) = 1 [State 801, 弾5接触] type = varSet trigger1 = root,projContactTime(var(50)+4) = 1 ;trigger2 = root,projCancelTime(var(50)+4) != -1 var(22) = 1 [State 801, 発射音] type = playSnd trigger1 = var(22) != 1 trigger1 = time = 35 value = 220, 3 [State 801, 弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(22) = 0 attr = S, NP damage = Ceil(20*root,fvar(0)), 0 getpower = 20, 20 guardflag = MA hitflag = MAFP animtype = Medium air.animtype = Medium fall.animtype = Medium pausetime = 0, 10 projID = var(50)+4 projAnim = 6800 ;projHitAnim = ;projRemAnim = projRemove = 1 projRemoveTime = 1 projpriority = 1 projhits = 1 projScale = 0.2, 0.2 offset = var(20), var(21) posType = p1 sparkno = s20000 guard.sparkno = 40 sparkxy = 0, 0 hitsound = s220,1 guardsound = s0,5 ground.slidetime = 10 ground.hittime = 10 ground.velocity = -5,0 airguard.velocity = -3, -2 air.velocity = -3, -2 air.hittime = 10 [State 801, グレイズ弾発射] type = Projectile trigger1 = time > 0 trigger1 = var(22) = -1 projID = var(50)+4 projAnim = 6801 projRemoveTime = 1 projScale = 0.2, 0.2 offset = var(20), var(21) posType = p1