Project1

标题: 【画地图辅助】地图通行度显示(xp,vx通用版) [打印本页]

作者: fux2    时间: 2011-6-23 22:40
标题: 【画地图辅助】地图通行度显示(xp,vx通用版)
本帖最后由 fux2 于 2011-6-30 15:37 编辑

效果预览(点击看大图)


你是否还在为隐含的通行错误而担心呢?
试试这个脚本吧~
看,一下就从小柯的参赛作品中找出了通行BUG,XD(小柯:= =为什么是我!)


以下代码插入到main上方
快捷键可以在允许的范围下自由设置.默认为F5开启/关闭显示通行状态
透明度也可以自由更改.


6月24日增加更变透明度功能,以适用所有色调游戏.
6月30日增加自动判断系统,感谢雪姐姐

  1. # 地图通行度显示 by fux2 ,http://rpg.blue/?65553
  2. # XP,VX通用,游戏中按F5开启通行显示,可以自由修改

  3. $showpass = false
  4. $fuxver = self
  5. module Fux2
  6.   BUTTON = "F5" # 快捷键,在游戏中按下开启本脚本功能
  7.   VER = $fuxver ? "VX" : "XP"
  8.   OPACITY = 150 # 显示通行度图层的透明度(0-255)
  9.   
  10.   
  11.   # 下面请勿随意修改
  12.   BLOCK = {"XP"=>{2=>["↓",8,8],4=>["←",0,0],6=>["→",16,0],8=>["↑",8,-8]},
  13.            "VX"=>{2=>["",0,0],4=>["",0,0],6=>["",0,0],0x08=>["",0,0]}}
  14.   SET = {"VX"=>[8,Color.new(255,0,0,OPACITY),[1]],"XP"=>[4,Color.new(100,0,100,OPACITY),[2,4,6,8]]}
  15. end

  16. class Spriteset_Map
  17.   
  18.   include Fux2

  19.   alias:ini:initialize
  20.   def initialize
  21.     @passble = Sprite.new
  22.     @passble.z = 99999999
  23.     @passble.x = -$game_map.display_x/4
  24.     @passble.y = -$game_map.display_y/4
  25.     @passble.bitmap = Bitmap.new($game_map.width*32,$game_map.height*32)
  26.     @passble.bitmap.font.size = 16
  27.     @passble.bitmap.font.color = Color.new(255,255,255,200)
  28.     for px in 0...$game_map.width
  29.       for py in 0...$game_map.height
  30.         temp = []
  31.         SET[VER][2].each do |i|
  32.           temp << i if $game_map.passable?(px,py,i)
  33.         end
  34.         if temp == SET[VER][2]
  35.           @passble.bitmap.fill_rect(px*32,py*32,32,32,Color.new(0,0,255,OPACITY))
  36.         elsif temp == []
  37.           @passble.bitmap.fill_rect(px*32,py*32,32,32,Color.new(255,0,0,OPACITY))
  38.         else
  39.           @passble.bitmap.fill_rect(px*32,py*32,32,32,SET[VER][1])
  40.           temp.each do |j|
  41.             @passble.bitmap.draw_text(px*32+BLOCK[VER][j][1],py*32+BLOCK[VER][j][2],32,32,BLOCK[VER][j][0])
  42.           end
  43.         end
  44.       end
  45.     end
  46.     ini
  47.   end
  48.   
  49.   alias:ud:update
  50.   def update
  51.     ud
  52.     @passble.visible = $showpass
  53.     @passble.x = -$game_map.display_x/SET[VER][0]
  54.     @passble.y = -$game_map.display_y/SET[VER][0]
  55.     @passble.update
  56.   end
  57.   
  58.   alias:dis:dispose
  59.   def dispose
  60.     dis
  61.     @passble.dispose
  62.   end
  63.    
  64. end

  65. class Scene_Map
  66.   
  67.   alias:ud:update
  68.   def update
  69.     ud
  70.     eval("$showpass = !$showpass if Input.trigger?(Input::#{Fux2::BUTTON})")
  71.   end
  72.   
  73. end

  74. # rpg.blue
复制代码

作者: px.凤翔九天    时间: 2011-6-23 22:44
哇偶,很新颖的防通行错误的解法啊........支持下~
作者: liqunsz    时间: 2011-6-23 22:44
神触……通行度什么的也能检测出来呢!……
作者: fux2    时间: 2011-6-24 06:58
咳,更了个小新=╭(′▽`)╯
作者: fux2    时间: 2011-6-30 14:20
更新自动判断版本,鸣谢雪姐姐^3^
作者: 絀神入化    时间: 2011-7-1 22:40
喵,这样能有效避免通行错误。话说你的的头像很萌~~~
作者: 忧雪の伤    时间: 2011-7-6 20:08
既然Spriteset_Map#update存在,何必再多用Scene_Map来判断显示。
如果担心战斗用地图当背景,可以再判断:$scene.is_a?(Scene_Map)。
为了避免F12问题,请在alias后面加上:unless $@。
顺便,把$showpass改成定义在Spriteset_Map里面的@@_showpass吧。
作者: guaneva    时间: 2011-7-7 12:16
哎,不错啊,受教了
作者: 黑崎一护    时间: 2011-8-20 22:36
有了这个脚本,画起地图来就方便多了~!谢谢楼主分享~!
作者: fux2    时间: 2011-11-3 11:04
自顶下顺便给纯蓝姐姐看到。
作者: praykki    时间: 2011-11-30 21:14
显示28行有错误。
是我地图大小的问题吗?这不是通用脚本吗,,,,
作者: fux2    时间: 2011-12-1 04:47
praykki 发表于 2011-11-30 21:14
显示28行有错误。
是我地图大小的问题吗?这不是通用脚本吗,,,,

28行理应没问题的,除非你用了其他脚本重定义了$game_map
可以说出完整的报错信息吗?
作者: praykki    时间: 2011-12-1 23:27
[img=838,721]http://hiphotos.baidu.com/%D2%DD%CD%F5/pic/item/779930fc1e178a8260f47ce9f603738dab77e8f4.jpg[/img]
作者: praykki    时间: 2011-12-1 23:27
回复等待审核中,,,,何时会通过。。。。

作者: 我海市蜃楼    时间: 2013-2-13 18:11
发现一个重大BUG
当地图尺寸为65*65以上时就会提示28行出错(64*64就一点事没有)
本人亲测……………………
作者: LCRAZJ617872    时间: 2014-3-26 23:13
……main在哪里啊?
作者: 神梦无痕    时间: 2014-5-24 13:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: taroxd    时间: 2014-6-14 18:39
神梦无痕 发表于 2014-5-24 13:06
VA能用吗?

已经移植到了VA:https://rpg.blue/forum.php?mod=viewthread&tid=366825
如果想要使用,请注意那个群组的公告/置顶




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