Project1

标题: 請問該如何用"事件"改變通行設定? [打印本页]

作者: sakazaki    时间: 2013-3-22 09:16
标题: 請問該如何用"事件"改變通行設定?
請問該如可用"事件"改變通行設定

例如:
腳色-005在隊伍之中,淺灘變成可以步行通行
腳色-006在隊伍之中,三座山可以步行通行
腳色-007在隊伍之中,淺灘和三座山都可以步行通行


作者: sakazaki    时间: 2013-3-22 09:32
P叔這種腳本行嗎?
請問該如何做?
若是不行請問P叔所言的腳本哪有?
跟你整合的腳本會衝突嗎?
有勞您回答一下Q_Q

作者: 怪蜀黍    时间: 2013-3-22 09:48
sakazaki 发表于 2013-3-22 09:32
P叔這種腳本行嗎?
請問該如何做?
若是不行請問P叔所言的腳本哪有?

【点评用楼层】
这个脚本不能解决这个问题,必须到脚本编辑器里面改。
不会和我的整合系统冲突。改起来不算难,中等难度的饭菜。但是现在我没空。
一会看有不有人帮吧,如果没有的话我再来看看。
作者: 怪蜀黍    时间: 2013-3-23 13:47
范例: Project2.rar (240.43 KB, 下载次数: 60)
截图:
脚本:
  1. #==============================================================================
  2. # ■ P叔的角色特殊通行系统
  3. # 不同的角色在队伍中,可以实现不同的通行效果,比如穿越山谷,穿越河流等
  4. #------------------------------------------------------------------------------
  5. #                      使用时请注明脚本来源:
  6. #                  本脚本来自[url]www.66rpg.com[/url]
  7. #==============================================================================

  8. #==============================================================================
  9. # ■ Game_Map
  10. #------------------------------------------------------------------------------
  11. #  处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
  12. #==============================================================================

  13. class Game_Map
  14.   # 山地的图块ID在下面设置(默认为A2图块的四种山地)
  15.   Hilly_Tiles = [2912..2952, 3296..3336, 3680..3720, 4064..4104]
  16.   # 河流的图块ID在下面设置
  17.   River_Tiles = [2048..2088]
  18.   # 可以走山的角色(多人的话用英文逗号隔开)
  19.   Hilly_Actors = [2]
  20.   # 可以走河的角色(多人的话用英文逗号隔开)
  21.   River_Actors = [3]
  22.   # 既可以走山又可以走河的角色(多人的话用英文逗号隔开)
  23.   Both_Able_Actors = [4]
  24.   #--------------------------------------------------------------------------
  25.   # ● 初始化对像
  26.   #--------------------------------------------------------------------------
  27.   def initialize
  28.     @screen = Game_Screen.new
  29.     @interpreter = Game_Interpreter.new(0, true)
  30.     @map_id = 0
  31.     @display_x = 0
  32.     @display_y = 0
  33.     create_vehicles
  34.     tile_to_a
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 可以通行判定
  38.   #     x : X 坐标
  39.   #     y : Y 坐标
  40.   #     flag : 通行度标志(非交通工具时,一般为 0x01)
  41.   #--------------------------------------------------------------------------
  42.   def passable?(x, y, flag = 0x01)
  43.     for event in events_xy(x, y)            # 循环指定位置的事件数组
  44.       next if event.tile_id == 0            # 事件图片非图块的情况下
  45.       next if event.priority_type > 0       # 非「一般角色之下」
  46.       next if event.through                 # 允许穿透
  47.       pass = @passages[event.tile_id]       # 获取通行属性
  48.       next if pass & 0x10 == 0x10           # ☆: 不影响通行判定
  49.       return true if pass & flag == 0x00    # ○: 可以通行
  50.       return false if pass & flag == flag   # x: 不可通行
  51.     end
  52.     for i in [2, 1, 0]                      # 由上层而下
  53.       tile_id = @map.data[x, y, i]          # 获取图块 ID
  54.       return false if tile_id == nil        # 无法获取图块:不可通行
  55.       pass = @passages[tile_id]             # 获取通行属性
  56.       return true if special_pass_member(tile_id)
  57.       next if pass & 0x10 == 0x10           # ☆: 不影响通行判定
  58.       return true if pass & flag == 0x00    # o: 可以通行
  59.       return false if pass & flag == flag   # x: 不可通行
  60.     end
  61.     return false                            # 不可通行
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 范围转化成数组
  65.   #--------------------------------------------------------------------------
  66.   def tile_to_a
  67.     @ht = []
  68.     for i in Hilly_Tiles
  69.       @ht << i.to_a
  70.     end  
  71.     @ht.flatten!
  72.    
  73.     @rt = []
  74.     for i in River_Tiles
  75.       @rt << i.to_a
  76.     end  
  77.     @rt.flatten!
  78.     @bt = @ht + @rt
  79.   end  
  80.   #--------------------------------------------------------------------------
  81.   # ● 特殊角色通行判定
  82.   #--------------------------------------------------------------------------  
  83.   def special_pass_member(tile_id)
  84.     for i in $game_party.members
  85.       if Hilly_Actors.include?(i.id)
  86.         if @ht.include?(tile_id)
  87.           return true
  88.         end
  89.       end
  90.     end
  91.     for i in $game_party.members
  92.       if River_Actors.include?(i.id)
  93.         if @rt.include?(tile_id)
  94.           return true
  95.         end
  96.       end
  97.     end
  98.     for i in $game_party.members
  99.       if Both_Able_Actors.include?(i.id)
  100.         if @bt.include?(tile_id)
  101.           return true
  102.         end
  103.       end
  104.     end
  105.     return false
  106.   end  
  107. end  
复制代码

作者: kfflX    时间: 2013-3-28 08:25
其實這個不需要腳本啊……只要用事件來代替圖塊製作不就好了……
作者: 怕鼠的猫    时间: 2013-3-28 08:31
其实就用个事件把主角弹跳到对岸就行了,还非要改什么通行度?
设定是死的,人是活的,等价的方法那么多,何必钻牛角尖。
作者: sakazaki    时间: 2013-3-28 09:45
怕鼠的猫 发表于 2013-3-28 08:31
其实就用个事件把主角弹跳到对岸就行了,还非要改什么通行度?
设定是死的,人是活的,等价的方法那么多, ...

全地圖適用,並不是只有單純的一兩個地點。
我要做的是開機器人可以過海^^"A
這樣事件做得到???




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