Project1

标题: 请问选项时有时间限制 [打印本页]

作者: roy0211    时间: 2017-6-18 00:40
标题: 请问选项时有时间限制
具体来说,
6秒之内没有选择的话就选择选项3。

另外还有一点,
如何能强制关闭选项?选项时虽然倒计时虽然还在计,但是并行事件并不会发生,会在选项之后才会发生。

麻烦大大们了,拜谢!
作者: wabcmcc    时间: 2017-6-18 20:22
限時選擇插件 http://tm.lucky-duet.com/viewtopic.php?f=5&t=3678
樣品(YouTube):https://www.youtube.com/watch?v=rMyqNWJv28M
如何設置建議:
插件命令:
從事件的命令“插件命令”運行。
(關係的參數由空格分隔)

TLChoice [幀數]
  把時間限制到下一個選項的顯示(1秒= 60幀)
  實施例:TLChoice 600
   ※有僅僅在下一選擇有效。如果你想在一個連續使用,
  請再次每次[顯示選項]命令之前作出此命令。

  1. //=============================================================================
  2. // TimeLimitedChoice.js        2017/04/02
  3. // Copyright (c) 2017 Tsukimi
  4. //=============================================================================

  5. /*:
  6. * @plugindesc 時間制限付き選択肢プレグイン
  7. * @author Tsukimi
  8. *
  9. * @help
  10. * 時間制限付き選択肢プレグイン
  11. * 作者:ツキミ
  12. *
  13. * 2017/05/01 ver 1.0 完成
  14. *
  15. * ***************************************************
  16. * 説明:
  17. * 次の選択肢に時間制限をかけます。
  18. * プラグインコマンドを実行して選択肢を設定した時、タイマーが自動で起動します。
  19. * 時間切れすると選択ウィンドウが消え、[キャンセルのとき]
  20. * のイベントコマンドを実行します。
  21. *
  22. * ※ 選択肢の表示の設定の中の、キャンセルを[分岐]にしてください。
  23. *
  24. * ※ 必ずしもプラグインコマンドの直後に選択肢を設定する必要がありません。
  25. * オススメの設定方法は:
  26. * ◆プラグインコマンド:TLChoice 300
  27. * ◆文章:~~~~~
  28. * ◆選択肢の表示:~~~~~
  29. *
  30. *
  31. * ***************************************************
  32. * プラグインコマンド:
  33. *  イベントコマンド「プラグインコマンド」から実行。
  34. *  (パラメータの間は半角スペースで区切る)
  35. *
  36. * TLChoice [フレーム数]
  37. *   次の選択肢表示に時間制限をかける(1秒=60フレーム)
  38. *   例: TLChoice 600
  39. *   ※次の選択肢にだけ効果があります。連続で使用したい場合、
  40. *   各[選択肢の表示]コマンドの前にもう一度このコマンドを行ってください。
  41. *
  42. *
  43. * 作者のサイト: http://tsukimitsf.blog.fc2.com/
  44. * バグなどがあったら、是非こちらへご一報ください。ありがとうございます。
  45. */

  46. (function(_global) {
  47.           // ここにプラグイン処理を記載
  48.    
  49.     var _Game_Timer_onExpire = Game_Timer.prototype.onExpire;
  50.     Game_Timer.prototype.onExpire = function() {
  51.         _Game_Timer_onExpire.call(this);
  52.         var cw = SceneManager._scene._messageWindow._choiceWindow;
  53.         if(!!cw._timeLimit && !!cw._TLStarted) {
  54.             cw._timeLimit = false;
  55.             cw._TLStarted = false;
  56.             // processCancel, without sound
  57.             cw.updateInputData();
  58.             cw.deactivate();
  59.             cw.callCancelHandler();
  60.             // end
  61.             this.stop();
  62.         }
  63.     }
  64.    
  65.     var _Window_ChoiceList_close = Window_ChoiceList.prototype.close;
  66.     Window_ChoiceList.prototype.close = function() {
  67.         _Window_ChoiceList_close.call(this);
  68.         if(!!this._timeLimit) {
  69.             this._timeLimit = false;
  70.             this._TLStarted = false;
  71.             $gameTimer.stop();
  72.         }
  73.     }
  74.    
  75.     var _Window_ChoiceList_start = Window_ChoiceList.prototype.start;
  76.     Window_ChoiceList.prototype.start = function() {
  77.         _Window_ChoiceList_start.call(this);
  78.         if(!!this._timeLimit) {
  79.             this._TLStarted = true;
  80.             $gameTimer.start(this._limitedTime || 300);
  81.         }
  82.     }
  83.    
  84.     var _Window_ChoiceList_isCancelEnabled = Window_ChoiceList.prototype.isCancelEnabled;
  85.     Window_ChoiceList.prototype.isCancelEnabled = function() {
  86.         var normal = _Window_ChoiceList_isCancelEnabled.call(this);
  87.         if(!!this._timeLimit) return false;
  88.         else return normal;
  89.     }
  90.    
  91.    
  92.     var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  93.     Game_Interpreter.prototype.pluginCommand = function(command, args) {
  94.         _Game_Interpreter_pluginCommand.call(this, command, args);
  95.         switch(command) {
  96.             case "TLChoice":
  97.                 var cw = SceneManager._scene._messageWindow._choiceWindow;
  98.                 cw._timeLimit = true;
  99.                 if(!args) cw._limitedTime = 300;
  100.                 else if(parseInt(args[0]) == 0) cw._limitedTime = 300;
  101.                 else cw._limitedTime = parseInt(args[0]);
  102.                 break;
  103.         }
  104.     };
  105.    
  106. })(this);
复制代码



作者: roy0211    时间: 2017-6-18 22:08
wabcmcc 发表于 2017-6-18 20:22
限時選擇插件 http://tm.lucky-duet.com/viewtopic.php?f=5&t=3678
樣品(YouTube):https://www.youtube.c ...

太感谢啦,明天去试试看
作者: roy0211    时间: 2017-6-26 20:43
wabcmcc 发表于 2017-6-18 20:22
限時選擇插件 http://tm.lucky-duet.com/viewtopic.php?f=5&t=3678
樣品(YouTube):https://www.youtube.c ...

认可答案,非常感谢
@余烬之中




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1