Project1

标题: 如何快速关闭一个地图内所有事件的独立开关? [打印本页]

作者: bloodyliao    时间: 2015-4-6 19:39
标题: 如何快速关闭一个地图内所有事件的独立开关?
假设一个地图有若干事件,能否快速将所有事件的独立开关A\D全部关闭?
作者: VIPArcher    时间: 2015-4-6 19:47
本帖最后由 VIPArcher 于 2015-4-6 19:50 编辑

https://rpg.blue/home.php?mod=sp ... o=blog&id=12653
事件脚本
  1. m5_c_ss(地图id,[],["B","C"])
复制代码
未测试
作者: tseyik    时间: 2015-4-6 20:06
本帖最后由 tseyik 于 2015-4-6 20:07 编辑

セルフスイッチの自動OFF
主功能
場所移動地圖切替時、設定独立开关(独立変数(需要セルフ変数脚本)自動的OFF

事件初期化方法。



独立変数時。

$game_variables.delete(地圖ID, 独立変数号碼配列)

・例: 地圖11移動後、地圖2的独立开关AOFF。
場所移動:[011:MAP011](008,006)

$game_self_switches.delete(2, [”A"])
  1. =begin

  2. ▼ セルフスイッチの自動OFF ver. 1.1

  3. RPGツクールVXAce用スクリプト

  4. 制作 : 木星ペンギン
  5. URL  : http://woodpenguin.blog.fc2.com/

  6. ------------------------------------------------------------------------------
  7. 概要

  8. □ 場所移動でマップが切り替わった時に、設定したセルフスイッチ(とセルフ変数)を
  9.  自動的にOFFにします。

  10. ------------------------------------------------------------------------------
  11. 初期化するセルフスイッチ(変数)を直接指定する場合

  12.   ・イベントコマンドのスクリプトで、↓のスクリプトを入れて実行すると
  13.    そのマップ ID のセルフスイッチが OFF になります。
  14.   
  15.    $game_self_switches.delete(マップID, セルフスイッチの配列)
  16.   
  17.   
  18.   ・セルフ変数の場合は、↓のスクリプトでセルフ変数が 0 になります。
  19.   
  20.    $game_variables.delete(マップID, 変数番号の配列)

  21. =end

  22. module Wooden
  23. module AutoOFF
  24. #//////////////////////////////////////////////////////////////////////////////
  25. #
  26. # 設定項目
  27. #
  28. #//////////////////////////////////////////////////////////////////////////////
  29.   #--------------------------------------------------------------------------
  30.   # ● OFF にするセルフスイッチの配列
  31.   #--------------------------------------------------------------------------
  32.   SelfSwitches = ["A", "B", "C", "D"]
  33.   
  34.   #--------------------------------------------------------------------------
  35.   # ● OFF にするセルフ変数の配列
  36.   #     当然ですが「セルフ変数の追加」スクリプトが入っていないと意味ありません。
  37.   #--------------------------------------------------------------------------
  38.   SelfVariables = []
  39.   
  40.   #--------------------------------------------------------------------------
  41.   # ● セルフスイッチ自動 OFF の例外マップ
  42.   #     例:マップ ID 2 では、セルフスイッチの A だけを OFF に、
  43.   #         マップ ID 3 では、セルフスイッチの B と C を OFF にしたい場合
  44.   #
  45.   #         { 2 => ["A"],
  46.   #           3 => ["B", "C"] }
  47.   #
  48.   #         と設定してください。
  49.   #--------------------------------------------------------------------------
  50.   Ex_SelfSwitches = {}
  51.   
  52. end
  53. end

  54. #//////////////////////////////////////////////////////////////////////////////
  55. #
  56. # 以降、変更する必要なし
  57. #
  58. #//////////////////////////////////////////////////////////////////////////////

  59. #==============================================================================
  60. # ■ Game_Variables
  61. #==============================================================================
  62. class Game_Variables
  63.   #--------------------------------------------------------------------------
  64.   # ● セルフ変数の削除
  65.   #--------------------------------------------------------------------------
  66.   def delete(map_id, keys)
  67.     return unless @self_variables
  68.     @self_variables.reject! {|key,| key[0] == map_id && keys.include?(key[2]) }
  69.   end
  70. end

  71. #==============================================================================
  72. # ■ Game_SelfSwitches
  73. #==============================================================================
  74. class Game_SelfSwitches
  75.   #--------------------------------------------------------------------------
  76.   # ● セルフスイッチの削除
  77.   #--------------------------------------------------------------------------
  78.   def delete(map_id, keys)
  79.     @data.reject! {|key,| key[0] == map_id && keys.include?(key[2]) }
  80.   end
  81. end

  82. #==============================================================================
  83. # ■ Game_Map
  84. #==============================================================================
  85. class Game_Map
  86.   #--------------------------------------------------------------------------
  87.   # ● モジュール
  88.   #--------------------------------------------------------------------------
  89.   include Wooden
  90.   #--------------------------------------------------------------------------
  91.   # ◯ セットアップ
  92.   #--------------------------------------------------------------------------
  93.   alias _wooden_autooff_setup setup
  94.   def setup(map_id)
  95.     if @map_id != map_id
  96.       if AutoOFF::Ex_SelfSwitches.include?(@map_id)
  97.         $game_self_switches.delete(@map_id, AutoOFF::Ex_SelfSwitches[@map_id])
  98.       else
  99.         $game_self_switches.delete(@map_id, AutoOFF::SelfSwitches)
  100.       end
  101.       $game_variables.delete(@map_id, AutoOFF::SelfVariables)
  102.     end
  103.     _wooden_autooff_setup(map_id)
  104.   end
  105. end
复制代码





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