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

Project1

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

[已经解决] 关于Overlay脚本冲突,求解决办法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
跳转到指定楼层
1
发表于 2013-11-14 22:06:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 魔力的觉醒 于 2013-11-16 17:01 编辑

目测脚本兼容出现了问题!!!可以解决吗?下面是脚本
RUBY 代码复制下载
  1. #==============================================================================
  2. #
  3. # ▼ Yami Script Ace - Overlay Mapping
  4. # -- Last Updated: 2011.12.29
  5. # -- Level: Easy
  6. # -- Requires: n/a
  7. # -- Credit: Hanzo Kimura for Original Script
  8. #
  9. #==============================================================================
  10.  
  11. $imported = {} if $imported.nil?
  12. $imported["YSA-OverlayMapping"] = true
  13.  
  14. #==============================================================================
  15. # ▼ Updates
  16. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  17. # 2011.12.29 - Bugfix for transfer.
  18. # 2011.12.10 - Started and Finished Script.
  19. #
  20. #==============================================================================
  21. # ▼ Introduction
  22. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  23. # This script based on Hanzo Kimura's idea. This will automatically load map's
  24. # overlay by map ID, and a map can have more than one image per layer, so you
  25. # don't have to create two or more map just for day/night or when an event occur.
  26. #
  27. #==============================================================================
  28. # ▼ Instructions
  29. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  30. # Create a folder in Graphics and name it Overlay.
  31. # Put all of your overlay into Graphics/Overlay.
  32. # Your overlay file will have the name: "Filename Prefix" + Map-ID + "-" + Number
  33. # which "Filename Prefix" is the one you will config below
  34. # Map-ID is your map's ID
  35. # Number is 1, 2, 3, ... using for Overlay Variables.
  36. #
  37. # Example: Graphics/Overlay/ground2-1.png
  38. # Which means this will be ground layer, for map 2, variable = 1
  39. #
  40. # Light/Shadow must be .jpg
  41. # Parallax/Ground must be .png
  42. #
  43. #==============================================================================
  44.  
  45. module YSA
  46.   module OVERLAY
  47.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  48.     # - Overlay Switches -
  49.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  50.     # These are switches which are enable overlay layers. Turn them on to show
  51.     # them in your maps.
  52.     #--------------------------------------------------------------------------
  53.     # Default: ON
  54.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  55.     LIGHT_SWITCH = 16        # Turn on/off light layer
  56.     SHADOW_SWITCH = 17       # Turn on/off shadow layer
  57.     PARALLAX_SWITCH = 18     # Turn on/off parallax layer
  58.     GROUND_SWITCH = 19       # Turn on/off ground layer
  59.  
  60.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  61.     # - Overlay Variables -
  62.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  63.     # A map can have more than one image per layer, that means you can have a
  64.     # different light/shadow for day and night, or have a different ground when
  65.     # an event occured.
  66.     #--------------------------------------------------------------------------
  67.     # Default: 1
  68.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  69.     LIGHT_VARIABLE = 8      # Switch to another light
  70.     SHADOW_VARIABLE = 8     # Switch to another shadow
  71.     PARALLAX_VARIABLE = 7   # Switch to another parallax
  72.     GROUND_VARIABLE = 7     # Switch to another ground
  73.  
  74.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  75.     # - Filename Prefix -
  76.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  77.     # This will make this script automatic, it will check if there are layers in
  78.     # overlay folder
  79.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  80.     LIGHT = "light"         # Light layer's filename prefix
  81.     SHADOW = "shadow"       # Shadow layer's filename prefix
  82.     PARALLAX = "par"        # Parallax layer's filename prefix
  83.     GROUND = "ground"       # Ground layer's filename prefix
  84.  
  85.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  86.     # - Overlay Opacity -
  87.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  88.     # This will make this script automatic, it will check if there are layers in
  89.     # overlay folder
  90.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  91.     GROUND_OPACITY = 255
  92.     PARALLAX_OPACITY = 255
  93.     LIGHT_OPACITY = 128
  94.     SHADOW_OPACITY = 96
  95.   end #OVERLAY
  96. end # YSA
  97.  
  98. #==============================================================================
  99. # ▼ Editting anything past this point may potentially result in causing
  100. # computer damage, incontinence, explosion of user's head, coma, death, and/or
  101. # halitosis so edit at your own risk.
  102. #==============================================================================
  103.  
  104. #==============================================================================
  105. # ■ Cache
  106. #==============================================================================
  107.  
  108. module Cache
  109.  
  110.   #--------------------------------------------------------------------------
  111.   # new method: overlay
  112.   #--------------------------------------------------------------------------
  113.   def self.overlay(filename)
  114.     load_bitmap("Graphics/Overlay/", filename)
  115.   end
  116.  
  117. end # Cache
  118.  
  119. #==============================================================================
  120. # ■ DataManager
  121. #==============================================================================
  122.  
  123. module DataManager
  124.  
  125.   #--------------------------------------------------------------------------
  126.   # alias method: setup_new_game
  127.   #--------------------------------------------------------------------------
  128.   class <<self; alias ovm_setup_new_game setup_new_game; end
  129.   def self.setup_new_game
  130.     ovm_setup_new_game
  131.     setup_overlay_mapping
  132.   end
  133.  
  134.   #--------------------------------------------------------------------------
  135.   # new method: setup_overlay_mapping
  136.   #--------------------------------------------------------------------------
  137.   def self.setup_overlay_mapping
  138.     # Control switches
  139.     $game_switches[YSA::OVERLAY::LIGHT_SWITCH] = true
  140.     $game_switches[YSA::OVERLAY::SHADOW_SWITCH] = true
  141.     $game_switches[YSA::OVERLAY::GROUND_SWITCH] = true
  142.     $game_switches[YSA::OVERLAY::PARALLAX_SWITCH] = true
  143.  
  144.     # Control variables
  145.     $game_variables[YSA::OVERLAY::LIGHT_VARIABLE] = 1
  146.     $game_variables[YSA::OVERLAY::SHADOW_VARIABLE] = 1
  147.     $game_variables[YSA::OVERLAY::GROUND_VARIABLE] = 1
  148.     $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE] = 1
  149.   end
  150.  
  151. end # DataManager
  152.  
  153. #==============================================================================
  154. # ■ Spriteset_Map
  155. #==============================================================================
  156.  
  157. class Spriteset_Map
  158.  
  159.   #--------------------------------------------------------------------------
  160.   # alias method: initialize
  161.   #--------------------------------------------------------------------------
  162.   alias overlay_initialize initialize
  163.   def initialize
  164.     overlay_initialize
  165.     create_overlay_map
  166.     update
  167.   end
  168.  
  169.   #--------------------------------------------------------------------------
  170.   # new method: check_file
  171.   #--------------------------------------------------------------------------
  172.   def check_file(type)
  173.     filename = "Graphics/Overlay/"
  174.     filename += YSA::OVERLAY::GROUND if type == "ground"
  175.     filename += YSA::OVERLAY::LIGHT if type == "light"
  176.     filename += YSA::OVERLAY::SHADOW if type == "shadow"
  177.     filename += YSA::OVERLAY::PARALLAX if type == "par"
  178.     filename += $game_map.map_id.to_s
  179.     filename += "-" + $game_variables[YSA::OVERLAY::GROUND_VARIABLE].to_s if type == "ground"
  180.     filename += "-" + $game_variables[YSA::OVERLAY::LIGHT_VARIABLE].to_s if type == "light"
  181.     filename += "-" + $game_variables[YSA::OVERLAY::SHADOW_VARIABLE].to_s if type == "shadow"
  182.     filename += "-" + $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE].to_s if type == "par"
  183.     filename += ".jpg" if type == "light" || type == "shadow"
  184.     filename += ".png" if type == "par" || type == "ground"
  185.     return FileTest.exist?(filename)
  186.   end
  187.  
  188.   #--------------------------------------------------------------------------
  189.   # new method: create_overlay_map
  190.   #--------------------------------------------------------------------------
  191.   def create_overlay_map
  192.     w = Graphics.width
  193.     h = Graphics.height
  194.     @current_light = 0
  195.     @current_shadow = 0
  196.     @current_par = 0
  197.     @current_ground = 0
  198.     # Ground Layer
  199.     @ground = Sprite.new(@viewport1)
  200.     @ground.z = 0#1  ###SR
  201.     @ground.opacity = YSA::OVERLAY::GROUND_OPACITY
  202.     # Light Layer
  203.     @light_viewport = Viewport.new(0, 0, w, h)
  204.     @light_viewport.z = 10
  205.     [url=home.php?mod=space&uid=22469]@light[/url] = Sprite.new(@light_viewport)
  206.     @light.opacity = YSA::OVERLAY::LIGHT_OPACITY
  207.     @light.blend_type = 1
  208.     # Shadow Layer
  209.     @shadow_viewport = Viewport.new(0, 0, w, h)
  210.     @shadow_viewport.z = 9
  211.     [url=home.php?mod=space&uid=31758]@Shadow[/url] = Sprite.new(@shadow_viewport)
  212.     @shadow.opacity = YSA::OVERLAY::SHADOW_OPACITY
  213.     @shadow.blend_type = 2
  214.     # Parallax Layer
  215.     @par_viewport = Viewport.new(0, 0, w, h)
  216.     @par_viewport.z = 0#8  ###SR
  217.     @par = Sprite.new(@par_viewport)
  218.     @par.opacity = YSA::OVERLAY::PARALLAX_OPACITY
  219.   end
  220.  
  221.   #--------------------------------------------------------------------------
  222.   # alias method: dispose_parallax
  223.   #--------------------------------------------------------------------------
  224.   alias overlay_dispose_parallax dispose_parallax
  225.   def dispose_parallax
  226.     overlay_dispose_parallax
  227.     dispose_overlay_map
  228.   end
  229.  
  230.   #--------------------------------------------------------------------------
  231.   # new method: dispose_overlay_map
  232.   #--------------------------------------------------------------------------
  233.   def dispose_overlay_map
  234.     @ground.dispose
  235.     @shadow_viewport.dispose
  236.     @light_viewport.dispose
  237.     @light.dispose
  238.     @shadow.dispose
  239.     @par_viewport.dispose
  240.     @par.dispose
  241.   end
  242.  
  243.   #--------------------------------------------------------------------------
  244.   # alias method: update_parallax
  245.   #--------------------------------------------------------------------------
  246.   alias overlay_update_parallax update_parallax
  247.   def update_parallax
  248.     overlay_update_parallax
  249.     # Parallax
  250.     if @ground != nil
  251.       if check_file("ground")
  252.         @ground.visible = $game_switches[YSA::OVERLAY::GROUND_SWITCH] if @ground.visible != $game_switches[YSA::OVERLAY::GROUND_SWITCH]
  253.         @ground.ox = $game_map.display_x * 32 if @ground.ox != $game_map.display_x * 32
  254.         @ground.oy = $game_map.display_y * 32 if @ground.oy != $game_map.display_y * 32
  255.         #@ground.tone = $game_map.screen.tone  #SR fix
  256.         if @current_ground != $game_variables[YSA::OVERLAY::GROUND_VARIABLE]
  257.           filename = YSA::OVERLAY::GROUND
  258.           filename += $game_map.map_id.to_s
  259.           filename += "-" + $game_variables[YSA::OVERLAY::GROUND_VARIABLE].to_s
  260.           @ground.bitmap = Cache.overlay(filename)
  261.           @current_ground = $game_variables[YSA::OVERLAY::GROUND_VARIABLE]
  262.         end
  263.       else
  264.         @ground.visible = false
  265.       end
  266.     end
  267.     # Light
  268.     if [url=home.php?mod=space&uid=22469]@light[/url] != nil && @light_viewport != nil
  269.       if check_file("light")
  270.         @light.visible = $game_switches[YSA::OVERLAY::LIGHT_SWITCH] if @light.visible != $game_switches[YSA::OVERLAY::LIGHT_SWITCH]
  271.         @light.ox = $game_map.display_x * 32 if @light.ox != $game_map.display_x * 32
  272.         @light.oy = $game_map.display_y * 32 if @light.oy != $game_map.display_y * 32
  273.         @light.tone = $game_map.screen.tone
  274.         @light_viewport.ox = $game_map.screen.shake
  275.         @light_viewport.color = $game_map.screen.flash_color
  276.         if @current_light != $game_variables[YSA::OVERLAY::LIGHT_VARIABLE]
  277.           filename = YSA::OVERLAY::LIGHT
  278.           filename += $game_map.map_id.to_s
  279.           filename += "-" + $game_variables[YSA::OVERLAY::LIGHT_VARIABLE].to_s
  280.           @light.bitmap = Cache.overlay(filename)
  281.           @current_light = $game_variables[YSA::OVERLAY::LIGHT_VARIABLE]
  282.         end
  283.       else
  284.         @light.visible = false
  285.       end   
  286.     end
  287.     # Shadow
  288.     if [url=home.php?mod=space&uid=31758]@Shadow[/url] != nil && @shadow_viewport != nil
  289.       if check_file("shadow")
  290.         @shadow.visible = $game_switches[YSA::OVERLAY::SHADOW_SWITCH] if @shadow.visible != $game_switches[YSA::OVERLAY::SHADOW_SWITCH]
  291.         @shadow.ox = $game_map.display_x * 32 if @shadow.ox != $game_map.display_x * 32
  292.         @shadow.oy = $game_map.display_y * 32 if @shadow.oy != $game_map.display_y * 32
  293.         @shadow.tone = $game_map.screen.tone
  294.         @shadow_viewport.ox = $game_map.screen.shake
  295.         @shadow_viewport.color = $game_map.screen.flash_color
  296.         if @current_shadow != $game_variables[YSA::OVERLAY::SHADOW_VARIABLE]
  297.           filename = YSA::OVERLAY::SHADOW
  298.           filename += $game_map.map_id.to_s
  299.           filename += "-" + $game_variables[YSA::OVERLAY::SHADOW_VARIABLE].to_s
  300.           @shadow.bitmap = Cache.overlay(filename)
  301.           @current_shadow = $game_variables[YSA::OVERLAY::SHADOW_VARIABLE]
  302.         end
  303.       else
  304.         @shadow.visible = false
  305.       end
  306.     end
  307.     # Parallax
  308.     if @par != nil && @par_viewport != nil
  309.       if check_file("par")
  310.         @par.visible = $game_switches[YSA::OVERLAY::PARALLAX_SWITCH] if @par.visible != $game_switches[YSA::OVERLAY::PARALLAX_SWITCH]
  311.         @par.ox = $game_map.display_x * 32 if @par.ox != $game_map.display_x * 32
  312.         @par.oy = $game_map.display_y * 32 if @par.oy != $game_map.display_y * 32
  313.         @par.tone = $game_map.screen.tone
  314.         @par_viewport.ox = $game_map.screen.shake
  315.         @par_viewport.color = $game_map.screen.flash_color
  316.         if @current_par != $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE]
  317.           filename = YSA::OVERLAY::PARALLAX
  318.           filename += $game_map.map_id.to_s
  319.           filename += "-" + $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE].to_s
  320.           @par.bitmap = Cache.overlay(filename)
  321.           @current_par = $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE]
  322.         end
  323.       else
  324.         @par.visible = false
  325.       end
  326.     end
  327.   end
  328.  
  329. end # Spriteset_Map
  330.  
  331. #==============================================================================
  332. # ■ Scene_Map
  333. #==============================================================================
  334.  
  335. class Scene_Map < Scene_Base
  336.  
  337.   #--------------------------------------------------------------------------
  338.   # alias method: post_transfer
  339.   #--------------------------------------------------------------------------
  340.   alias overlay_post_transfer post_transfer
  341.   def post_transfer
  342.     @spriteset.dispose_overlay_map
  343.     @spriteset.create_overlay_map
  344.     @spriteset.update
  345.     overlay_post_transfer
  346.   end
  347.  
  348. end # Scene_Map
  349.  
  350. #==============================================================================
  351. #
  352. # ▼ End of File
  353. #
  354. #==============================================================================
  

W@C2A0IDN~MA0UM{BN%5HQV.jpg (12.89 KB, 下载次数: 28)

W@C2A0IDN~MA0UM{BN%5HQV.jpg
你的意思就是要打架咯?

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
2
 楼主| 发表于 2013-11-15 11:53:22 | 只看该作者
没人??
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
3
 楼主| 发表于 2013-11-15 21:31:19 | 只看该作者
一天了  还没人   提问区没人管了么!!@tan12345  
你的意思就是要打架咯?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
4
发表于 2013-11-15 21:48:18 | 只看该作者
魔力的觉醒 发表于 2013-11-15 21:31
一天了  还没人   提问区没人管了么!!@tan12345

这个不会啊……

点评

没事没事 还还以为没人回答呢!!  发表于 2013-11-16 14:28
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42360
在线时间
7600 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

5
发表于 2013-11-16 11:56:27 | 只看该作者
本帖最后由 fux2 于 2013-11-16 17:44 编辑

追加定义
  1. class NilClass
  2. def dispose
  3. end
  4. end
复制代码
我真不是捣乱

点评

………………楼主把你话当真了……  发表于 2013-11-16 14:37
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
6
 楼主| 发表于 2013-11-16 14:29:30 | 只看该作者
fux2 发表于 2013-11-16 11:56
追加定义我真不是捣乱

新建一个 还是放在后面呢!!

点评

五楼是在胡扯……  发表于 2013-11-16 14:37
你的意思就是要打架咯?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
7
 楼主| 发表于 2013-11-16 14:35:05 | 只看该作者
@喵呜喵5 大神会吗??

点评

好吧好吧 结贴了!!  发表于 2013-11-16 17:00
看到楼下的回答之后就完全不想去研究了…  发表于 2013-11-16 15:40
你的意思就是要打架咯?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
8
 楼主| 发表于 2013-11-16 14:40:44 | 只看该作者
魔力的觉醒 发表于 2013-11-16 14:29
新建一个 还是放在后面呢!!

我猜的也是!!有办法解决么!!!
你的意思就是要打架咯?
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

9
发表于 2013-11-16 14:42:32 | 只看该作者
如果是脚本冲突……楼主只发一个脚本就没用啊……冲突是两(多)个脚本之间的事……
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
帖子
386
10
 楼主| 发表于 2013-11-16 14:57:18 | 只看该作者
余烬之中 发表于 2013-11-16 14:42
如果是脚本冲突……楼主只发一个脚本就没用啊……冲突是两(多)个脚本之间的事…… ...

大神  帮忙看看吧  麻烦了   

脚本数据.zip

494 KB, 下载次数: 52

你的意思就是要打架咯?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 11:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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