Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 行動リストテーブル
- //SET_MoveTable <- {}
- local t = {};
- //-----------------------------------------------------------------------------
- // 固有関数
- //-----------------------------------------------------------------------------
- //飛び道具に+1
- //操作親が着地(地上判定)になるまで持続(一応時間でもなくなる)
- //消滅時に飛び道具に-1
- local Set_JumpSkillLimit = function( slot )
- {
- local e = BMvEff.CreateObject( { mvname="Mv_Obj_JSkillLimit" } ); //空中で何度も出せないように制限をかける
- BMvCore.PushCharaData( e ); //
- BMvTbl.SetLP( 0, slot );
- BMvCore.PopCharaData();
- BMvTbl.TobiParam_Func( { slot=slot, val=1, type=_ValSet } );
- }
- t.Mv_Obj_JSkillLimit <-
- {
- function Init_After()
- {
- BMvEff.SetObjectFlags( { flags=_ObjFlags_NoGround | _ObjFlags_NoRender| _ObjFlags_MoveTimeStopAll } );
- BMvEff.SetExist( { level = _Exist_NoHantei } );
- //BMvTbl.TobiParam_Func( { slot=5, val=1, type=_ValSet } );
- //LP0 : 使うスロット
- }
- function FrameUpdate_After()
- {
- local end_flag = true;
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- local p = BMvCore.GetPlayerCharaData(); // 操作親の情報を得る
- if( p.IsDone )
- {
- BMvCore.PushCharaData( p ); //
- //地上にくるか一定時間経過すると制限は終了
- end_flag = ( ( BCMDTbl.CheckPosState( _PosState_Ground )!=0 ) || s.MvCount>420 );
- BMvCore.PopCharaData();
- }
- if( end_flag )
- {
- BMvTbl.SetFinalize(0);
- }
- }
- function LastUpdate_After()
- {
- //print("\n終わり");
- local slot = BMvTbl.GetLP(0);
- BMvTbl.TobiParam_Func( { slot=slot, val=0, type=_ValSet } );
- }
- }
- //-----------------------------------------------------------------------------
- // 新技
- //-----------------------------------------------------------------------------
- t.Mv_Atk_StdBandC <-
- {
- function Init_After()
- {
- //
- }
- function FrameUpdate_After()
- {
- local mvs = BMvTbl.GetMvStatus();
- if( mvs.isFrameUpdate && mvs.FrameID==200 )
- {
- // タメ終了
- // セグメント強化状態となる
- BMvEff.CreateObject( { mvname="Mv_Null_BlackPowerUp" } ); // セグメントが強化される状態
- }
- }
- }
- t.Mv_Null_BlackPowerUp <-
- {
- function Init_After()
- {
- BMvTbl.TobiParam_Func( { slot=2, val=1, type=_ValAdd } );
- }
- function Update_After()
- {
- // ダメージで消滅
- if( Battle_Std.CheckPlayerisDamage() )
- {
- BMvTbl.SetFinalize(0);
- }
- local slot = BMvTbl.TobiParam_Func( { slot=2, type=_ValGet } );
- if( slot <= 0 )
- {
- BMvTbl.SetFinalize(0);
- }
- }
- function LastUpdate_After()
- {
- BMvTbl.TobiParam_Func( { slot=2, type=_ValClear } );
- }
- }
- //-----------------------------------------------------------------------------
- // 共通動作
- //-----------------------------------------------------------------------------
- t.Mv_Dash_B <- // バクステ
- {
- function Init_After() //
- {
- // BMvEff.SetPlayerTimer( { muteki_nage=Cdef_Set_MutekiFrame_BackDash, muteki_dage=Cdef_Set_MutekiFrame_BackDash } ); //バクステの無敵時間
- // BMvEff.SetPlayerTimer( { muteki_nageX=Cdef_Set_MutekiFrame_BackDash, muteki_dageX=Cdef_Set_MutekiFrame_BackDash } ); //バクステの無敵時間
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus();
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 100: //バクステ1回目着地
- //cmdで追加コマンド受付してMv_Dash_B_Add2へ
- break;
- }
- }
- }
- }
- t.Mv_Dash_B_Add2 <-
- {
- function Init()
- {
- BMvTbl.SetPattern("Dash_B_Add2")
- }
- function Finalize()
- {
- BMvTbl.SetNextMoveTable( "Mv_Neutral" );
- }
- }
- t.Mv_Atk_Cro3C <-
- {
- function FrameUpdate_After()
- {
- Battle_Std.SetHitMuteki( 1, 8, _HitCheckFlag_Head ); // Param1 == 8 の時、_HitCheckFlag_Head 頭無敵
- }
- }
- //-----------------------------------------------------------------------------
- // 通常投げ
- //-----------------------------------------------------------------------------
- t.Mv_Throw_F_Hit <-
- {
- function Init_After()
- {
- Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- //_dm("id:"+s.FrameID);
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 100: //切り離し
- Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
- BMvEff.ThrowParam( { pattern=305, x=130, y=0, } );
- BMvEff.ThrowRelease( { type="腹やられ強", airrecover=0, flags=0 } );
- break;
- case 200: // 攻撃部分
- Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
- break;
- }
- }
- }
- }
- //-----------------------------------------------------------------------------
- // インフィニットワース
- //-----------------------------------------------------------------------------
- t.Mv_Skill_41236SP <-
- {
- function Init_After()
- {
- //発動時の無敵を設定 ※暗転60Fがあるから注意(def_FL_SPCutinStopTime)
- local muteki = 16 + def_FL_SPCutinStopTime;
- BMvEff.SetPlayerTimer( { muteki_nage=muteki, muteki_dage=muteki, muteki_dageX=muteki, muteki_nageX=muteki } );
- BMvTbl.SetFinalizeCode(0); //初期状態が0でない+GetFinalizeCodeで分岐してるので初期化
- }
- function HitInterrupt_After()
- {
- local isCapture = Battle_Std.SetThrowHitFinalize(256);
- _dp("\n isCapture:"+isCapture);
- if( !isCapture ) //つかんでないなら普通にヒット分岐する
- {
- // 触れたら適当にガード乱舞へ移行する
- local hs = BMvTbl.GetMvHitStatus();
- if( hs.Type&_HitType_Hit )
- {
- BMvTbl.SetFinalize( 128 );
- }
- }
- }
- function Finalize()
- {
- local code = BMvTbl.GetFinalizeCode();
- if( code!=256 )
- {
- BMvEff.CutInProc_Erase(); //カットインがあったら消去する
- }
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[128,"Mv_Skill_41236SP_Guard"], [256,"Mv_Skill_41236SP_Hit"]); //デフォ,[code,mv]...
- }
- function LastUpdate() //カットイン消去を上書き
- {
- if( BMvTbl.FromFinalize()==0 )
- {
- BMvEff.CutInProc_Erase(); //カットインがあったら消去する
- }
- }
- }
- t.Mv_Skill_41236SP_Guard <-
- {
- function LastUpdate()
- {
- BMvEff.CutInProc_Erase(); //カットインがあったら消去する
- BMvEff.SetObjectRender( { type=0 } ); //演出中消していたものを復活
- }
- };
- t.Mv_Skill_41236SP_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- //見た目のカメラ位置中央からの相対座標で取得
- //カメラをリセットし、ステージ中央からの相対座標としてキャラを配置
- local pos = BMvEff.GetCameraPosition( { x=0, y=0, flags=_GetPos_ViewCamera | _GetPos_Offset | _GetPos_NoMuki } );
- BMvEff.ResetCamera(); //カメラ初期化
- BMvEff.ResetViewCamera();
- BMvTbl.SetPosition( { x=-pos.x, y=0, flags= _Position_ChangeMuki } );
- //t.CatchDammyCall("41236SP_Hit_Dammy"); //ダミー呼び出し
- BMvEff.SetObjectRender( { type=1 } ); //設置物がワープしてしまうので演出中は消す
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- //_dm("id:"+s.FrameID);
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 10: //切り離し
- // Type 14 No 304 Param 100 0 0 1 2 0 0 0 0 0 0 0
- BMvEff.ThrowParam( { pattern=304, x=100, y=0, } );
- //BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
- BMvEff.ThrowRelease( { type="特大のけぞり頭", airrecover=0, flags=0 } );
- break;
- case 100: //最初の竜巻
- //ここで相手のX座標の真下へ移動する
- local pos = Battle_Std.GetEnemyPosition(); //相手の座標を取得
- BMvTbl.SetPosition({ x=pos.x }); //相手の座標までワープ
- local pos = BMvEff.GetCameraPosition( { x=0, y=0, flags=_GetPos_ViewCamera | _GetPos_Offset | _GetPos_NoMuki } );
- local e = BMvCore.GetNearEnemyCharaData(); // 敵の情報を得る
- if( e.IsDone )
- {
- BMvCore.PushCharaData( e ); //
- local e_pos = BMvEff.GetCameraPosition( { x=0, y=0, flags=_GetPos_ViewCamera | _GetPos_Offset | _GetPos_NoMuki } );
- BMvCore.PopCharaData(); //
- BMvEff.ResetCamera(); //カメラ初期化
- BMvEff.ResetViewCamera();
- BMvTbl.SetPosition( { x=-pos.x, y=0, flags= _Position_ChangeMuki } );
- BMvCore.PushCharaData( e ); //
- BMvTbl.SetPosition( { x=-e_pos.x, y=-e_pos.y, flags= _Position_ChangeMuki } );
- BMvCore.PopCharaData(); //
- }
- Battle_Std.CreateObjectEX({ x=0, y=0, pat="SPAtkRect", objectflags=_ObjFlags_EraseParentDamage|_ObjFlags_EraseParentPatChange, });
- break;
- case 200: //相手に竜巻
- Battle_Std.CreateObjectEX({ x=0, y=0, pat="SPAtkRect", objectflags=_ObjFlags_EraseParentDamage|_ObjFlags_EraseParentPatChange, });
- break;
- case 300: //X
- BMvEff.SetCamera_Quake( { type=2, time=40, clear=1 } ); //他の揺らしを止めて画面揺らし
- break;
- case 900: //終了
- //座標位置を調整
- break;
- }
- }
- }
- function HitInterrupt_After()
- {
- local hs = BMvTbl.GetMvHitStatus();
- if( hs.isFirstUpdate ) Battle_Std.SetPosition_DamageHanteiRect({ power=50, });
- }
- function LastUpdate_After()
- {
- BMvEff.CutInProc_Erase(); //カットインがあったら消去する
- BMvEff.SetObjectRender( { type=0 } ); //演出中消していたものを復活
- }
- }
- t.Mv_Obj_SPDummy <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- }
- }
- //-----------------------------------------------------------------------------
- // 通常技
- //-----------------------------------------------------------------------------
- t.Mv_Atk_Air6C <-
- {
- function Init_After()
- {
- BMvTbl.SetLP(0,0); //攻撃パターンまで進めたかどうか
- }
- function FrameUpdate_After()
- {
- local mvst = BMvTbl.GetMvStatus();
- //もうすぐ着地しそうなら攻撃のパターンまで進める
- if( mvst.FrameID==50 ) //落下近くの絵
- {
- if( BMvTbl.GetLP(0)==0 )
- {
- local pos = BMvTbl.GetPosition(0);
- if( pos.y > -150*128 )
- {
- BMvTbl.SetLP(0,1); //進めた
- BMvTbl.JumpFrameID(100); //攻撃の絵まで進める
- }
- }
- }
- }
- }
- //-----------------------------------------------------------------------------
- // 236攻
- //-----------------------------------------------------------------------------
- //236攻のチャージ部分と飛び道具発射のTmplを作る関数
- local Get236ChargeEffTmplTable = function(tbl={})
- {
- local tmpl = {
- Init_After = function(){},
- FrameUpdate_After = function(){},
- };
- local SetAngle = ("ShootAngle" in tbl)? tbl.ShootAngle : 2500; //発射角度
- local PowShootAngle = ("PowShootAngle" in tbl)? tbl.PowShootAngle : 2500; // 強化発射角度
- local SetSpeed = ("SetSpeed" in tbl)? tbl.SetSpeed : 2000;
- local SetVec = BMvEff.GetVector_FromAngle( { angle = SetAngle/5000.0, speed = SetSpeed } );
- local SetVecPow = BMvEff.GetVector_FromAngle( { angle = PowShootAngle/5000.0, speed = SetSpeed*2 } );
- local SetFrame = 35;
- local ShootCount = ("ShootCount" in tbl)? tbl.ShootCount : 1; //何発うつか
- local ShootType = ("type" in tbl)? tbl.type : 0; //ABCのどれか 0,10:A 1,11:B 2,12:EX
- local useTobiVal = (ShootType%10==2)? 1 : 0; //使う飛び道具制限
- local PowUpType = ("PowUpType" in tbl)? tbl.PowUpType : 0; // 強化タイプ
- local CheckMv = ("CheckMv" in tbl)? tbl.CheckMv : 0; //このMv以外になったら消滅
- local ShootFrame = ("ShootFrame" in tbl)? tbl.ShootFrame : [91,100,108]; //何フレーム後に発射するか
- local ShootAngle = ("ShootAngle" in tbl)? tbl.ShootAngle : 2500; //発射角度
- //print(" ------------------ useTobiVal"+useTobiVal);
- tmpl.Init_After = function() : (SetVec, SetFrame, ShootCount, useTobiVal, SetVecPow)
- {
- BMvTbl.SetLP(0,0); //うったかどうか 0:うってない 1:うった 10:妨害されて消滅
- BMvTbl.SetLP(1,ShootCount); //何発うつか 0になったら終了
- BMvTbl.SetLP(2,0); // 何発目のたまか 0 1 2
- BMvTbl.TobiParam_Func( { slot=useTobiVal, val=1, type=_ValAdd } );
- local powerup_ball = (BMvTbl.TobiParam_Func( { slot=2, type=_ValGet } ) > 0 )? 1 : 0;
- BMvTbl.SetLP(6,powerup_ball); // 強化なのかどうか記憶
- if( powerup_ball)
- {
- BMvTbl.TobiParam_Func( { slot=2, type=_ValClear } ); // 発射したことによるクリア
- // クリアを見て強化監視オブジェクトも勝手に消えます
- BMvTbl.SetVector( { x=SetVecPow.x, addx=-(SetVecPow.x/SetFrame), y=SetVecPow.y, addy=-(SetVecPow.y/SetFrame), flags=_Vector_Div });
- BMvTbl.SetScale( { x=11500, y=11500 } ); // 強化だとちょっと拡大する
- }
- else
- {
- BMvTbl.SetVector( { x=SetVec.x, addx=-(SetVec.x/SetFrame), y=SetVec.y, addy=-(SetVec.y/SetFrame), flags=_Vector_Div });
- }
- BSound.SE_Play( { num=74 } ); // ちりちり音
- //BMvEff.SetObjectFlags( { flags=_ObjFlags_NoGround|_ObjFlags_NoRenderOrder|_ObjFlags_NoRenderBlackOut } ); //暗転中描画しない
- }
- tmpl.FrameUpdate_After = function() : (CheckMv, ShootFrame, ShootAngle, ShootType, useTobiVal, PowUpType)
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- local pmv = Battle_Std.GetPlayerMvName();
- local isNotBlocked = (BMvTbl.GetLP(0)!=10);
- //飛び道具自身のやられ判定に攻撃を受けても消滅するっす
- //強化(B+C)から出した場合は消えないが、EXは除外する
- local hc_enemy = BMvEff.CheckHantei( { src=[ _Hantei_Kurai , 0, -1 ], dst=[ _Hantei_Attack, 0, -1 ], flags=_HC_EnemyPc|_HC_EnemyObj } );
- local isDamage = 0;
- if( hc_enemy.isdone() ) // 触れている
- {
- if( BMvTbl.GetLP(6) == 1 && PowUpType == 1 ) // 強化状態 かつ 強化タイプ1(0:何も変化しない 1:弾を殴っても消えなくなる)
- {
- }
- else
- {
- isDamage = 1;
- }
- }
- if( s.MvCount==8 || s.MvCount==56 )
- {
- Battle_Std.CreateObjectEX( { pat="236ChargeLightEff", angle="rand", objectflags=_ObjFlags_NoGround } );
- }
- if( isNotBlocked && isDamage )
- {
- BMvTbl.SetLP(0,10);
- BMvTbl.JumpFrameID(950);
- Battle_Std.InitVector(); //停止
- BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
- BMvEff.SetCamera_Quake( { time=10, type=1 } ); //揺らす
- BSound.SE_Play( { num=220} ); // 爆発1
- }
- if( isNotBlocked && Battle_Std.CheckPlayerisDamage() && ShootType%10!=2 ) //食らったら消えるっす(EX以外)
- {
- BMvTbl.SetLP(0,10);
- BMvTbl.JumpFrameID(900);
- BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
- }
- //アレなので消す
- if( isNotBlocked && pmv=="Mv_Skill_41236SP_Hit" )
- {
- BMvTbl.SetLP(0,10);
- BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
- BMvTbl.JumpFrameID(900);
- BMvTbl.SetFinalize(0); //すぐ消えよう
- }
- local isNotShot = (BMvTbl.GetLP(0)==0); //弾をうったら終了するフラグ→うちおわったらに変更
- //着地しそうだったらとめる
- local pos = BMvTbl.GetPosition(0);
- if( pos.y > -64*128 )
- {
- // B+Cでの移動があるので_Vector_DivKeepは消さない
- BMvTbl.SetVector( { x=0, y=0, addx=0, addy=0, flags=_Vector_Normal|_Vector_Div|_Vector_Bound|_Vector_Keep } );
- //Battle_Std.InitVector(); //停止
- }
- local shot_num = BMvTbl.GetLP(2);
- if( shot_num > (ShootFrame.len()-1) ) shot_num = (ShootFrame.len()-1); // 何発目か
- if( s.MvCount==ShootFrame[shot_num] && isNotShot ) //まだうってないならうつよ
- {
- local isEX = (ShootType==2 || ShootType==12);
- local pat = "236_Tama";
- if( isEX )
- {
- if( BMvTbl.GetLP(1)<=1 ) //最後に発射するやつ?
- {
- pat="236EX_LastTama";
- }
- else
- {
- pat="236EX_Tama";
- }
- Battle_Std.CreateFireBall({ x=0, y=0, mv="Mv_FireBall_236EX", pat=pat, angle=0, ball=0, LP={ slot=1, val=ShootType} });
- BMvEff.SetObjectFlags( { flags=_ObjFlags_FromParentStop|_ObjFlags_ToParentStop } );
- }
- else
- {
- Battle_Std.CreateFireBall({ x=0, y=0, mv="Mv_FireBall_236", pat=pat, angle=0, ball=0, LP={ slot=0, val=ShootType} });
- }
- BMvTbl.AddLP(1,-1); //うった回数を減らす
- BMvTbl.AddLP(2, 1); // うった回数を記憶w
- if( BMvTbl.GetLP(1)<=0 ) //もう残ってないなら消える
- {
- BMvTbl.SetLP(0,1);
- BMvTbl.JumpFrameID(900);
- BMvTbl.TobiParam_Func( { slot=useTobiVal, val=-1, type=_ValAdd } );
- }
- }
- }
- return tmpl;
- }
- t.Mv_Obj_236AChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_236A", ShootAngle=3300, PowShootAngle=2900, type=0, ShootFrame=[91, 999, 999], PowUpType=1 } );
- t.Mv_Obj_236BChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_236B", ShootAngle=2500, PowShootAngle=2500, type=1, ShootFrame=[91, 999, 999], PowUpType=1 } );
- t.Mv_Obj_236EXChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_236EX", ShootAngle=1250, PowShootAngle=2000, type=2, ShootFrame=[91,100,108], ShootCount=3, PowUpType=0 } );
- t.Mv_Obj_J236AChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_J236A", ShootAngle=4000, PowShootAngle=3100, type=10, ShootFrame=[108, 999, 999], PowUpType=1 } );
- t.Mv_Obj_J236BChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_J236B", ShootAngle=6500, PowShootAngle=7000, type=11, ShootFrame=[108, 999, 999], PowUpType=1 } );
- t.Mv_Obj_J236EXChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_J236EX", ShootAngle=3500, PowShootAngle=3500, type=12, ShootFrame=[108,116,125], ShootCount=3, PowUpType=0 } );
- t.Mv_Skill_236A <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 100: //チャージエフェクト
- local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
- Battle_Std.CreateObjectEX({ x=232, y=-215, pat=usepat, mvname="Mv_Obj_236AChargeEff", flags=_Position_ToolShift });
- break;
- }
- }
- }
- }
- t.Mv_Skill_236B <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 100: //チャージエフェクト
- local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
- Battle_Std.CreateObjectEX({ x=243, y=-277, pat=usepat, mvname="Mv_Obj_236BChargeEff", flags=_Position_ToolShift })
- break;
- }
- }
- }
- }
- t.Mv_Skill_236EX <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 100: //チャージエフェクト
- local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236EXChargeEff2P" : "236EXChargeEff1P";
- Battle_Std.CreateObjectEX({ x=226, y=-340, pat=usepat, mvname="Mv_Obj_236EXChargeEff", flags=_Position_ToolShift })
- break;
- }
- }
- }
- }
- //-----------------------------------------------------------------------------
- // J236攻
- //-----------------------------------------------------------------------------
- t.Mv_Skill_J236A <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if(s.isFrameUpdate && s.FrameID == 100 ) //飛び道具呼び出し
- {
- local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
- Battle_Std.CreateObjectEX({ x=87, y=-167, pat=usepat, mvname="Mv_Obj_J236AChargeEff", flags=_Position_ToolShift })
- }
- }
- }
- t.Mv_Skill_J236B <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if(s.isFrameUpdate && s.FrameID == 100 ) //飛び道具呼び出し
- {
- local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236ChargeEff2P" : "236ChargeEff";
- Battle_Std.CreateObjectEX({ x=-42, y=-192, pat=usepat, mvname="Mv_Obj_J236BChargeEff", flags=_Position_ToolShift });
- //BMvTbl.SetVector( { x=1400, y=-2000, addy=190, flags=_Vector_Normal }); //ベクトル設定
- }
- }
- }
- t.Mv_Skill_J236EX <-
- {
- function FrameUpdate_After() //
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if(s.isFrameUpdate && s.FrameID == 100 ) //飛び道具呼び出し
- {
- local usepat = ( Battle_Std.IsDouakyara() && BMvTbl.GetPlayerSide()==1 )? "236EXChargeEff2P" : "236EXChargeEff1P";
- Battle_Std.CreateObjectEX({ x=149, y=-187, pat=usepat, mvname="Mv_Obj_J236EXChargeEff", flags=_Position_ToolShift })
- }
- }
- }
- t.Mv_FireBall_236 <-
- {
- function Init_After()
- {
- //まず相手の方を向く
- //これじゃ向かないよ
- //BMvTbl.SetMuki( _Direction_Auto );
- //相手の方の角度にする
- local enemy = BMvCore.GetEnemyCharaData(); // 敵情報を得る
- if(enemy.IsDone)
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(); // 位置取得
- local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Kasanari, 0 ], flags=_HanteiFlag_NoMukiChange } );
- local offy = -250*128; //初期オフセット座標
- if( rc.sx != _Hantei_Error ) // 存在するか
- {
- offy = (rc.sy/2);
- }
- BMvCore.PopCharaData(); //
- epos.y += offy;
- local posst = BMvEff.GetPointStatus( { position=epos } );
- BMvTbl.SetAngle( { angle_float=posst.angle } );
- //相手の方を向く
- //_dp("\n posst.angle:"+posst.angle);
- if( posst.angle <= 1.0 )
- {
- BMvTbl.SetMuki( _Direction_Right );
- BMvTbl.SetAngle( { angle_float=posst.angle } );
- }
- else
- {
- BMvTbl.SetMuki( _Direction_Left );
- BMvTbl.SetAngle( { angle_float=(2.0-posst.angle) } );
- }
- //BMvTbl.SetAngle( { angle=(5000 * posst.angle) } ); // 角度設定
- //_dm("posst.angle:"+posst.angle);
- //Battle_Std.HomingTarget( { posst=posst, speed=125, minSpeed=10 } );
- }
- //BMvEff.LinePrim_Set( { delay=60, width=2, parts=1, wrap=1 } );
- BSound.SE_Play( { type=_SeType_Player , num=0 } ); //飛び道具発射
- //LP0 何で出したか 0:A 1:B 2:C 10:JA
- //local angle = Battle_Std.GetNearEnemyMigiAngle();
- //LP0 : ターゲットだしたかどうか?
- //LP1 : X座標
- //LP2 : Y座標
- BMvTbl.SetLP(0,0);
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- //local type = BMvTbl.GetLP(0); //A B C JA JB JC
- if( s.MvCount>60 )
- {
- BMvTbl.SetFinalize(); //もう長くはいきられない… ※FireBallなので特に指定しないでおく
- }
- else if( s.MvCount<15 )
- {
- if( BMvTbl.GetLP(0)==0 )
- {
- BMvTbl.SetLP(0,1);
- local enemy = BMvCore.GetEnemyCharaData(); // 敵情報を得る
- if(enemy.IsDone)
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(); // 位置取得
- local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Kasanari, 0 ], flags=_HanteiFlag_NoMukiChange } );
- local offy = -250*128; //初期オフセット座標
- if( rc.sx != _Hantei_Error ) // 存在するか
- {
- offy = (rc.sy/2);
- }
- BMvCore.PopCharaData(); //
- epos.y += offy;
- BMvTbl.SetLP(1,epos.x);
- BMvTbl.SetLP(2,epos.y);
- }
- else //相手が取得できなかったら
- {
- }
- }
- else
- {
- local cpos = BMvTbl.CCharaPosition();
- cpos.x = BMvTbl.GetLP(1);
- cpos.y = BMvTbl.GetLP(2);
- //_dm("cpos x:"+cpos.x+" y:"+cpos.y);
- local posst = BMvEff.GetPointStatus( {position=cpos } );
- Battle_Std.HomingTarget( { posst=posst, speed=125, minSpeed=10 } );
- }
- }
- else if( s.MvCount<30 )
- {
- //今のベクトルを取得して単純に加速する
- local vec = BMvTbl.GetVector(0);
- local posst = BMvEff.GetAngle_FromVector( { x=vec.x, y=vec.y } );
- //posst.angle 0.0-2.0
- local v = BMvEff.GetVector_FromAngle( { angle = posst.angle, speed = 650 } );
- BMvTbl.SetVector( { x=v.x, y=v.y, flags=_VecFlag_Add } );
- }
- if( s.MvCount>2 ) Battle_Std.SetAngle_fromVector(); //0だとベクトルが入っていないかもね
- if( s.isUpdate )
- {
- local frame = 2;
- if( s.MvCount%frame==0 )
- {
- local objlen = 100/frame; // 発生するオブジェクトの大きさ
- local vec = BMvTbl.GetVector( { flags=_Vector_Normal } ); // 現在のベクトル取得
- //print( "\n x:"+vec.x + " y:"+vec.y );
- local p = Battle_Std.CreateObjectEX({ pat="320_Hahen", FrameID=[1,2] });
- //local p = BMvEff.CreateObject( { x=0, y=0, mvname="", start_pat=109 } ); // オブジェクト呼び出し
- if( BMvCore.PushCharaData( p ) )
- {
- local ps = BMvEff.GetAngle_FromVector( { x=vec.x, y=vec.y } ); // ベクトルからPointStatus取得
- BMvTbl.SetAngle( { angle=(5000 * ps.angle) } ); // 角度設定
- BMvTbl.SetScale( { y=( (ps.distance/128.0) * 10000 / objlen ) } ); // 拡大値設定
- BMvEff.SetObjectFlags( { flags=_ObjFlags_NoGround } );
- //print( " angle:"+ps.angle +" distance:"+(ps.distance/128));
- }
- BMvCore.PopCharaData();
- }
- }
- }
- }
- t.Mv_FireBall_236_Hit <-
- {
- function Init_After()
- {
- BMvTbl.JumpFrameID(900); //攻撃判定のないところにいこう
- BMvTbl.CalcHitValue(-10000); //残りヒット回数を0にする
- Battle_Std.InitVector();
- Battle_Std.CreateObjectEX({ pat=79, angle="rand", objectflags=_ObjFlags_NoGround });
- BMvEff.SetObjectFlags( { flags=_ObjFlags_NoRender } );
- BSound.SE_Play( { num=241 } );
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.MvCount>60 ) //一定時間で終了(連続してうてないようにするためのもの)
- {
- BMvTbl.SetFinalize(0);
- }
- }
- }
- t.Mv_FireBall_236_Sousai <- t.Mv_FireBall_236_Hit;
- t.Mv_FireBall_236_Land <- t.Mv_FireBall_236_Hit;
- t.Mv_FireBall_236_Blocked <- t.Mv_FireBall_236_Hit;
- //EXは別に(Blockedをなくすだけ)
- t.Mv_FireBall_236EX <- t.Mv_FireBall_236;
- t.Mv_FireBall_236EX_Hit <- t.Mv_FireBall_236_Hit;
- t.Mv_FireBall_236EX_Sousai <- t.Mv_FireBall_236_Sousai;
- t.Mv_FireBall_236EX_Land <- t.Mv_FireBall_236_Land;
- //t.Mv_FireBall_236_Blocked <- t.Mv_FireBall_236_Blocked;
- //-----------------------------------------------------------------------------
- // 214攻
- //-----------------------------------------------------------------------------
- local enemy_shift = function( x=0 )
- {
- local enemy = BMvCore.GetNearEnemyCharaData(); // 敵情報を得る
- if(enemy.IsDone)
- {
- BMvCore.PushCharaData( enemy ); //
- //local pos = BMvTbl.GetPosition(0);
- BMvTbl.SetPosition( {x=x, flags=( _Position_Add | _Position_CaptureShift | _Position_ChangeMuki) } ); //
- BMvCore.PopCharaData(); //
- }
- }
- t.Mv_Skill_623A <-
- {
- function HitInterrupt_After() //
- {
- Battle_Std.SetHitFinalize(256); //ヒットorガードしたら
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_623A_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_623A_Hit <- //追加コマンドを受け付けるよ
- {
- flags = def_TmplFlags_NoAddComboRate|def_TmplFlags_ChangeStatusOnly, //状態の移行のみを行う
- function Init_After() : (enemy_shift) // 初回処理
- {
- enemy_shift( 20 ); //ドット相手の座標を動かす
- }
- function Finalize()
- {
- BMvTbl.SetNextMoveTable( "Mv_Neutral" );
- }
- }
- t.Mv_Skill_623B <-
- {
- function HitInterrupt_After() //
- {
- Battle_Std.SetHitFinalize(256); //ヒットorガードしたら
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_623B_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_623B_Hit <- //追加コマンドを受け付けるよ
- {
- flags = def_TmplFlags_NoAddComboRate|def_TmplFlags_ChangeStatusOnly, //状態の移行のみを行う
- function Init_After() : (enemy_shift) // 初回処理
- {
- enemy_shift( 20 ); //ドット相手の座標を動かす
- }
- function Finalize()
- {
- BMvTbl.SetNextMoveTable( "Mv_Neutral" );
- }
- }
- t.Mv_Skill_623EX <-
- {
- function FrameUpdate_After()
- {
- local mvs = BMvTbl.GetMvStatus();
- if( mvs.isFrameUpdate && mvs.FrameID==100 )
- {
- // 相手の位置までワープ
- // だと強すぎるので 最大距離を設定
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.isdone() )
- {
- local posst = BMvEff.GetPointStatus( { target=enemy } ); // 位置情報取得
- local pos_x = posst.pos_x*BMvTbl.GetMuki();
- //_dp("\n pos_x:"+pos_x);
- local maxlen = 600<<7; // 最大距離
- local minlen = 100<<7; // 最低距離
- if( pos_x > minlen && pos_x < maxlen )
- {
- // 正面かつmaxlen以内
- // 相手の位置までワープ
- if( enemy.push() )
- {
- local epos = BMvTbl.GetPosition();
- enemy.pop();
- BMvTbl.SetPosition( { x=epos.x, y=0 } ); // ワープ
- }
- }
- else if( pos_x <= minlen )
- {
- // 後ろ~最低距離
- BMvTbl.SetPosition( { x= minlen, flags=_Position_Add|_Position_ChangeMuki } );
- }
- else
- {
- // 遠すぎる
- BMvTbl.SetPosition( { x= maxlen, flags=_Position_Add|_Position_ChangeMuki } );
- }
- }
- }
- }
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_623EX_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_623EX_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- //投げているキャラをカメラ処理に含めるかどうか
- BMvEff.ThrowChara_SetCamera( 1 );
- //まず相手を切り離す
- BMvEff.ThrowChara_SetJoint(0);
- BMvEff.ThrowParam( { pattern=320 } );
- //自分の座標は相手の位置で必ず開始する
- local enemy = BMvCore.GetCaptureCharaData();
- if( enemy.IsDone )
- {
- BMvCore.PushCharaData( enemy );
- local pos = BMvTbl.GetPosition( 0 );
- //pos = GamePos2ShiftPos( pos ); //オフセット座標に変更
- BMvCore.PopCharaData();
- BMvTbl.SetPosition( pos );
- }
- BMvTbl.SetPP( def_PP_Set_HitCount,0 );
- //追従カメラを常時更新される目標カメラへくっつける
- //BMvEff.ResetViewCamera();
- //BMvEff.SetCamera_Focus( { time=[0,360,30] } );
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 10: //すり抜け
- BMvTbl.AddPP( def_PP_Set_HitCount,1 );
- //必ずここで固定の座標にワープする
- BMvTbl.SetMuki( _Direction_Reverse );
- local frame = 4;
- local power = 20000;
- BMvTbl.SetVector( { x=-power, addx=power/frame, flags=_Vector_Div } );
- local enemy = BMvCore.GetCaptureCharaData();
- if( enemy.IsDone )
- {
- BMvCore.PushCharaData( enemy );
- local pos = BMvTbl.GetPosition( 0 );
- BMvCore.PopCharaData();
- BMvTbl.SetPosition( pos );
- }
- break;
- case 110: //最後のすり抜け
- BMvTbl.AddPP( def_PP_Set_HitCount,1 );
- //必ずここで固定の座標にワープする
- BMvTbl.SetMuki( _Direction_Reverse );
- local frame = 20;
- local power = 5000;
- BMvTbl.SetVector( { x=-power, addx=power/frame, flags=_Vector_Div } );
- local enemy = BMvCore.GetCaptureCharaData();
- if( enemy.IsDone )
- {
- BMvCore.PushCharaData( enemy );
- local pos = BMvTbl.GetPosition( 0 );
- BMvCore.PopCharaData();
- BMvTbl.SetPosition( pos );
- }
- break;
- case 50: //往復のタメキーフレーム
- /*
- local count = BMvTbl.GetPP( def_PP_Set_HitCount );
- print("\ncount:"+count);
- if( count==3 )
- {
- //スローに
- BMvEff.Slowmotion_Set( { time=30, power=8000 } );
- }
- */
- break;
- case 55: //抜け先
- break;
- case 100: //開始
- local enemy = BMvCore.GetCaptureCharaData();
- if( enemy.IsDone )
- {
- BMvCore.PushCharaData( enemy );
- local pos = BMvTbl.GetPosition( 0 );
- //pos = GamePos2ShiftPos( pos ); //オフセット座標に変更
- BMvCore.PopCharaData();
- BMvTbl.SetPosition( pos );
- }
- Battle_Std.CreateObjectEX({ pat="Obj_214EXAtk", });
- //スロー
- BMvEff.Slowmotion_Set( { time=60, power=5000 } );
- break;
- case 150: //抜けて少し
- //BMvEff.ResetViewCamera();
- //BMvEff.SetCamera_Focus( { time=[0,360,30] } );
- break;
- case 500: //終了
- //投げているキャラをカメラ処理に含めるかどうか
- BMvEff.ThrowChara_SetCamera( 0 ); //初期化
- //画面を揺らす
- BMvEff.SetCamera_Quake( { time=20, type=0 } );
- //BMvEff.ThrowParam( { pattern=320, y=0, } ); //_ThrowRelease_NoAttackHit
- BMvEff.ThrowRelease( { type="崩れ落ちダウン", airrecover=0, flags=_ThrowRelease_NoGroundRecover } );
- //このあと攻撃判定で開放するよ
- //BMvEff.SetCamera_FocusKeep( 0 ); //終了?
- break;
- }
- }
- }
- function LastUpdate_After()
- {
- Battle_Std.NoCansel_NoAttackHit(); //何かでキャンセルしなかった場合追撃不能にする
- }
- }
- local func_214 = {};
- //相手が近ければ座標取得、ダメなら-1
- func_214.GetNearEnemyPos <- function()
- {
- //相手がある程度近ければ背後に回る
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- local posst = BMvEff.GetPointStatus( { target=enemy } ); // 位置情報取得
- _dm("距離チェック"+posst.distance_x);
- if( posst.distance_x<45000)
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- return epos;
- }
- }
- return -1;
- }
- //ダッシュダミー
- //これがあいてに触れると派生が可能となる
- t.Mv_Obj_DashDummy <-
- {
- function Init_After()
- {
- BMvEff.SetObjectFlags( { flags=_ObjFlags_EraseParentPatChange|_ObjFlags_RenderShadow|_ObjFlags_NoGround } );
- BMvTbl.SetVector( { x=3500, addx=0, flags=_Vector_Div } );
- }
- function FrameUpdate_After()
- {
- }
- }
- t.SkillCheck_214Add <- function()
- {
- //相手がある程度近ければ背後に回る
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- local posst = BMvEff.GetPointStatus( { target=enemy } ); // 位置情報取得
- // _dm("距離チェック"+posst.distance_x);
- if( posst.distance_x<45000)
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- return epos;
- }
- }
- return -1;
- }
- t.Mv_Skill_214A <-
- {
- function FrameUpdate_After() : ( func_214 )
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 5: //ダッシュ開始
- Battle_Std.CreateObjectEX( { pat="214StEff", x=0, y=-130, flags=_Position_ToolShift } );
- break;
- case 100: //何もしないででてきた
- Battle_Std.CreateObjectEX( { pat="214EdEff", x=0, y=-130, flags=_Position_ToolShift } );
- break;
- }
- }
- if( s.FrameID==10 ) //ダッシュ中
- {
- //CMDの方で追加コマンド受付
- print(".");
- }
- }
- }
- t.Mv_Skill_214B <-
- {
- function FrameUpdate_After() : ( func_214 )
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 5: //ダッシュ開始
- Battle_Std.CreateObjectEX( { pat="214StEff", x=-60, y=-100, angle=8750, flags=_Position_ToolShift } );
- break;
- case 100: //何もしないででてきた
- Battle_Std.CreateObjectEX( { pat="214EdEff", x=-36, y=-210, angle=1100, flags=_Position_ToolShift } );
- break;
- }
- }
- if( s.FrameID==10 ) //ダッシュ中
- {
- //CMDの方で追加コマンド受付
- //print(".");
- }
- }
- }
- t.Mv_Skill_214C <-
- {
- function FrameUpdate_After() : ( func_214 )
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch( s.FrameID )
- {
- case 5: //ダッシュ開始
- Battle_Std.CreateObjectEX( { pat="214StEff", x=-50, y=-200, angle=3200, flags=_Position_ToolShift } );
- break;
- case 100: //何もしないででてきた
- Battle_Std.CreateObjectEX( { pat="214EdEff", x=-20, y=-250, angle=6600, flags=_Position_ToolShift } );
- break;
- }
- }
- if( s.FrameID==10 ) //ダッシュ中
- {
- //CMDの方で追加コマンド受付
- //print(".");
- }
- }
- }
- //t.Mv_Obj_214A_Add46AChargeEff <- Get236ChargeEffTmplTable( { CheckMv="Mv_Skill_214A_Add46A", ShootAngle=2500, SetSpeed=0, type=0 } );
- t.Mv_Skill_214_AddA <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After() : (enemy_shift)
- {
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- //相手のX座標まで移動
- BMvTbl.SetPosition( { x=epos.x, y=0, } );
- }
- if( BMvTbl.GetPP( def_PP_Temp)==0 ) //6方向
- {
- enemy_shift(20);
- BMvTbl.SetMuki( _Direction_Reverse );
- }
- else
- {
- //BMvTbl.SetMuki( _Direction_Reverse );
- }
- local shift_pos = -150;
- switch( BMvTbl.GetPP( def_PP_Temp2 ) )
- {
- case 0: //A
- shift_pos = -100;
- break;
- case 1: //B
- shift_pos = -250;
- break;
- case 2: //C
- shift_pos = -400;
- break;
- }
- BMvTbl.SetPosition( { x=shift_pos, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
- //使ったし初期化
- BMvTbl.SetPP( def_PP_Temp, 0 );
- BMvTbl.SetPP( def_PP_Temp2, 0 );
- BMvTbl.SetVector( { x=-2000, addx=100, flags=_Vector_Div } );
- //攻撃判定を表示
- //Battle_Std.CreateObjectEX( { pat="214Add46Eff", x=0, y=-100, flags=_Position_ToolShift } );
- Battle_Std.CreateObjectEX( { pat="214AddMoveAtkEff", mvname="Mv_AtkEFf_214Add", x=0, y=-100, flags=_Position_ToolShift, FrameID=1 } );
- BMvTbl.SetMuki( _Direction_Reverse );
- Battle_Std.CreateObjectEX( { pat="SyakaAssalt", x=-250, sety=-100, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="214AssDummyZan", x=-250, sety=-100, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="SyakaJump", x=-150, sety=-300, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="214JumDummyZan", x=-150, sety=-300, flags=_Position_ToolShift, } );
- BMvTbl.SetMuki( _Direction_Reverse );
- //相手の座標に斬りエフェクトを表示
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- Battle_Std.CreateObjectEX( { pat="214AddBlade", setx=epos.x, sety=-150*128, FrameID=[1,2], angle="rand", objectflags=_ObjFlags_MoveTimeStopAll } );
- //Battle_Std.CreateObjectEX({ setx=epos.x, sety=-150*128, pat="236ChargeEff", mvname="Mv_Obj_214A_Add46AChargeEff" });
- }
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Etc , 0 ], flags=_HanteiFlag_NoMukiChange } );
- if( rc.sx != _Hantei_Error ) //特殊判定1があったら
- {
- local cf = (_CatchFlag_AtkAllGuard ); // ガードできれば取れる
- local sf = (_CatchSuccess_HitSub|_CatchSuccess_HitSub_Enemy);
- // 汎用判定02使用、30F
- BMvTbl.SetAtkCatchFlag( { hantei=0, catch_flags=cf, success_flags=sf, time=60, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
- }
- }
- }
- function HitInterrupt_After()
- {
- local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Etc , 0 ], flags=_HanteiFlag_NoMukiChange } );
- if( rc.sx != _Hantei_Error ) //特殊判定1があったら これがないと無限ループになる
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- //print("\n>>>とった!!!!");
- //local pos = BMvEff.GetAttackHitPos();//122 -274
- Battle_Std.CreateObjectEX( { x=122*128, y=-275*128, datatype=1, pat="Sousai", objectflags=_ObjFlags_MoveTimeStopAll });
- BMvEff.SetCamera_Quake( { time=8, type=1 } ); //横ゆれ
- local hitst = BMvTbl.GetMvHitStatus(); // 当て身も当てた情報になる
- // 情報表示テスト
- //print("\n>>>" + hitst.Type );
- BMvTbl.SetPrio( _CharaPrio_Far ); // 取ったらなんとなく一番後ろへ
- local st = BMvTbl.MvHitStatus();
- st.Count = 8; // ヒットストップ発生
- BMvTbl.SetMvHitStatus( st );
- // 取られ側
- local ene = BMvCore.GetLastHitCharaData(1); // 当て身で入ってくるのは「LastHitChara」なので注意
- if( ene.IsDone )
- {
- BMvCore.PushCharaData( ene );
- BMvTbl.SetMvHitStatus( st ); // ヒットストップとか設定
- BMvCore.PopCharaData();
- }
- // この辺は即ジャンプするので色々注意
- local eff = BMvEff.CreateObject( { start_pat="214_AddA_CatchDummy" });
- if( eff.IsDone )
- {
- BMvCore.PushCharaData( eff );
- BMvEff.SetObjectFlags( { flags=_ObjFlags_MoveTimeStopAll } );
- BMvCore.PopCharaData();
- }
- //BMvTbl.SetPattern("214_AddA_Catch");
- BMvTbl.JumpFrameID(512);
- //BMvEff.SetPlayerTimer( { muteki_nage=10, muteki_dage=10 } ); //少し無敵に
- BMvTbl.SetFinalize(256);
- }
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_214_AddA_Catch"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_AtkEFf_214Add<-
- {
- function Init()
- {
- }
- function Finalize()
- {
- BMvTbl.SetDeleteMoveTable();
- }
- }
- t.Mv_Skill_214_AddA_Catch <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- Battle_Std.InitVector();
- BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
- //BMvTbl.SetPattern("214_AddA_Catch");
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- //_dm("有効");
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- epos.x += 140 * 128 * BMvTbl.GetMuki();
- BMvTbl.SetPosition( { x=epos.x, y=0, } );
- BMvTbl.SetMuki( _Direction_Reverse );
- //BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
- //BMvEff.ResetCamera(); //カメラ初期化
- //BMvEff.ResetViewCamera();
- }
- BMvEff.SetStopTime( { time=15, stopme=0 } ); //時間停止
- //BMvEff.SetStopTime( { time=10, stopme=1 } ); //時間停止
- BMvTbl.SetLP(0,0); //変数初期化
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus();
- if( s.MvCount%6==1 && BMvTbl.GetLP(0)!=s.MvCount )
- {
- BMvTbl.SetLP(0,s.MvCount);
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうかチェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- Battle_Std.CreateObjectEX({ setx=epos.x, sety=epos.y-(200*128),
- pat="Spell_Biribiri", FrameID=[1,2,3], angle="rand",
- objectflags=_ObjFlags_MoveTimeStopAll,
- });
- }
- }
- }
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_214_AddA_Catch_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_214_AddA_Catch_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- BMvTbl.SetPosition( { y=0 } ); //地面につけよう
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch(s.FrameID)
- {
- case 200: //きるところ
- Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand", objectflags=_ObjFlags_MoveTimeStopAll });
- //座標指定はしない?
- BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
- break;
- }
- }
- }
- function LastUpdate_After()
- {
- Battle_Std.NoCansel_NoAttackHit(); //何かでキャンセルしなかった場合追撃不能にする
- }
- }
- t.Mv_Skill_214_AddB <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After() : (enemy_shift)
- {
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- local y_shift = (epos.y==0)? -250*128 : -50*128;
- BMvTbl.SetPosition( { x=epos.x, y=epos.y+y_shift, } );
- }
- //最低の高さ保障+念のため
- local pos = BMvTbl.GetPosition(0);
- local min_height = -250*128;
- if( pos.y > min_height )
- {
- BMvTbl.SetPosition( { y=min_height, } );
- }
- if( BMvTbl.GetPP( def_PP_Temp)==0 ) //9方向
- {
- enemy_shift(20);
- BMvTbl.SetMuki( _Direction_Reverse );
- }
- else
- {
- //BMvTbl.SetMuki( _Direction_Reverse );
- }
- local shift_pos = { x=-150, y=0, };
- switch( BMvTbl.GetPP( def_PP_Temp2 ) )
- {
- case 0: //A
- shift_pos.x = -100;
- shift_pos.y = -0;
- break;
- case 1: //B
- shift_pos.x = -220;
- shift_pos.y = -85;
- break;
- case 2: //C
- shift_pos.x = -290;
- shift_pos.y = -160;
- break;
- }
- BMvTbl.SetPosition( { x=shift_pos.x, y=shift_pos.y, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
- BMvTbl.SetPP( def_PP_Temp, 0 );
- BMvTbl.SetPP( def_PP_Temp2, 0 );
- BMvTbl.SetVector( { x=-400, y=-600, addy=50, } );
- //Battle_Std.CreateObjectEX( { pat="214Add79Eff", x=0, y=-170, flags=_Position_ToolShift } );
- Battle_Std.CreateObjectEX( { pat="214AddMoveAtkEff", mvname="Mv_AtkEFf_214Add", x=0, y=-100, flags=_Position_ToolShift, FrameID=2 } );
- BMvTbl.SetMuki( _Direction_Reverse );
- Battle_Std.CreateObjectEX( { pat="SyakaDash", x=-250, sety=0, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="214DasDummyZan", x=-250, sety=0, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="SyakaJump", x=-200, sety=-300, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="214JumDummyZan", x=-200, sety=-300, flags=_Position_ToolShift, } );
- BMvTbl.SetMuki( _Direction_Reverse );
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- Battle_Std.CreateObjectEX( { pat="214AddBlade", setx=epos.x, sety=epos.y-(200*128), FrameID=[1,2], angle="rand" } );
- }
- }
- }
- t.Mv_Skill_214_AddC <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After() : (enemy_shift)
- {
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- //相手のX座標まで移動
- BMvTbl.SetPosition( { x=epos.x, y=0, } );
- }
- if( BMvTbl.GetPP( def_PP_Temp)==0 ) //6方向
- {
- enemy_shift(20);
- BMvTbl.SetMuki( _Direction_Reverse );
- }
- else
- {
- //BMvTbl.SetMuki( _Direction_Reverse );
- }
- local shift_pos = -150;
- switch( BMvTbl.GetPP( def_PP_Temp2 ) )
- {
- case 0: //A
- shift_pos = -100;
- break;
- case 1: //B
- shift_pos = -250;
- break;
- case 2: //C
- shift_pos = -400;
- break;
- }
- BMvTbl.SetPosition( { x=shift_pos, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
- //使ったし初期化
- BMvTbl.SetPP( def_PP_Temp, 0 );
- BMvTbl.SetPP( def_PP_Temp2, 0 );
- BMvTbl.SetVector( { x=-4000, addx=400, flags=_Vector_Div } );
- //攻撃判定を表示
- //Battle_Std.CreateObjectEX( { pat="214Add46Eff", x=0, y=-100, flags=_Position_ToolShift } );
- Battle_Std.CreateObjectEX( { pat="214AddMoveAtkEff", mvname="Mv_AtkEFf_214Add", x=0, y=-100, flags=_Position_ToolShift, FrameID=3 } );
- BMvTbl.SetMuki( _Direction_Reverse );
- Battle_Std.CreateObjectEX( { pat="SyakaAssalt", x=-250, sety=-100, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="214AssDummyZan", x=-250, sety=-100, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="SyakaJump", x=-150, sety=-300, flags=_Position_ToolShift, } );
- Battle_Std.CreateObjectEX( { pat="214JumDummyZan", x=-150, sety=-300, flags=_Position_ToolShift, } );
- BMvTbl.SetMuki( _Direction_Reverse );
- //相手の座標に斬りエフェクトを表示
- local enemy = BMvCore.GetNearEnemyCharaData(); // 相手情報取得
- if( enemy.IsDone ) // 有効かどうか一応チェック
- {
- BMvCore.PushCharaData( enemy ); //
- local epos = BMvTbl.GetPosition(0);
- BMvCore.PopCharaData();
- Battle_Std.CreateObjectEX( { pat="214AddBlade", setx=epos.x, sety=-150*128, FrameID=[1,2], angle="rand" } );
- //Battle_Std.CreateObjectEX({ setx=epos.x, sety=-150*128, pat="236ChargeEff", mvname="Mv_Obj_214A_Add46AChargeEff" });
- }
- }
- }
- /*
- t.Mv_Skill_214B <-
- {
- function FrameUpdate_After() : ( func_214 )
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.FrameID==50)
- {
- //相手がある程度近ければ背後に回る
- local epos = func_214.GetNearEnemyPos();
- if( epos != -1 )
- {
- BMvTbl.JumpFrameID(52);
- local y_shift = (epos.y==0)? -250*128 : -50*128;
- BMvTbl.SetPosition( { x=epos.x, y=epos.y+y_shift, } );
- BMvTbl.SetPosition( { x=150, flags=_Position_Add|_Position_ChangeMuki|_Position_CaptureShift } );
- BMvTbl.SetMuki( _Direction_Reverse );
- BMvTbl.SetVector( { x=-400, y=-600, addy=50, } );
- }
- else //近くないので何もしない
- {
- BMvTbl.JumpFrameID(54);
- }
- }
- }
- }
- */
- /*
- t.Mv_Skill_214B <-
- {
- function HitInterrupt_After() //
- {
- Battle_Std.SetHitFinalize(256); //ヒットorガードしたら
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_214B_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_214B_Hit <- //追加コマンドを受け付けるよ
- {
- function Init_After() // 初回処理
- {
- //BMvTbl.SetPattern(215);
- BMvTbl.JumpFrameID(100);
- //自分を相手の裏にする処理
- //とりあえず相手をちょっと手前にひっぱる
- }
- function Finalize()
- {
- BMvTbl.SetNextMoveTable( "Mv_Neutral" );
- }
- }
- t.Mv_Skill_214_AddA <- //追加コマンド、裏に回る
- {
- function Init() // 初回処理
- {
- BMvTbl.SetPattern("214_AddA");
- // BMvTbl.SetPattern(215);
- //自分を相手の裏にする処理
- //とりあえず相手をちょっと手前にひっぱる
- local enemy = BMvCore.GetNearEnemyCharaData(); // 敵情報を得る
- if(enemy.IsDone)
- {
- BMvCore.PushCharaData( enemy ); //
- //local pos = BMvTbl.GetPosition(0);
- BMvTbl.SetPosition( {x=25, flags=( _Position_Add | _Position_CaptureShift | _Position_ChangeMuki) } ); //
- BMvCore.PopCharaData(); //
- }
- //BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
- BMvTbl.SetMuki( _Direction_Reverse ); //hanntenn
- //BMvTbl.SetPosition( { x=-250, flags=_Position_ChangeMuki|_Position_Add|_Position_CaptureShift } ); //ズラす
- BMvTbl.SetVector( { x=-5000, addx=300, flags=_Vector_Div });
- }
- }
- t.Mv_Skill_214_AddB <- //追加コマンド、裏に回ってズドドド
- {
- function Init() // 初回処理
- {
- BMvTbl.SetMuki( _Direction_Auto ); //相手の方を向く
- //BMvTbl.SetMuki( _Direction_Reverse ); //hanntenn
- BMvTbl.SetPattern("214_AddB");
- //BMvTbl.SetPattern(216);
- //自分を相手の裏にする処理
- //とりあえず相手をちょっと手前にひっぱる
- local enemy = BMvCore.GetNearEnemyCharaData(); // 敵情報を得る
- if(enemy.IsDone)
- {
- BMvCore.PushCharaData( enemy ); //
- //local pos = BMvTbl.GetPosition(0);
- BMvTbl.SetPosition( {x=25, flags=( _Position_Add | _Position_CaptureShift | _Position_ChangeMuki) } ); //
- BMvCore.PopCharaData(); //
- }
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- switch(s.FrameID)
- {
- case 400: //裏に回る
- local pos = Battle_Std.GetEnemyPosition();
- BMvTbl.SetPosition({x=pos.x, y=0});
- break;
- case 500: //駆け抜ける
- local pos = Battle_Std.GetEnemyPosition();
- BMvTbl.SetPosition({x=pos.x, y=0});
- break;
- }
- }
- }
- t.Mv_Skill_214_AddC <- //追加コマンドジャンプ
- {
- function Init_After() // 初回処理
- {
- }
- }
- */
- //-----------------------------------------------------------------------------
- // J214攻
- //-----------------------------------------------------------------------------
- t.Mv_Skill_J214A <-
- {
- function Init_After()
- {
- // 各種補正は最初の1ヒットのみ
- BMvTbl.SetNoHoseiFlag( { val=1, time=254, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus();
- if( s.FrameID==800 && s.isFrameUpdate )
- {
- //先行入力受付
- BMvTbl.SetCommandLongDelay(10); //受付時間増加
- }
- else if( s.FrameID==900 && s.isFrameUpdate )
- {
- //先行入力受付
- BMvTbl.SetCommandLongDelay(2); //受付時間増加
- }
- }
- }
- t.Mv_Skill_J214B <-
- {
- function HitInterrupt_After()
- {
- //Battle_Std.SetThrowHitFinalize(512,512,256,256); // 投げ, 強引投げ, コンボ投げ, リジェクト
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- //Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_J214B_Hit"],[512,"Mv_Skill_J214B_TechWait"]); //デフォ,[code,mv]...
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_J214B_Hit"]); //デフォ,[code,mv]...
- }
- }
- /*
- t.Mv_Skill_J214B_TechWait <- Battle_Std.MakeMv.TechWait(
- {
- FrameID=512,
- ThrowParam={ pattern=17, x=0, y=0 },
- TechFrame = def_FL_BoundTech,
- NextMv="Mv_Skill_J214B_Hit",
- TechedMv="Mv_SkillTechedRecover",
- });
- */
- t.Mv_Skill_J214B_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch(s.FrameID)
- {
- case 200: //きるところ
- Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
- Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand", objectflags=_ObjFlags_MoveTimeStopAll })
- //座標指定はしない?
- BMvEff.ThrowParam( { pattern=333, x=100, y=0, } );
- BMvEff.ThrowRelease( { type="即落きりもみ吹き飛び", airrecover=0, flags=0 } );
- break;
- }
- }
- }
- }
- t.Mv_Skill_J214EX <-
- {
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_J214EX_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_J214EX_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- BMvEff.ClearAttackHitNum();
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- local hitcount = BMvEff.AddAttackHitNum(0); //オブジェクト内ヒット数
- //print("\n count:"+hitcount);
- if( s.isFrameUpdate )
- {
- switch(s.FrameID)
- {
- case 200: //きるところ
- if( hitcount%2==0 )
- {
- Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=1, angle="rand", objectflags=_ObjFlags_MoveTimeStopAll })
- }
- else
- {
- Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=2, angle="rand", objectflags=_ObjFlags_MoveTimeStopAll })
- }
- //つかみ開放
- // Type 14 No 334 Param 0 0 0 49 210 0 0 0 0 0 0 0
- BMvEff.ThrowParam( { pattern=334, x=-100, y=150, } );
- BMvEff.ThrowRelease( { type="きりもみ垂直浮き", airrecover=0, flags=0 } );
- break;
- }
- }
- }
- }
- //-----------------------------------------------------------------------------
- // 632146攻
- //-----------------------------------------------------------------------------
- t.Mv_Skill_63214A <-
- {
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_63214_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_63214B <-
- {
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_63214_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_63214EX <-
- {
- function FrameUpdate_After()
- {
- /*
- local mvs = BMvTbl.GetMvStatus();
- if( mvs.FrameID == 100 )
- {
- // やられ中の相手が重なっていたら投げではない判定に切り替える
- local enemy = BMvEff.CheckHantei( { src=[ _Hantei_Attack, 0, -1 ], dst=[ _Hantei_Kurai, 0, -1 ], flags=_HC_EnemyPc } );
- if( enemy.push() )
- {
- local bs = BtlMvStd.GetBoundStatus();
- enemy.pop();
- if( bs.isBound == 1 || bs.isCapture != 0 ) // やられ中
- {
- BMvTbl.JumpFrameID(200); // 空中も掴む判定に変更
- }
- }
- }
- */
- }
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_63214EX_Hit"]); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_63214_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- // 各種補正は最初の1ヒットのみ
- BMvTbl.SetNoHoseiFlag( { val=1, time=254, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
- Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch(s.FrameID)
- {
- case 200: //きるところ
- Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
- Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand",
- objectflags=_ObjFlags_MoveTimeStopAll, });
- BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
- break;
- }
- }
- }
- function LastUpdate_After()
- {
- Battle_Std.NoCansel_NoAttackHit(); //何かでキャンセルしなかった場合追撃不能にする
- }
- }
- t.Mv_Skill_63214EX_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate, // コンボレートを加算しない
- function Init_After()
- {
- // 各種補正は最初の1ヒットのみ
- BMvTbl.SetNoHoseiFlag( { val=1, time=254, flag=_ClearFlag_ChangePattern|_ClearFlag_ChangeMv } );
- BMvTbl.SetPosition( { y=0 } );
- Battle_Std.SetThrowEnemyMuteki( 254 ); // 投げ中の相手に無敵時間を設定
- }
- function FrameUpdate_After()
- {
- local s = BMvTbl.GetMvStatus(); // ステータス取得
- if( s.isFrameUpdate )
- {
- switch(s.FrameID)
- {
- case 200: //きるところ
- Battle_Std.SetThrowEnemyMuteki( 0 ); // 投げ中の相手に無敵時間を設定
- Battle_Std.CreateObjectEX({ pat="202KubiEff", FrameID=[1,2], angle="rand",
- objectflags=_ObjFlags_MoveTimeStopAll, });
- BMvEff.ThrowRelease( { type="頭やられ強", airrecover=0, flags=0 } );
- break;
- }
- }
- }
- }
- //-----------------------------------------------------------------------------
- // J0202攻
- //-----------------------------------------------------------------------------
- t.Mv_Skill_J0202A <-
- {
- //急降下
- }
- t.Mv_Skill_J0202B <-
- {
- //バックダッシュ
- function Init_After() : (Set_JumpSkillLimit)
- {
- Set_JumpSkillLimit( 6 ); //飛び道具6を使って着地まで何度も出せないように制限
- }
- }
- //-----------------------------------------------------------------------------
- // B+C
- //-----------------------------------------------------------------------------
- /*
- t.Mv_Skill_623A <-
- {
- function Init_After()
- {
- BMvTbl.SetPattern("623Move")
- }
- function Finalize()
- {
- Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddD"); //デフォ,[code,mv]...
- // Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddA"); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_623B <-
- {
- function Init_After()
- {
- BMvTbl.SetPattern("623Move")
- }
- function Finalize()
- {
- Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddD"); //デフォ,[code,mv]...
- // Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddB"); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_623C <-
- {
- function Init_After()
- {
- BMvTbl.SetPattern("623Move")
- }
- function Finalize()
- {
- Battle_Std.SwitchNextMoveTable("Mv_Skill_623_AddD"); //デフォ,[code,mv]...
- }
- }
- t.Mv_Skill_623_AddA <-
- {
- function Init_After()
- {
- //レバーで向きを決定
- //前に入ってると反転
- if( BMvTbl.CheckStickHold( (1<<6) | (1<<9) | (1<<3) ) )
- {
- //反転
- BMvTbl.SetMuki( _Direction_Reverse );
- }
- }
- }
- t.Mv_Skill_623_AddB <-
- {
- function Init_After()
- {
- //レバーで向きを決定
- //前に入ってると反転
- if( BMvTbl.CheckStickHold( (1<<6) | (1<<9) | (1<<3) ) )
- {
- //反転
- BMvTbl.SetMuki( _Direction_Reverse );
- }
- }
- }
- t.Mv_Skill_623_AddC <-
- {
- }
- t.Mv_Skill_623_AddD <-
- {
- }
- t.Skill_623_Add214A <-
- {
- }
- */
- //-----------------------------------------------------------------------------
- // インフィニットワースEXS
- //-----------------------------------------------------------------------------
- //t.Mv_Skill_236236SP <- {};//
- t.Mv_Skill_IWEXIST <-
- {
- flags = def_TmplFlags_NoAddComboRate // コンボレートを加算しない
- function HitInterrupt_After()
- {
- Battle_Std.SetThrowHitFinalize(256); // ヒット分岐ファイナライズ
- }
- function Finalize() //
- {
- Battle_Std.SwitchNextMoveTable("Mv_Neutral",[256,"Mv_Skill_IWEXIST_Hit"]); //デフォ,[code,mv]...
- }
- }
- local aniset_kuzure =
- [
- { Data = [327,0,5], },
- { Data = [327,1,5], },
- { Data = [327,2,5], },
- { Data = [327,3,5], },
- { Data = [327,4,5], },
- { Data = [328,0,5], },
- { Data = [328,1,5], },
- { Data = [354,0,5], },
- { Data = [354,1,5], },
- { Data = [354,2,5], },
- { Data = [354,3,5], },
- { Data = [354,4,5], },
- { Data = [292,0,255], RelJump = 0 },
- ];
- //垂直吹き飛び部分
- t.Mv_AniSet_Kuzure <- Battle_Std.MakeMv.SetCaptureCharaAnime( { animation = aniset_kuzure } );
- t.Mv_Skill_IWEXIST_Hit <-
- {
- flags = def_TmplFlags_NoAddComboRate // コンボレートを加算しない
- function SetPhase( nextphase=-1 )
- {
- if( nextphase==-1 ) //指定無し
- {
- BMvTbl.AddLP(0,1); //進める
- }
- else
- {
- BMvTbl.SetLP(0,nextphase); //フェイズ移行
- }
- BMvTbl.SetLP(1,0); //カウンタ初期化
- }
- function Init_After()
- {
- //Battle_Std.IWEXIST_CallOnePunch(); // 相手をMvBoundにする
- //Battle_Std::MakeMoveTmpl()で「Mv_Skill_IWEXIST_Hit」という名前を見て色々と勝手にやっている
- //IWEXIST_Hitというパターンに勝手に変更される、ベクトル初期化する、振り向く、ヒット情報や攻撃回数をリセットする、など
- //変更 : フェイズを細かくした、フレーム指定が==なのを>にかえた、早くした
- //イグジストワークス開始
- //InitIWExistSkill_SETH();
- BSound.SE_Play( { type=_SeType_Player, num=608 } );
- Battle_Std.InitIWExistSkill();
- //掴み くっつけない
- BMvEff.ThrowChara_SetJoint( 0 );
- //BMvEff.ThrowParam( { pattern=327, x=300, y=0, } );
- //変数初期化
- BMvTbl.SetLP(0,0); //FrameUpdate_After内でのフェイズ管理に利用
- BMvTbl.SetLP(1,0); //FrameUpdate_After内でのフェイズ内フレームカウンタ
- BMvTbl.SetLP(8,0); //音声タイミング
- //カットイン
- //BMvEff.CutInProc_Set({ time=[6,60,6] });
- local enemy = BMvCore.GetNearEnemyCharaData();
- if( enemy.IsDone )
- {
- BMvCore.PushCharaData( enemy );
- BMvTbl.SetPattern(327); //削られダウン
- BMvTbl.SetPosition( { x=0 } ); //画面中央にもってくる
- BMvCore.PopCharaData();
- }
- BMvTbl.SetPosition( { x=(-200<<7)*BMvTbl.GetMuki() } ); //画面中央ちょい後ろに
- //ボイス
- //BSound.SE_Play( {type = _SeType_Player, num = 600} );
- //カメラ固定
- BMvEff.SetCamera_Focus( {time=[ 0, 2000, 0] } );
- }
- function FrameUpdate()
- {
- local mvstatus = BMvTbl.GetMvStatus(); // ステータス取得
- //フレームカウンタ インクリメント
- local phasecount = BMvTbl.GetLP(1);
- BMvTbl.AddLP(1,1);
- //音声は別扱い
- local sound_time = BMvTbl.GetLP(8);
- BMvTbl.AddLP(8,1);
- if( sound_time==0 )
- {
- // BSound.SE_Play( { type=_SeType_Player, num=608 } );
- }
- else if( sound_time==220-40 )
- {
- BSound.SE_Play( { type=_SeType_Player, num=609 } );
- }
- /*
- if( sound_time==0 )
- {
- BSound.SE_Play( { type=_SeType_Player, num=600 } );
- }
- else if( sound_time==80 )
- {
- BSound.SE_Play( { type=_SeType_Player, num=608 } );
- }
- else if( sound_time==280 )
- {
- BSound.SE_Play( { type=_SeType_Player, num=609 } );
- }
- */
- //フェイズによって処理分岐
- local phasetime = 30;
- switch(BMvTbl.GetLP(0)){
- case 0: //バックジャンプからの壁張り付きまで
- phasetime = 13;
- if( phasecount>phasetime ) SetPhase();
- if( phasecount==0 )
- {
- //後ろ画面端の座標を取得
- local screen_pos = BMvEff.GetCameraRect( { flags=_GetPos_DispCamera } );
- local pos = BMvTbl.CCharaPosition(); // 位置情報型の生成
- pos.x = (BMvTbl.GetMuki()==1)? screen_pos.sx+(50*128) : screen_pos.ex-(50*128);
- pos.y = screen_pos.sy+(350*128);
- //Battle_Std.CreateObjectEX( { pat="PosCheck", setx=pos.x, sety=pos.y } );
- local posst = BMvEff.GetPointStatus( { position=pos } ); // 位置情報取得
- local speed = (posst.distance/phasetime)*2;
- local v = BMvEff.GetVector_FromAngle( { angle = posst.angle, speed = speed, } );
- BMvTbl.SetVector( { x=v.x, y=v.y, addx=-v.x/phasetime, addy=-v.y/phasetime, flags=_Vector_DivKeep|_VecFlag_NoMuki } );
- }
- break;
- case 1: //張り付いたはず
- phasetime = 20;
- if( phasecount>phasetime ) SetPhase(2);
- if( phasecount==0 )
- {
- BMvTbl.JumpFrameID(20); //張り付きの絵まで進める
- Battle_Std.InitVector(); //ベクトル初期化
- local rc = BMvEff.GetHanteiRect ( { check=[ _Hantei_Etc, 0 ], flags=_HanteiFlag_NoMukiChange | _HanteiFlag_Tool } );
- if( rc.sx != _Hantei_Error ) // 存在するか
- {
- BMvEff.CreateObject( { x=rc.sx, y=rc.sy, mvname="", datatype=1, start_pat=510, flags=_Position_ToolShift } );
- }
- }
- break;
- case 2: //分身発射
- phasetime = 20;
- if( phasecount>phasetime ) SetPhase(2);
- if( phasecount==0 )
- {
- //自分を非表示設定。その後、自分の分身をCreateObjectして、NoGroundFlag立ててSetVectorで飛ばす
- BMvEff.SetObjectFlags({flags = _ObjFlags_NoRender});
- local obj = BMvEff.CreateObject( { x=0, y=0, mvname="", datatype=0, start_pat=271} );
- BMvCore.PushCharaData( obj );
- BMvTbl.SetVector({x=1000, y=100});
- BMvEff.SetObjectFlags({flags = _ObjFlags_NoGround});
- BMvCore.PopCharaData();
- SetPhase(); //次フェイズに移行
- }
- break;
- case 3: //壁張り付きからの、ブレードエフェクト乱舞
- local phasetime = 100; //元々700だったのがかわるよ
- if(phasecount == 0){
- //ToDo:やれたらやりたい カメラを引き
- //BSound.SE_Play( {type = _SeType_Player, num = 607} );
- BMvEff.SetCamera_Focus( { num=0, time=[ 0,9999,30] } );
- BMvEff.SetCamera_Focus( { num=1, zoom=0.75, time=[phasetime,9999,30] } );
- }
- // local bladewidth = [10000, 14000, 18000];
- local bladewidth = [ 8000, 10000, 15000];
- //最初は座標キメ撃ちで、残るブレード
- local bladetimeval = phasetime/700.0; //
- local bladenum = 13; //斬撃乱舞回数
- local bladetime = [ 0, 80, 160, 240, 320, 390, 460, 520, 570, 610, 640, 670, 700];
- local bladex = [140, 100, 90, 0, -30,-500,-200,-100,-200,-100,-900,-500,-500];
- local bladey = [ 50, -10, 0, 90, 0,-300, 90, 100,-500,-380,-100,- 80,-100];
- local bladeangle = [110, 50, 70, 100, 150, 40, 120, 80, 300, 70, 160, 200, 150];
- local bladewindex= [ 0, 1, 1, 0, 2, 0, 0, 1, 2, 2, 1, 0, 2];
- for(local i=0; i<bladenum; i++)
- {
- bladetime[i] = (bladetime[i]*bladetimeval).tointeger(); //タイミングそのままで早く
- }
- for(local i=0; i<bladenum; i++){
- if(bladetime[i] == phasecount){
- local pos = Battle_Std.GetNearEnemyToolShiftPosition(); //相手の座標取得
- local obj = Battle_Std.DrawEffect_LimitPat({x = pos.x + bladex[i], y = pos.y + bladey[i] - 200, pat = "IE_BladeF",
- angle = bladeangle[i]*9999/360});
- BMvCore.PushCharaData( obj );
- local rand = BMvEff.Random_Limit(3);
- BMvTbl.SetScale( {x = bladewidth[ bladewindex[i] ]} );
- BMvTbl.SetPrio(_CharaPrio_Parent_P1);
- BMvCore.PopCharaData();
- // _dm("SETH IWE FixedBlade index:"+i);
- break;
- }
- }
- if(phasecount > phasetime){
- SetPhase(); //次フェイズに移行
- }
- break;
- case 4: //
- local phasetime = 50; //元々300
- local bladewidth = [ 8000, 10000, 15000];
- //ある程度ブレードを出したら、残らないブレードに切り替えて高速乱舞
- local generateinterval;
- if(phasecount <= phasetime*0.53 ){ //phasetime
- generateinterval = (phasetime*0.08).tointeger(); //25
- }else if(phasecount <(phasetime*0.73) ){
- generateinterval = (phasetime*0.06).tointeger(); //18
- }else{
- generateinterval = (phasetime*0.04).tointeger(); //12
- }
- if(phasecount % generateinterval == 0){
- // _dm("SETH IWE RandomBlade phasecount:"+phasecount);
- local pos = Battle_Std.GetNearEnemyToolShiftPosition(); //相手の座標取得
- pos.y -= 240;
- local offset = BMvEff.Random_PointRect({sx=-800, sy=-200, ex=400, ey=200});
- // local obj = Battle_Std.DrawEffect_LimitPat({x = pos.x + offset.x, y = pos.y + offset.y, pat = "IE_BladeF",
- local obj = Battle_Std.DrawEffect_LimitPat({x = pos.x + offset.x, y = pos.y + offset.y, pat = "IE_BladeR",
- angle = "rand"});
- BMvCore.PushCharaData( obj );
- local rand = BMvEff.Random_Limit(3);
- BMvTbl.SetScale( {x = bladewidth[rand]} );
- BMvCore.PopCharaData();
- }
- if(phasecount > (phasetime)){
- SetPhase(); //次フェイズに移行
- }
- break;
- case 5: //
- //最後の大ブレード
- if(phasecount > 20 ){
- //BSound.SE_Play( {type = _SeType_Player, num = 609} ); //キョウカイノディスタント!
- local obj = Battle_Std.DrawEffect_LimitPat({x = 500, y = 0, pat="IE_BladeX"});
- BMvCore.PushCharaData( obj );
- BMvEff.SetObjectFlags({flags = _ObjFlags_NoCamera | _ObjFlags_NoGround});
- BMvTbl.SetPrio( _CharaPrio_Near );
- BMvCore.PopCharaData();
- SetPhase(); //次フェイズに移行
- }
- break;
- case 6: //
- if(phasecount > (30)){
- SetPhase(); //次フェイズに移行
- }
- break;
- case 7: //仕事人カットイン
- //プレイヤー設定
- BMvTbl.SetPattern( 426 ); //絵の中心がズレていたのでグラフィック側を修正
- BMvTbl.SetPosition({x=0 , y=0 }); //カメラリセットがあるのでフィールド中央へもっていく
- BMvTbl.SetMuki( _Direction_Reverse );
- BMvEff.EraseObjectFlags({flags = _ObjFlags_NoRender | _ObjFlags_RenderShadow});
- //敵設定
- local enemy = BMvCore.GetNearEnemyCharaData();
- if( enemy.IsDone )
- {
- BMvCore.PushCharaData( enemy );
- BMvTbl.SetPosition({x=0, y=0});
- BMvEff.SetCharaColor( { color=0x000000, time=999, type=3} );
- BMvTbl.SetMuki( _Direction_Reverse );
- BMvCore.PopCharaData();
- }
- //カメラリセット
- BMvEff.ResetCamera();
- BMvEff.ResetViewCamera();
- BMvEff.SetCamera_Focus( {zoom=1.0, time=[ 0,9999,30] } );
- //ホワイトフェードイン
- BMvEff.FadeProc_Set({type=0, time=[0,0,20] color=0xFFFFFF});
- SetPhase();
- break;
- case 8:
- //背景変更 phasecount==0で一緒に処理したら動かなかったので、1フレ遅らし
- local obj = BMvEff.CreateObject({datatype=0, start_pat="IE_BG"});
- BMvCore.PushCharaData( obj );
- BMvTbl.SetPrio( _CharaPrio_Parent_BG );
- BMvEff.SetObjectFlags({flags = _ObjFlags_NoCamera | _ObjFlags_NoGround | _ObjFlags_EraseParentPatChange});
- BMvTbl.SetPosition( { x=0, y=-216*128 } );
- BMvCore.PopCharaData();
- SetPhase();
- break;
- case 9:
- if(phasecount > 5) SetPhase();
- break;
- case 10:
- if(phasecount > 65) SetPhase();
- if( phasecount==0 )
- {
- //移動スタート
- local moveframe = 40;
- local movepower = 1600;
- BMvTbl.SetVector({x=-movepower, addx = movepower/moveframe, flags=_Vector_Div });
- local enemy = BMvCore.GetNearEnemyCharaData();
- BMvCore.PushCharaData( enemy );
- BMvTbl.SetVector({x=-movepower, addx = movepower/moveframe, flags=_Vector_Div });
- BMvCore.PopCharaData(); //
- }
- break;
- case 11:
- if(phasecount > 35 ) SetPhase();
- if( phasecount==0 )
- {
- local pos = Battle_Std.GetNearEnemyToolShiftPosition(); //相手の座標取得
- pos.y -= 240;
- Battle_Std.DrawEffect_LimitPat({x = pos.x, y = pos.y, pat="IE_LastHit"});
- //斬り効果音
- BSound.SE_Play( { type=_SeType_Player, num=11 } ); //とどめSE
- BMvEff.SetCamera_Quake( { time=30, type=2, clear=0, } ); //揺らし
- BMvEff.Slowmotion_Set( { time=30, power=5000 } ); //スロー
- BMvTbl.SetVector({x=0, addx = 0});
- local p = BMvCore.GetNearEnemyCharaData();
- if( p.IsDone )
- {
- BMvCore.PushCharaData( p );
- BMvTbl.SetVector({x=0, addx = 0});
- BMvCore.PopCharaData(); //
- }
- //アニメパターン再生の為、敵を掴みから開放
- BMvEff.CreateObject( { mvname="Mv_AniSet_Kuzure" } ); //アニメ再生
- //BMvEff.ThrowRelease( { type="崩れ落ちダウン", airrecover=0, flags=_ThrowRelease_NoGroundRecover } );
- Battle_Std.IWExistSkill_FinishEffect(); //KOと同じような揺れやスローを呼ぶ
- }
- break;
- case 12:
- if(phasecount > 40){ //300
- SetPhase();
- BMvTbl.SetFinalize(0);
- }
- if( phasecount==0 )
- {
- BMvEff.FadeProc_Set({type=0, time=[40,999,0] color=0x000000});
- }
- break;
- }
- }
- function Finalize()
- {
- BMvTbl.SetNextMoveTable( "Mv_Skill_IWEXIST_End" );
- }
- function LastUpdate_After()
- {
- //ブラックイン
- BMvEff.FadeProc_Set({type=0, time=[0,5,40] color=0x000000});
- //プレイヤー設定
- BMvTbl.SetPosition({y=0});
- BMvEff.SetCharaColor( { color=0xFFFFFF, time=255, type=3} );
- BMvEff.SetObjectFlags({flags = _ObjFlags_RenderShadow});
- //敵設定
- {
- local p = BMvCore.GetNearEnemyCharaData();
- if( p.IsDone )
- {
- BMvCore.PushCharaData( p ); //
- BMvEff.SetCharaColor( { color=0xFFFFFF, time=255, type=3} );
- BMvTbl.SetMuki( _Direction_Reverse );
- BMvCore.PopCharaData(); //
- }
- }
- //つかみ開放
- //BMvEff.ThrowRelease( { type="垂直吹き飛び", airrecover=0, flags=_ThrowRelease_NoAttackHit|_ThrowRelease_NoGroundRecover } );
- BMvEff.ThrowParam( { x=600, y=0, } );
- BMvEff.ThrowRelease( { type="重傷起き上がり", airrecover=0, flags=_ThrowRelease_NoGroundRecover|_ThrowRelease_NoAttackHit } );
- //ボイス 敵の生死によって音声分岐
- /**
- local hp;
- local enemy = BMvCore.GetNearEnemyCharaData();
- BMvCore.PushCharaData( enemy );
- hp = BCMDTbl.GetHP();
- BMvCore.PopCharaData();
- if(hp > 0){
- BSound.SE_Play( {type = _SeType_Player, num = 616} );
- }else{
- BSound.SE_Play( {type = _SeType_Player, num = 615} );
- }
- */
- //カメラ初期化
- BMvEff.ResetCamera();
- BMvEff.SetCamera_Focus( { time=[0,0,0] } );
- BMvEff.ResetViewCamera();
- //イグジストワース終了
- Battle_Std.FinalizeIWExistSkill();
- }
- }
- t.Mv_Skill_IWEXIST_End <-
- {
- function Init_After()
- {
- //Battle_Std::MakeMoveTmpl()で「Mv_Skill_IWEXIST_Hit」という名前を見て色々と勝手にやっている
- //IWEXIST_Endというパターンに勝手に変更される、ベクトル初期化する、振り向く、ヒット情報や攻撃回数をリセットする、など
- }
- }
- // お約束
- //Battle_Std.AddStdMvTable( SET_MoveTable );
- SET_MoveTable <- Battle_Std.MakeMoveTable( t, SET_CommandTable, Def_ChrNo_Set );
- //local ar = ["Mv_Atk_StdB","Mv_Atk_StdC","Mv_Skill_214A","Mv_Skill_214EX"]
- //Battle_Std.SetStdCombo( SET_MoveTable, ar );
- __dofile__("./data/Set_0/Set_0_selist.txt"); //SE定義
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement