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

Project1

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

[已经解决] 精英怪脚本的后缀怎么读取敌人备注来命名 -[已解决]

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2816
在线时间
627 小时
注册时间
2018-8-8
帖子
15
跳转到指定楼层
1
发表于 2021-10-26 16:46:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 [email protected] 于 2021-10-26 20:55 编辑

RUBY 代码复制
  1. =begin
  2. # 精英敌人,作者:66RPG的tan12345
  3. # 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
  4. #       当然了,精英怪的经验、金钱、掉落率也同样有加成。
  5. #       也可以设定指定的敌人不会变成精英(比如BOSS)
  6. #
  7. # 使用方法:将脚本插入到main上
  8. #
  9. =end
  10.  
  11. module Tan_by_enemy_set
  12.   #精英怪出现几率,30代表30%
  13.   Tan_enemy_by = 30
  14.   #精英怪属性加成比例(同时也是经验、金钱、掉落率加成比例),1.3代表属性是普通怪的1.3倍
  15.   Tan_enemy_by_num = 1.3
  16.   #不会成为精英的敌人
  17.   NO_BY_ENEMY = [4,5]#表示2号和3号敌人不会变成精英,适合设定BOSS
  18. end
  19. class Game_Enemy < Game_Battler
  20.  
  21.   attr_reader   :is_by  # 是否精英
  22.  
  23.   #--------------------------------------------------------------------------
  24.   # ● 精英初始化
  25.   #--------------------------------------------------------------------------
  26.   def init_by_enemy
  27.     @is_by = false
  28.     @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
  29.     @original_name = @original_name + "(精英)" if @is_by == true
  30.     @hp = mhp
  31.     @mp = mmp
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 是否精英
  35.   #--------------------------------------------------------------------------
  36.   def is_by?
  37.     return true if @is_by
  38.     return false
  39.   end
  40.  
  41.   #--------------------------------------------------------------------------
  42.   # ● 初始化对象
  43.   #--------------------------------------------------------------------------
  44.   alias tan_by_enemy_initialize initialize
  45.   def initialize(index, enemy_id)
  46.     tan_by_enemy_initialize(index, enemy_id)
  47.     init_by_enemy
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 获取普通能力的基础值
  51.   #--------------------------------------------------------------------------
  52.   alias tan_by_enemy_param_base param_base
  53.   def param_base(param_id)
  54.     v = tan_by_enemy_param_base(param_id)
  55.     v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
  56.     return v.to_i
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 获取经验值
  60.   #--------------------------------------------------------------------------
  61.   alias tan_by_enemy_exp exp
  62.   def exp
  63.     v = tan_by_enemy_exp
  64.     v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
  65.     return v.to_i
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 获取金钱
  69.   #--------------------------------------------------------------------------
  70.   alias tan_by_enemy_gold gold
  71.   def gold
  72.     v = tan_by_enemy_gold
  73.     v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
  74.     return v.to_i
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 获取物品掉率的倍率
  78.   #--------------------------------------------------------------------------
  79.   alias tan_by_enemy_drop_item_rate drop_item_rate
  80.   def drop_item_rate
  81.     v = tan_by_enemy_drop_item_rate
  82.     v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
  83.     return v
  84.   end
  85. end

精英怪后缀如何显示为敌人备注栏文字

Lv5.捕梦者

梦石
0
星屑
24459
在线时间
5072 小时
注册时间
2016-3-8
帖子
1623
2
发表于 2021-10-26 17:15:41 | 只看该作者
本帖最后由 alexncf125 于 2021-10-26 20:55 编辑

第29行
@original_name = @original_name + "(精英)" if @is_by == true
改成
if enemy.note =~ /<精英后缀:(.*)>/
  enemy.note.scan(/<精英后缀:(.*)>/){|matched|
    @original_name = @original_name + matched[0] if @is_by == true
  }
else
  @original_name = @original_name + "(精英)" if @is_by == true
end

应该有更好更简洁的写法, 不过那得等大神来了

评分

参与人数 1+1 收起 理由
[email protected] + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2816
在线时间
627 小时
注册时间
2018-8-8
帖子
15
3
 楼主| 发表于 2021-10-26 20:39:20 | 只看该作者
alexncf125 发表于 2021-10-26 17:15
第29行
@original_name = @original_name + "(精英)" if @is_by == true
改成

感谢,完美测试,不过有个正则等于好像写反了,再次感谢!

点评

写反了写反了, 233333  发表于 2021-10-26 20:55
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 06:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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