查看: 2558|回复: 7

[已经解决] 问一下如何修改地形的显示图标或分类

[复制链接]
梦石
0
星屑
750
在线时间
1 小时
注册时间
2014-9-8
回帖
2
发表于 2014-11-13 19:24:43 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
简单的说就是地形不是分为“可通过”和“不可通过”两种,我想在某一块可通过的地形上换一个不可通过的图标让别人误以为此处无法走。请教下如何换图标或是有其他方法来判定是否可通过。

炎

梦石
0
星屑
98
在线时间
1617 小时
注册时间
2013-8-15
回帖
4322
发表于 2014-11-13 19:48:17 | 显示全部楼层
一点都不简单,我根本看不明白你说什么。
神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦
回复

使用道具 举报

梦石
0
星屑
54
在线时间
1049 小时
注册时间
2012-1-27
回帖
1380
发表于 2014-11-13 19:51:30 | 显示全部楼层
我语文老师死得早,你能说的更清楚些吗?
惨了,没装全局变量,这下只能玩读档进EXTRA的把戏了∑(゚ω゚ノ)ノ
我感觉我快成兜售Q键幻灯片狂魔了
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-11-13 21:01:07 | 显示全部楼层
我觉得我大致看懂你的意思了……

简单的做法就是在不可通行的地方放置一个与人物同层的事件,
这个事件的样子是“不可通行的图标”。

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
750
在线时间
1 小时
注册时间
2014-9-8
回帖
2
 楼主| 发表于 2014-11-13 21:15:27 | 显示全部楼层
三途亚梦 发表于 2014-11-13 21:01
我觉得我大致看懂你的意思了……

简单的做法就是在不可通行的地方放置一个与人物同层的事件,

对对就是这个意思,我开始也这样想但是发现事件图标里没有地形图标那么多,找不到能充当地形的图标。。所以想问下能把地形的图标替换一下其他的不

点评

少年你应该先阅读一下F1中有关素材说明的部分,事件行走图你只要加进去新的就可以了,可以无限制的多。  发表于 2014-11-13 21:26
回复

使用道具 举报

梦石
0
星屑
750
在线时间
1 小时
注册时间
2014-9-8
回帖
2
 楼主| 发表于 2014-11-13 21:48:24 | 显示全部楼层
腹黑の蛋黄酱 发表于 2014-11-13 21:15
对对就是这个意思,我开始也这样想但是发现事件图标里没有地形图标那么多,找不到能充当地形的图标。。所 ...

好的 谢谢了
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-11-13 22:48:08 | 显示全部楼层
用PS做两个一样的图块,一个可通行,另一个不可通行
https://rpg.blue/thread-371695-1-1.html

https://rpg.blue/forum.php?mod=group&fid=539   如果你打算使用这个脚本请务必注意这里的公告
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2014-11-14 00:01:12 | 显示全部楼层
本帖最后由 tseyik 于 2014-11-14 00:41 编辑

也可用分層劇本或区堿通行劇本做
区堿通行劇本範本
In-Depth Maps.rar (1.32 MB, 下载次数: 60)
[pre lang="ruby" line="1"]#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
# In-Depth Maps v2.0
# FenixFyreX
# RPG Maker VxAce
#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
# This script allows the player to define two regions:
# overhead ceilings, and blocking tiles.
# When the system finds the overhead ceilings region on top of a tile, it will
# move that tile to the highest layer in the tilemap, and put the tile above
# that tile (y - 1) in it's place on the 'ground', this allows the player to pass
# underneath the tile.
# To turn the system OFF, simply turn the switch defined below ON. To turn it
# on, flip the switch OFF. This allows the user to traverse the 'ceilings' when
# on top of them, but go behind them when on the ground.
#
#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

module Fyx
  module MapDepth
   
    # This is the switch to turn ON to turn the overhead system OFF.
    # Remember, all switches are OFF by default, so the system is ON at startup.
    Switch = 1
   
    # Does the script turn on the switch automatically when each map loads?
    AutoSwitch = true
   
    # This is the region defining tiles that need to be above the player.
    Overhead_Region = 1
   
    # This is the region defining tiles that need to be unpassable no matter
    # what.
    Block_Region = 2
   
    # This is the region to use when defining 'secret passages'. This region
    # ensures that the tiles below it are ALWAYS above and passable.
    Secret_Region = 3
   
    # This is the user defined fall-back for when the system can't obtain a
    # tile to place under overhead tiles.
    Default_Ground_Tile = 2816
  end
end

#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
# Don't edit below unless you know what it means.
#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

class Game_Map
  
  alias setup_no_ceilings setup
  def setup(*a,&bl)
    setup_no_ceilings(*a,&bl)
    if Fyx::MapDepth::AutoSwitch
      $game_switches[ohead_switch] = false
    end
    @old_tileset_flags = tileset.flags
    @ohead_switch = ohead_sys_is_on?
    define_ceilings if ohead_sys_is_on?
  end
  
  def ohead_sys_is_on?
    return false if $game_switches[ohead_switch]
    return true
  end
  
  def ohead_switch
    Fyx::MapDepth::Switch
  end
  
  def ohead_region
    Fyx::MapDepth::Overhead_Region
  end
  
  def block_region
    Fyx::MapDepth::Block_Region
  end
  
  def secret_region
    Fyx::MapDepth::Secret_Region
  end
  
  def default_ground_tile
    Fyx::MapDepth::Default_Ground_Tile
  end
  
  def ceiling_ground_tile(x,y)
    return valid?(x,y-1) ? $game_map.data[x,y-1,0] : default_ground_tile
  end
  
  alias passable_no_ceilings? passable?
  def passable?(*a,&bl)
    if ohead_sys_is_on?
      return false if ceiling_block?(*a,&bl)
    end
    passable_no_ceilings?(*a,&bl)
  end
  
  def ceiling?(x,y)
    region_id(x,y) == ohead_region
  end
  
  def secret_passage?(x,y)
    region_id(x,y) == secret_region
  end
  
  def ceiling_block?(*a,&bl)
    x,y = *a[0...2]
    region_id(x,y) == block_region
  end
  
  def get_ceil_xys(clear=false)
    @ceilings = []
    @ceiling_blocks = []
    @pass_ceilings = []
    if clear
      @map = load_data(sprintf("Data/Map%03d.rvdata2", @map_id))
      tileset.flags = @old_tileset_flags
      return nil
    end
    height.times do |y|
      width.times do |x|
        @ceilings << [x,y] if ceiling?(x,y)
        @pass_ceilings << [x,y] if secret_passage?(x,y)
        @ceiling_blocks << [x,y] if ceiling_block?(x,y)
      end
    end
  end
  
  def define_ceilings
    get_ceil_xys
    @ceilings.each do |x,y|
      tid = $game_map.data[x,y,0]
      tileset.flags[tid] = 0x10
      $game_map.data[x,y,2] = tid
      $game_map.data[x,y,0] = ceiling_ground_tile(x,y)
    end
    @pass_ceilings.each do |x,y|
      tid = $game_map.data[x,y,0]
      tileset.flags[tid] = 0x10
      $game_map.data[x,y,2] = tid
      $game_map.data[x,y,0] = default_ground_tile
    end
  end
  
  alias update_no_ceilings update
  def update(*a,&bl)
    if @ohead_switch != ohead_sys_is_on?
      @ohead_switch = ohead_sys_is_on?
      if ohead_sys_is_on?
        define_ceilings
      else
        get_ceil_xys(true)
      end
    end
    update_no_ceilings(*a,&bl)
  end
end
#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
# ×END OF SCRIPT×
#×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××[/pre]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部