【伺か】メンテナンスモードを作ってみる。【yaya】

ukagaka

前回

【伺か】エマージェンシーモードを活用する。【YAYA】

初めに

次回に好感度実装をしようと思っています。
しかし、現在の数値などで面倒なチェック作業が必須になるので先にそれを確認しやすくしてしまおうと思います。

今回すること

メンテナンスモード(デバッグモード)を実装する。

  • 簡単にon/offできる。
  • ダブルクリック時にメンテナンスモードだと別のメニューを表示する。
  • メンテナンスモードであることが一目でわかるように、サブキャラを実装してみる。

といったものをつけようと思います。

Menuを独立させる。

以前 、【コピペで作る】伺か ダブルクリックでメニューを開けるようにする【yaya】 — 異風堂々dic_DoubleClick.ukaに作ったメニューを改修して作成します。
menu一式を独立させるのでdic_DoubleClick.ukaこのように全て書き換えてしまいます。
もし、部位の追加などをしていたら適時書き換えてください。

OnMouseDoubleClick { 
    _char  = reference[3] 
    _parts = reference[4] 
    EVAL("MouseDoubleClick_%( _char )%( _parts )") 
} 


MouseDoubleClick_0Head { 
    "ダブルクリック:頭" 
} 


//メインキャラの当たり判定が無い部分 
MouseDoubleClick_0 { 
    //"ダブルクリック:None" 
    CallDoubleClickMenu 
} 

dic_Menu.ukaを新しく作り、yaya.txtに登録します。

CallDoubleClickMenu { 
    //メンテナンスモードが有効ならば 
    if ( ISFUNC( "DebugModeFunction" ) == 1 ) { 
        DebugMenu() 

    //メンテナンスモードが無効ならば 
    } else { 
        DoubleClickMenu() 
    } 
} 

DoubleClickMenu { 
    "\_q/ 
    \n[half]/ 
     【機能】\n/ 
    \![*]\q[テストメニューA,TestMenuA]\n/ 
    \![*]\q[テストメニューB,TestMenuB]\n/ 
    \![*]\q[テストメニューC,TestMenuC]\n/ 
    \![*]\q[天気関係,weather_menu]\n/ 
    \![*]\q[特にない,]\n/ 
    \n[half]\e" 
} 


TestMenuA { 
    "テストメニューA" 
} 
TestMenuB { 
    "テストメニューB" 
} 
TestMenuC { 
    "テストメニューC" 
} 


DebugMenu { 
    "\_q/ 
    \n[half]/ 
     【メンテナンス】\n/ 
    \![*]\q[メンテナンスメニューA,DebugMenuA]\n/ 
    \![*]\q[特にない,]\n/ 
    \n[half]\e" 
} 


DebugMenuA { 
    "メンテナンスA" 
} 

dic_DebugMode.ukaを作成してyaya.txtに登録します。

DebugModeFunction { 
    "DebugModeNow" 
} 

ここまででdic_DebugMode.ukaが読み込まれている場合はメンテナンスモードとして動かすことができるようになりました。
再起動して本来通常のメニューが出る動作を確認してみてください。
debugmode_surface3.png

メンテナンスモードのon/offをする。

dic_DebugMode.ukaをコメントアウトするだけで、オフにすることができます。
debugmode_surface2.png

以降はこのような分岐を設定しておけば、メンテナンスモード時の挙動を変更できます。

if ( ISFUNC( "DebugModeFunction" ) == 1 ) { 
} else { 
} 

おまけ

サブキャラを実装してメンテナンスモード中であることが一目瞭然にしてみる。
shell/surface9999.pngを下記の画像で登録した。
surface9999.png

以前書いた【コピペで作る】伺か 起動時に一緒に天気予報も教えてもらう。【yaya】 — 異風堂々dic_Hello.ukaの中のHelloWorld関数をこのように改変します。

HelloWorld { 

    _DebugMode = GetDebugMode() 
    _mainText  = GetHelloComment() 
    _subText   = "" 
    _text      = "" 

    //一日一回のみ処理する 
    if ( SameDayFlag == 1 ) { 
        //自動が有効ならば 
        if ( WeatherFlag == 1 ) || ( WeatherFlag == 3 ) { 
            _subText = CallWeather 
        } 
    } 

    _text = _DebugMode + _mainText + _subText 
    _text 
} 

同じくdic_Hello.ukaに下記を追記します。

GetDebugMode { 
    if ( ISFUNC( "DebugModeFunction" ) == 1 ) { 
        "\1\s[9999]\0" 
    } else { 
        "" 
    } 
} 

これでメンテナンスモード中のみ先ほどの画像が二人目として表示されるようになるので、解除し忘れることはないでしょう。

伺かは左上の色を透過色として扱うのでこのようになりました。
debugmode_surface.png

次回

次は今回作成したメンテナンスモードを使用し、いつでも現在のユーザーとの関係を確認できるようにしつつ好感度を実装しようと思います。
【伺か】更新しやすい形で好感度と関係性を実装した話。【YAYA】