デバッグキー開拓!! ステコンの少なさと扱いやすさを重視しました ある意味不安定な論外技術ですので、 ご使用は自己責任でお願いいたします。 ※でももしミスとかあったら教えてください! ~スペシャルサンクス~ マイナー氏:各出力指定子の仕様を参考にさせていただきました。 Take師匠:%%%%+.e%%%%+.e%%%%+.e%%%%+.e%%%%+.e%%%%nHUK!!!(゚∀゚)アヒャ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;前提知識 ;※マイナー氏の512オーバーフローバグ表から引用 ;アドレス ;※4938056と4938060の値が異なればデバッグキーが実行される ;4937032 キーログ0 ;4938056 前のフレームのキーログ番号(出力) ;4938060 今のフレームのキーログ番号(出力) ;4942237 Ctrl(L) ;4942250 Shift(L) ;4942262 Shift(R) ;4942264 Alt(L) ;4942265 Space ;4942365 Ctrl(R) ;4942392 Alt(R) ;キー番号 (4937032に代入した番号のキーが押される) ;59 F1 ;60 F2 ;61 F3 ;62 F4 ;63 F5 ;%nはこれまでに出力した文字数を値としてParamsで指定したアドレスに代入する。 [State %n] Type = DisplayToClipboard Trigger1 = 1 Text = "1234%n%*B%n" Params = 4937032,6,4937036 ;このステコンを実行した場合、 ;1,デバッグ画面に「1234」と出力した後に1つ目の「%n」があるため、 ; Params1つ目のアドレス「4937032」には「4」が代入される。 ;2,次に「%*B」、これは自分もよくわからないが、 ; 謎の文字(Space?)をParams(今回は2つ目)で指定した文字数分出力できるため、 ; 恐らくスペースが6つ出力され、文字数はもちろん6文字である。 ;3,そして最後の%nでは、今までに出力した文字の合計4 + 6 = 10文字 ; つまりParams3つ目のアドレス「4937036」には「10」が代入される。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;① ;%nF1 (Take師匠&Moyashi作) ;なんと1ステコンでしっかりF1ができちゃう ;自滅対策もしてあります。 ;%%%%バグによる参照アドレスずらしを利用して ;強引に6つのアドレスに%nで値を代入するIntelligenceなPOWER技です。(だいすき) ;"%%%%+.e"で8Byteずつ参照アドレスをずらし、"HUK"が最後の%nに対応するアドレスになるよう調整。 ;※ 'H' 'U' 'K' = 48 55 4B → 0x4B5548 = 4937032 [State %nF1] Type = DisplayToClipboard Trigger1 = Enemy,Life || Enemy(NumEnemy>1),Life Text = "%n%n%n %n%n%%%%+.e%%%%+.e%%%%+.e%%%%+.e%%%%+30e%%%%nHUK" Params = 4938056,4942365,4942237+(128*(TeamSide=2)),4942237-(4177*(TeamSide=1)),4938060 ;簡素な説明 ;Text = "%n%n%n %n%n%%%%+.e%%%%+.e%%%%+.e%%%%+.e%%%%+30e%%%%nHUK";4937032(キーログ0)に59を代入 ;出力文字数→ 1 7 7 7 7 30 %n 合計:1 + 7 * 4 + 30 = 59 ;Params = 4938056,4942365,4942237+(128*(TeamSide=2)),4942237-(4177*(TeamSide=1)),4938060;最初の5つの%nに対応 ; 前Fキーログ番号, Ctrl_R, Ctrl_L (TeamSide=1の場合), Ctrl_L (TeamSide=2の場合) ,今Fキーログ番号 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;② ;汎用%n ;2ステコンですが%nF1~F5まで全て使えます。 ;ただし%nF3~F5を使う時など、必要ない時でもCtrlとShiftが押しっぱなしになります。 ;こちらにとっては何もデメリットはないですが、 ;Ctrlが押された状態で相手がP1側から%nF1とか使ってきた場合などに ;相手が自殺する可能性がありますww ; ;2ステコン目の一番後ろの()の中の数値を1~5の範囲で変えてください。 [State %nDebugKey] Type = DisplayToClipboard Trigger1 = 1;こちらは常時発動でOK Text = "%n%n%n%n" Params = 4942237,4942365,4942250,4942262 [State %nDebugKey] Type = DisplayToClipboard Trigger1 = 1 Text = "%n %n%n%*B%n" Params = 4938056,4938060,4942237+(13*(TeamSide=1)),57+( 1~5 ),4937032 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;③ ;汎用%n(利便性向上バージョン) ;2ステコンですが%nF1~F5まで全て使えます。 ;ワァ! % がいっぱ~い! なんと%という文字を40個以上も使ってます。 ;上で紹介したものとの違いは、 ;必要な時にだけCtrlとShiftを押すようになり、 ;デバッグ画面に今どの%nが発動しているかを表示するようになります。 ;しかし上のやつとは違って、 ;3か所も数値を変更しないといけないので、適当に変数使ってます。 ; ;任意の変数に1~5の範囲で数値を入れて使ってください。 [State %nDebugKey] Type = DisplayToClipboard TriggerAll = 1 || var(0) := 2 * (GameTime%3) + 1;使用例 ;※Triggerは↓のステコンと同じにすること Trigger1 = 1 Text = "%n%n%n%n%n%%%%+.e%%%%+.e%%%%+.e%%%%+.e%%%%+0.0e%%%%nLYK" Params = 4942237,4942365,4942250,4942262,4938056 [State %nDebugKey] Type = DisplayToClipboard ;※Triggerは↑のステコンと同じにすること Trigger1 = 1 Text = "%%%%%%%%%nnF%d Activated.%*c%n%.s" Params = 4942237+IfElse((var(0)=[1,2]),(13*(TeamSide=1)),-4177),var(0),40+var(0),32,4937032 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;④ ;汎用%nF3~5 ;1ステコンで%nF3~F5が使えます。 ; ;()の中の数値を3~5の範囲で変えてください。 [State %nF3~5] Type = DisplayToClipboard Trigger1 = 1 Text = "%n %n%*B%n" Params = 4938056,4938060,57 + ( 3~5 ),4937032 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;⑤ ;タッグ対応デバッグP消去/復帰 ;2ステコンでお手軽P消去 ;1Fに1人しか消せないのでタッグ戦の場合、 ;相手を2人とも消すには2Fかかります。 ;P消去中は相手に干渉できなかったりするので復帰も必要。 ;復帰も相手が2人だと2F必要です。 ;Player消去 [State %nDebug_PlayerDelete] Type = DisplayToClipboard TriggerAll = NumEnemy Trigger1 = 1 Text = "%n %n%n%n" Params = 4938056,4938060,4942237,4942264 [State %nDebug_PlayerDelete] Type = DisplayToClipboard TriggerAll = NumEnemy Trigger1 = 1 Text = "%*B%n" Params = 2*(NumEnemy=2)+4-TeamSide,4937032 ;Player復帰 [State %nDebug_PlayerReturn] Type = DisplayToClipboard TriggerAll = !NumEnemy || (NumEnemy=1&&Enemy,TeamMode=Simul) Trigger1 = 1 Text = "%n %n%n%n" Params = 4938056,4938060,4942237,4942264 [State %nDebug_PlayerReturn] Type = DisplayToClipboard TriggerAll = !NumEnemy || (NumEnemy=1&&Enemy,TeamMode=Simul) Trigger1 = 1 Text = "%*B%n" Params = 2*(NumEnemy=1)+4-TeamSide,4937032 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;⑥ ;タッグ対応デバッグP消去/復帰(利便性向上バージョン) ;1ステコンで消去も復帰もできるようにしました。 ;任意の変数使ってください。 ; ;変数の値が真(0以外)でP消去、偽(0)でP復帰 [State %nDebug_PlayerDelete] Type = DisplayToClipboard TriggerAll = 1 || var(0) := (RoundState = 1);使用例 TriggerAll = !var(0) || NumEnemy TriggerAll = var(0) || !NumEnemy || (NumEnemy=1&&Enemy,TeamMode=Simul) Trigger1 = 1 Text = "%n %n%n%n" Params = 4938056,4938060,4942237,4942264 [State %nDebug_PlayerDelete] Type = DisplayToClipboard TriggerAll = !var(0) || NumEnemy TriggerAll = var(0) || !NumEnemy || (NumEnemy=1&&Enemy,TeamMode=Simul) Trigger1 = 1 Text = "%*B%n" Params = 2*(NumEnemy=(1+!!var(0)))+4-TeamSide,4937032 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;⑦ ;何の変哲もないただの1ステコン%n。 ;スペースキー押すだけ [State %nSpace] Type = DisplayToClipboard Trigger1 = 1 Text = " %n" Params = 4942265;Spaceキー押し下フラグアドレス ;Escキー押すだけ [State %nEsc] Type = DisplayToClipboard Trigger1 = 1 Text = "%n %n%n" Params = 4938056,4938060,4937032 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;