Project1

标题: 关于区域通行于事件数量问题 [打印本页]

作者: qq546431664    时间: 2014-10-22 15:16
标题: 关于区域通行于事件数量问题
1:现在有一个区域限制通行的脚本,请问有无办法让让区域也像图块一样拥有4个通行方向,比如像某区域只能上下左能通行,而右边不能(可能会认为有点怪,我自己问完也觉的怪)
2:很多人都说一张地图的事件多会导致掉帧,就是卡,我想问的是如果一个工程的事件总数量超过2000,但是每张地图的平均事件只有200那还会掉帧吗,(只是举个例子)
代码如下,谁写的一看就知道了
RUBY 代码复制
  1. module Taroxd
  2.   #--------------------------------------------------------------------------
  3.   # ● 设置区域
  4.   #--------------------------------------------------------------------------
  5.   PASSABLE_REGIONS   = []                   # 可通行的区域
  6.   IMPASSABLE_REGIONS = [1]                 # 不可通行的区域
  7. end
  8.  
  9. class Game_Map
  10.   #--------------------------------------------------------------------------
  11.   # ● 判定普通角色是否可以通行
  12.   #--------------------------------------------------------------------------
  13.   alias taroxd_passable_without_region? passable?
  14.   def passable?(x, y, d)
  15.     r = region_id(x, y)
  16.     return true  if Taroxd::PASSABLE_REGIONS.any?   {|e| e === r }
  17.     return false if Taroxd::IMPASSABLE_REGIONS.any? {|e| e === r }
  18.     taroxd_passable_without_region?(x, y, d)
  19.   end
  20. end

作者: VIPArcher    时间: 2014-10-22 15:43
本帖最后由 VIPArcher 于 2014-10-22 15:44 编辑

https://rpg.blue/thread-224145-1-1.html
这个区域扩展可以做到。如果看不懂说明、注释,用不来就等楼下大神吧。
作者: qq546431664    时间: 2014-10-22 15:45
VIPArcher 发表于 2014-10-22 15:43
https://rpg.blue/thread-224145-1-1.html
这个区域扩展可以做到。用不来就等楼下大神吧。 ...

我好好研究研究
应该搞的定
我又提了个新问题那个比较头大。。。
作者: tseyik    时间: 2014-10-22 16:58
本帖最后由 tseyik 于 2014-10-22 18:28 编辑

可設定進入某區域就打開某開閉
再通過自動実行的公共事件設定可達成
  1. =begin
  2. RegionSwitch for VXA ver 1.0.1.0
  3.   設定したリージョンに入ったらスイッチオン
  4.   自動実行イベントと組み合わせて使うといい感じ


  5.   マップ設定のメモ欄に
  6. [RSW:12,10]
  7.   とか書くとリージョン12に入った時にスイッチ10がONになるようになります。

  8. URL:: http://www.tktkgame.com/
  9. LAST_UPDATE:: 2012/09/18
  10. =end
  11. module Tktkgame
  12.   module RegionSwitch
  13.     REGEX_REGION_SETTING = /\[RSW:(\d+),(\d+)\s*\]/
  14.     # RPG::Map include用
  15.     module MixinMap
  16.       # メモからリージョンイベント情報を取得
  17.       def init_region_switches
  18.         @region_switches = {}
  19.         self.note.scan(REGEX_REGION_SETTING) do |m|
  20.           region_id = m[0].to_i
  21.           sw_no      = m[1].to_i
  22.           if region_id > 0 && sw_no > 0
  23.             @region_switches[region_id] = [sw_no, true]
  24.           end
  25.         end
  26.       end
  27.       protected :init_region_switches
  28.       def region_switches
  29.         init_region_switches() if @region_switches.nil?
  30.         return @region_switches
  31.       end
  32.     end

  33.     # Game_Map include用
  34.     module MixinGameMap
  35.       def check_region_switche(region_id)
  36.         if @map.region_switches.key?(region_id)
  37.           sw_no, value = @map.region_switches[region_id]
  38.           if $game_switches[sw_no] != value
  39.             $game_switches[sw_no] = value
  40.             need_refresh = true
  41.           end
  42.         end
  43.       end
  44.     end

  45.     # Game_Map include用
  46.     module MixinGamePlayer
  47.       #--------------------------------------------------------------------------
  48.       # ● 歩数増加
  49.       #--------------------------------------------------------------------------
  50.       def increase_steps
  51.         super
  52.         if !@through && !jumping?
  53.           $game_map.check_region_switche($game_map.region_id(@x, @y))
  54.         end
  55.       end
  56.     end

  57.   end # END module Tktkgame::RegionSwitch

  58. end # END module Tktkgame

  59. class RPG::Map
  60.   include Tktkgame::RegionSwitch::MixinMap
  61. end
  62. class Game_Map
  63.   include Tktkgame::RegionSwitch::MixinGameMap
  64. end

  65. class Game_Player
  66.   include Tktkgame::RegionSwitch::MixinGamePlayer
  67. end
复制代码





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