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

Project1

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

[已经过期] 烛光脚本

[复制链接]

Lv2.观梦者

梦石
0
星屑
394
在线时间
20 小时
注册时间
2018-2-22
帖子
41
跳转到指定楼层
1
发表于 2018-3-6 20:37:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
能不能围着某物品区域性增加范围!   就是在角落摆个灯 点亮以后就那个事件范围增大光亮不在黑暗  人物依旧是<sight 100> 但是事件那能不能<sight 235> 应该怎么做?  
  1. =begin
  2. =========================================================================
  3.   ★ require Taroxd基础设置
  4.      需要将 sight_shadow.png 放入 Graphics/system 文件夹中才会生效
  5. ------------------------------------------------------------------------------
  6.     使用方法:在地图备注<sight x>,则该地图限制视野。x 为该地图的可见范围
  7.     在角色、职业、装备、状态上备注<sight x>,则可以设置 x 的视野补正
  8.     备注位置对应的获取视野补正的条件分别是:
  9.     角色:该角色在队伍中
  10.     职业:队伍中有该职业的角色。可累加
  11.     技能:队伍中有角色习得了该技能。无视生死,可累加
  12.     装备:队伍中有角色装备了该装备。可累加
  13.     状态:队伍中有角色获得了该状态。可累加
  14. =========================================================================
  15. =end

  16. RPG::Map.note_i :sight, false
  17. RPG::BaseItem.note_i :sight

  18. class Game_Map
  19.   #--------------------------------------------------------------------------
  20.   # ● 视野限制值
  21.   #--------------------------------------------------------------------------
  22.   def shadow_sight
  23.     @map.sight
  24.   end
  25. end

  26. class Game_Actor < Game_Battler
  27.   #--------------------------------------------------------------------------
  28.   # ● 视野补正值
  29.   #--------------------------------------------------------------------------
  30.   def sight_power
  31.     note_objects.sum(&:sight)
  32.   end
  33. end

  34. class Sprite_SightShadow < Sprite_Base
  35.   #--------------------------------------------------------------------------
  36.   # ● 初始化
  37.   #--------------------------------------------------------------------------
  38.   def initialize(viewport = nil)
  39.     super(viewport)
  40.     self.z = 199
  41.     self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 阴影的位图
  45.   #--------------------------------------------------------------------------
  46.   def shadow_bitmap
  47.     Cache.system('sight_shadow')
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 释放
  51.   #--------------------------------------------------------------------------
  52.   def dispose
  53.     bitmap.dispose
  54.     shadow_bitmap.dispose
  55.     super
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 更新
  59.   #--------------------------------------------------------------------------
  60.   def update
  61.     super
  62.     self.visible = $game_map.shadow_sight
  63.     return unless visible
  64.     w = $game_party.sum($game_map.shadow_sight, &:sight_power)
  65.     x = $game_player.screen_x - w / 2
  66.     y = $game_player.screen_y - w / 2 - 16
  67.     return if @last_position == [w, x, y]
  68.     @last_position = w, x, y
  69.     width, height = Graphics.width, Graphics.height
  70.     rect = Rect.new(x, y, w, w)
  71.     black = Color.new(0, 0, 0)
  72.     bitmap.clear
  73.     bitmap.stretch_blt(rect, shadow_bitmap, shadow_bitmap.rect)
  74.     bitmap.fill_rect(0, 0, width, y, black)
  75.     bitmap.fill_rect(0, y + w, width, height - y - w, black)
  76.     bitmap.fill_rect(0, y, x, w, black)
  77.     bitmap.fill_rect(x + w, y, width - x - w, w, black)
  78.   end
  79. end

  80. class Spriteset_Map
  81.   #--------------------------------------------------------------------------
  82.   # ● 初始化
  83.   #--------------------------------------------------------------------------
  84.   def_after(:initialize) { create_sight_shadow }
  85.   #--------------------------------------------------------------------------
  86.   # ● 创建阴影
  87.   #--------------------------------------------------------------------------
  88.   def create_sight_shadow
  89.     @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
  90.     update_sight_shadow
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 释放
  94.   #--------------------------------------------------------------------------
  95.   def_before(:dispose) { @sight_shadow_sprite.dispose }
  96.   #--------------------------------------------------------------------------
  97.   # ● 更新
  98.   #--------------------------------------------------------------------------
  99.   def_before(:update) { update_sight_shadow }
  100.   #--------------------------------------------------------------------------
  101.   # ● 更新视野限制
  102.   #--------------------------------------------------------------------------
  103.   def update_sight_shadow
  104.     @sight_shadow_sprite.update if @sight_shadow_sprite
  105.   end
  106. end
复制代码

Lv2.观梦者

梦石
0
星屑
319
在线时间
30 小时
注册时间
2024-6-21
帖子
25
2
发表于 2024-10-1 21:11:13 | 只看该作者
解决了吗
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
319
在线时间
30 小时
注册时间
2024-6-21
帖子
25
3
发表于 2024-10-1 23:12:20 | 只看该作者
这个前置脚本能发下吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-21 19:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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