差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
takeoff処理 [2023/04/14 14:29] fumble |
takeoff処理 [2023/04/14 16:56] (現在) fumble |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====TakeOffプラグインの処理===== | + | =====TakeOff プラグインの処理===== |
- | TakeOffプラグインは選択されたメイドをTakeOffするプラグインとして機能を記述します。\\ | + | TakeOff プラグインは選択されたメイドを TakeOff するプラグインとして機能を記述します。\\ |
- | TakeOff・・・つまり脱衣!です。(「違う、そうじゃない」と思った方は[[takeoff処理another|こちら]]) | + | TakeOff ・・・つまり脱衣!です。(「違う、そうじゃない」と思った方は[[takeoff処理another|こちら]]) |
+ | |||
+ | // [ 実行 ]ボタン | ||
+ | if (GUILayout.Button(" | ||
+ | { | ||
+ | // TODO : 実行ボタン押下時の処理を記述(ひな形ではログを出力するだけ) | ||
+ | ConsoleLog.Information(" | ||
+ | } | ||
+ | |||
+ | この部分を | ||
+ | // [ 実行 ]ボタン | ||
+ | if (GUILayout.Button(" | ||
+ | { | ||
+ | // 処理中でなければ | ||
+ | if (!this.maid.IsBusy) | ||
+ | { | ||
+ | MPN[] takeoffs = | ||
+ | { | ||
+ | MPN.wear, | ||
+ | MPN.skirt, | ||
+ | MPN.mizugi, | ||
+ | MPN.bra, | ||
+ | MPN.panz, | ||
+ | MPN.stkg, | ||
+ | MPN.shoes, | ||
+ | MPN.headset, | ||
+ | MPN.glove, | ||
+ | MPN.acchead, | ||
+ | MPN.accha, | ||
+ | MPN.acchana, | ||
+ | MPN.acckamisub, | ||
+ | MPN.acckami, | ||
+ | MPN.accmimi, | ||
+ | MPN.accnip, | ||
+ | MPN.acckubi, | ||
+ | MPN.acckubiwa, | ||
+ | MPN.accheso, | ||
+ | MPN.accude, | ||
+ | MPN.accashi, | ||
+ | MPN.accsenaka, | ||
+ | MPN.accshippo, | ||
+ | MPN.accanl, | ||
+ | MPN.accvag, | ||
+ | MPN.megane, | ||
+ | MPN.accxxx, | ||
+ | MPN.acchat, | ||
+ | MPN.onepiece | ||
+ | }; | ||
+ | // takeoffsに登録されているものを順に解除する | ||
+ | foreach (var takeoff in takeoffs) | ||
+ | { | ||
+ | this.maid.DelProp(takeoff, | ||
+ | } | ||
+ | // 解除結果を反映させる | ||
+ | this.maid.AllProcPropSeqStart(); | ||
+ | } | ||
+ | } | ||
+ | に変更します。\\ | ||
+ | \\ | ||
+ | 処理を解説していきます。\\ | ||
+ | |||
+ | if (GUILayout.Button(" | ||
+ | |||
+ | GUILayout.Button(" | ||
+ | this.maidには選択されたメイドが入っています、選択されていない場合はnullになっています。\\ | ||
+ | |||
+ | つまりこのif文(条件文)は実行ボタンが押されて且つ、メイドが選択されている場合のみ成立します。\\ | ||
+ | |||
+ | // 処理中でなければ | ||
+ | if (!this.maid.IsBusy) | ||
+ | |||
+ | この this.maid.IsBusy は this.maid つまり選択されたメイドが IsBusy かどうかかチェックしています、否定の!が付いているので選択されたメイドが IsBusy でなければ条件成立です。\\ | ||
+ | この IsBusy はメイドに対してのプリセット適用などプロパティ変更の処理が行われているかどうかの判定です。\\ | ||
+ | オダメでプリセットを適用した場合、少しずつ変化していくと思いますが、あの変化中は IsBusy と言うことになります。\\ | ||
+ | |||
+ | MPN[] takeoffs = | ||
+ | { | ||
+ | MPN.wear, | ||
+ | MPN.skirt, | ||
+ | MPN.mizugi, | ||
+ | MPN.bra, | ||
+ | MPN.panz, | ||
+ | MPN.stkg, | ||
+ | MPN.shoes, | ||
+ | MPN.headset, | ||
+ | MPN.glove, | ||
+ | MPN.acchead, | ||
+ | MPN.accha, | ||
+ | MPN.acchana, | ||
+ | MPN.acckamisub, | ||
+ | MPN.acckami, | ||
+ | MPN.accmimi, | ||
+ | MPN.accnip, | ||
+ | MPN.acckubi, | ||
+ | MPN.acckubiwa, | ||
+ | MPN.accheso, | ||
+ | MPN.accude, | ||
+ | MPN.accashi, | ||
+ | MPN.accsenaka, | ||
+ | MPN.accshippo, | ||
+ | MPN.accanl, | ||
+ | MPN.accvag, | ||
+ | MPN.megane, | ||
+ | MPN.accxxx, | ||
+ | MPN.acchat, | ||
+ | MPN.onepiece | ||
+ | }; | ||
+ | |||
+ | 脱がす部位を設定しています。\\ | ||
+ | MPNはおそらくメイド プロパティ ナンバーかメイド プロパティ ネームかなにかで、メイドのプロパティを表します。\\ | ||
+ | これには MPN.sintyou の様に身長の数値的なものや、 MPN.onepiece の様にワンピースにどの menu ファイルが装着されているかの様なものがあります。\\ | ||
+ | どのようなものがあるかは MPN にキャレット(|カーソル)を当ててF12を押すことで宣言してる部分に飛べます。\\ | ||
+ | **※このF12で飛べるということはとても重要になります。ぜひ覚えておいてください。**\\ | ||
+ | |||
+ | // takeoffsに登録されているものを順に解除する | ||
+ | foreach (var takeoff in takeoffs) | ||
+ | { | ||
+ | this.maid.DelProp(takeoff, | ||
+ | } | ||
+ | |||
+ | ここは takeoffs で設定されたものをループで選択されたメイドにDelPropを行っています。\\ | ||
+ | 以下のように羅列していくのと同じことになります。 | ||
+ | |||
+ | this.maid.DelProp(MPN.wear, | ||
+ | this.maid.DelProp(MPN.skirt, | ||
+ | this.maid.DelProp(MPN.mizugi, | ||
+ | ・ | ||
+ | ・ | ||
+ | ・ | ||
+ | |||
+ | DelProp はMPNを指定して設定されている menu ファイルを外す処理です。\\ | ||
+ | DelProp がどんなことをしているかみたいのであれば DelProp の上で先ほどの F12 です。\\ | ||
+ | |||
+ | // 解除結果を反映させる | ||
+ | this.maid.AllProcPropSeqStart(); | ||
+ | |||
+ | 最後に AllProcPropSeqStart で結果をメイドに反映させます。\\ | ||
+ | メイドのプロパティを変更した場合は、AllProcPropSeqStart または AllProcProp で反映させる必要があります。\\ | ||
+ | AllProcPropSeqStart は少しずつ、 AllProcProp は一気に反映させます。\\ | ||
+ | ※AllProcPropSeqStart で少しずつ反映されている間は、先ほどの IsBusy 状態というわけです。\\ |