Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 77.81 KB | None | 0 0
  1. // 行動リストテーブル
  2.  
  3. //SET_MoveTable <- {}
  4. local t = {};
  5.  
  6. //-----------------------------------------------------------------------------
  7. // 固有関数
  8. //-----------------------------------------------------------------------------
  9.  
  10. //飛び道具に+1
  11. //操作親が着地(地上判定)になるまで持続(一応時間でもなくなる)
  12. //消滅時に飛び道具に-1
  13.  
  14. local Set_JumpSkillLimit = function( slot )
  15. {
  16. local e = BMvEff.CreateObject( { mvname="Mv_Obj_JSkillLimit" } ); //空中で何度も出せないように制限をかける
  17. BMvCore.PushCharaData( e ); //
  18. BMvTbl.SetLP( 0, slot );
  19. BMvCore.PopCharaData();
  20. BMvTbl.TobiParam_Func( { slot=slot, val=1, type=_ValSet } );
  21. }
  22.  
  23. t.Mv_Obj_JSkillLimit <-
  24. {
  25. function Init_After()
  26. {
  27. BMvEff.SetObjectFlags( { flags=_ObjFlags_NoGround | _ObjFlags_NoRender| _ObjFlags_MoveTimeStopAll } );
  28. BMvEff.SetExist( { level = _Exist_NoHantei } );
  29. //BMvTbl.TobiParam_Func( { slot=5, val=1, type=_ValSet } );
  30. //LP0 : 使うスロット
  31. }
  32. function FrameUpdate_After()
  33. {
  34. local end_flag = true;
  35.  
  36. local s = BMvTbl.GetMvStatus(); // ステータス取得
  37.  
  38. local p = BMvCore.GetPlayerCharaData(); // 操作親の情報を得る
  39. if( p.IsDone )
  40. {
  41. BMvCore.PushCharaData( p ); //
  42. //地上にくるか一定時間経過すると制限は終了
  43. end_flag = ( ( BCMDTbl.CheckPosState( _PosState_Ground )!=0 ) || s.MvCount>420 );
  44. BMvCore.PopCharaData();
  45. }
  46.  
  47. if( end_flag )
  48. {
  49. BMvTbl.SetFinalize(0);
  50. }
  51. }
  52. function LastUpdate_After()
  53. {
  54. //print("\n終わり");
  55. local slot = BMvTbl.GetLP(0);
  56. BMvTbl.TobiParam_Func( { slot=slot, val=0, type=_ValSet } );
  57. }
  58. }
  59.  
  60.  
  61. //-----------------------------------------------------------------------------
  62. // 新技
  63. //-----------------------------------------------------------------------------
  64.  
  65. t.Mv_Atk_StdBandC <-
  66. {
  67. function Init_After()
  68. {
  69. //
  70. }
  71. function FrameUpdate_After()
  72. {
  73. local mvs = BMvTbl.GetMvStatus();
  74. if( mvs.isFrameUpdate && mvs.FrameID==200 )
  75. {
  76. // タメ終了
  77. // セグメント強化状態となる
  78. BMvEff.CreateObject( { mvname="Mv_Null_BlackPowerUp" } ); // セグメントが強化される状態
  79. }
  80. }
  81. }
  82.  
  83. t.Mv_Null_BlackPowerUp <-
  84. {
  85. function Init_After()
  86. {
  87. BMvTbl.TobiParam_Func( { slot=2, val=1, type=_ValAdd } );
  88. }
  89. function Update_After()
  90. {
  91. // ダメージで消滅
  92. if( Battle_Std.CheckPlayerisDamage() )
  93. {
  94. BMvTbl.SetFinalize(0);
  95. }
  96. local slot = BMvTbl.TobiParam_Func( { slot=2, type=_ValGet } );
  97. if( slot <= 0 )
  98. {
  99. BMvTbl.SetFinalize(0);
  100. }
  101. }
  102. function LastUpdate_After()
  103. {
  104. BMvTbl.TobiParam_Func( { slot=2, type=_ValClear } );
  105. }
  106. }
  107.  
  108. //-----------------------------------------------------------------------------
  109. // 共通動作
  110. //-----------------------------------------------------------------------------
  111.  
  112.  
  113. t.Mv_Dash_B <- // バクステ
  114. {
  115. function Init_After() //
  116. {
  117. // BMvEff.SetPlayerTimer( { muteki_nage=Cdef_Set_MutekiFrame_BackDash, muteki_dage=Cdef_Set_MutekiFrame_BackDash } ); //バクステの無敵時間
  118. // BMvEff.SetPlayerTimer( { muteki_nageX=Cdef_Set_MutekiFrame_BackDash, muteki_dageX=Cdef_Set_MutekiFrame_BackDash } ); //バクステの無敵時間
  119. }
  120. function FrameUpdate_After()
  121. {
  122. local s = BMvTbl.GetMvStatus();
  123. if( s.isFrameUpdate )
  124. {
  125. switch( s.FrameID )
  126. {
  127. case 100: //バクステ1回目着地
  128. //cmdで追加コマンド受付してMv_Dash_B_Add2へ
  129. break;
  130. }
  131. }
  132. }
  133. }
  134.  
  135. t.Mv_Dash_B_Add2 <-
  136. {
  137. function Init()
  138. {
  139. BMvTbl.SetPattern("Dash_B_Add2")
  140. }
  141. function Finalize()
  142. {
  143. BMvTbl.SetNextMoveTable( "Mv_Neutral" );
  144. }
  145. }
  146.  
  147. t.Mv_Atk_Cro3C <-
  148. {
  149. function FrameUpdate_After()
  150. {
  151. Battle_Std.SetHitMuteki( 1, 8, _HitCheckFlag_Head ); // Param1 == 8 の時、_HitCheckFlag_Head 頭無敵
  152. }
  153. }
  154.  
  155. //-----------------------------------------------------------------------------
  156. // 通常投げ
  157. //-----------------------------------------------------------------------------
  158.  
  159. t.Mv_Throw_F_Hit <-
  160. {
  161. function Init_After()
  162. {
  163. Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
  164. }
  165. function FrameUpdate_After()
  166. {
  167. local s = BMvTbl.GetMvStatus(); // ステータス取得
  168. //_dm("id:"+s.FrameID);
  169. if( s.isFrameUpdate )
  170. {
  171. switch( s.FrameID )
  172. {
  173. case 100: //切り離し
  174. Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
  175. BMvEff.ThrowParam( { pattern=305, x=130, y=0, } );
  176. BMvEff.ThrowRelease( { type="腹やられ強", airrecover=0, flags=0 } );
  177. break;
  178. case 200: // 攻撃部分
  179. Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
  180. break;
  181. }
  182. }
  183. }
  184. }
  185.  
  186. //-----------------------------------------------------------------------------
  187. // インフィニットワース
  188. //-----------------------------------------------------------------------------
  189.  
  190. t.Mv_Skill_41236SP <-
  191. {
  192. function Init_After()
  193. {
  194. //発動時の無敵を設定 ※暗転60Fがあるから注意(def_FL_SPCutinStopTime)
  195. local muteki = 16 + def_FL_SPCutinStopTime;
  196. BMvEff.SetPlayerTimer( { muteki_nage=muteki, muteki_dage=muteki, muteki_dageX=muteki, muteki_nageX=muteki } );
  197.  
  198. BMvTbl.SetFinalizeCode(0); //初期状態が0でない+GetFinalizeCodeで分岐してるので初期化
  199. }
  200. function HitInterrupt_After()
  201. {
  202. local isCapture = Battle_Std.SetThrowHitFinalize(256);
  203. _dp("\n isCapture:"+isCapture);
  204. if( !isCapture ) //つかんでないなら普通にヒット分岐する
  205. {
  206. // 触れたら適当にガード乱舞へ移行する
  207. local hs = BMvTbl.GetMvHitStatus();
  208. if( hs.Type&_HitType_Hit )
  209. {
  210. BMvTbl.SetFinalize( 128 );
  211. }
  212. }
  213. }
  214. function Finalize()
  215. {
  216. local code = BMvTbl.GetFinalizeCode();
  217. if( code!=256 )
  218. {
  219. BMvEff.CutInProc_Erase(); //カットインがあったら消去する
  220. }
  221. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[128,"Mv_Skill_41236SP_Guard"], [256,"Mv_Skill_41236SP_Hit"]); //デフォ,[code,mv]...
  222. }
  223. function LastUpdate() //カットイン消去を上書き
  224. {
  225. if( BMvTbl.FromFinalize()==0 )
  226. {
  227. BMvEff.CutInProc_Erase(); //カットインがあったら消去する
  228. }
  229. }
  230. }
  231.  
  232. t.Mv_Skill_41236SP_Guard <-
  233. {
  234. function LastUpdate()
  235. {
  236. BMvEff.CutInProc_Erase(); //カットインがあったら消去する
  237. BMvEff.SetObjectRender( { type=0 } ); //演出中消していたものを復活
  238. }
  239. };
  240.  
  241.  
  242. t.Mv_Skill_41236SP_Hit <-
  243. {
  244. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  245. function Init_After()
  246. {
  247. //見た目のカメラ位置中央からの相対座標で取得
  248. //カメラをリセットし、ステージ中央からの相対座標としてキャラを配置
  249. local pos = BMvEff.GetCameraPosition( { x=0, y=0, flags=_GetPos_ViewCamera | _GetPos_Offset | _GetPos_NoMuki } );
  250.  
  251. BMvEff.ResetCamera(); //カメラ初期化
  252. BMvEff.ResetViewCamera();
  253.  
  254. BMvTbl.SetPosition( { x=-pos.x, y=0, flags= _Position_ChangeMuki } );
  255.  
  256. //t.CatchDammyCall("41236SP_Hit_Dammy"); //ダミー呼び出し
  257.  
  258. BMvEff.SetObjectRender( { type=1 } ); //設置物がワープしてしまうので演出中は消す
  259.  
  260. }
  261. function FrameUpdate_After()
  262. {
  263. local s = BMvTbl.GetMvStatus(); // ステータス取得
  264. //_dm("id:"+s.FrameID);
  265. if( s.isFrameUpdate )
  266. {
  267. switch( s.FrameID )
  268. {
  269. case 10: //切り離し
  270. // Type 14 No 304 Param 100 0 0 1 2 0 0 0 0 0 0 0
  271. BMvEff.ThrowParam( { pattern=304, x=100, y=0, } );
  272. //BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
  273. BMvEff.ThrowRelease( { type="特大のけぞり頭", airrecover=0, flags=0 } );
  274. break;
  275. case 100: //最初の竜巻
  276. //ここで相手のX座標の真下へ移動する
  277. local pos = Battle_Std.GetEnemyPosition(); //相手の座標を取得
  278. BMvTbl.SetPosition({ x=pos.x }); //相手の座標までワープ
  279.  
  280. local pos = BMvEff.GetCameraPosition( { x=0, y=0, flags=_GetPos_ViewCamera | _GetPos_Offset | _GetPos_NoMuki } );
  281.  
  282. local e = BMvCore.GetNearEnemyCharaData(); // 敵の情報を得る
  283.  
  284. if( e.IsDone )
  285. {
  286. BMvCore.PushCharaData( e ); //
  287. local e_pos = BMvEff.GetCameraPosition( { x=0, y=0, flags=_GetPos_ViewCamera | _GetPos_Offset | _GetPos_NoMuki } );
  288. BMvCore.PopCharaData(); //
  289.  
  290. BMvEff.ResetCamera(); //カメラ初期化
  291. BMvEff.ResetViewCamera();
  292.  
  293. BMvTbl.SetPosition( { x=-pos.x, y=0, flags= _Position_ChangeMuki } );
  294.  
  295. BMvCore.PushCharaData( e ); //
  296. BMvTbl.SetPosition( { x=-e_pos.x, y=-e_pos.y, flags= _Position_ChangeMuki } );
  297. BMvCore.PopCharaData(); //
  298. }
  299.  
  300.  
  301.  
  302. Battle_Std.CreateObjectEX({ x=0, y=0, pat="SPAtkRect", objectflags=_ObjFlags_EraseParentDamage|_ObjFlags_EraseParentPatChange, });
  303. break;
  304. case 200: //相手に竜巻
  305. Battle_Std.CreateObjectEX({ x=0, y=0, pat="SPAtkRect", objectflags=_ObjFlags_EraseParentDamage|_ObjFlags_EraseParentPatChange, });
  306. break;
  307. case 300: //X
  308. BMvEff.SetCamera_Quake( { type=2, time=40, clear=1 } ); //他の揺らしを止めて画面揺らし
  309. break;
  310. case 900: //終了
  311. //座標位置を調整
  312.  
  313. break;
  314. }
  315. }
  316. }
  317. function HitInterrupt_After()
  318. {
  319. local hs = BMvTbl.GetMvHitStatus();
  320. if( hs.isFirstUpdate ) Battle_Std.SetPosition_DamageHanteiRect({ power=50, });
  321. }
  322. function LastUpdate_After()
  323. {
  324. BMvEff.CutInProc_Erase(); //カットインがあったら消去する
  325. BMvEff.SetObjectRender( { type=0 } ); //演出中消していたものを復活
  326. }
  327. }
  328.  
  329. t.Mv_Obj_SPDummy <-
  330. {
  331. function FrameUpdate_After() //
  332. {
  333. local s = BMvTbl.GetMvStatus(); // ステータス取得
  334. }
  335. }
  336.  
  337. //-----------------------------------------------------------------------------
  338. // 通常技
  339. //-----------------------------------------------------------------------------
  340.  
  341. t.Mv_Atk_Air6C <-
  342. {
  343. function Init_After()
  344. {
  345. BMvTbl.SetLP(0,0); //攻撃パターンまで進めたかどうか
  346. }
  347. function FrameUpdate_After()
  348. {
  349. local mvst = BMvTbl.GetMvStatus();
  350. //もうすぐ着地しそうなら攻撃のパターンまで進める
  351. if( mvst.FrameID==50 ) //落下近くの絵
  352. {
  353. if( BMvTbl.GetLP(0)==0 )
  354. {
  355. local pos = BMvTbl.GetPosition(0);
  356. if( pos.y > -150*128 )
  357. {
  358. BMvTbl.SetLP(0,1); //進めた
  359. BMvTbl.JumpFrameID(100); //攻撃の絵まで進める
  360. }
  361. }
  362. }
  363. }
  364. }
  365.  
  366. //-----------------------------------------------------------------------------
  367. // 236攻
  368. //-----------------------------------------------------------------------------
  369.  
  370. //236攻のチャージ部分と飛び道具発射のTmplを作る関数
  371. local Get236ChargeEffTmplTable = function(tbl={})
  372. {
  373. local tmpl = {
  374. Init_After = function(){},
  375. FrameUpdate_After = function(){},
  376. };
  377.  
  378. local SetAngle = ("ShootAngle" in tbl)? tbl.ShootAngle : 2500; //発射角度
  379. local PowShootAngle = ("PowShootAngle" in tbl)? tbl.PowShootAngle : 2500; // 強化発射角度
  380. local SetSpeed = ("SetSpeed" in tbl)? tbl.SetSpeed : 2000;
  381. local SetVec = BMvEff.GetVector_FromAngle( { angle = SetAngle/5000.0, speed = SetSpeed } );
  382. local SetVecPow = BMvEff.GetVector_FromAngle( { angle = PowShootAngle/5000.0, speed = SetSpeed*2 } );
  383. local SetFrame = 35;
  384. local ShootCount = ("ShootCount" in tbl)? tbl.ShootCount : 1; //何発うつか
  385.  
  386. local ShootType = ("type" in tbl)? tbl.type : 0; //ABCのどれか 0,10:A 1,11:B 2,12:EX
  387. local useTobiVal = (ShootType%10==2)? 1 : 0; //使う飛び道具制限
  388.  
  389. local PowUpType = ("PowUpType" in tbl)? tbl.PowUpType : 0; // 強化タイプ
  390.  
  391. local CheckMv = ("CheckMv" in tbl)? tbl.CheckMv : 0; //このMv以外になったら消滅
  392. local ShootFrame = ("ShootFrame" in tbl)? tbl.ShootFrame : [91,100,108]; //何フレーム後に発射するか
  393. local ShootAngle = ("ShootAngle" in tbl)? tbl.ShootAngle : 2500; //発射角度
  394.  
  395. //print(" ------------------ useTobiVal"+useTobiVal);
  396.  
  397. tmpl.Init_After = function() : (SetVec, SetFrame, ShootCount, useTobiVal, SetVecPow)
  398. {
  399.  
  400. BMvTbl.SetLP(0,0); //うったかどうか 0:うってない 1:うった 10:妨害されて消滅
  401. BMvTbl.SetLP(1,ShootCount); //何発うつか 0になったら終了
  402. BMvTbl.SetLP(2,0); // 何発目のたまか 0 1 2
  403.  
  404. BMvTbl.TobiParam_Func( { slot=useTobiVal, val=1, type=_ValAdd } );
  405.  
  406. local powerup_ball = (BMvTbl.TobiParam_Func( { slot=2, type=_ValGet } ) > 0 )? 1 : 0;
  407. BMvTbl.SetLP(6,powerup_ball); // 強化なのかどうか記憶
  408. if( powerup_ball)
  409. {
  410. BMvTbl.TobiParam_Func( { slot=2, type=_ValClear } ); // 発射したことによるクリア
  411. // クリアを見て強化監視オブジェクトも勝手に消えます
  412. BMvTbl.SetVector( { x=SetVecPow.x, addx=-(SetVecPow.x/SetFrame), y=SetVecPow.y, addy=-(SetVecPow.y/SetFrame), flags=_Vector_Div });
  413. BMvTbl.SetScale( { x=11500, y=11500 } ); // 強化だとちょっと拡大する
  414. }
  415. else
  416. {
  417. BMvTbl.SetVector( { x=SetVec.x, addx=-(SetVec.x/SetFrame), y=SetVec.y, addy=-(SetVec.y/SetFrame), flags=_Vector_Div });
  418. }
  419.  
  420. BSound.SE_Play( { num=74 } ); // ちりちり音
  421.  
  422. //BMvEff.SetObjectFlags( { flags=_ObjFlags_NoGround|_ObjFlags_NoRenderOrder|_ObjFlags_NoRenderBlackOut } ); //暗転中描画しない
  423. }
  424.  
  425. tmpl.FrameUpdate_After = function() : (CheckMv, ShootFrame, ShootAngle, ShootType, useTobiVal, PowUpType)
  426. {
  427.  
  428. local s = BMvTbl.GetMvStatus(); // ステータス取得
  429. local pmv = Battle_Std.GetPlayerMvName();
  430.  
  431. local isNotBlocked = (BMvTbl.GetLP(0)!=10);
  432.  
  433. //飛び道具自身のやられ判定に攻撃を受けても消滅するっす
  434. //強化(B+C)から出した場合は消えないが、EXは除外する
  435. local hc_enemy = BMvEff.CheckHantei( { src=[ _Hantei_Kurai , 0, -1 ], dst=[ _Hantei_Attack, 0, -1 ], flags=_HC_EnemyPc|_HC_EnemyObj } );
  436. local isDamage = 0;
  437.  
  438. if( hc_enemy.isdone() ) // 触れている
  439. {
  440. if( BMvTbl.GetLP(6) == 1 && PowUpType == 1 ) // 強化状態 かつ 強化タイプ1(0:何も変化しない 1:弾を殴っても消えなくなる)
  441. {
  442. }
  443. else
  444. {
  445. isDamage = 1;
  446. }
  447. }
  448.  
  449. if( s.MvCount==8 || s.MvCount==56 )
  450. {
  451. Battle_Std.CreateObjectEX( { pat="236ChargeLightEff", angle="rand", objectflags=_ObjFlags_NoGround } );
  452. }
  453.  
  454. if( isNotBlocked && isDamage )
  455. {
  456. BMvTbl.SetLP(0,10);
  457. BMvTbl.JumpFrameID(950);
  458. Battle_Std.InitVector(); //停止
  459. BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
  460.  
  461. BMvEff.SetCamera_Quake( { time=10, type=1 } ); //揺らす
  462.  
  463. BSound.SE_Play( { num=220} ); // 爆発1
  464. }
  465.  
  466. if( isNotBlocked && Battle_Std.CheckPlayerisDamage() && ShootType%10!=2 ) //食らったら消えるっす(EX以外)
  467. {
  468. BMvTbl.SetLP(0,10);
  469. BMvTbl.JumpFrameID(900);
  470. BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
  471. }
  472.  
  473. //アレなので消す
  474. if( isNotBlocked && pmv=="Mv_Skill_41236SP_Hit" )
  475. {
  476. BMvTbl.SetLP(0,10);
  477. BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
  478. BMvTbl.JumpFrameID(900);
  479. BMvTbl.SetFinalize(0); //すぐ消えよう
  480. }
  481.  
  482. local isNotShot = (BMvTbl.GetLP(0)==0); //弾をうったら終了するフラグ→うちおわったらに変更
  483.  
  484. //着地しそうだったらとめる
  485. local pos = BMvTbl.GetPosition(0);
  486. if( pos.y > -64*128 )
  487. {
  488. // B+Cでの移動があるので_Vector_DivKeepは消さない
  489. BMvTbl.SetVector( { x=0, y=0, addx=0, addy=0, flags=_Vector_Normal|_Vector_Div|_Vector_Bound|_Vector_Keep } );
  490. //Battle_Std.InitVector(); //停止
  491. }
  492.  
  493. local shot_num = BMvTbl.GetLP(2);
  494. if( shot_num > (ShootFrame.len()-1) ) shot_num = (ShootFrame.len()-1); // 何発目か
  495. if( s.MvCount==ShootFrame[shot_num] && isNotShot ) //まだうってないならうつよ
  496. {
  497. local isEX = (ShootType==2 || ShootType==12);
  498. local pat = "236_Tama";
  499. if( isEX )
  500. {
  501. if( BMvTbl.GetLP(1)<=1 ) //最後に発射するやつ?
  502. {
  503. pat="236EX_LastTama";
  504. }
  505. else
  506. {
  507. pat="236EX_Tama";
  508. }
  509.  
  510. Battle_Std.CreateFireBall({ x=0, y=0, mv="Mv_FireBall_236EX", pat=pat, angle=0, ball=0, LP={ slot=1, val=ShootType} });
  511. BMvEff.SetObjectFlags( { flags=_ObjFlags_FromParentStop|_ObjFlags_ToParentStop } );
  512. }
  513. else
  514. {
  515. Battle_Std.CreateFireBall({ x=0, y=0, mv="Mv_FireBall_236", pat=pat, angle=0, ball=0, LP={ slot=0, val=ShootType} });
  516. }
  517.  
  518. BMvTbl.AddLP(1,-1); //うった回数を減らす
  519. BMvTbl.AddLP(2, 1); // うった回数を記憶w
  520. if( BMvTbl.GetLP(1)<=0 ) //もう残ってないなら消える
  521. {
  522. BMvTbl.SetLP(0,1);
  523. BMvTbl.JumpFrameID(900);
  524. BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
  525. }
  526. }
  527. }
  528.  
  529. return tmpl;
  530. }
  531.  
  532. t.Mv_Obj_236AChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_236A", ShootAngle=3300, PowShootAngle=2900, type=0, ShootFrame=[91, 999, 999], PowUpType=1 } );
  533. t.Mv_Obj_236BChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_236B", ShootAngle=2500, PowShootAngle=2500, type=1, ShootFrame=[91, 999, 999], PowUpType=1 } );
  534. t.Mv_Obj_236EXChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_236EX", ShootAngle=1250, PowShootAngle=2000, type=2, ShootFrame=[91,100,108], ShootCount=3, PowUpType=0 } );
  535. t.Mv_Obj_J236AChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_J236A", ShootAngle=4000, PowShootAngle=3100, type=10, ShootFrame=[108, 999, 999], PowUpType=1 } );
  536. t.Mv_Obj_J236BChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_J236B", ShootAngle=6500, PowShootAngle=7000, type=11, ShootFrame=[108, 999, 999], PowUpType=1 } );
  537. t.Mv_Obj_J236EXChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_J236EX", ShootAngle=3500, PowShootAngle=3500, type=12, ShootFrame=[108,116,125], ShootCount=3, PowUpType=0 } );
  538.  
  539. t.Mv_Skill_236A <-
  540. {
  541. function FrameUpdate_After() //
  542. {
  543. local s = BMvTbl.GetMvStatus(); // ステータス取得
  544. if( s.isFrameUpdate )
  545. {
  546. switch( s.FrameID )
  547. {
  548. case 100: //チャージエフェクト
  549. local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
  550. Battle_Std.CreateObjectEX({ x=232, y=-215, pat=usepat, mvname="Mv_Obj_236AChargeEff", flags=_Position_ToolShift });
  551. break;
  552. }
  553. }
  554. }
  555. }
  556.  
  557. t.Mv_Skill_236B <-
  558. {
  559. function FrameUpdate_After() //
  560. {
  561. local s = BMvTbl.GetMvStatus(); // ステータス取得
  562. if( s.isFrameUpdate )
  563. {
  564. switch( s.FrameID )
  565. {
  566. case 100: //チャージエフェクト
  567. local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
  568. Battle_Std.CreateObjectEX({ x=243, y=-277, pat=usepat, mvname="Mv_Obj_236BChargeEff", flags=_Position_ToolShift })
  569. break;
  570. }
  571. }
  572. }
  573. }
  574.  
  575. t.Mv_Skill_236EX <-
  576. {
  577. function FrameUpdate_After() //
  578. {
  579. local s = BMvTbl.GetMvStatus(); // ステータス取得
  580. if( s.isFrameUpdate )
  581. {
  582. switch( s.FrameID )
  583. {
  584. case 100: //チャージエフェクト
  585. local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236EXChargeEff2P" : "236EXChargeEff1P";
  586. Battle_Std.CreateObjectEX({ x=226, y=-340, pat=usepat, mvname="Mv_Obj_236EXChargeEff", flags=_Position_ToolShift })
  587. break;
  588. }
  589. }
  590. }
  591. }
  592.  
  593. //-----------------------------------------------------------------------------
  594. // J236攻
  595. //-----------------------------------------------------------------------------
  596.  
  597. t.Mv_Skill_J236A <-
  598. {
  599. function FrameUpdate_After() //
  600. {
  601. local s = BMvTbl.GetMvStatus(); // ステータス取得
  602. if(s.isFrameUpdate && s.FrameID == 100 ) //飛び道具呼び出し
  603. {
  604. local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
  605. Battle_Std.CreateObjectEX({ x=87, y=-167, pat=usepat, mvname="Mv_Obj_J236AChargeEff", flags=_Position_ToolShift })
  606. }
  607. }
  608. }
  609.  
  610. t.Mv_Skill_J236B <-
  611. {
  612. function FrameUpdate_After() //
  613. {
  614. local s = BMvTbl.GetMvStatus(); // ステータス取得
  615. if(s.isFrameUpdate && s.FrameID == 100 ) //飛び道具呼び出し
  616. {
  617. local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
  618. Battle_Std.CreateObjectEX({ x=-42, y=-192, pat=usepat, mvname="Mv_Obj_J236BChargeEff", flags=_Position_ToolShift });
  619. //BMvTbl.SetVector( { x=1400, y=-2000, addy=190, flags=_Vector_Normal }); //ベクトル設定
  620. }
  621. }
  622. }
  623.  
  624. t.Mv_Skill_J236EX <-
  625. {
  626. function FrameUpdate_After() //
  627. {
  628. local s = BMvTbl.GetMvStatus(); // ステータス取得
  629. if(s.isFrameUpdate && s.FrameID == 100 ) //飛び道具呼び出し
  630. {
  631. local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236EXChargeEff2P" : "236EXChargeEff1P";
  632. Battle_Std.CreateObjectEX({ x=149, y=-187, pat=usepat, mvname="Mv_Obj_J236EXChargeEff", flags=_Position_ToolShift })
  633. }
  634. }
  635. }
  636.  
  637. t.Mv_FireBall_236 <-
  638. {
  639. function Init_After()
  640. {
  641. //まず相手の方を向く
  642. //これじゃ向かないよ
  643. //BMvTbl.SetMuki( _Direction_Auto );
  644.  
  645. //相手の方の角度にする
  646. local enemy = BMvCore.GetEnemyCharaData(); // 敵情報を得る
  647. if(enemy.IsDone)
  648. {
  649. BMvCore.PushCharaData( enemy ); //
  650. local epos = BMvTbl.GetPosition(); // 位置取得
  651. local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Kasanari, 0 ], flags=_HanteiFlag_NoMukiChange } );
  652. local offy = -250*128; //初期オフセット座標
  653. if( rc.sx != _Hantei_Error ) // 存在するか
  654. {
  655. offy = (rc.sy/2);
  656. }
  657.  
  658. BMvCore.PopCharaData(); //
  659.  
  660. epos.y += offy;
  661.  
  662. local posst = BMvEff.GetPointStatus( { position=epos } );
  663. BMvTbl.SetAngle( { angle_float=posst.angle } );
  664.  
  665. //相手の方を向く
  666. //_dp("\n posst.angle:"+posst.angle);
  667. if( posst.angle <= 1.0 )
  668. {
  669. BMvTbl.SetMuki( _Direction_Right );
  670. BMvTbl.SetAngle( { angle_float=posst.angle } );
  671. }
  672. else
  673. {
  674. BMvTbl.SetMuki( _Direction_Left );
  675. BMvTbl.SetAngle( { angle_float=(2.0-posst.angle) } );
  676. }
  677. //BMvTbl.SetAngle( { angle=(5000 * posst.angle) } ); // 角度設定
  678.  
  679. //_dm("posst.angle:"+posst.angle);
  680.  
  681. //Battle_Std.HomingTarget( { posst=posst, speed=125, minSpeed=10 } );
  682. }
  683.  
  684.  
  685.  
  686. //BMvEff.LinePrim_Set( { delay=60, width=2, parts=1, wrap=1 } );
  687. BSound.SE_Play( { type=_SeType_Player , num=0 } ); //飛び道具発射
  688.  
  689. //LP0 何で出したか 0:A 1:B 2:C 10:JA
  690.  
  691. //local angle = Battle_Std.GetNearEnemyMigiAngle();
  692.  
  693. //LP0 : ターゲットだしたかどうか?
  694. //LP1 : X座標
  695. //LP2 : Y座標
  696. BMvTbl.SetLP(0,0);
  697.  
  698. }
  699. function FrameUpdate_After()
  700. {
  701. local s = BMvTbl.GetMvStatus(); // ステータス取得
  702. //local type = BMvTbl.GetLP(0); //A B C JA JB JC
  703.  
  704. if( s.MvCount>60 )
  705. {
  706. BMvTbl.SetFinalize(); //もう長くはいきられない… ※FireBallなので特に指定しないでおく
  707. }
  708. else if( s.MvCount<15 )
  709. {
  710. if( BMvTbl.GetLP(0)==0 )
  711. {
  712. BMvTbl.SetLP(0,1);
  713.  
  714. local enemy = BMvCore.GetEnemyCharaData(); // 敵情報を得る
  715. if(enemy.IsDone)
  716. {
  717. BMvCore.PushCharaData( enemy ); //
  718. local epos = BMvTbl.GetPosition(); // 位置取得
  719. local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Kasanari, 0 ], flags=_HanteiFlag_NoMukiChange } );
  720. local offy = -250*128; //初期オフセット座標
  721. if( rc.sx != _Hantei_Error ) // 存在するか
  722. {
  723. offy = (rc.sy/2);
  724. }
  725. BMvCore.PopCharaData(); //
  726.  
  727. epos.y += offy;
  728.  
  729. BMvTbl.SetLP(1,epos.x);
  730. BMvTbl.SetLP(2,epos.y);
  731. }
  732. else //相手が取得できなかったら
  733. {
  734.  
  735. }
  736. }
  737. else
  738. {
  739. local cpos = BMvTbl.CCharaPosition();
  740. cpos.x = BMvTbl.GetLP(1);
  741. cpos.y = BMvTbl.GetLP(2);
  742.  
  743. //_dm("cpos x:"+cpos.x+" y:"+cpos.y);
  744.  
  745. local posst = BMvEff.GetPointStatus( {position=cpos } );
  746.  
  747. Battle_Std.HomingTarget( { posst=posst, speed=125, minSpeed=10 } );
  748. }
  749. }
  750. else if( s.MvCount<30 )
  751. {
  752. //今のベクトルを取得して単純に加速する
  753. local vec = BMvTbl.GetVector(0);
  754. local posst = BMvEff.GetAngle_FromVector( { x=vec.x, y=vec.y } );
  755. //posst.angle 0.0-2.0
  756. local v = BMvEff.GetVector_FromAngle( { angle = posst.angle, speed = 650 } );
  757. BMvTbl.SetVector( { x=v.x, y=v.y, flags=_VecFlag_Add } );
  758. }
  759.  
  760. if( s.MvCount>2 ) Battle_Std.SetAngle_fromVector(); //0だとベクトルが入っていないかもね
  761.  
  762. if( s.isUpdate )
  763. {
  764. local frame = 2;
  765. if( s.MvCount%frame==0 )
  766. {
  767. local objlen = 100/frame; // 発生するオブジェクトの大きさ
  768. local vec = BMvTbl.GetVector( { flags=_Vector_Normal } ); // 現在のベクトル取得
  769. //print( "\n x:"+vec.x + " y:"+vec.y );
  770. local p = Battle_Std.CreateObjectEX({ pat="320_Hahen", FrameID=[1,2] });
  771. //local p = BMvEff.CreateObject( { x=0, y=0, mvname="", start_pat=109 } ); // オブジェクト呼び出し
  772. if( BMvCore.PushCharaData( p ) )
  773. {
  774. local ps = BMvEff.GetAngle_FromVector( { x=vec.x, y=vec.y } ); // ベクトルからPointStatus取得
  775. BMvTbl.SetAngle( { angle=(5000 * ps.angle) } ); // 角度設定
  776. BMvTbl.SetScale( { y=( (ps.distance/128.0) * 10000 / objlen ) } ); // 拡大値設定
  777. BMvEff.SetObjectFlags( { flags=_ObjFlags_NoGround } );
  778. //print( " angle:"+ps.angle +" distance:"+(ps.distance/128));
  779. }
  780. BMvCore.PopCharaData();
  781. }
  782. }
  783.  
  784. }
  785. }
  786.  
  787. t.Mv_FireBall_236_Hit <-
  788. {
  789. function Init_After()
  790. {
  791. BMvTbl.JumpFrameID(900); //攻撃判定のないところにいこう
  792. BMvTbl.CalcHitValue(-10000); //残りヒット回数を0にする
  793.  
  794. Battle_Std.InitVector();
  795.  
  796. Battle_Std.CreateObjectEX({ pat=79, angle="rand", objectflags=_ObjFlags_NoGround });
  797. BMvEff.SetObjectFlags( { flags=_ObjFlags_NoRender } );
  798. BSound.SE_Play( { num=241 } );
  799. }
  800. function FrameUpdate_After()
  801. {
  802. local s = BMvTbl.GetMvStatus(); // ステータス取得
  803. if( s.MvCount>60 ) //一定時間で終了(連続してうてないようにするためのもの)
  804. {
  805. BMvTbl.SetFinalize(0);
  806. }
  807. }
  808. }
  809.  
  810. t.Mv_FireBall_236_Sousai <- t.Mv_FireBall_236_Hit;
  811. t.Mv_FireBall_236_Land <- t.Mv_FireBall_236_Hit;
  812. t.Mv_FireBall_236_Blocked <- t.Mv_FireBall_236_Hit;
  813.  
  814. //EXは別に(Blockedをなくすだけ)
  815. t.Mv_FireBall_236EX <- t.Mv_FireBall_236;
  816. t.Mv_FireBall_236EX_Hit <- t.Mv_FireBall_236_Hit;
  817. t.Mv_FireBall_236EX_Sousai <- t.Mv_FireBall_236_Sousai;
  818. t.Mv_FireBall_236EX_Land <- t.Mv_FireBall_236_Land;
  819. //t.Mv_FireBall_236_Blocked <- t.Mv_FireBall_236_Blocked;
  820.  
  821. //-----------------------------------------------------------------------------
  822. // 214攻
  823. //-----------------------------------------------------------------------------
  824.  
  825. local enemy_shift = function( x=0 )
  826. {
  827. local enemy = BMvCore.GetNearEnemyCharaData(); // 敵情報を得る
  828. if(enemy.IsDone)
  829. {
  830. BMvCore.PushCharaData( enemy ); //
  831. //local pos = BMvTbl.GetPosition(0);
  832. BMvTbl.SetPosition( {x=x, flags=( _Position_Add | _Position_CaptureShift | _Position_ChangeMuki) } ); //
  833. BMvCore.PopCharaData(); //
  834. }
  835. }
  836.  
  837. t.Mv_Skill_623A <-
  838. {
  839. function HitInterrupt_After() //
  840. {
  841. Battle_Std.SetHitFinalize(256); //ヒットorガードしたら
  842. }
  843. function Finalize() //
  844. {
  845. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_623A_Hit"]); //デフォ,[code,mv]...
  846. }
  847. }
  848.  
  849. t.Mv_Skill_623A_Hit <- //追加コマンドを受け付けるよ
  850. {
  851. flags = def_TmplFlags_NoAddComboRate|def_TmplFlags_ChangeStatusOnly, //状態の移行のみを行う
  852. function Init_After() : (enemy_shift) // 初回処理
  853. {
  854. enemy_shift( 20 ); //ドット相手の座標を動かす
  855. }
  856. function Finalize()
  857. {
  858. BMvTbl.SetNextMoveTable( "Mv_Neutral" );
  859. }
  860. }
  861.  
  862. t.Mv_Skill_623B <-
  863. {
  864. function HitInterrupt_After() //
  865. {
  866. Battle_Std.SetHitFinalize(256); //ヒットorガードしたら
  867. }
  868. function Finalize() //
  869. {
  870. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_623B_Hit"]); //デフォ,[code,mv]...
  871. }
  872. }
  873.  
  874. t.Mv_Skill_623B_Hit <- //追加コマンドを受け付けるよ
  875. {
  876. flags = def_TmplFlags_NoAddComboRate|def_TmplFlags_ChangeStatusOnly, //状態の移行のみを行う
  877. function Init_After() : (enemy_shift) // 初回処理
  878. {
  879. enemy_shift( 20 ); //ドット相手の座標を動かす
  880. }
  881. function Finalize()
  882. {
  883. BMvTbl.SetNextMoveTable( "Mv_Neutral" );
  884. }
  885. }
  886.  
  887. t.Mv_Skill_623EX <-
  888. {
  889. function FrameUpdate_After()
  890. {
  891. local mvs = BMvTbl.GetMvStatus();
  892. if( mvs.isFrameUpdate && mvs.FrameID==100 )
  893. {
  894. // 相手の位置までワープ
  895. // だと強すぎるので 最大距離を設定
  896. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  897. if( enemy.isdone() )
  898. {
  899. local posst = BMvEff.GetPointStatus( { target=enemy } ); // 位置情報取得
  900. local pos_x = posst.pos_x*BMvTbl.GetMuki();
  901. //_dp("\n pos_x:"+pos_x);
  902. local maxlen = 600<<7; // 最大距離
  903. local minlen = 100<<7; // 最低距離
  904. if( pos_x > minlen && pos_x < maxlen )
  905. {
  906. // 正面かつmaxlen以内
  907. // 相手の位置までワープ
  908. if( enemy.push() )
  909. {
  910. local epos = BMvTbl.GetPosition();
  911. enemy.pop();
  912.  
  913. BMvTbl.SetPosition( { x=epos.x, y=0 } ); // ワープ
  914. }
  915. }
  916. else if( pos_x <= minlen )
  917. {
  918. // 後ろ~最低距離
  919. BMvTbl.SetPosition( { x= minlen, flags=_Position_Add|_Position_ChangeMuki } );
  920. }
  921. else
  922. {
  923. // 遠すぎる
  924. BMvTbl.SetPosition( { x= maxlen, flags=_Position_Add|_Position_ChangeMuki } );
  925. }
  926. }
  927.  
  928.  
  929. }
  930. }
  931. function HitInterrupt_After()
  932. {
  933. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  934. }
  935. function Finalize() //
  936. {
  937. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_623EX_Hit"]); //デフォ,[code,mv]...
  938. }
  939. }
  940.  
  941. t.Mv_Skill_623EX_Hit <-
  942. {
  943. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  944. function Init_After()
  945. {
  946. //投げているキャラをカメラ処理に含めるかどうか
  947. BMvEff.ThrowChara_SetCamera( 1 );
  948.  
  949. //まず相手を切り離す
  950. BMvEff.ThrowChara_SetJoint(0);
  951. BMvEff.ThrowParam( { pattern=320 } );
  952.  
  953. //自分の座標は相手の位置で必ず開始する
  954. local enemy = BMvCore.GetCaptureCharaData();
  955. if( enemy.IsDone )
  956. {
  957. BMvCore.PushCharaData( enemy );
  958. local pos = BMvTbl.GetPosition( 0 );
  959. //pos = GamePos2ShiftPos( pos ); //オフセット座標に変更
  960. BMvCore.PopCharaData();
  961. BMvTbl.SetPosition( pos );
  962. }
  963. BMvTbl.SetPP( def_PP_Set_HitCount,0 );
  964.  
  965. //追従カメラを常時更新される目標カメラへくっつける
  966. //BMvEff.ResetViewCamera();
  967. //BMvEff.SetCamera_Focus( { time=[0,360,30] } );
  968. }
  969. function FrameUpdate_After()
  970. {
  971. local s = BMvTbl.GetMvStatus(); // ステータス取得
  972. if( s.isFrameUpdate )
  973. {
  974. switch( s.FrameID )
  975. {
  976. case 10: //すり抜け
  977. BMvTbl.AddPP( def_PP_Set_HitCount,1 );
  978. //必ずここで固定の座標にワープする
  979. BMvTbl.SetMuki( _Direction_Reverse );
  980. local frame = 4;
  981. local power = 20000;
  982. BMvTbl.SetVector( { x=-power, addx=power/frame, flags=_Vector_Div } );
  983. local enemy = BMvCore.GetCaptureCharaData();
  984. if( enemy.IsDone )
  985. {
  986. BMvCore.PushCharaData( enemy );
  987. local pos = BMvTbl.GetPosition( 0 );
  988. BMvCore.PopCharaData();
  989. BMvTbl.SetPosition( pos );
  990. }
  991. break;
  992. case 110: //最後のすり抜け
  993. BMvTbl.AddPP( def_PP_Set_HitCount,1 );
  994. //必ずここで固定の座標にワープする
  995. BMvTbl.SetMuki( _Direction_Reverse );
  996. local frame = 20;
  997. local power = 5000;
  998. BMvTbl.SetVector( { x=-power, addx=power/frame, flags=_Vector_Div } );
  999. local enemy = BMvCore.GetCaptureCharaData();
  1000. if( enemy.IsDone )
  1001. {
  1002. BMvCore.PushCharaData( enemy );
  1003. local pos = BMvTbl.GetPosition( 0 );
  1004. BMvCore.PopCharaData();
  1005. BMvTbl.SetPosition( pos );
  1006. }
  1007. break;
  1008. case 50: //往復のタメキーフレーム
  1009. /*
  1010. local count = BMvTbl.GetPP( def_PP_Set_HitCount );
  1011. print("\ncount:"+count);
  1012. if( count==3 )
  1013. {
  1014. //スローに
  1015. BMvEff.Slowmotion_Set( { time=30, power=8000 } );
  1016. }
  1017. */
  1018. break;
  1019. case 55: //抜け先
  1020. break;
  1021. case 100: //開始
  1022. local enemy = BMvCore.GetCaptureCharaData();
  1023. if( enemy.IsDone )
  1024. {
  1025. BMvCore.PushCharaData( enemy );
  1026. local pos = BMvTbl.GetPosition( 0 );
  1027. //pos = GamePos2ShiftPos( pos ); //オフセット座標に変更
  1028. BMvCore.PopCharaData();
  1029. BMvTbl.SetPosition( pos );
  1030. }
  1031.  
  1032. Battle_Std.CreateObjectEX({ pat="Obj_214EXAtk", });
  1033. //スロー
  1034. BMvEff.Slowmotion_Set( { time=60, power=5000 } );
  1035. break;
  1036. case 150: //抜けて少し
  1037. //BMvEff.ResetViewCamera();
  1038. //BMvEff.SetCamera_Focus( { time=[0,360,30] } );
  1039. break;
  1040. case 500: //終了
  1041. //投げているキャラをカメラ処理に含めるかどうか
  1042. BMvEff.ThrowChara_SetCamera( 0 ); //初期化
  1043.  
  1044. //画面を揺らす
  1045. BMvEff.SetCamera_Quake( { time=20, type=0 } );
  1046. //BMvEff.ThrowParam( { pattern=320, y=0, } ); //_ThrowRelease_NoAttackHit
  1047. BMvEff.ThrowRelease( { type="崩れ落ちダウン", airrecover=0, flags=_ThrowRelease_NoGroundRecover } );
  1048. //このあと攻撃判定で開放するよ
  1049. //BMvEff.SetCamera_FocusKeep( 0 ); //終了?
  1050. break;
  1051. }
  1052. }
  1053. }
  1054. function LastUpdate_After()
  1055. {
  1056. Battle_Std.NoCansel_NoAttackHit(); //何かでキャンセルしなかった場合追撃不能にする
  1057. }
  1058. }
  1059.  
  1060. local func_214 = {};
  1061.  
  1062. //相手が近ければ座標取得、ダメなら-1
  1063. func_214.GetNearEnemyPos <- function()
  1064. {
  1065. //相手がある程度近ければ背後に回る
  1066. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1067. if( enemy.IsDone ) // 有効かどうか一応チェック
  1068. {
  1069. local posst = BMvEff.GetPointStatus( { target=enemy } ); // 位置情報取得
  1070. _dm("距離チェック"+posst.distance_x);
  1071. if( posst.distance_x<45000)
  1072. {
  1073.  
  1074. BMvCore.PushCharaData( enemy ); //
  1075. local epos = BMvTbl.GetPosition(0);
  1076. BMvCore.PopCharaData();
  1077.  
  1078. return epos;
  1079. }
  1080. }
  1081. return -1;
  1082. }
  1083.  
  1084. //ダッシュダミー
  1085. //これがあいてに触れると派生が可能となる
  1086. t.Mv_Obj_DashDummy <-
  1087. {
  1088. function Init_After()
  1089. {
  1090. BMvEff.SetObjectFlags( { flags=_ObjFlags_EraseParentPatChange|_ObjFlags_RenderShadow|_ObjFlags_NoGround } );
  1091. BMvTbl.SetVector( { x=3500, addx=0, flags=_Vector_Div } );
  1092. }
  1093. function FrameUpdate_After()
  1094. {
  1095. }
  1096. }
  1097.  
  1098.  
  1099. t.SkillCheck_214Add <- function()
  1100. {
  1101. //相手がある程度近ければ背後に回る
  1102. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1103. if( enemy.IsDone ) // 有効かどうか一応チェック
  1104. {
  1105. local posst = BMvEff.GetPointStatus( { target=enemy } ); // 位置情報取得
  1106. // _dm("距離チェック"+posst.distance_x);
  1107. if( posst.distance_x<45000)
  1108. {
  1109.  
  1110. BMvCore.PushCharaData( enemy ); //
  1111. local epos = BMvTbl.GetPosition(0);
  1112. BMvCore.PopCharaData();
  1113.  
  1114. return epos;
  1115. }
  1116. }
  1117. return -1;
  1118. }
  1119.  
  1120.  
  1121. t.Mv_Skill_214A <-
  1122. {
  1123. function FrameUpdate_After() : ( func_214 )
  1124. {
  1125. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1126. if( s.isFrameUpdate )
  1127. {
  1128. switch( s.FrameID )
  1129. {
  1130. case 5: //ダッシュ開始
  1131. Battle_Std.CreateObjectEX( { pat="214StEff", x=0, y=-130, flags=_Position_ToolShift } );
  1132. break;
  1133. case 100: //何もしないででてきた
  1134. Battle_Std.CreateObjectEX( { pat="214EdEff", x=0, y=-130, flags=_Position_ToolShift } );
  1135. break;
  1136. }
  1137. }
  1138.  
  1139. if( s.FrameID==10 ) //ダッシュ中
  1140. {
  1141. //CMDの方で追加コマンド受付
  1142. print(".");
  1143. }
  1144. }
  1145. }
  1146.  
  1147. t.Mv_Skill_214B <-
  1148. {
  1149. function FrameUpdate_After() : ( func_214 )
  1150. {
  1151. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1152. if( s.isFrameUpdate )
  1153. {
  1154. switch( s.FrameID )
  1155. {
  1156. case 5: //ダッシュ開始
  1157. Battle_Std.CreateObjectEX( { pat="214StEff", x=-60, y=-100, angle=8750, flags=_Position_ToolShift } );
  1158. break;
  1159. case 100: //何もしないででてきた
  1160. Battle_Std.CreateObjectEX( { pat="214EdEff", x=-36, y=-210, angle=1100, flags=_Position_ToolShift } );
  1161. break;
  1162. }
  1163. }
  1164.  
  1165. if( s.FrameID==10 ) //ダッシュ中
  1166. {
  1167. //CMDの方で追加コマンド受付
  1168. //print(".");
  1169. }
  1170. }
  1171. }
  1172.  
  1173. t.Mv_Skill_214C <-
  1174. {
  1175. function FrameUpdate_After() : ( func_214 )
  1176. {
  1177. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1178. if( s.isFrameUpdate )
  1179. {
  1180. switch( s.FrameID )
  1181. {
  1182. case 5: //ダッシュ開始
  1183. Battle_Std.CreateObjectEX( { pat="214StEff", x=-50, y=-200, angle=3200, flags=_Position_ToolShift } );
  1184. break;
  1185. case 100: //何もしないででてきた
  1186. Battle_Std.CreateObjectEX( { pat="214EdEff", x=-20, y=-250, angle=6600, flags=_Position_ToolShift } );
  1187. break;
  1188. }
  1189. }
  1190.  
  1191. if( s.FrameID==10 ) //ダッシュ中
  1192. {
  1193. //CMDの方で追加コマンド受付
  1194. //print(".");
  1195. }
  1196. }
  1197. }
  1198.  
  1199. //t.Mv_Obj_214A_Add46AChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_214A_Add46A", ShootAngle=2500, SetSpeed=0, type=0 } );
  1200.  
  1201. t.Mv_Skill_214_AddA <-
  1202. {
  1203. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1204. function Init_After() : (enemy_shift)
  1205. {
  1206. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1207. if( enemy.IsDone ) // 有効かどうか一応チェック
  1208. {
  1209. BMvCore.PushCharaData( enemy ); //
  1210. local epos = BMvTbl.GetPosition(0);
  1211. BMvCore.PopCharaData();
  1212.  
  1213. //相手のX座標まで移動
  1214. BMvTbl.SetPosition( { x=epos.x, y=0, } );
  1215. }
  1216.  
  1217. if( BMvTbl.GetPP( def_PP_Temp)==0 ) //6方向
  1218. {
  1219. enemy_shift(20);
  1220. BMvTbl.SetMuki( _Direction_Reverse );
  1221. }
  1222. else
  1223. {
  1224. //BMvTbl.SetMuki( _Direction_Reverse );
  1225. }
  1226.  
  1227. local shift_pos = -150;
  1228. switch( BMvTbl.GetPP( def_PP_Temp2 ) )
  1229. {
  1230. case 0: //A
  1231. shift_pos = -100;
  1232. break;
  1233. case 1: //B
  1234. shift_pos = -250;
  1235. break;
  1236. case 2: //C
  1237. shift_pos = -400;
  1238. break;
  1239. }
  1240.  
  1241. BMvTbl.SetPosition( { x=shift_pos, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
  1242.  
  1243. //使ったし初期化
  1244. BMvTbl.SetPP( def_PP_Temp, 0 );
  1245. BMvTbl.SetPP( def_PP_Temp2, 0 );
  1246.  
  1247. BMvTbl.SetVector( { x=-2000, addx=100, flags=_Vector_Div } );
  1248.  
  1249. //攻撃判定を表示
  1250. //Battle_Std.CreateObjectEX( { pat="214Add46Eff", x=0, y=-100, flags=_Position_ToolShift } );
  1251. Battle_Std.CreateObjectEX( { pat="214AddMoveAtkEff", mvname="Mv_AtkEFf_214Add", x=0, y=-100, flags=_Position_ToolShift, FrameID=1 } );
  1252.  
  1253.  
  1254. BMvTbl.SetMuki( _Direction_Reverse );
  1255.  
  1256. Battle_Std.CreateObjectEX( { pat="SyakaAssalt", x=-250, sety=-100, flags=_Position_ToolShift, } );
  1257. Battle_Std.CreateObjectEX( { pat="214AssDummyZan", x=-250, sety=-100, flags=_Position_ToolShift, } );
  1258.  
  1259. Battle_Std.CreateObjectEX( { pat="SyakaJump", x=-150, sety=-300, flags=_Position_ToolShift, } );
  1260. Battle_Std.CreateObjectEX( { pat="214JumDummyZan", x=-150, sety=-300, flags=_Position_ToolShift, } );
  1261.  
  1262.  
  1263. BMvTbl.SetMuki( _Direction_Reverse );
  1264.  
  1265. //相手の座標に斬りエフェクトを表示
  1266. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1267. if( enemy.IsDone ) // 有効かどうか一応チェック
  1268. {
  1269. BMvCore.PushCharaData( enemy ); //
  1270. local epos = BMvTbl.GetPosition(0);
  1271. BMvCore.PopCharaData();
  1272. Battle_Std.CreateObjectEX( { pat="214AddBlade", setx=epos.x, sety=-150*128, FrameID=[1,2], angle="rand", objectflags=_ObjFlags_MoveTimeStopAll } );
  1273. //Battle_Std.CreateObjectEX({ setx=epos.x, sety=-150*128, pat="236ChargeEff", mvname="Mv_Obj_214A_Add46AChargeEff" });
  1274. }
  1275. }
  1276. function FrameUpdate_After()
  1277. {
  1278. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1279.  
  1280. if( s.isFrameUpdate )
  1281. {
  1282. local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Etc , 0 ], flags=_HanteiFlag_NoMukiChange } );
  1283.  
  1284. if( rc.sx != _Hantei_Error ) //特殊判定1があったら
  1285. {
  1286. local cf = (_CatchFlag_AtkAllGuard ); // ガードできれば取れる
  1287. local sf = (_CatchSuccess_HitSub|_CatchSuccess_HitSub_Enemy);
  1288. // 汎用判定02使用、30F
  1289. BMvTbl.SetAtkCatchFlag( { hantei=0, catch_flags=cf, success_flags=sf, time=60, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
  1290. }
  1291. }
  1292. }
  1293. function HitInterrupt_After()
  1294. {
  1295. local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Etc , 0 ], flags=_HanteiFlag_NoMukiChange } );
  1296.  
  1297. if( rc.sx != _Hantei_Error ) //特殊判定1があったら これがないと無限ループになる
  1298. {
  1299. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1300. //print("\n>>>とった!!!!");
  1301.  
  1302. //local pos = BMvEff.GetAttackHitPos();//122 -274
  1303. Battle_Std.CreateObjectEX( { x=122*128, y=-275*128, datatype=1, pat="Sousai", objectflags=_ObjFlags_MoveTimeStopAll });
  1304. BMvEff.SetCamera_Quake( { time=8, type=1 } ); //横ゆれ
  1305.  
  1306. local hitst = BMvTbl.GetMvHitStatus(); // 当て身も当てた情報になる
  1307. // 情報表示テスト
  1308. //print("\n>>>" + hitst.Type );
  1309.  
  1310. BMvTbl.SetPrio( _CharaPrio_Far ); // 取ったらなんとなく一番後ろへ
  1311.  
  1312. local st = BMvTbl.MvHitStatus();
  1313. st.Count = 8; // ヒットストップ発生
  1314. BMvTbl.SetMvHitStatus( st );
  1315.  
  1316. // 取られ側
  1317. local ene = BMvCore.GetLastHitCharaData(1); // 当て身で入ってくるのは「LastHitChara」なので注意
  1318. if( ene.IsDone )
  1319. {
  1320. BMvCore.PushCharaData( ene );
  1321. BMvTbl.SetMvHitStatus( st ); // ヒットストップとか設定
  1322. BMvCore.PopCharaData();
  1323. }
  1324.  
  1325. // この辺は即ジャンプするので色々注意
  1326. local eff = BMvEff.CreateObject( { start_pat="214_AddA_CatchDummy" });
  1327. if( eff.IsDone )
  1328. {
  1329. BMvCore.PushCharaData( eff );
  1330. BMvEff.SetObjectFlags( { flags=_ObjFlags_MoveTimeStopAll } );
  1331. BMvCore.PopCharaData();
  1332. }
  1333.  
  1334. //BMvTbl.SetPattern("214_AddA_Catch");
  1335. BMvTbl.JumpFrameID(512);
  1336. //BMvEff.SetPlayerTimer( { muteki_nage=10, muteki_dage=10 } ); //少し無敵に
  1337. BMvTbl.SetFinalize(256);
  1338. }
  1339. }
  1340. function Finalize() //
  1341. {
  1342. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_214_AddA_Catch"]); //デフォ,[code,mv]...
  1343. }
  1344. }
  1345.  
  1346. t.Mv_AtkEFf_214Add<-
  1347. {
  1348. function Init()
  1349. {
  1350. }
  1351. function Finalize()
  1352. {
  1353. BMvTbl.SetDeleteMoveTable();
  1354. }
  1355. }
  1356.  
  1357. t.Mv_Skill_214_AddA_Catch <-
  1358. {
  1359. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1360. function Init_After()
  1361. {
  1362. Battle_Std.InitVector();
  1363.  
  1364. BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
  1365. //BMvTbl.SetPattern("214_AddA_Catch");
  1366.  
  1367. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1368. if( enemy.IsDone ) // 有効かどうか一応チェック
  1369. {
  1370. //_dm("有効");
  1371. BMvCore.PushCharaData( enemy ); //
  1372. local epos = BMvTbl.GetPosition(0);
  1373. BMvCore.PopCharaData();
  1374.  
  1375. epos.x += 140 * 128 * BMvTbl.GetMuki();
  1376.  
  1377. BMvTbl.SetPosition( { x=epos.x, y=0, } );
  1378.  
  1379. BMvTbl.SetMuki( _Direction_Reverse );
  1380. //BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
  1381.  
  1382. //BMvEff.ResetCamera(); //カメラ初期化
  1383. //BMvEff.ResetViewCamera();
  1384. }
  1385. BMvEff.SetStopTime( { time=15, stopme=0 } ); //時間停止
  1386. //BMvEff.SetStopTime( { time=10, stopme=1 } ); //時間停止
  1387.  
  1388. BMvTbl.SetLP(0,0); //変数初期化
  1389. }
  1390. function FrameUpdate_After()
  1391. {
  1392. local s = BMvTbl.GetMvStatus();
  1393. if( s.MvCount%6==1 && BMvTbl.GetLP(0)!=s.MvCount )
  1394. {
  1395. BMvTbl.SetLP(0,s.MvCount);
  1396. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1397. if( enemy.IsDone ) // 有効かどうかチェック
  1398. {
  1399. BMvCore.PushCharaData( enemy ); //
  1400. local epos = BMvTbl.GetPosition(0);
  1401. BMvCore.PopCharaData();
  1402.  
  1403. Battle_Std.CreateObjectEX({ setx=epos.x, sety=epos.y-(200*128),
  1404. pat="Spell_Biribiri", FrameID=[1,2,3], angle="rand",
  1405. objectflags=_ObjFlags_MoveTimeStopAll,
  1406. });
  1407. }
  1408. }
  1409. }
  1410. function HitInterrupt_After()
  1411. {
  1412. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  1413. }
  1414. function Finalize() //
  1415. {
  1416. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_214_AddA_Catch_Hit"]); //デフォ,[code,mv]...
  1417. }
  1418. }
  1419.  
  1420. t.Mv_Skill_214_AddA_Catch_Hit <-
  1421. {
  1422. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1423. function Init_After()
  1424. {
  1425. BMvTbl.SetPosition( { y=0 } ); //地面につけよう
  1426. }
  1427. function FrameUpdate_After()
  1428. {
  1429. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1430. if( s.isFrameUpdate )
  1431. {
  1432. switch(s.FrameID)
  1433. {
  1434. case 200: //きるところ
  1435. Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand", objectflags=_ObjFlags_MoveTimeStopAll });
  1436. //座標指定はしない?
  1437. BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
  1438. break;
  1439. }
  1440. }
  1441. }
  1442. function LastUpdate_After()
  1443. {
  1444. Battle_Std.NoCansel_NoAttackHit(); //何かでキャンセルしなかった場合追撃不能にする
  1445. }
  1446. }
  1447.  
  1448. t.Mv_Skill_214_AddB <-
  1449. {
  1450. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1451. function Init_After() : (enemy_shift)
  1452. {
  1453. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1454. if( enemy.IsDone ) // 有効かどうか一応チェック
  1455. {
  1456. BMvCore.PushCharaData( enemy ); //
  1457. local epos = BMvTbl.GetPosition(0);
  1458. BMvCore.PopCharaData();
  1459.  
  1460. local y_shift = (epos.y==0)? -250*128 : -50*128;
  1461. BMvTbl.SetPosition( { x=epos.x, y=epos.y+y_shift, } );
  1462. }
  1463. //最低の高さ保障+念のため
  1464. local pos = BMvTbl.GetPosition(0);
  1465. local min_height = -250*128;
  1466. if( pos.y > min_height )
  1467. {
  1468. BMvTbl.SetPosition( { y=min_height, } );
  1469. }
  1470.  
  1471. if( BMvTbl.GetPP( def_PP_Temp)==0 ) //9方向
  1472. {
  1473. enemy_shift(20);
  1474. BMvTbl.SetMuki( _Direction_Reverse );
  1475. }
  1476. else
  1477. {
  1478. //BMvTbl.SetMuki( _Direction_Reverse );
  1479. }
  1480.  
  1481.  
  1482.  
  1483. local shift_pos = { x=-150, y=0, };
  1484. switch( BMvTbl.GetPP( def_PP_Temp2 ) )
  1485. {
  1486. case 0: //A
  1487. shift_pos.x = -100;
  1488. shift_pos.y = -0;
  1489. break;
  1490. case 1: //B
  1491. shift_pos.x = -220;
  1492. shift_pos.y = -85;
  1493. break;
  1494. case 2: //C
  1495. shift_pos.x = -290;
  1496. shift_pos.y = -160;
  1497. break;
  1498. }
  1499.  
  1500.  
  1501. BMvTbl.SetPosition( { x=shift_pos.x, y=shift_pos.y, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
  1502. BMvTbl.SetPP( def_PP_Temp, 0 );
  1503. BMvTbl.SetPP( def_PP_Temp2, 0 );
  1504. BMvTbl.SetVector( { x=-400, y=-600, addy=50, } );
  1505.  
  1506. //Battle_Std.CreateObjectEX( { pat="214Add79Eff", x=0, y=-170, flags=_Position_ToolShift } );
  1507. Battle_Std.CreateObjectEX( { pat="214AddMoveAtkEff", mvname="Mv_AtkEFf_214Add", x=0, y=-100, flags=_Position_ToolShift, FrameID=2 } );
  1508.  
  1509.  
  1510. BMvTbl.SetMuki( _Direction_Reverse );
  1511.  
  1512. Battle_Std.CreateObjectEX( { pat="SyakaDash", x=-250, sety=0, flags=_Position_ToolShift, } );
  1513. Battle_Std.CreateObjectEX( { pat="214DasDummyZan", x=-250, sety=0, flags=_Position_ToolShift, } );
  1514.  
  1515. Battle_Std.CreateObjectEX( { pat="SyakaJump", x=-200, sety=-300, flags=_Position_ToolShift, } );
  1516. Battle_Std.CreateObjectEX( { pat="214JumDummyZan", x=-200, sety=-300, flags=_Position_ToolShift, } );
  1517.  
  1518. BMvTbl.SetMuki( _Direction_Reverse );
  1519.  
  1520. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1521. if( enemy.IsDone ) // 有効かどうか一応チェック
  1522. {
  1523. BMvCore.PushCharaData( enemy ); //
  1524. local epos = BMvTbl.GetPosition(0);
  1525. BMvCore.PopCharaData();
  1526. Battle_Std.CreateObjectEX( { pat="214AddBlade", setx=epos.x, sety=epos.y-(200*128), FrameID=[1,2], angle="rand" } );
  1527. }
  1528. }
  1529. }
  1530.  
  1531. t.Mv_Skill_214_AddC <-
  1532. {
  1533. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1534. function Init_After() : (enemy_shift)
  1535. {
  1536. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1537. if( enemy.IsDone ) // 有効かどうか一応チェック
  1538. {
  1539. BMvCore.PushCharaData( enemy ); //
  1540. local epos = BMvTbl.GetPosition(0);
  1541. BMvCore.PopCharaData();
  1542.  
  1543. //相手のX座標まで移動
  1544. BMvTbl.SetPosition( { x=epos.x, y=0, } );
  1545. }
  1546.  
  1547. if( BMvTbl.GetPP( def_PP_Temp)==0 ) //6方向
  1548. {
  1549. enemy_shift(20);
  1550. BMvTbl.SetMuki( _Direction_Reverse );
  1551. }
  1552. else
  1553. {
  1554. //BMvTbl.SetMuki( _Direction_Reverse );
  1555. }
  1556.  
  1557. local shift_pos = -150;
  1558. switch( BMvTbl.GetPP( def_PP_Temp2 ) )
  1559. {
  1560. case 0: //A
  1561. shift_pos = -100;
  1562. break;
  1563. case 1: //B
  1564. shift_pos = -250;
  1565. break;
  1566. case 2: //C
  1567. shift_pos = -400;
  1568. break;
  1569. }
  1570.  
  1571. BMvTbl.SetPosition( { x=shift_pos, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
  1572.  
  1573. //使ったし初期化
  1574. BMvTbl.SetPP( def_PP_Temp, 0 );
  1575. BMvTbl.SetPP( def_PP_Temp2, 0 );
  1576.  
  1577. BMvTbl.SetVector( { x=-4000, addx=400, flags=_Vector_Div } );
  1578.  
  1579. //攻撃判定を表示
  1580. //Battle_Std.CreateObjectEX( { pat="214Add46Eff", x=0, y=-100, flags=_Position_ToolShift } );
  1581. Battle_Std.CreateObjectEX( { pat="214AddMoveAtkEff", mvname="Mv_AtkEFf_214Add", x=0, y=-100, flags=_Position_ToolShift, FrameID=3 } );
  1582.  
  1583.  
  1584. BMvTbl.SetMuki( _Direction_Reverse );
  1585.  
  1586. Battle_Std.CreateObjectEX( { pat="SyakaAssalt", x=-250, sety=-100, flags=_Position_ToolShift, } );
  1587. Battle_Std.CreateObjectEX( { pat="214AssDummyZan", x=-250, sety=-100, flags=_Position_ToolShift, } );
  1588.  
  1589. Battle_Std.CreateObjectEX( { pat="SyakaJump", x=-150, sety=-300, flags=_Position_ToolShift, } );
  1590. Battle_Std.CreateObjectEX( { pat="214JumDummyZan", x=-150, sety=-300, flags=_Position_ToolShift, } );
  1591.  
  1592.  
  1593. BMvTbl.SetMuki( _Direction_Reverse );
  1594.  
  1595. //相手の座標に斬りエフェクトを表示
  1596. local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
  1597. if( enemy.IsDone ) // 有効かどうか一応チェック
  1598. {
  1599. BMvCore.PushCharaData( enemy ); //
  1600. local epos = BMvTbl.GetPosition(0);
  1601. BMvCore.PopCharaData();
  1602. Battle_Std.CreateObjectEX( { pat="214AddBlade", setx=epos.x, sety=-150*128, FrameID=[1,2], angle="rand" } );
  1603. //Battle_Std.CreateObjectEX({ setx=epos.x, sety=-150*128, pat="236ChargeEff", mvname="Mv_Obj_214A_Add46AChargeEff" });
  1604. }
  1605. }
  1606. }
  1607.  
  1608. /*
  1609. t.Mv_Skill_214B <-
  1610. {
  1611. function FrameUpdate_After() : ( func_214 )
  1612. {
  1613. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1614. if( s.FrameID==50)
  1615. {
  1616. //相手がある程度近ければ背後に回る
  1617. local epos = func_214.GetNearEnemyPos();
  1618. if( epos != -1 )
  1619. {
  1620. BMvTbl.JumpFrameID(52);
  1621. local y_shift = (epos.y==0)? -250*128 : -50*128;
  1622. BMvTbl.SetPosition( { x=epos.x, y=epos.y+y_shift, } );
  1623. BMvTbl.SetPosition( { x=150, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
  1624.  
  1625. BMvTbl.SetMuki( _Direction_Reverse );
  1626. BMvTbl.SetVector( { x=-400, y=-600, addy=50, } );
  1627. }
  1628. else //近くないので何もしない
  1629. {
  1630. BMvTbl.JumpFrameID(54);
  1631. }
  1632. }
  1633. }
  1634. }
  1635. */
  1636. /*
  1637. t.Mv_Skill_214B <-
  1638. {
  1639. function HitInterrupt_After() //
  1640. {
  1641. Battle_Std.SetHitFinalize(256); //ヒットorガードしたら
  1642. }
  1643. function Finalize() //
  1644. {
  1645. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_214B_Hit"]); //デフォ,[code,mv]...
  1646. }
  1647. }
  1648.  
  1649. t.Mv_Skill_214B_Hit <- //追加コマンドを受け付けるよ
  1650. {
  1651. function Init_After() // 初回処理
  1652. {
  1653. //BMvTbl.SetPattern(215);
  1654. BMvTbl.JumpFrameID(100);
  1655. //自分を相手の裏にする処理
  1656. //とりあえず相手をちょっと手前にひっぱる
  1657. }
  1658. function Finalize()
  1659. {
  1660. BMvTbl.SetNextMoveTable( "Mv_Neutral" );
  1661. }
  1662. }
  1663.  
  1664. t.Mv_Skill_214_AddA <- //追加コマンド、裏に回る
  1665. {
  1666. function Init() // 初回処理
  1667. {
  1668. BMvTbl.SetPattern("214_AddA");
  1669. // BMvTbl.SetPattern(215);
  1670. //自分を相手の裏にする処理
  1671. //とりあえず相手をちょっと手前にひっぱる
  1672. local enemy = BMvCore.GetNearEnemyCharaData(); // 敵情報を得る
  1673. if(enemy.IsDone)
  1674. {
  1675. BMvCore.PushCharaData( enemy ); //
  1676. //local pos = BMvTbl.GetPosition(0);
  1677. BMvTbl.SetPosition( {x=25, flags=( _Position_Add | _Position_CaptureShift | _Position_ChangeMuki) } ); //
  1678. BMvCore.PopCharaData(); //
  1679. }
  1680. //BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
  1681. BMvTbl.SetMuki( _Direction_Reverse ); //hanntenn
  1682.  
  1683. //BMvTbl.SetPosition( { x=-250, flags=_Position_ChangeMuki|_Position_Add|_Position_CaptureShift } ); //ズラす
  1684. BMvTbl.SetVector( { x=-5000, addx=300, flags=_Vector_Div });
  1685. }
  1686. }
  1687.  
  1688. t.Mv_Skill_214_AddB <- //追加コマンド、裏に回ってズドドド
  1689. {
  1690. function Init() // 初回処理
  1691. {
  1692. BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
  1693. //BMvTbl.SetMuki( _Direction_Reverse ); //hanntenn
  1694.  
  1695. BMvTbl.SetPattern("214_AddB");
  1696.  
  1697. //BMvTbl.SetPattern(216);
  1698. //自分を相手の裏にする処理
  1699. //とりあえず相手をちょっと手前にひっぱる
  1700. local enemy = BMvCore.GetNearEnemyCharaData(); // 敵情報を得る
  1701. if(enemy.IsDone)
  1702. {
  1703. BMvCore.PushCharaData( enemy ); //
  1704. //local pos = BMvTbl.GetPosition(0);
  1705. BMvTbl.SetPosition( {x=25, flags=( _Position_Add | _Position_CaptureShift | _Position_ChangeMuki) } ); //
  1706. BMvCore.PopCharaData(); //
  1707. }
  1708. }
  1709. function FrameUpdate_After()
  1710. {
  1711. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1712. switch(s.FrameID)
  1713. {
  1714. case 400: //裏に回る
  1715. local pos = Battle_Std.GetEnemyPosition();
  1716. BMvTbl.SetPosition({x=pos.x, y=0});
  1717. break;
  1718. case 500: //駆け抜ける
  1719. local pos = Battle_Std.GetEnemyPosition();
  1720. BMvTbl.SetPosition({x=pos.x, y=0});
  1721. break;
  1722. }
  1723. }
  1724. }
  1725.  
  1726. t.Mv_Skill_214_AddC <- //追加コマンドジャンプ
  1727. {
  1728. function Init_After() // 初回処理
  1729. {
  1730. }
  1731. }
  1732. */
  1733.  
  1734.  
  1735.  
  1736.  
  1737. //-----------------------------------------------------------------------------
  1738. // J214攻
  1739. //-----------------------------------------------------------------------------
  1740. t.Mv_Skill_J214A <-
  1741. {
  1742. function Init_After()
  1743. {
  1744. // 各種補正は最初の1ヒットのみ
  1745. BMvTbl.SetNoHoseiFlag( { val=1, time=254, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
  1746. }
  1747. function FrameUpdate_After()
  1748. {
  1749. local s = BMvTbl.GetMvStatus();
  1750. if( s.FrameID==800 && s.isFrameUpdate )
  1751. {
  1752. //先行入力受付
  1753. BMvTbl.SetCommandLongDelay(10); //受付時間増加
  1754. }
  1755. else if( s.FrameID==900 && s.isFrameUpdate )
  1756. {
  1757. //先行入力受付
  1758. BMvTbl.SetCommandLongDelay(2); //受付時間増加
  1759. }
  1760.  
  1761. }
  1762. }
  1763.  
  1764.  
  1765. t.Mv_Skill_J214B <-
  1766. {
  1767. function HitInterrupt_After()
  1768. {
  1769. //Battle_Std.SetThrowHitFinalize(512,512,256,256); // 投げ, 強引投げ, コンボ投げ, リジェクト
  1770. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  1771. }
  1772. function Finalize() //
  1773. {
  1774. //Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_J214B_Hit"],[512,"Mv_Skill_J214B_TechWait"]); //デフォ,[code,mv]...
  1775. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_J214B_Hit"]); //デフォ,[code,mv]...
  1776. }
  1777. }
  1778.  
  1779. /*
  1780. t.Mv_Skill_J214B_TechWait <- Battle_Std.MakeMv.TechWait(
  1781. {
  1782. FrameID=512,
  1783. ThrowParam={ pattern=17, x=0, y=0 },
  1784. TechFrame = def_FL_BoundTech,
  1785. NextMv="Mv_Skill_J214B_Hit",
  1786. TechedMv="Mv_SkillTechedRecover",
  1787. });
  1788. */
  1789.  
  1790. t.Mv_Skill_J214B_Hit <-
  1791. {
  1792. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1793. function Init_After()
  1794. {
  1795. Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
  1796. }
  1797. function FrameUpdate_After()
  1798. {
  1799. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1800. if( s.isFrameUpdate )
  1801. {
  1802. switch(s.FrameID)
  1803. {
  1804. case 200: //きるところ
  1805. Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
  1806. Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand", objectflags=_ObjFlags_MoveTimeStopAll })
  1807. //座標指定はしない?
  1808. BMvEff.ThrowParam( { pattern=333, x=100, y=0, } );
  1809. BMvEff.ThrowRelease( { type="即落きりもみ吹き飛び", airrecover=0, flags=0 } );
  1810. break;
  1811. }
  1812. }
  1813. }
  1814. }
  1815.  
  1816.  
  1817.  
  1818. t.Mv_Skill_J214EX <-
  1819. {
  1820. function HitInterrupt_After()
  1821. {
  1822. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  1823. }
  1824. function Finalize() //
  1825. {
  1826. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_J214EX_Hit"]); //デフォ,[code,mv]...
  1827. }
  1828. }
  1829.  
  1830. t.Mv_Skill_J214EX_Hit <-
  1831. {
  1832. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1833. function Init_After()
  1834. {
  1835. BMvEff.ClearAttackHitNum();
  1836. }
  1837. function FrameUpdate_After()
  1838. {
  1839. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1840. local hitcount = BMvEff.AddAttackHitNum(0); //オブジェクト内ヒット数
  1841. //print("\n count:"+hitcount);
  1842. if( s.isFrameUpdate )
  1843. {
  1844. switch(s.FrameID)
  1845. {
  1846. case 200: //きるところ
  1847. if( hitcount%2==0 )
  1848. {
  1849. Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=1, angle="rand", objectflags=_ObjFlags_MoveTimeStopAll })
  1850. }
  1851. else
  1852. {
  1853. Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=2, angle="rand", objectflags=_ObjFlags_MoveTimeStopAll })
  1854. }
  1855. //つかみ開放
  1856. // Type 14 No 334 Param 0 0 0 49 210 0 0 0 0 0 0 0
  1857. BMvEff.ThrowParam( { pattern=334, x=-100, y=150, } );
  1858. BMvEff.ThrowRelease( { type="きりもみ垂直浮き", airrecover=0, flags=0 } );
  1859. break;
  1860. }
  1861. }
  1862. }
  1863. }
  1864.  
  1865. //-----------------------------------------------------------------------------
  1866. // 632146攻
  1867. //-----------------------------------------------------------------------------
  1868.  
  1869. t.Mv_Skill_63214A <-
  1870. {
  1871. function HitInterrupt_After()
  1872. {
  1873. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  1874. }
  1875. function Finalize() //
  1876. {
  1877. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_63214_Hit"]); //デフォ,[code,mv]...
  1878. }
  1879. }
  1880.  
  1881. t.Mv_Skill_63214B <-
  1882. {
  1883. function HitInterrupt_After()
  1884. {
  1885. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  1886. }
  1887. function Finalize() //
  1888. {
  1889. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_63214_Hit"]); //デフォ,[code,mv]...
  1890. }
  1891. }
  1892.  
  1893. t.Mv_Skill_63214EX <-
  1894. {
  1895. function FrameUpdate_After()
  1896. {
  1897. /*
  1898. local mvs = BMvTbl.GetMvStatus();
  1899. if( mvs.FrameID == 100 )
  1900. {
  1901. // やられ中の相手が重なっていたら投げではない判定に切り替える
  1902. local enemy = BMvEff.CheckHantei( { src=[ _Hantei_Attack, 0, -1 ], dst=[ _Hantei_Kurai, 0, -1 ], flags=_HC_EnemyPc } );
  1903. if( enemy.push() )
  1904. {
  1905. local bs = BtlMvStd.GetBoundStatus();
  1906. enemy.pop();
  1907.  
  1908. if( bs.isBound == 1 || bs.isCapture != 0 ) // やられ中
  1909. {
  1910. BMvTbl.JumpFrameID(200); // 空中も掴む判定に変更
  1911. }
  1912. }
  1913. }
  1914. */
  1915. }
  1916. function HitInterrupt_After()
  1917. {
  1918. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  1919. }
  1920. function Finalize() //
  1921. {
  1922. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_63214EX_Hit"]); //デフォ,[code,mv]...
  1923. }
  1924. }
  1925.  
  1926. t.Mv_Skill_63214_Hit <-
  1927. {
  1928. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1929. function Init_After()
  1930. {
  1931. // 各種補正は最初の1ヒットのみ
  1932. BMvTbl.SetNoHoseiFlag( { val=1, time=254, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
  1933.  
  1934. Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
  1935. }
  1936. function FrameUpdate_After()
  1937. {
  1938. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1939. if( s.isFrameUpdate )
  1940. {
  1941. switch(s.FrameID)
  1942. {
  1943. case 200: //きるところ
  1944. Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
  1945. Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand",
  1946. objectflags=_ObjFlags_MoveTimeStopAll, });
  1947. BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
  1948. break;
  1949. }
  1950. }
  1951. }
  1952. function LastUpdate_After()
  1953. {
  1954. Battle_Std.NoCansel_NoAttackHit(); //何かでキャンセルしなかった場合追撃不能にする
  1955. }
  1956. }
  1957.  
  1958. t.Mv_Skill_63214EX_Hit <-
  1959. {
  1960. flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
  1961. function Init_After()
  1962. {
  1963. // 各種補正は最初の1ヒットのみ
  1964. BMvTbl.SetNoHoseiFlag( { val=1, time=254, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
  1965.  
  1966. BMvTbl.SetPosition( { y=0 } );
  1967.  
  1968. Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
  1969. }
  1970. function FrameUpdate_After()
  1971. {
  1972. local s = BMvTbl.GetMvStatus(); // ステータス取得
  1973. if( s.isFrameUpdate )
  1974. {
  1975. switch(s.FrameID)
  1976. {
  1977. case 200: //きるところ
  1978. Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
  1979. Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand",
  1980. objectflags=_ObjFlags_MoveTimeStopAll, });
  1981. BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
  1982. break;
  1983. }
  1984. }
  1985. }
  1986. }
  1987.  
  1988. //-----------------------------------------------------------------------------
  1989. // J0202攻
  1990. //-----------------------------------------------------------------------------
  1991.  
  1992. t.Mv_Skill_J0202A <-
  1993. {
  1994. //急降下
  1995. }
  1996.  
  1997. t.Mv_Skill_J0202B <-
  1998. {
  1999. //バックダッシュ
  2000. function Init_After() : (Set_JumpSkillLimit)
  2001. {
  2002. Set_JumpSkillLimit( 6 ); //飛び道具6を使って着地まで何度も出せないように制限
  2003. }
  2004. }
  2005.  
  2006. //-----------------------------------------------------------------------------
  2007. // B+C
  2008. //-----------------------------------------------------------------------------
  2009.  
  2010. /*
  2011. t.Mv_Skill_623A <-
  2012. {
  2013. function Init_After()
  2014. {
  2015. BMvTbl.SetPattern("623Move")
  2016. }
  2017. function Finalize()
  2018. {
  2019. Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddD"); //デフォ,[code,mv]...
  2020. // Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddA"); //デフォ,[code,mv]...
  2021. }
  2022. }
  2023.  
  2024. t.Mv_Skill_623B <-
  2025. {
  2026. function Init_After()
  2027. {
  2028. BMvTbl.SetPattern("623Move")
  2029. }
  2030. function Finalize()
  2031. {
  2032. Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddD"); //デフォ,[code,mv]...
  2033. // Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddB"); //デフォ,[code,mv]...
  2034. }
  2035. }
  2036.  
  2037. t.Mv_Skill_623C <-
  2038. {
  2039. function Init_After()
  2040. {
  2041. BMvTbl.SetPattern("623Move")
  2042. }
  2043. function Finalize()
  2044. {
  2045. Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddD"); //デフォ,[code,mv]...
  2046. }
  2047. }
  2048.  
  2049.  
  2050. t.Mv_Skill_623_AddA <-
  2051. {
  2052. function Init_After()
  2053. {
  2054. //レバーで向きを決定
  2055. //前に入ってると反転
  2056. if( BMvTbl.CheckStickHold( (1<<6) | (1<<9) | (1<<3) ) )
  2057. {
  2058. //反転
  2059. BMvTbl.SetMuki( _Direction_Reverse );
  2060. }
  2061. }
  2062. }
  2063.  
  2064. t.Mv_Skill_623_AddB <-
  2065. {
  2066. function Init_After()
  2067. {
  2068. //レバーで向きを決定
  2069. //前に入ってると反転
  2070. if( BMvTbl.CheckStickHold( (1<<6) | (1<<9) | (1<<3) ) )
  2071. {
  2072. //反転
  2073. BMvTbl.SetMuki( _Direction_Reverse );
  2074. }
  2075. }
  2076. }
  2077.  
  2078. t.Mv_Skill_623_AddC <-
  2079. {
  2080. }
  2081.  
  2082. t.Mv_Skill_623_AddD <-
  2083. {
  2084. }
  2085.  
  2086. t.Skill_623_Add214A <-
  2087. {
  2088. }
  2089. */
  2090.  
  2091. //-----------------------------------------------------------------------------
  2092. // インフィニットワースEXS
  2093. //-----------------------------------------------------------------------------
  2094.  
  2095. //t.Mv_Skill_236236SP <- {};//
  2096.  
  2097. t.Mv_Skill_IWEXIST <-
  2098. {
  2099. flags = def_TmplFlags_NoAddComboRate // コンボレートを加算しない
  2100. function HitInterrupt_After()
  2101. {
  2102. Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
  2103. }
  2104. function Finalize() //
  2105. {
  2106. Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_IWEXIST_Hit"]); //デフォ,[code,mv]...
  2107. }
  2108. }
  2109.  
  2110. local aniset_kuzure =
  2111. [
  2112. { Data = [327,0,5], },
  2113. { Data = [327,1,5], },
  2114. { Data = [327,2,5], },
  2115. { Data = [327,3,5], },
  2116. { Data = [327,4,5], },
  2117. { Data = [328,0,5], },
  2118. { Data = [328,1,5], },
  2119. { Data = [354,0,5], },
  2120. { Data = [354,1,5], },
  2121. { Data = [354,2,5], },
  2122. { Data = [354,3,5], },
  2123. { Data = [354,4,5], },
  2124. { Data = [292,0,255], RelJump = 0 },
  2125. ];
  2126.  
  2127.  
  2128. //垂直吹き飛び部分
  2129. t.Mv_AniSet_Kuzure <- Battle_Std.MakeMv.SetCaptureCharaAnime( { animation = aniset_kuzure } );
  2130.  
  2131. t.Mv_Skill_IWEXIST_Hit <-
  2132. {
  2133. flags = def_TmplFlags_NoAddComboRate // コンボレートを加算しない
  2134. function SetPhase( nextphase=-1 )
  2135. {
  2136. if( nextphase==-1 ) //指定無し
  2137. {
  2138. BMvTbl.AddLP(0,1); //進める
  2139. }
  2140. else
  2141. {
  2142. BMvTbl.SetLP(0,nextphase); //フェイズ移行
  2143. }
  2144. BMvTbl.SetLP(1,0); //カウンタ初期化
  2145. }
  2146.  
  2147.  
  2148. function Init_After()
  2149. {
  2150. //Battle_Std.IWEXIST_CallOnePunch(); // 相手をMvBoundにする
  2151.  
  2152. //Battle_Std::MakeMoveTmpl()で「Mv_Skill_IWEXIST_Hit」という名前を見て色々と勝手にやっている
  2153. //IWEXIST_Hitというパターンに勝手に変更される、ベクトル初期化する、振り向く、ヒット情報や攻撃回数をリセットする、など
  2154. //変更 : フェイズを細かくした、フレーム指定が==なのを>にかえた、早くした
  2155.  
  2156. //イグジストワークス開始
  2157. //InitIWExistSkill_SETH();
  2158.  
  2159. BSound.SE_Play( { type=_SeType_Player, num=608 } );
  2160.  
  2161. Battle_Std.InitIWExistSkill();
  2162.  
  2163.  
  2164. //掴み くっつけない
  2165. BMvEff.ThrowChara_SetJoint( 0 );
  2166.  
  2167. //BMvEff.ThrowParam( { pattern=327, x=300, y=0, } );
  2168.  
  2169. //変数初期化
  2170. BMvTbl.SetLP(0,0); //FrameUpdate_After内でのフェイズ管理に利用
  2171. BMvTbl.SetLP(1,0); //FrameUpdate_After内でのフェイズ内フレームカウンタ
  2172. BMvTbl.SetLP(8,0); //音声タイミング
  2173.  
  2174. //カットイン
  2175. //BMvEff.CutInProc_Set({ time=[6,60,6] });
  2176.  
  2177.  
  2178. local enemy = BMvCore.GetNearEnemyCharaData();
  2179. if( enemy.IsDone )
  2180. {
  2181. BMvCore.PushCharaData( enemy );
  2182. BMvTbl.SetPattern(327); //削られダウン
  2183. BMvTbl.SetPosition( { x=0 } ); //画面中央にもってくる
  2184. BMvCore.PopCharaData();
  2185. }
  2186. BMvTbl.SetPosition( { x=(-200<<7)*BMvTbl.GetMuki() } ); //画面中央ちょい後ろに
  2187.  
  2188. //ボイス
  2189. //BSound.SE_Play( {type = _SeType_Player, num = 600} );
  2190.  
  2191. //カメラ固定
  2192. BMvEff.SetCamera_Focus( {time=[ 0, 2000, 0] } );
  2193. }
  2194.  
  2195. function FrameUpdate()
  2196. {
  2197. local mvstatus = BMvTbl.GetMvStatus(); // ステータス取得
  2198.  
  2199. //フレームカウンタ インクリメント
  2200. local phasecount = BMvTbl.GetLP(1);
  2201. BMvTbl.AddLP(1,1);
  2202.  
  2203. //音声は別扱い
  2204. local sound_time = BMvTbl.GetLP(8);
  2205. BMvTbl.AddLP(8,1);
  2206. if( sound_time==0 )
  2207. {
  2208. // BSound.SE_Play( { type=_SeType_Player, num=608 } );
  2209. }
  2210. else if( sound_time==220-40 )
  2211. {
  2212. BSound.SE_Play( { type=_SeType_Player, num=609 } );
  2213. }
  2214.  
  2215.  
  2216. /*
  2217. if( sound_time==0 )
  2218. {
  2219. BSound.SE_Play( { type=_SeType_Player, num=600 } );
  2220. }
  2221. else if( sound_time==80 )
  2222. {
  2223. BSound.SE_Play( { type=_SeType_Player, num=608 } );
  2224. }
  2225. else if( sound_time==280 )
  2226. {
  2227. BSound.SE_Play( { type=_SeType_Player, num=609 } );
  2228. }
  2229. */
  2230.  
  2231.  
  2232. //フェイズによって処理分岐
  2233. local phasetime = 30;
  2234. switch(BMvTbl.GetLP(0)){
  2235. case 0: //バックジャンプからの壁張り付きまで
  2236. phasetime = 13;
  2237. if( phasecount>phasetime ) SetPhase();
  2238. if( phasecount==0 )
  2239. {
  2240. //後ろ画面端の座標を取得
  2241. local screen_pos = BMvEff.GetCameraRect( { flags=_GetPos_DispCamera } );
  2242.  
  2243. local pos = BMvTbl.CCharaPosition(); // 位置情報型の生成
  2244. pos.x = (BMvTbl.GetMuki()==1)? screen_pos.sx+(50*128) : screen_pos.ex-(50*128);
  2245. pos.y = screen_pos.sy+(350*128);
  2246.  
  2247. //Battle_Std.CreateObjectEX( { pat="PosCheck", setx=pos.x, sety=pos.y } );
  2248.  
  2249. local posst = BMvEff.GetPointStatus( { position=pos } ); // 位置情報取得
  2250.  
  2251. local speed = (posst.distance/phasetime)*2;
  2252. local v = BMvEff.GetVector_FromAngle( { angle = posst.angle, speed = speed, } );
  2253.  
  2254. BMvTbl.SetVector( { x=v.x, y=v.y, addx=-v.x/phasetime, addy=-v.y/phasetime, flags=_Vector_DivKeep|_VecFlag_NoMuki } );
  2255. }
  2256. break;
  2257. case 1: //張り付いたはず
  2258. phasetime = 20;
  2259. if( phasecount>phasetime ) SetPhase(2);
  2260. if( phasecount==0 )
  2261. {
  2262. BMvTbl.JumpFrameID(20); //張り付きの絵まで進める
  2263. Battle_Std.InitVector(); //ベクトル初期化
  2264. local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Etc, 0 ], flags=_HanteiFlag_NoMukiChange | _HanteiFlag_Tool } );
  2265. if( rc.sx != _Hantei_Error ) // 存在するか
  2266. {
  2267. BMvEff.CreateObject( { x=rc.sx, y=rc.sy, mvname="", datatype=1, start_pat=510, flags=_Position_ToolShift } );
  2268. }
  2269. }
  2270. break;
  2271. case 2: //分身発射
  2272. phasetime = 20;
  2273. if( phasecount>phasetime ) SetPhase(2);
  2274. if( phasecount==0 )
  2275. {
  2276. //自分を非表示設定。その後、自分の分身をCreateObjectして、NoGroundFlag立ててSetVectorで飛ばす
  2277. BMvEff.SetObjectFlags({flags = _ObjFlags_NoRender});
  2278. local obj = BMvEff.CreateObject( { x=0, y=0, mvname="", datatype=0, start_pat=271} );
  2279. BMvCore.PushCharaData( obj );
  2280. BMvTbl.SetVector({x=1000, y=100});
  2281. BMvEff.SetObjectFlags({flags = _ObjFlags_NoGround});
  2282. BMvCore.PopCharaData();
  2283. SetPhase(); //次フェイズに移行
  2284. }
  2285. break;
  2286. case 3: //壁張り付きからの、ブレードエフェクト乱舞
  2287. local phasetime = 100; //元々700だったのがかわるよ
  2288.  
  2289. if(phasecount == 0){
  2290. //ToDo:やれたらやりたい カメラを引き
  2291. //BSound.SE_Play( {type = _SeType_Player, num = 607} );
  2292. BMvEff.SetCamera_Focus( { num=0, time=[ 0,9999,30] } );
  2293. BMvEff.SetCamera_Focus( { num=1, zoom=0.75, time=[phasetime,9999,30] } );
  2294. }
  2295. // local bladewidth = [10000, 14000, 18000];
  2296. local bladewidth = [ 8000, 10000, 15000];
  2297.  
  2298. //最初は座標キメ撃ちで、残るブレード
  2299. local bladetimeval = phasetime/700.0; //
  2300. local bladenum = 13; //斬撃乱舞回数
  2301. local bladetime = [ 0, 80, 160, 240, 320, 390, 460, 520, 570, 610, 640, 670, 700];
  2302. local bladex = [140, 100, 90, 0, -30,-500,-200,-100,-200,-100,-900,-500,-500];
  2303. local bladey = [ 50, -10, 0, 90, 0,-300, 90, 100,-500,-380,-100,- 80,-100];
  2304. local bladeangle = [110, 50, 70, 100, 150, 40, 120, 80, 300, 70, 160, 200, 150];
  2305. local bladewindex= [ 0, 1, 1, 0, 2, 0, 0, 1, 2, 2, 1, 0, 2];
  2306.  
  2307. for(local i=0; i<bladenum; i++)
  2308. {
  2309. bladetime[i] = (bladetime[i]*bladetimeval).tointeger(); //タイミングそのままで早く
  2310. }
  2311.  
  2312. for(local i=0; i<bladenum; i++){
  2313. if(bladetime[i] == phasecount){
  2314. local pos = Battle_Std.GetNearEnemyToolShiftPosition(); //相手の座標取得
  2315. local obj = Battle_Std.DrawEffect_LimitPat({x = pos.x + bladex[i], y = pos.y + bladey[i] - 200, pat = "IE_BladeF",
  2316. angle = bladeangle[i]*9999/360});
  2317. BMvCore.PushCharaData( obj );
  2318. local rand = BMvEff.Random_Limit(3);
  2319. BMvTbl.SetScale( {x = bladewidth[ bladewindex[i] ]} );
  2320. BMvTbl.SetPrio(_CharaPrio_Parent_P1);
  2321. BMvCore.PopCharaData();
  2322. // _dm("SETH IWE FixedBlade index:"+i);
  2323. break;
  2324. }
  2325. }
  2326. if(phasecount > phasetime){
  2327.  
  2328. SetPhase(); //次フェイズに移行
  2329. }
  2330. break;
  2331. case 4: //
  2332. local phasetime = 50; //元々300
  2333.  
  2334. local bladewidth = [ 8000, 10000, 15000];
  2335. //ある程度ブレードを出したら、残らないブレードに切り替えて高速乱舞
  2336. local generateinterval;
  2337. if(phasecount <= phasetime*0.53 ){ //phasetime
  2338. generateinterval = (phasetime*0.08).tointeger(); //25
  2339. }else if(phasecount <(phasetime*0.73) ){
  2340. generateinterval = (phasetime*0.06).tointeger(); //18
  2341. }else{
  2342. generateinterval = (phasetime*0.04).tointeger(); //12
  2343. }
  2344. if(phasecount % generateinterval == 0){
  2345. // _dm("SETH IWE RandomBlade phasecount:"+phasecount);
  2346. local pos = Battle_Std.GetNearEnemyToolShiftPosition(); //相手の座標取得
  2347. pos.y -= 240;
  2348. local offset = BMvEff.Random_PointRect({sx=-800, sy=-200, ex=400, ey=200});
  2349. // local obj = Battle_Std.DrawEffect_LimitPat({x = pos.x + offset.x, y = pos.y + offset.y, pat = "IE_BladeF",
  2350. local obj = Battle_Std.DrawEffect_LimitPat({x = pos.x + offset.x, y = pos.y + offset.y, pat = "IE_BladeR",
  2351. angle = "rand"});
  2352. BMvCore.PushCharaData( obj );
  2353. local rand = BMvEff.Random_Limit(3);
  2354. BMvTbl.SetScale( {x = bladewidth[rand]} );
  2355. BMvCore.PopCharaData();
  2356. }
  2357. if(phasecount > (phasetime)){
  2358. SetPhase(); //次フェイズに移行
  2359. }
  2360. break;
  2361. case 5: //
  2362. //最後の大ブレード
  2363. if(phasecount > 20 ){
  2364. //BSound.SE_Play( {type = _SeType_Player, num = 609} ); //キョウカイノディスタント!
  2365. local obj = Battle_Std.DrawEffect_LimitPat({x = 500, y = 0, pat="IE_BladeX"});
  2366. BMvCore.PushCharaData( obj );
  2367. BMvEff.SetObjectFlags({flags = _ObjFlags_NoCamera | _ObjFlags_NoGround});
  2368. BMvTbl.SetPrio( _CharaPrio_Near );
  2369. BMvCore.PopCharaData();
  2370.  
  2371. SetPhase(); //次フェイズに移行
  2372. }
  2373. break;
  2374. case 6: //
  2375. if(phasecount > (30)){
  2376. SetPhase(); //次フェイズに移行
  2377. }
  2378. break;
  2379. case 7: //仕事人カットイン
  2380. //プレイヤー設定
  2381. BMvTbl.SetPattern( 426 ); //絵の中心がズレていたのでグラフィック側を修正
  2382. BMvTbl.SetPosition({x=0 , y=0 }); //カメラリセットがあるのでフィールド中央へもっていく
  2383. BMvTbl.SetMuki( _Direction_Reverse );
  2384. BMvEff.EraseObjectFlags({flags = _ObjFlags_NoRender | _ObjFlags_RenderShadow});
  2385. //敵設定
  2386. local enemy = BMvCore.GetNearEnemyCharaData();
  2387. if( enemy.IsDone )
  2388. {
  2389. BMvCore.PushCharaData( enemy );
  2390. BMvTbl.SetPosition({x=0, y=0});
  2391. BMvEff.SetCharaColor( { color=0x000000, time=999, type=3} );
  2392. BMvTbl.SetMuki( _Direction_Reverse );
  2393. BMvCore.PopCharaData();
  2394. }
  2395. //カメラリセット
  2396. BMvEff.ResetCamera();
  2397. BMvEff.ResetViewCamera();
  2398. BMvEff.SetCamera_Focus( {zoom=1.0, time=[ 0,9999,30] } );
  2399. //ホワイトフェードイン
  2400. BMvEff.FadeProc_Set({type=0, time=[0,0,20] color=0xFFFFFF});
  2401. SetPhase();
  2402. break;
  2403. case 8:
  2404. //背景変更 phasecount==0で一緒に処理したら動かなかったので、1フレ遅らし
  2405. local obj = BMvEff.CreateObject({datatype=0, start_pat="IE_BG"});
  2406. BMvCore.PushCharaData( obj );
  2407. BMvTbl.SetPrio( _CharaPrio_Parent_BG );
  2408. BMvEff.SetObjectFlags({flags = _ObjFlags_NoCamera | _ObjFlags_NoGround | _ObjFlags_EraseParentPatChange});
  2409. BMvTbl.SetPosition( { x=0, y=-216*128 } );
  2410. BMvCore.PopCharaData();
  2411. SetPhase();
  2412. break;
  2413. case 9:
  2414. if(phasecount > 5) SetPhase();
  2415. break;
  2416. case 10:
  2417. if(phasecount > 65) SetPhase();
  2418. if( phasecount==0 )
  2419. {
  2420. //移動スタート
  2421. local moveframe = 40;
  2422. local movepower = 1600;
  2423. BMvTbl.SetVector({x=-movepower, addx = movepower/moveframe, flags=_Vector_Div });
  2424. local enemy = BMvCore.GetNearEnemyCharaData();
  2425. BMvCore.PushCharaData( enemy );
  2426. BMvTbl.SetVector({x=-movepower, addx = movepower/moveframe, flags=_Vector_Div });
  2427. BMvCore.PopCharaData(); //
  2428. }
  2429. break;
  2430. case 11:
  2431. if(phasecount > 35 ) SetPhase();
  2432. if( phasecount==0 )
  2433. {
  2434. local pos = Battle_Std.GetNearEnemyToolShiftPosition(); //相手の座標取得
  2435. pos.y -= 240;
  2436. Battle_Std.DrawEffect_LimitPat({x = pos.x, y = pos.y, pat="IE_LastHit"});
  2437. //斬り効果音
  2438. BSound.SE_Play( { type=_SeType_Player, num=11 } ); //とどめSE
  2439.  
  2440.  
  2441. BMvEff.SetCamera_Quake( { time=30, type=2, clear=0, } ); //揺らし
  2442. BMvEff.Slowmotion_Set( { time=30, power=5000 } ); //スロー
  2443.  
  2444. BMvTbl.SetVector({x=0, addx = 0});
  2445. local p = BMvCore.GetNearEnemyCharaData();
  2446. if( p.IsDone )
  2447. {
  2448. BMvCore.PushCharaData( p );
  2449. BMvTbl.SetVector({x=0, addx = 0});
  2450. BMvCore.PopCharaData(); //
  2451. }
  2452.  
  2453. //アニメパターン再生の為、敵を掴みから開放
  2454. BMvEff.CreateObject( { mvname="Mv_AniSet_Kuzure" } ); //アニメ再生
  2455. //BMvEff.ThrowRelease( { type="崩れ落ちダウン", airrecover=0, flags=_ThrowRelease_NoGroundRecover } );
  2456. Battle_Std.IWExistSkill_FinishEffect(); //KOと同じような揺れやスローを呼ぶ
  2457. }
  2458. break;
  2459. case 12:
  2460. if(phasecount > 40){ //300
  2461. SetPhase();
  2462. BMvTbl.SetFinalize(0);
  2463. }
  2464. if( phasecount==0 )
  2465. {
  2466. BMvEff.FadeProc_Set({type=0, time=[40,999,0] color=0x000000});
  2467. }
  2468. break;
  2469. }
  2470. }
  2471.  
  2472. function Finalize()
  2473. {
  2474. BMvTbl.SetNextMoveTable( "Mv_Skill_IWEXIST_End" );
  2475. }
  2476. function LastUpdate_After()
  2477. {
  2478. //ブラックイン
  2479. BMvEff.FadeProc_Set({type=0, time=[0,5,40] color=0x000000});
  2480.  
  2481. //プレイヤー設定
  2482. BMvTbl.SetPosition({y=0});
  2483. BMvEff.SetCharaColor( { color=0xFFFFFF, time=255, type=3} );
  2484. BMvEff.SetObjectFlags({flags = _ObjFlags_RenderShadow});
  2485.  
  2486. //敵設定
  2487. {
  2488. local p = BMvCore.GetNearEnemyCharaData();
  2489. if( p.IsDone )
  2490. {
  2491. BMvCore.PushCharaData( p ); //
  2492. BMvEff.SetCharaColor( { color=0xFFFFFF, time=255, type=3} );
  2493. BMvTbl.SetMuki( _Direction_Reverse );
  2494. BMvCore.PopCharaData(); //
  2495. }
  2496. }
  2497.  
  2498. //つかみ開放
  2499. //BMvEff.ThrowRelease( { type="垂直吹き飛び", airrecover=0, flags=_ThrowRelease_NoAttackHit|_ThrowRelease_NoGroundRecover } );
  2500. BMvEff.ThrowParam( { x=600, y=0, } );
  2501. BMvEff.ThrowRelease( { type="重傷起き上がり", airrecover=0, flags=_ThrowRelease_NoGroundRecover|_ThrowRelease_NoAttackHit } );
  2502.  
  2503. //ボイス 敵の生死によって音声分岐
  2504. /**
  2505. local hp;
  2506. local enemy = BMvCore.GetNearEnemyCharaData();
  2507. BMvCore.PushCharaData( enemy );
  2508. hp = BCMDTbl.GetHP();
  2509. BMvCore.PopCharaData();
  2510. if(hp > 0){
  2511. BSound.SE_Play( {type = _SeType_Player, num = 616} );
  2512. }else{
  2513. BSound.SE_Play( {type = _SeType_Player, num = 615} );
  2514. }
  2515. */
  2516.  
  2517. //カメラ初期化
  2518. BMvEff.ResetCamera();
  2519. BMvEff.SetCamera_Focus( { time=[0,0,0] } );
  2520. BMvEff.ResetViewCamera();
  2521.  
  2522.  
  2523. //イグジストワース終了
  2524. Battle_Std.FinalizeIWExistSkill();
  2525. }
  2526. }
  2527.  
  2528. t.Mv_Skill_IWEXIST_End <-
  2529. {
  2530. function Init_After()
  2531. {
  2532. //Battle_Std::MakeMoveTmpl()で「Mv_Skill_IWEXIST_Hit」という名前を見て色々と勝手にやっている
  2533. //IWEXIST_Endというパターンに勝手に変更される、ベクトル初期化する、振り向く、ヒット情報や攻撃回数をリセットする、など
  2534. }
  2535. }
  2536.  
  2537.  
  2538. // お約束
  2539. //Battle_Std.AddStdMvTable( SET_MoveTable );
  2540. SET_MoveTable <- Battle_Std.MakeMoveTable( t, SET_CommandTable, Def_ChrNo_Set );
  2541.  
  2542. //local ar = ["Mv_Atk_StdB","Mv_Atk_StdC","Mv_Skill_214A","Mv_Skill_214EX"]
  2543. //Battle_Std.SetStdCombo( SET_MoveTable, ar );
  2544.  
  2545. __dofile__("./data/Set_0/Set_0_selist.txt"); //SE定義
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement