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

Project1

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

[已经过期] 能否加个开关

[复制链接]

Lv4.逐梦者

梦石
0
星屑
13657
在线时间
3854 小时
注册时间
2013-7-18
帖子
2314
跳转到指定楼层
1
发表于 2016-7-21 12:41:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #==============================================================================
  2. # ■ Sprite_Character
  3. #------------------------------------------------------------------------------
  4. #  角色显示用脚本。监视 Game_Character 类的实例、
  5. # 自动变化脚本状态。
  6. #==============================================================================

  7. class Sprite_Character < RPG::Sprite
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :character                # 角色
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     viewport  : 查看端口
  15.   #     character : 角色 (Game_Character)
  16.   #--------------------------------------------------------------------------
  17.   def initialize(viewport, character = nil)
  18.     super(viewport)
  19.     [url=home.php?mod=space&uid=2631396]@character[/url] = character
  20.     [url=home.php?mod=space&uid=31758]@Shadow[/url] = RPG::Sprite.new(viewport)
  21.     update
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 更新画面
  25.   #--------------------------------------------------------------------------
  26.   def update
  27.     super
  28.     # 元件 ID、文件名、色相与现在的情况存在差异的情况下
  29.     if @tile_id != @character.tile_id or
  30.        @character_name != @character.character_name or
  31.        @character_hue != @character.character_hue
  32.       # 记忆元件 ID 与文件名、色相
  33.       @tile_id = @character.tile_id
  34.       @character_name = @character.character_name
  35.       @character_hue = @character.character_hue
  36.       # 元件 ID 为有效值的情况下
  37.       if @tile_id >= 384
  38.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  39.           @tile_id, @character.character_hue)
  40.         self.src_rect.set(0, 0, 32, 32)
  41.         self.ox = 16
  42.         self.oy = 32
  43.       # 元件 ID 为无效值的情况下
  44.       else
  45.         self.bitmap = RPG::Cache.character(@character.character_name,
  46.           @character.character_hue)
  47.         @shadow.bitmap = RPG::Cache.character(@character.character_name,
  48.           @character.character_hue)
  49.         @shadow.flash(Color.new(0, 0, 0, 255), 1)
  50.         @shadow.angle = 180
  51.         @shadow.mirror = true
  52.         @cw = bitmap.width / 4
  53.         @ch = bitmap.height / 4
  54.         self.ox = @cw / 2
  55.         self.oy = @ch
  56.         @shadow.ox = @cw / 2
  57.         @shadow.oy = @ch / 2
  58.       end
  59.     end
  60.     # 设置可视状态
  61.     self.visible = (not @character.transparent)
  62.     @shadow.visible = (not @character.transparent)
  63.     # 图形是角色的情况下
  64.     if @tile_id == 0
  65.       # 设置传送目标的矩形
  66.       sx = @character.pattern * @cw
  67.       if $c3_总共可用的方向数 == 8
  68.         case @character.direction
  69.         when 2
  70.           sy = 0 * @ch
  71.         when 4
  72.           sy = 1 * @ch
  73.         when 6
  74.           sy = 2 * @ch
  75.         when 8
  76.           sy = 3 * @ch
  77.         when 1
  78.           sy = 4 * @ch
  79.         when 3
  80.           sy = 5 * @ch
  81.         when 7
  82.           sy = 6 * @ch
  83.         when 9
  84.           sy = 7 * @ch
  85.         end
  86.       else
  87.         sy = (@character.direction - 2) / 2 * @ch
  88.       end
  89.       self.src_rect.set(sx, sy, @cw, @ch)
  90.       @shadow.src_rect.set(sx, sy, @cw, @ch)
  91.     end
  92.     # 设置脚本的坐标
  93.     self.x = @character.screen_x
  94.     self.y = @character.screen_y
  95.     self.z = @character.screen_z(@ch)
  96.     @shadow.x = @character.screen_x
  97.     @shadow.y = @character.screen_y - 7
  98.     @shadow.z = 0
  99.     @shadow.zoom_y = 0.5
  100.     @shadow.zoom_x = 1
  101.     # 设置不透明度、合成方式、茂密
  102.     self.opacity = @character.opacity
  103.     @shadow.opacity = @character.opacity * 0.6
  104.     self.blend_type = @character.blend_type
  105.     self.bush_depth = @character.bush_depth
  106.     # 动画
  107.     if @character.animation_id != 0
  108.       animation = $data_animations[@character.animation_id]
  109.       animation(animation, true)
  110.       @character.animation_id = 0
  111.     end
  112.   end
  113. end
复制代码


能否给这个角色影子脚本加个开关
山岚野人,快人快语,礼数不周,还望海涵....

Lv2.观梦者

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
帖子
294
2
发表于 2016-7-21 14:44:20 | 只看该作者
我的话要屏蔽影子直接把99行改成if $game_switches[i]==true then @shadow.z = -999 else @shadow.z = 0 end 了/w\
我用的是va的影子脚本

点评

没有效果,语法应该是不一样的  发表于 2016-7-21 16:49
不好意思我并不是说VA的影子脚本可以在XP用,而是说我玩VA(???。/w\  发表于 2016-7-21 14:45
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
3
发表于 2016-7-21 21:44:44 | 只看该作者
本帖最后由 英顺的马甲 于 2016-7-23 12:37 编辑
  1. $original_Sprite_Character = Sprite_Character.clone
  2. class Sprite_Character < $original_Sprite_Character
  3.   SHADOW_SWITCH = 1 # <================= 开关号
  4.   def update
  5.     super
  6.     @shadow.visible = $game_switches[SHADOW_SWITCH] && [email protected]
  7.   end
  8. end
复制代码

点评

好吧,那就多谢了  发表于 2016-7-23 17:00
这就不关我的事了,这脚本不会对那些事情造成影响  发表于 2016-7-23 16:24
可以了,不过还有个小问题,进去后两个角色有影子,其他都没有了,而这两个的影子好像只有一半  发表于 2016-7-23 15:29
这下应该行了,你试试  发表于 2016-7-23 12:37
倒是没出错了,就是没效果,进去还是有影子,开关不起作用  发表于 2016-7-23 07:11

评分

参与人数 2星屑 +145 收起 理由
hys111111 + 100 认可答案
y967 + 45 塞糖

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 20:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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