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

Project1

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

[转载发布] [AI生成]事件增大触发范围

[复制链接]

Lv2.观梦者

梦石
0
星屑
382
在线时间
41 小时
注册时间
2019-4-14
帖子
13
跳转到指定楼层
1
发表于 2023-4-22 13:49:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 muffethb 于 2023-4-22 14:00 编辑

)搜了半天没找到这样的脚本于是让chatgpt生了一个比较简单的,总之打算分享给xdm用,不出意外的话应该是没啥bug了(,,)
以及下面的<rpgm_trigger_range: 2>的效果展示(图片的黑边是录制问题。。懒得修了反正就这么看吧
RUBY 代码复制
  1. #==============================================================================
  2. # ** 事件触发范围脚本
  3. #------------------------------------------------------------------------------
  4. # 该脚本可以给事件定义一个可调整的触发范围,如果玩家进入该范围,
  5. # 则打开该事件的独立开关D。
  6. #
  7. # 使用方法:
  8. # 在事件页的注释栏中输入:
  9. # <rpgm_trigger_range: range>
  10. # 其中 range 为触发范围,可以为任意正整数,代表以该事件为中心的正方形边长。
  11. # 如果不输入该注释,则默认触发范围为0(仅事件本格)。
  12.  
  13. #
  14. # By ChatGPT/润色 Smallgeeser
  15. #==============================================================================
  16.  
  17. class Game_Event < Game_Character
  18.   #--------------------------------------------------------------------------
  19.   # ● 定义常量
  20.   #--------------------------------------------------------------------------
  21.   TRIGGER_RANGE_REGEX = /<rpgm_trigger_range:\s*(\d+)\s*>/i
  22.   #--------------------------------------------------------------------------
  23.   # ● 初始化对象
  24.   #--------------------------------------------------------------------------
  25.   alias rpgm_trigger_range_initialize initialize
  26.   def initialize(map_id, event)
  27.     rpgm_trigger_range_initialize(map_id, event)
  28.     @trigger_range = 0 # 默认触发范围为0
  29.     set_trigger_range_from_comment # 从事件页注释中获取触发范围
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 获取触发范围
  33.   #--------------------------------------------------------------------------
  34.   def trigger_range
  35.     return @trigger_range
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 更新事件
  39.   #--------------------------------------------------------------------------
  40.   alias rpgm_trigger_range_update update
  41.   def update
  42.     rpgm_trigger_range_update
  43.     if @trigger_range >= 1 # 只有触发范围大于等于1的事件才需要检测玩家位置
  44.       check_player_position # 检测玩家位置是否在触发范围内
  45.     else
  46.     end
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 检测玩家位置是否在触发范围内
  50.   #--------------------------------------------------------------------------
  51. #--------------------------------------------------------------------------
  52.   def check_player_position
  53.     sx = [self.x - @trigger_range, 0].max
  54.     sy = [self.y - @trigger_range, 0].max
  55.     ex = [self.x + @trigger_range, $game_map.width - 1].min
  56.     ey = [self.y + @trigger_range, $game_map.height - 1].min
  57.     for x in sx..ex
  58.       for y in sy..ey
  59.         if $game_player.pos?(x, y)
  60.           $game_self_switches[[@map_id, @id, "D"]] = true # 玩家位置在触发范围内,打开独立开关D
  61.           return
  62.         end
  63.       end
  64.     end
  65.     $game_self_switches[[@map_id, @id, "D"]] = false # 玩家位置离开触发范围,关闭独立开关D
  66.   end
  67. #--------------------------------------------------------------------------
  68.   #--------------------------------------------------------------------------
  69.   # ● 从注释中设置触发范围
  70.   #--------------------------------------------------------------------------
  71. def set_trigger_range_from_comment
  72.   if @list != nil && @list[0] != nil # 如果 @list 不为空且第一个命令不为空
  73.     if @list[0].code == 108 || @list[0].code == 408 # 只检测第一个注释
  74.       comment = @list[0].parameters[0]
  75.       match = TRIGGER_RANGE_REGEX.match(comment)
  76.       if match != nil
  77.         @trigger_range = match[1].to_i
  78.       end
  79.     end
  80.   end
  81. end
  82. end

ceshi.gif (755.46 KB, 下载次数: 7)

测试

测试

评分

参与人数 1+1 收起 理由
alexncf125 + 1 我可以说现成的脚本早有一二个了嘛23333333.

查看全部评分

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

本版积分规则

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

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

GMT+8, 2024-5-2 01:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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