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

Project1

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

[已经解决] NPC范圍內开啟D独立開關脚本的这句代表什么,好像比较特殊

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14053
在线时间
2070 小时
注册时间
2016-9-20
帖子
844
跳转到指定楼层
1
发表于 2018-5-19 16:30:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  2. # Simple Event Sensor
  3. # Version: 1.10
  4. # Author : LiTTleDRAgo
  5. #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  6. #
  7. # Instruction :
  8. #  
  9. # Set the event name to : <Sensor(RANGE)>
  10. # example :
  11. #            <Sensor4>
  12. #
  13. # If player is in event sensor range, Self switch D (default) will turned ON
  14. #
  15. #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

  16. class Game_Event < Game_Character
  17. #-----------------------------------------------------------------------
  18.   SENSOR_SELF_SWITCH = 'D'
  19. #-----------------------------------------------------------------------
  20.   alias drago64c_update update
  21.   def update
  22.     sensor_updating unless @unsensor
  23.     drago64c_update  
  24.   end

  25.   def sensor_updating
  26.     @event.name =~ /<Sensor(\d+)>/i
  27.     s = [$1.to_i,[$game_map.map_id,@id,SENSOR_SELF_SWITCH],[]]
  28.     s[2] = [(($game_player.x-self.x).abs + ($game_player.y-self.y).abs <=
  29.           s[0]), $game_self_switches[s[1]]] if s[0] > 0
  30.     return unless s[0] > 0 && s[2][0] != s[2][1]
  31.     $game_self_switches[s[1]], $game_map.need_refresh = s[2][0], true
  32.   end
  33. end
复制代码

@event.name =~ /<Sensor(\d+)>/i #这句/d+是任何數字, 那个前面=~什么意思, 还有,后面/后面的i什么意思
还有 s = [$1.to_i , ....... #$1 哪里來的變量,什么时候將/d+變成$1
内容仅供参考,

Lv5.捕梦者

梦石
0
星屑
37992
在线时间
5502 小时
注册时间
2006-11-10
帖子
6557
2
发表于 2018-5-19 16:50:03 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-5-19 16:52 编辑

这个是正则表达式,  相关帮助在F1的最后附录(不过介绍很短,想了解还是要找ruby正规教程)

~是补位 表示匹配的字符串忽略位置

i是忽略字符串大小写

$是字符串尾部位置,  $1就是获得匹配字符的最后一个单词, 因为得到的是字符串, 所以要当数字用,就要 to_i

因为这部分咱也不熟悉, 所以没办法解释太详细, 只是凭自己的运用体验说的, 等后面大佬来补充和解释比较可靠XD~~~

评分

参与人数 1星屑 -5 收起 理由
RyanBern -5 错误略多

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14053
在线时间
2070 小时
注册时间
2016-9-20
帖子
844
3
 楼主| 发表于 2018-5-19 17:29:08 | 只看该作者
灯笼菜刀王 发表于 2018-5-19 16:50
这个是正则表达式,  相关帮助在F1的最后附录(不过介绍很短,想了解还是要找ruby正规教程)

~是补位 表示匹配 ...


$1那个还是不明白怎么來

按道理應該$1 = \d+

点评

chd聚聚,我觉得你我说的不是一个意思。  发表于 2018-5-21 23:58
根据正则表达式给定条件匹配出来的结果的第一个(如果能匹配到多个,那后面还可以有$2$3等)  发表于 2018-5-21 13:54
别误导,$1 是保留的变量。表示上一次匹配中第一个group(括号里面)实际匹配到的内容,这里其实就是 \d+ 的实际内容。  发表于 2018-5-21 13:24
而且, 变量规则里, 变量也不能以数字为开头,所以 $1这个变量不成立的.  发表于 2018-5-19 17:37
别把它当变量, 它和全局变量没关系~~~就把它当做一个运算符号~ 具体解释咱也不会.... 等清楚的大佬来给你详细解释把.  发表于 2018-5-19 17:32
内容仅供参考,
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14053
在线时间
2070 小时
注册时间
2016-9-20
帖子
844
4
 楼主| 发表于 2018-5-19 21:04:17 | 只看该作者
灯笼菜刀王 发表于 2018-5-19 16:50
这个是正则表达式,  相关帮助在F1的最后附录(不过介绍很短,想了解还是要找ruby正规教程)

~是补位 表示匹配 ...

看了你貼子, 隨機數用rand(XX) 為什么得出數值相近? 还有那个利用"种子"可以生成一样的規則隨機我想知道难不难

点评

把数组塞满50个,然后随机删除10个,在从第10-30个之间随一个数出来作为一次rand的种子, 然后下一个rand在重复上次的步骤  发表于 2018-5-19 22:01
我的解决手段: 利用变量代入(sprintf, frame_count)这些变量,乱七八糟的乘上一些随机数, 然后取最后两位数, 再加上0-20的随机数,塞到一个数组里  发表于 2018-5-19 21:58
rand的原理我也不知道. 最后的解决方法就是,想办法让它在同一次调用里,引用的"种子"数值差别扩大, 同时尽量错开调用时机  发表于 2018-5-19 21:52
内容仅供参考,
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

5
发表于 2018-5-21 13:31:03 | 只看该作者
@灯笼菜刀王 你对正则表达式的理解有点问题。二楼有些解释是错的。

=~ 是匹配正则表达式的算符。语法是 str =~ regex,表示把字符串 str 和正则表达式 regex 进行匹配。这个运算是有值的,如果匹配成功(即字符串中刚好有正则表达式“指定”的格式),则返回第一个符合匹配的位置。若匹配不成功返回 nil。
在匹配的同时对匹配的一些保留变量,例如 $1 等进行赋值。
\d 表示任何数字,\d+ 表示任何数字并且出现次数至少为 1,尽量匹配长的部分。
$1 是一个内部变量,存储匹配的部分结果。它一般表示“表达式第一个括号内实际匹配到的值”。在这里第一个括号里是 (\d+),所以匹配完毕后它的值就会是 \d+ 的实际内容。

点评

还行  发表于 2018-5-24 16:00
咱就等着有能仔细说出原因的解释出来,现在咱是知道它的规则了,非常感谢  发表于 2018-5-21 13:48
嘿嘿,因为正则表达式在帮助文件里就只是一页,也没太多解释,找相关教程看了也不太理解,只知道这样拿来用,按自己的想法死记下来....  发表于 2018-5-21 13:47

评分

参与人数 1+1 收起 理由
灯笼菜刀王 + 1 精品文章

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-27 02:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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