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

Project1

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

[已经解决] 请教用“正则表达式”如何实现装备习得技能?

[复制链接]

Lv2.观梦者

梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
帖子
31
跳转到指定楼层
1
发表于 2019-4-16 21:48:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
因为没有思路所以请来提问。
可以的话请写一个范例模板参考。
大概这样

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

2
发表于 2019-4-16 23:42:06 | 只看该作者
搜索到了这个,https://rpg.blue/thread-216839-1-1.html,2010年的脚本作为参考应该是合适的
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
帖子
31
3
 楼主| 发表于 2019-4-17 20:50:07 | 只看该作者
guoxiaomi 发表于 2019-4-16 23:42
搜索到了这个,https://rpg.blue/thread-216839-1-1.html,2010年的脚本作为参考应该是合适的 ...

这个已经看过了
不是我想要的效果。
我想要的是定义在RPG::Weapon和RPG::Armor的方法
可以利用到Game_Actor里面。
再通过数据库里的备注读取是否装备带有正则的装备。
类似脚本如下:
  1. #==============================================================================
  2. # ■ State
  3. #==============================================================================
  4. module State
  5.       State_Reflect = /\<反彈傷害[ ]([\+\-]?\d+)\>/
  6. end
  7. #==============================================================================
  8. # ■ RPG::State
  9. #==============================================================================
  10. class RPG::State
  11.   #--------------------------------------------------------------------------
  12.   # * create_state_angel_cache
  13.   #--------------------------------------------------------------------------
  14.   def create_state_angel_cache
  15.     @state_reflect = 0
  16.     self.note.each_line { |line|
  17.       case line
  18.       when State::State_Reflect
  19.         @state_reflect = ($1 != nil ? $1.to_i : 0)
  20.       end
  21.         }
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # * state_reflect
  25.   #--------------------------------------------------------------------------
  26.   def state_reflect
  27.     create_state_angel_cache if @state_reflect == nil
  28.     return @state_reflect
  29.   end
  30. end
复制代码
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

4
发表于 2019-4-18 00:04:02 | 只看该作者
本帖最后由 guoxiaomi 于 2019-4-18 00:28 编辑

大概这样?
  1. module RPG
  2. class Weapon
  3.   def has_note?(regexp)
  4.     @note_cache ||= {}
  5.     if not @note_cache.keys.include?(regexp)
  6.       @note_cache[regexp] = (@note =~ regexp)
  7.     end
  8.     return @note_cache[regexp]
  9.   end
  10. end
  11. end

  12. class Game_Actor
  13.   def weapon_skill?(id)
  14.     w = $data_weapons[@weapon_id]
  15.     w.has_note?(/<s>#{id}<\/s>/)
  16.   end
  17. end
复制代码

才想起来是VX,差不多就这么写吧?

评分

参与人数 1星屑 +100 收起 理由
正太君 + 100 认可答案

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
帖子
31
5
 楼主| 发表于 2019-4-18 23:33:20 | 只看该作者
guoxiaomi 发表于 2019-4-18 00:04
大概这样?

才想起来是VX,差不多就这么写吧?

不好意思
表示我没看明白这段脚本的意思。
麻烦解释一下。
怎么样获取武器是否持有的技能?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

6
发表于 2019-4-18 23:54:11 | 只看该作者
活气寒露 发表于 2019-4-18 23:33
不好意思
表示我没看明白这段脚本的意思。
麻烦解释一下。

VX内置了@note属性,第一段是定义了方法 has_note?,其参数为正则表达式,返回此 Weapon 的数据库的note里是否能匹配此正则表达式。

第2段定义了weapon_skill?方法,匹配 <s>#{id}</s> 格式的正则表达式,返回匹配结果。

也就是说如果武器的note里含有:<s>99</s>,装备此武器的成员的方法 weapon_skill?(99) 就会返回 true
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
帖子
31
7
 楼主| 发表于 2019-4-19 20:16:10 | 只看该作者
guoxiaomi 发表于 2019-4-18 23:54
VX内置了@note属性,第一段是定义了方法 has_note?,其参数为正则表达式,返回此 Weapon 的数据库的note ...

好的,大致明白了,谢谢你耐心的指导

点评

应该简化一些你的写法,有些词汇是可以代替的,比如not  发表于 2019-4-20 20:26
不过我这里还是不太好,应该允许返回匹配的部分内容,而且没有必要缓存结果,总之大致思路就是这样吧?  发表于 2019-4-20 00:08
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 09:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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