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

Project1

 找回密码
 注册会员
搜索
楼主: eva2914771
打印 上一主题 下一主题

[RMXP发布] 类似英雄传说的明雷遇敌。。。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
17 小时
注册时间
2012-9-23
帖子
21
11
 楼主| 发表于 2012-9-23 13:55:42 | 只看该作者
本帖最后由 eva2914771 于 2012-9-23 13:57 编辑

然后。。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
17 小时
注册时间
2012-9-23
帖子
21
12
 楼主| 发表于 2012-9-23 13:59:06 | 只看该作者
最后效果。。。

点评

不过,楼主,你不发范例的话,这种纯教程,6R的90%都是伸手党,才不会认真看呢。  发表于 2012-9-25 22:22
好吧,其实我没·认·真·看…………  发表于 2012-9-25 22:22
不其实楼主你错了..本新渣在你之前,是更事件的事件党....后来被情势所迫去学了几手半吊子脚本而已。真心感觉这截图的效果用不着这么多事件啊…  发表于 2012-9-25 22:21
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
17 小时
注册时间
2012-9-23
帖子
21
13
 楼主| 发表于 2012-9-23 14:01:38 | 只看该作者
还有就是要用到的脚本。。。这个脚本连接我找不到了。。。就在这发下好了。。
  1. #==============================================================================
  2. # ■ LCF_Leyeshot (linetype eyeshot)XP 2.1 Creator LCF Date 2008.11.3
  3. #------------------------------------------------------------------------------
  4. #  线形视野系统 编者:流川枫 QQ:350773875
  5. #==============================================================================
  6. #【使用说明】
  7. #------------------------------------------------------------------------------
  8. # 视野系统开关 $game_map.events[@event_id].le_seeing = true/false
  9. # 功能:该值为true表示该NPC视野开启,否则未开启,默认为false。
  10. #------------------------------------------------------------------------------
  11. # 视野透视开关 $game_map.events[@event_id].le_clairv = true/false
  12. # 功能:该值为true表示该NPC视野不扫描视线障碍,否则扫描,默认为false。
  13. #------------------------------------------------------------------------------
  14. # 视线显示开关 $game_map.events[@event_id].le_show = true/false
  15. # 功能:该值为true表示显示该NPC的视线,否则不显示,默认为false。
  16. #------------------------------------------------------------------------------
  17. # 侧面可视开关 $game_map.events[@event_id].le_side = true/false
  18. # 功能:该值为true表示该NPC可以看到侧面一格内的人,否则由斜率决定,默认为true。
  19. #------------------------------------------------------------------------------
  20. # 视野环绕开关 $game_map.events[@event_id].le_circle = true/false
  21. # 功能:该值为true表示该NPC为环绕视野,否则不能看见自己的身后,默认为false。
  22. #------------------------------------------------------------------------------
  23. # 设置视野深度 $game_map.events[@event_id].le_deepness = 深度值
  24. # 功能:该值代表视野的能见度,默认为7。
  25. #------------------------------------------------------------------------------
  26. # 设置视野斜率 $game_map.events[@event_id].le_slope = 斜率值
  27. # 功能:该值代表视野的斜率,默认为1.0。
  28. #------------------------------------------------------------------------------
  29. # 设置显示颜色 $game_map.events[@event_id].le_color = 颜色值
  30. # 功能:该值代表视线显示的颜色,默认为0xf0。
  31. #==============================================================================
  32. # 当NPC看到主角的时候,独立开关D会被打开,否则为关闭状态。
  33. #==============================================================================

  34. #==============================================================================
  35. # ■ Game_Event
  36. #------------------------------------------------------------------------------
  37. #  重载事件类
  38. #==============================================================================
  39. class Game_Event
  40. attr_accessor :le_seeing # 视野系统开关
  41. attr_accessor :le_clairv # 视野透视开关
  42. attr_accessor :le_show # 视线显示开关
  43. attr_accessor :le_side # 侧面可视开关
  44. attr_accessor :le_circle # 视野环绕开关
  45. attr_accessor :le_deepness # 视野深度
  46. attr_accessor :le_slope # 视野斜率
  47. attr_accessor :le_color # 显示颜色
  48. #--------------------------------------------------------------------------
  49. # ● 初始化对像
  50. # map_id : 地图 ID
  51. # event : 事件 (RPG::Event)
  52. #--------------------------------------------------------------------------
  53. alias original_initialize initialize
  54. def initialize (map_id, event)
  55. original_initialize (map_id, event)
  56. @le_seeing = true
  57. @le_clairv = false
  58. @le_show = false
  59. @le_side = true
  60. @le_circle = false
  61. @le_deepness = 7
  62. @le_slope = 1.0
  63. @le_color = 0xf0
  64. @trace = Table.new (@le_deepness,2)
  65. @trace[0,0] = -1
  66. end
  67. #--------------------------------------------------------------------------
  68. # ● 刷新
  69. #--------------------------------------------------------------------------
  70. alias original_update update
  71. def update
  72. if @le_seeing
  73. @trace.resize (@le_deepness,2) if @trace.xsize != @le_deepness
  74. original_switch = $game_self_switches[[$game_map.map_id, @id, "D"]]
  75. self.see
  76. $game_map.need_refresh = true if original_switch != $game_self_switches[[$game_map.map_id, @id, "D"]]
  77. end
  78. original_update
  79. end
  80. #--------------------------------------------------------------------------
  81. # ● 视野检测
  82. #--------------------------------------------------------------------------
  83. def see
  84. $game_self_switches[[$game_map.map_id, @id, "D"]] = false
  85. if ($game_player.x-@x).abs<@le_deepness and ($game_player.y-@y).abs<@le_deepness
  86. difference_x = $game_player.x - @x
  87. difference_y = $game_player.y - @y
  88. case @direction
  89. when 2
  90. return if @le_circle != true and $game_player.y < @y
  91. unless @le_side and (difference_y == 0 and difference_x.abs == 1)
  92. return if (difference_y/(difference_x+0.0)).abs < @le_slope
  93. end
  94. when 4
  95. return if @le_circle != true and $game_player.x > @x
  96. unless @le_side and difference_y.abs == 1 and difference_x == 0
  97. return if (difference_x/(difference_y+0.0)).abs < @le_slope
  98. end
  99. when 6
  100. return if @le_circle != true and $game_player.x < @x
  101. unless @le_side and difference_y.abs == 1 and difference_x == 0
  102. return if (difference_x/(difference_y+0.0)).abs < @le_slope
  103. end
  104. else
  105. return if @le_circle != true and $game_player.y > @y
  106. unless @le_side and difference_y == 0 and difference_x.abs == 1
  107. return if (difference_y/(difference_x+0.0)).abs < @le_slope
  108. end
  109. end
  110. $game_self_switches[[$game_map.map_id, @id, "D"]] = scan_line
  111. end
  112. end
  113. #--------------------------------------------------------------------------
  114. # ● 视线检测
  115. #--------------------------------------------------------------------------
  116. def scan_line
  117. difference_x = $game_player.x - @x
  118. difference_y = $game_player.y - @y
  119. direction_x = (difference_x > 0 ? 1 : -1)
  120. direction_y = (difference_y > 0 ? 1 : -1)
  121. i = 0
  122. if difference_x.abs > difference_y.abs
  123. while difference_x.abs > i+1
  124. i+=1
  125. x = @x+i*direction_x
  126. if direction_y>0
  127. y = @y+i*difference_y/(difference_x+0.0)*direction_y*direction_x+0.5
  128. else
  129. y = @y-i*difference_y/(difference_x+0.0)*direction_y*direction_x+0.5
  130. end
  131. x = x.floor
  132. y = y.floor
  133. if @le_clairv != true
  134. unless (direction_x > 0 ? passable?(x-1,y,6) : passable?(x+1,y,4))
  135. @trace[i-1,0] = -1
  136. return false
  137. end
  138. end
  139. if @le_show
  140. @trace[i-1,0] = x
  141. @trace[i-1,1] = y
  142. $scene.spriteset.tilemap.flash_data[x,y] = @le_color
  143. end
  144. end
  145. else
  146. while difference_y.abs > i+1
  147. i+=1
  148. y = @y+i*direction_y
  149. if direction_x>0
  150. x = @x+i*difference_x/(difference_y+0.0)*direction_x*direction_y+0.5
  151. else
  152. x = @x-i*difference_x/(difference_y+0.0)*direction_x*direction_y+0.5
  153. end
  154. x = x.floor
  155. y = y.floor
  156. if @le_clairv != true
  157. unless (direction_y > 0 ? passable?(x,y-1,2) : passable?(x,y+1,8))
  158. @trace[i-1,0] = -1
  159. return false
  160. end
  161. end
  162. if @le_show
  163. @trace[i-1,0] = x
  164. @trace[i-1,1] = y
  165. $scene.spriteset.tilemap.flash_data[x,y] = @le_color
  166. end
  167. end
  168. end
  169. return true
  170. end
  171. #--------------------------------------------------------------------------
  172. # ● 清楚痕迹
  173. #--------------------------------------------------------------------------
  174. def clear
  175. for i in 0 .. @trace.xsize-1
  176. break if @trace[i,0] == -1
  177. $scene.spriteset.tilemap.flash_data[@trace[i,0],@trace[i,1]] = 0
  178. end
  179. @trace[0,0] = -1
  180. end
  181. end
  182. #==============================================================================
  183. # ■ Spriteset_Map
  184. #------------------------------------------------------------------------------
  185. # 重载地图显示
  186. #==============================================================================
  187. class Spriteset_Map
  188. attr_reader:tilemap
  189. alias :original_ini :initialize
  190. def initialize
  191. original_ini
  192. @tilemap.flash_data=Table.new(@tilemap.map_data.xsize,@tilemap.map_data.ysize)
  193. end
  194. end
  195. #==============================================================================
  196. # ■ Scene_Map
  197. #------------------------------------------------------------------------------
  198. # 重载地图场景
  199. #==============================================================================
  200. class Scene_Map
  201. attr_reader:spriteset
  202. end
  203. #==============================================================================
  204. # ■ Game_Map
  205. #------------------------------------------------------------------------------
  206. #  重载地图类
  207. #==============================================================================
  208. class Game_Map
  209. alias original_update update
  210. def update
  211. # 清除视线痕迹
  212. for event in @events.values
  213. event.clear
  214. end
  215. original_update
  216. end
  217. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
17 小时
注册时间
2012-9-23
帖子
21
14
 楼主| 发表于 2012-9-23 14:07:41 | 只看该作者
发完了。。之前在论坛上学到了很多东西让我受益匪浅。。所以我也不能一直做个伸手党。。。。就在这发一帖。。帖子很烂。。大家多包涵。。

点评

太赞了 = = 14连击。。  发表于 2012-10-5 07:47
虽然你严重连贴,但我很佩服你这样的事件党,大家一起来求版主不要扣LZ的分吧, 要扣得话……………………………………………………  发表于 2012-9-23 20:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
227
在线时间
313 小时
注册时间
2010-8-14
帖子
378
15
发表于 2012-9-23 14:22:24 | 只看该作者
好吧
改天会用到的
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1302
在线时间
673 小时
注册时间
2009-11-11
帖子
2790
16
发表于 2012-9-23 16:12:47 | 只看该作者
这种是好东西,LZ辛苦了

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
671
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

17
发表于 2012-9-24 18:13:00 | 只看该作者
看起来好麻烦啊。是真的实际效果很棒吗,还是浪费版面了。
求个工程。

顺便:楼主你是怎么做到连帖的!?

点评

这就是事件党的给力性=V=不过LZ应该没在6R混太久,不懂连贴之类的东东。  发表于 2012-9-25 22:20
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
142 小时
注册时间
2011-5-13
帖子
250
18
发表于 2012-9-24 18:49:21 | 只看该作者
这个事件未必也太长了吧好像没人回复啊。
认真你就输了
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
775
在线时间
924 小时
注册时间
2006-6-26
帖子
1529
19
发表于 2012-9-24 19:31:32 | 只看该作者
  ..楼主最好发一个范例。不是每个人都玩儿过英雄传说。。我真不知道,你这样做的是什么效果
我是不是可以签名了?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
49 小时
注册时间
2012-3-18
帖子
28
20
发表于 2012-9-24 19:54:18 | 只看该作者
……大连帖

点评

……阁下呢?大灌水-_-|||  发表于 2012-9-25 22:20
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-29 08:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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