查看: 2776|回复: 10

[已经解决] 精英敌人只能显示一种后缀吗?

[复制链接]
梦石
0
星屑
1555
在线时间
241 小时
注册时间
2017-11-11
回帖
26
发表于 2018-1-16 16:41:32 | 显示全部楼层 |阅读模式

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

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

×
脚本=begin
# 精英敌人,作者:66RPG的tan12345
# 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
#       当然了,精英怪的经验、金钱、掉落率也同样有加成。
#       也可以设定指定的敌人不会变成精英(比如BOSS)
#
# 使用方法:将脚本插入到main上
#
=end

module Tan_by_enemy_set
  #精英怪出现几率,30代表30%
  Tan_enemy_by = 30
  #精英怪属性加成比例(同时也是经验、金钱、掉落率加成比例),1.3代表属性是普通怪的1.3倍
  Tan_enemy_by_num = 1.3
  #不会成为精英的敌人
  NO_BY_ENEMY = [4,5]#表示2号和3号敌人不会变成精英,适合设定BOSS
end
class Game_Enemy < Game_Battler
  
  attr_reader   :is_by  # 是否精英
  
  #--------------------------------------------------------------------------
  # ● 精英初始化
  #--------------------------------------------------------------------------
  def init_by_enemy
    @is_by = false
    @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
    @original_name = @original_name + "(精英)" if @is_by == true
    @hp = mhp
    @mp = mmp
  end
  #--------------------------------------------------------------------------
  # ● 是否精英
  #--------------------------------------------------------------------------
  def is_by?
    return true if @is_by
    return false
  end
  
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias tan_by_enemy_initialize initialize
  def initialize(index, enemy_id)
    tan_by_enemy_initialize(index, enemy_id)
    init_by_enemy
  end
  #--------------------------------------------------------------------------
  # ● 获取普通能力的基础值
  #--------------------------------------------------------------------------
  alias tan_by_enemy_param_base param_base
  def param_base(param_id)
    v = tan_by_enemy_param_base(param_id)
    v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
    return v.to_i
  end
  #--------------------------------------------------------------------------
  # ● 获取经验值
  #--------------------------------------------------------------------------
  alias tan_by_enemy_exp exp
  def exp
    v = tan_by_enemy_exp
    v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
    return v.to_i
  end
  #--------------------------------------------------------------------------
  # ● 获取金钱
  #--------------------------------------------------------------------------
  alias tan_by_enemy_gold gold
  def gold
    v = tan_by_enemy_gold
    v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
    return v.to_i
  end
  #--------------------------------------------------------------------------
  # ● 获取物品掉率的倍率
  #--------------------------------------------------------------------------
  alias tan_by_enemy_drop_item_rate drop_item_rate
  def drop_item_rate
    v = tan_by_enemy_drop_item_rate
    v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
    return v
  end
end
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2018-1-16 17:32:12 | 显示全部楼层
@original_name = @original_name + "(精英)" if @is_by == true

这个?
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2018-1-16 17:40:21 | 显示全部楼层
  1. @original_name = @original_name + "(精英)" if @is_by == true
复制代码

這一句改你自己要的後綴
具體要什麼後綴你需要自己改具體的條件
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
1555
在线时间
241 小时
注册时间
2017-11-11
回帖
26
 楼主| 发表于 2018-1-16 17:59:41 来自手机 | 显示全部楼层
chd114 发表于 2018-1-16 17:40
這一句改你自己要的後綴
具體要什麼後綴你需要自己改具體的條件

额、我刚试了加多一句、就跟你的一样、但是不行、我的意思是想、有显示精英的、或者我加多一种领主的、2种后缀
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2018-1-16 18:14:04 | 显示全部楼层
q1140038 发表于 2018-1-16 17:59
额、我刚试了加多一句、就跟你的一样、但是不行、我的意思是想、有显示精英的、或者我加多一种领主的、2 ...

那改起來有點麻煩(但是不難)
你會一點腳本就能自己參照着精英的部分自己加新條件
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2018-1-16 18:33:48 | 显示全部楼层
q1140038 发表于 2018-1-16 17:59
额、我刚试了加多一句、就跟你的一样、但是不行、我的意思是想、有显示精英的、或者我加多一种领主的、2 ...

只是显示不同就随机显示其中一种好了..
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2018-1-16 20:00:45 | 显示全部楼层
找到这句
  1. @original_name = @original_name + "(精英)" if @is_by == true
复制代码

改成这样
  1. @original_name = @original_name + ["(精英)","(领主)"].sample if @is_by == true
复制代码
回复

使用道具 举报

梦石
0
星屑
1555
在线时间
241 小时
注册时间
2017-11-11
回帖
26
 楼主| 发表于 2018-1-16 20:52:29 来自手机 | 显示全部楼层
喵呜喵5 发表于 2018-1-16 20:00
找到这句

改成这样

ok了、感谢喵神、
回复

使用道具 举报

梦石
0
星屑
1555
在线时间
241 小时
注册时间
2017-11-11
回帖
26
 楼主| 发表于 2018-1-16 20:53:33 来自手机 | 显示全部楼层
话说、解决后的问题怎么设置“已经解决”……

点评

at對應區的版主或者更上面的超版  发表于 2018-1-17 13:41
我也想知道 困扰了好几天了  发表于 2018-1-17 13:28
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部