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

Project1

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

[RMVA发布] VX移植到VA上的灯光脚本。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
140
在线时间
345 小时
注册时间
2009-5-15
帖子
111
跳转到指定楼层
发表于 2012-12-14 11:31:52 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 dujian15 于 2012-12-14 11:35 编辑

脚本初学者,目前在研究脚本移植。

献上灯光脚本一个,这个脚本的功能是。

在地图中定义一个事件,在事件中填加相应的注释,这个事件便可以发光。
可以通过开关关闭光源。

但目前还存在几个问题,最好请大神重新修正发布。

1.光源对焦不准,需要在游戏中自行调整。
2.代码为LIGHT的光源还有bug

如果需要使用这个光源脚本,需要在picture文下夹下建议一个LE.png的图片,图片即是光晕的造型。

奉上两张效果图

工程限于网速原因,回家再上传。



  1. #==============================================================================
  2. # ■ 灯光脚本 for VA 版本1.0.0
  3. #     12.14.2012
  4. #------------------------------------------------------------------------------
  5. #  脚本修改: dujian15
  6. #  脚本制作: Kylock (For XP 版本 by Near Fantastica)
  7. #==============================================================================


  8. # ■ 灯光脚本 for VX 版本1.1.1
  9. #     5.21.2008
  10. #------------------------------------------------------------------------------
  11. #  脚本制作: Kylock (For XP 版本 by Near Fantastica)
  12. #==============================================================================
  13. #   如果您想要启用脚本,请在需要灯光效果的事件添加一个注释.
  14. #   打开开关将禁用灯光效果,启用效果前会检查开关,如果已经添加注释但是开关开启,那么将会停止效果.
  15. #   译者的话:因为发现脚本有一些问题,所以是有改动过的,如果改的不对,请M我QQ或者留言.谢谢
  16. #
  17. #==============================================================================
  18. # ● 更新日志
  19. #------------------------------------------------------------------------------
  20. # 1.0 - 建立最初版本
  21. # 1.1 - 添加了新的效果: LIGHT2, TORCH, TORCH2
  22. #      - 更改了混合模式(使其看起来更好)
  23. #      - 对FIRE效果增加了红色
  24. # 1.1.1 -非官方更新
  25. #         -解决了效果FIRE 与 TORCH 效果当开关打开时没有消失的问题
  26. #         -简便了开关判断
  27. #==============================================================================
  28. # ● 支持的效果(您可以添加的注释)
  29. #------------------------------------------------------------------------------
  30. #   GROUND - 中等稳定的白光.
  31. #   FIRE   - 伴有轻微的闪烁的红色.
  32. #   LIGHT  - 小型稳定的白光.
  33. #   LIGHT2 -大型稳定的白光.
  34. #   TORCH  - 伴有强烈闪烁的大型稳定的红光.
  35. #   TORCH2 - 伴有中等烁的大型稳定的红光.
  36. #==============================================================================

  37.   $lsig = 1           #开关号


  38. class Spriteset_Map
  39.   alias les_spriteset_map_initalize initialize
  40.   alias les_spriteset_map_dispose dispose
  41.   alias les_spriteset_map_update update
  42.   def initialize
  43.     @light_effects = []
  44.     setup_lights
  45.     les_spriteset_map_initalize
  46.     update
  47.   end
  48.   def dispose
  49.     les_spriteset_map_dispose
  50.     for effect in @light_effects
  51.       effect.light.dispose
  52.     end
  53.     @light_effects = []
  54.   end
  55.   def update
  56.     les_spriteset_map_update
  57.     update_light_effects
  58.   end
  59.   def setup_lights
  60.     for event in $game_map.events.values
  61.       next if event.list == nil
  62.       for i in 0...event.list.size
  63.         if event.list[i].code == 108 and event.list[i].parameters == ["GROUND"]
  64.           type = "GROUND"
  65.           light_effects = Light_Effect.new(event,type)
  66.           light_effects.light.zoom_x = 2
  67.           light_effects.light.zoom_y = 2
  68.           light_effects.light.opacity = 100
  69.           @light_effects.push(light_effects)
  70.         end
  71.         if event.list[i].code == 108 and event.list[i].parameters == ["FIRE"]
  72.           type = "FIRE"
  73.           light_effects = Light_Effect.new(event,type)
  74.           light_effects.light.zoom_x = 300 / 100.0
  75.           light_effects.light.zoom_y = 300 / 100.0
  76.           light_effects.light.opacity = 100
  77.           @light_effects.push(light_effects)
  78.         end
  79.         if event.list[i].code == 108 and event.list[i].parameters == ["LIGHT"]
  80.           type = "LIGHT"
  81.           light_effects = Light_Effect.new(event,type)
  82.           light_effects.light.zoom_x = 1
  83.           light_effects.light.zoom_y = 1
  84.           light_effects.light.opacity = 150
  85.           @light_effects.push(light_effects)
  86.         end
  87.         if event.list[i].code == 108 and event.list[i].parameters == ["LIGHT2"]
  88.           type = "LIGHT2"
  89.           light_effects = Light_Effect.new(event,type)
  90.           light_effects.light.zoom_x = 6
  91.           light_effects.light.zoom_y = 6
  92.           light_effects.light.opacity = 150
  93.           @light_effects.push(light_effects)
  94.         end
  95.         if event.list[i].code == 108 and event.list[i].parameters == ["TORCH"]
  96.           type = "TORCH"
  97.           light_effects = Light_Effect.new(event,type)
  98.           light_effects.light.zoom_x = 6
  99.           light_effects.light.zoom_y = 6
  100.           light_effects.light.opacity = 150
  101.           @light_effects.push(light_effects)
  102.         end
  103.         if event.list[i].code == 108 and event.list[i].parameters == ["TORCH2"]
  104.           type = "TORCH2"
  105.           light_effects = Light_Effect.new(event,type)
  106.           light_effects.light.zoom_x = 6
  107.           light_effects.light.zoom_y = 6
  108.           light_effects.light.opacity = 150
  109.           @light_effects.push(light_effects)
  110.         end
  111.       end
  112.     end
  113.     for effect in @light_effects
  114.       case effect.type
  115.       when "GROUND"
  116.         effect.light.x = (effect.event.screen_x * 8 - 400 - $game_map.display_x) / 8 - 8
  117.         effect.light.y = (effect.event.screen_y * 8 - 400 - $game_map.display_y) / 8 - 36
  118.         effect.light.blend_type = 1
  119.       when "FIRE"
  120.         effect.light.x = (effect.event.screen_x * 8 - 600 - $game_map.display_x) / 8 + rand(6) - 3 - 16
  121.         effect.light.y = (effect.event.screen_y * 8 - 600 - $game_map.display_y) / 8 + rand(6) - 3 - 48
  122.         effect.light.tone = Tone.new(255,-100,-255,   0)
  123.         effect.light.blend_type = 1
  124.       when "LIGHT"
  125.         effect.light.x = (effect.event.screen_x * 8 - 400 - $game_map.display_x) / 8
  126.         effect.light.y = (effect.event.screen_y * 8 - 400 - $game_map.display_y) / 8
  127.         effect.light.blend_type = 1
  128.       when "LIGHT2"
  129.         effect.light.x = (effect.event.screen_x * 8 - 1200 - $game_map.display_x) / 8 - 20
  130.         effect.light.y = (effect.event.screen_y * 8 - 1200 - $game_map.display_y) / 8
  131.         effect.light.blend_type = 1
  132.       when "TORCH"
  133.         effect.light.x = (effect.event.screen_x * 8 - 1200 - $game_map.display_x) / 8 - 20
  134.         effect.light.y = (effect.event.screen_y * 8 - 1200 - $game_map.display_y) / 8
  135.         effect.light.tone = Tone.new(255,-100,-255,   0)
  136.         effect.light.blend_type = 1
  137.       when "TORCH2"
  138.         effect.light.x = (effect.event.screen_x * 8 - 1200 - $game_map.display_x) / 8 - 20
  139.         effect.light.y = (effect.event.screen_y * 8 - 1200 - $game_map.display_y) / 8
  140.         effect.light.tone = Tone.new(255,-100,-255,   0)
  141.         effect.light.blend_type = 1
  142.       end
  143.     end
  144.   end
  145.   def update_light_effects
  146.     if $game_switches[$lsig]
  147.       for effect in @light_effects
  148.         effect.light.visible = false
  149.       end
  150.     else
  151.       for effect in @light_effects

  152.         effect.light.visible = true
  153.       end
  154.     end
  155.     for effect in @light_effects
  156.       case effect.type
  157.       when "GROUND"
  158.         effect.light.x = (effect.event.screen_x * 8 - 400 - $game_map.display_x) / 8 - 8
  159.         effect.light.y = (effect.event.screen_y * 8 - 400 - $game_map.display_y) / 8 - 36
  160.       when "FIRE"
  161.         effect.light.x = (effect.event.screen_x * 8 - 600 - $game_map.display_x) / 8 + rand(6) - 3 - 16
  162.         effect.light.y = (effect.event.screen_y * 8 - 600 - $game_map.display_y) / 8 + rand(6) - 3 - 48
  163.         effect.light.opacity = rand(10) + 90
  164.       when "LIGHT"
  165.         effect.light.x = (-0.25 / 2 * $game_map.display_x) + (effect.event.x * 32) - 15
  166.         effect.light.y = (-0.25 / 2 * $game_map.display_y) + (effect.event.y * 32) - 15
  167.       when "LIGHT2"
  168.         effect.light.x = (effect.event.screen_x * 8 - 1200 - $game_map.display_x) / 8 - 20
  169.         effect.light.y = (effect.event.screen_y * 8 - 1200 - $game_map.display_y) / 8
  170.       when "TORCH"
  171.         effect.light.x = (effect.event.screen_x * 8 - 1200 - $game_map.display_x) / 8 - 20 + rand(20) - 10
  172.         effect.light.y = (effect.event.screen_y * 8 - 1200 - $game_map.display_y) / 8 + rand(20) - 10
  173.         effect.light.opacity = rand(30) + 70
  174.       when "TORCH2"
  175.         effect.light.x = (effect.event.screen_x * 8 - 1200 - $game_map.display_x) / 8 - 20
  176.         effect.light.y = (effect.event.screen_y * 8 - 1200 - $game_map.display_y) / 8
  177.         effect.light.opacity = rand(10) + 90
  178.       end
  179.     end
  180.   end
  181. end

  182. class Light_Effect
  183.   attr_accessor :light
  184.   attr_accessor :event
  185.   attr_accessor :type
  186.   def initialize(event, type)
  187.     [url=home.php?mod=space&uid=22469]@light[/url] = Sprite.new
  188.     @light.bitmap = Cache.picture("le.png")
  189.     @light.visible = true
  190.     @light.z = 1000
  191.     @event = event
  192.     @type = type
  193.   end
  194. end
复制代码

评分

参与人数 4星屑 +105 收起 理由
库拉托斯 + 1 塞糖
alann + 12 我很赞同
feizhaodan + 80 鼓励
Mic_洛洛 + 12 塞糖

查看全部评分

敌人自动排列系统    1/1
技能类型着色   1/1
物品着色     0/1
仿网游强化系统    0/1

Lv1.梦旅人

梦石
0
星屑
241
在线时间
68 小时
注册时间
2008-12-15
帖子
143
21
发表于 2014-6-19 21:58:34 | 只看该作者
本帖最后由 marco99168 于 2014-6-19 22:01 编辑

…………
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
389
在线时间
894 小时
注册时间
2009-10-12
帖子
1829
20
发表于 2014-6-19 20:31:49 | 只看该作者
这个光真是亮瞎狗眼。。。

话说为什么一群人要问烛光脚本怎么用。。。会用就用,不会用 用事件显示图片都能完成的事情= =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
635
在线时间
14 小时
注册时间
2013-12-12
帖子
2
19
发表于 2014-6-18 16:54:05 | 只看该作者
楼主请问一下,所谓的灯光位置在游戏里设置,到底是怎么设置啊?完全搞不懂呢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2013-8-17
帖子
8
18
发表于 2014-5-8 19:51:04 | 只看该作者
1450131341 发表于 2014-1-28 13:52
改成@light = Sprite.new

    [url=home.php?mod=space&uid=22469]@light = Sprite.new  
这样?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2013-12-6
帖子
22
17
发表于 2014-1-28 13:52:44 | 只看该作者
我是老A 发表于 2013-2-17 20:42
第195行出错了。

改成@light = Sprite.new  
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2012-1-11
帖子
26
16
发表于 2013-11-24 12:46:22 | 只看该作者
需要啊!!!!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
191
在线时间
104 小时
注册时间
2010-11-21
帖子
34
15
发表于 2013-2-21 04:57:53 | 只看该作者
为什么只在一张地图上有用,换了一张地图就没用了??
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
159 小时
注册时间
2012-3-24
帖子
105
14
发表于 2013-2-17 20:42:15 | 只看该作者
第195行出错了。
Will they still remember their dreams ...
入坑10年唯一完成处女作《核爆余生》已于2020.10.7在本站发布,欢迎支持和反馈~
戳这里:千呼万唤始出来,实时血条蓝条已在1.2.0中实现!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
159 小时
注册时间
2012-3-24
帖子
105
13
发表于 2013-2-17 20:36:50 | 只看该作者
745336784 发表于 2013-2-2 23:20
想请问下光晕图能在哪里下?

也可以是这个。

Will they still remember their dreams ...
入坑10年唯一完成处女作《核爆余生》已于2020.10.7在本站发布,欢迎支持和反馈~
戳这里:千呼万唤始出来,实时血条蓝条已在1.2.0中实现!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
159 小时
注册时间
2012-3-24
帖子
105
12
发表于 2013-2-17 20:31:23 | 只看该作者
745336784 发表于 2013-2-2 23:20
想请问下光晕图能在哪里下?



这是我做的,似乎颜色重了些。
Will they still remember their dreams ...
入坑10年唯一完成处女作《核爆余生》已于2020.10.7在本站发布,欢迎支持和反馈~
戳这里:千呼万唤始出来,实时血条蓝条已在1.2.0中实现!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-27 20:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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