设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 10620|回复: 28
打印 上一主题 下一主题

[RMVX发布] RM_VX地形标志V3.5_图块版本(脚本优化)

 关闭 [复制链接]

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
跳转到指定楼层
1
发表于 2009-1-10 08:37:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
■ RM_VX地形标志V3.5_图块版本
前言:
在XP上有地形标誌的功能,但在VX却取消了该功能,
以至於要在VX地图上做一些特殊效果不容易达成,
不久前 我发了XP纯事件推箱子完美(无等待)效果
http://rpg.blue/viewthread.php?tid=114571
精灵问说没地形标誌的VX怎麼办.....

利用图块做出 的 地形标志脚本
现在都已经解决了
而且方法名称跟XP一样


第一次发的地形标志帖子过期帖处里!!



地形标志设置方法:
A~E每张图块ID都是从最左上方开始计算(由左到右)
001,002,003,004,005,006,007,008
009,010,011,012,013,014,015,016
...............................
249,250,251,252,253,254,255,256

{ 图块ID=>地形标志值 ,图块ID=>地形标志值 ,.......}
如果没设置地形标志值 调用后默认值为0
------------------------------------------------------
★注意事项:
[B页]的第一格空白图块是"不能"设置地形标志的
因为它是专门清理图块B~E的工具   而非图块
所以图块[B页]的部分 ID从第二格002开始计算

001[X设置不能],002,003,004,005,006,007,008
...............................

另外如果图层地形标志重叠,
以高图层的B~E为主!!
------------------------------------------------------
调用方法:
获取角色当前所在地形标誌
$game_player.terrain_tag
   
获取某事件当前所在地形标誌
$game_map.events[事件编号].terrain_tag

------------------------------------------------------
事件脚本中常用的使用方法:
角色当前所在地形标誌  帶入 某变量中
$game_variables[变量编号] = $game_player.terrain_tag

某事件当前所在地形标誌  帶入 某变量中
$game_variables[变量编号] = $game_map.events[事件编号].terrain_tag

------------------------------------------------------
事件条件分歧脚本中常用的使用方法:
角色当前所在地形标誌  是否等于 值
$game_player.terrain_tag ==

某事件当前所在地形标誌  是否等于 值
$game_map.events[事件编号].terrain_tag ==

V3.5感谢流星姐的脚本优化)

  1. #==============================================================================
  2. # ■ RM_VX地形标志V3.0_图块版本 By TERENCE(龙皇)
  3. #------------------------------------------------------------------------------
  4. #  地形标志设置方法:
  5. #  A~E每张图块ID都是从最左上方开始计算(由左到右)
  6. #   001,002,003,004,005,006,007,008
  7. #   009,010,011,012,013,014,015,016
  8. #   ...............................
  9. #   249,250,251,252,253,254,255,256
  10. #
  11. #   { 图块ID=>地形标志值 ,图块ID=>地形标志值 ,.......}
  12. #   如果没设置地形标志值 调用后默认值为0
  13. #------------------------------------------------------
  14. #   ★注意事项:
  15. #   [B页]的第一格空白图块是"不能"设置地形标志的
  16. #   因为它是专门清理图块B~E的工具   而非图块
  17. #   所以图块[B页]的部分 ID从第二格002开始计算
  18. #
  19. #   001[X设置不能],002,003,004,005,006,007,008
  20. #   ...............................
  21. #------------------------------------------------------
  22. #   调用方法:
  23. #
  24. #   获取角色当前所在地形标誌
  25. #   $game_player.terrain_tag
  26. #   
  27. #   获取某事件当前所在地形标誌
  28. #   $game_map.events[事件编号].terrain_tag
  29. #------------------------------------------------------
  30. #   事件脚本中常用的使用方法:
  31. #
  32. #   角色当前所在地形标誌  帶入 某变量中
  33. #   $game_variables[变量编号] = $game_player.terrain_tag
  34. #
  35. #   某事件当前所在地形标誌  帶入 某变量中
  36. #   $game_variables[变量编号] = $game_map.events[事件编号].terrain_tag
  37. #------------------------------------------------------
  38. #   事件条件分歧脚本中常用的使用方法:
  39. #
  40. #   角色当前所在地形标誌  是否等于 值
  41. #   $game_player.terrain_tag == 值
  42. #
  43. #   某事件当前所在地形标誌  是否等于 值
  44. #   $game_map.events[事件编号].terrain_tag == 值
  45. #
  46. #==============================================================================

  47. class Game_Character
  48. #--------------------------------------------------------------------------
  49. # ● 地形标志设置区
  50. #--------------------------------------------------------------------------

  51.   # 图块A的部分_ID (ID:1~256)
  52.   MAP_TILE_A = {1=>0 ,256=>0}
  53.   MAP_TILE_A.default = 0

  54.   # 图块B的部分_ID  (ID:2~256) ★
  55.   MAP_TILE_B = {2=>0 ,256=>0}
  56.   MAP_TILE_B.default = 0

  57.   # 图块C的部分_ID  (ID:1~256)
  58.   MAP_TILE_C = {1=>0 ,256=>0}
  59.   MAP_TILE_C.default = 0

  60.   # 图块D的部分_ID  (ID:1~256)
  61.   MAP_TILE_D = {1=>0 ,256=>0}
  62.   MAP_TILE_D.default = 0

  63.   # 图块E的部分_ID  (ID:1~256)
  64.   MAP_TILE_E = {1=>0 ,256=>0}
  65.   MAP_TILE_E.default = 0

  66. #--------------------------------------------------------------------------
  67. # ● 获取地形标志
  68. #--------------------------------------------------------------------------
  69.   def terrain_tag   
  70.     # 计算图块ID数值
  71.     a = $game_map.data[@x, @y, 0]-2000
  72.     map_tile_id_0 = (a >= 0) ? a/48 : (a+593)
  73.     map_tile_id_1 = ($game_map.data[@x, @y, 1]-2000) / 48
  74.     map_tile_id_2 = ($game_map.data[@x, @y, 2]+1)
  75.          
  76.     map_tile_id_0 = 0 if map_tile_id_0 == -42 # A
  77.     map_tile_id_1 = 0 if map_tile_id_1 == -42 # I
  78.     map_tile_id_2 = 0 if map_tile_id_2 == -42 # B~E
  79.    
  80.     map_tile_id_0 = map_tile_id_1 if map_tile_id_1 > 0 # 图块A的ID矫正
  81.    
  82.     case map_tile_id_2
  83.     when 1
  84.       # 获取图块A部分的地形标志
  85.       return MAP_TILE_A[map_tile_id_0] if ( (1..256) === map_tile_id_0)
  86.     when 2..256
  87.       # 获取图块B部分的地形标志
  88.       return MAP_TILE_B[map_tile_id_2]
  89.     when 257..512
  90.       # 获取图块C部分的地形标志
  91.       return MAP_TILE_C[map_tile_id_2-256]
  92.     when 513..768
  93.       # 获取图块D部分的地形标志
  94.       return MAP_TILE_D[map_tile_id_2-512]
  95.     when 769..1024
  96.       # 获取图块E部分的地形标志
  97.       return MAP_TILE_E[map_tile_id_2-768]
  98.     else
  99.       # 黑屏区未定义(尚未规划任何)图块区域  回传0
  100.       return 0   
  101.     end
  102.   end  
  103. end
复制代码

范例工程:(V3.0)
http://rpg.blue/upload_program/d/TERENCE_VX_111976575.rar

另P.S.
感谢snstar2006提供美兽写的计算图块ID的脚本
SORRY!!~连帖~我不是故意的

图块编辑器脚本在此:http://rpg.blue/viewthread.php?tid=115381

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说

Lv1.梦旅人

梦石
0
星屑
154
在线时间
157 小时
注册时间
2009-2-15
帖子
146
29
发表于 2010-9-9 18:50:34 | 只看该作者
本帖最后由 lzy136188230 于 2010-9-10 12:48 编辑

回复 TERENCE 的帖子

让他读取主角前面一格的地图图块的地形标号怎么办啊?
   
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

28
发表于 2009-1-23 01:49:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

27
发表于 2009-1-21 20:42:01 | 只看该作者
以下引用沉影不器于2009-1-20 21:50:42的发言:
跟.net没关系吧...虽然日文看不懂...

看到TERENCE开始做vx的事,开心得很...咦,为啥...

我们大家一起加加油把龙黄拉来VX这个大家庭 =v=
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

26
发表于 2009-1-21 05:50:42 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
25
 楼主| 发表于 2009-1-21 02:00:26 | 只看该作者
以下引用精灵使者于2009-1-16 7:57:58的发言:

华丽的将链接更新到主楼。

辛苦精灵了~~

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

24
发表于 2009-1-16 15:57:58 | 只看该作者
华丽的将链接更新到主楼。
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

23
发表于 2009-1-16 14:57:49 | 只看该作者
编辑器脚本
http://rpg.blue/viewthread.php?tid=115381
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
22
 楼主| 发表于 2009-1-12 05:11:25 | 只看该作者
明天一周起,我会不在家。。。
无法随时更新主楼~~也联络不到我,
所以如果有必要的話,可能劳请流星姐帮忙更新一下了!

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

21
发表于 2009-1-12 03:54:17 | 只看该作者
以下引用3nξhα0_lim于2009-1-11 17:18:05的发言:
如果说编辑器,我可以给个简单的参考,就像Blizz那样,可视化的编辑器生成出来的只是脚本设定的部分,并不用直接修改rvdata,可避存档错误,造成文件损坏。

算我鸡蛋里挑骨头好了……
如果说我吃饱了没事撑着干,把事件当图块用……
可是这脚本却不能够读取事件图块上的地形标志,反而是读取给地图的地形标志……
这里可以改进并完美化。
缺点:冲突性至少增加5-6倍。

还好不会冲突
事件的图像是图块的时候
储存为 tile_id,
所以只要读出来就好了

    for event in $game_map.events.values
      if event.pos?(@x, @y) and event.tile_id > 0
        map_tile_id_2 = event.tile_id
      end
    end

不过这里的图块ID跟我之前算的差1,是从0开始算的
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 01:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表