| 赞 | 3 |
| VIP | |
| 好人卡 | |
| 积分 | 22 |
| 经验 | |
| 最后登录 | 2025-7-3 |
| 在线时间 | 1015 小时 |
- 梦石
- 0
- 星屑
- 2245
- 在线时间
- 1015 小时
- 注册时间
- 2015-10-17
- 回帖
- 1077
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 fjm 于 2017-4-15 13:45 编辑
我依样画葫芦,自己尝试新增两个状态,弄了半个多小时,结果老是报错,只能又来请教了
想再增加两个后缀,一个是(将军) 出现率10% ,HP2倍,其他属性1.4倍,掉落4倍,经验4倍,金钱4倍
一个是(战神) 出现率10% ,HP2倍,其他属性1.5倍,掉落5倍,经验5倍,金钱5倍
[pre lang="ruby"]=begin
# 精英敌人,作者:66RPG的tan12345
# 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
# 当然了,精英怪的经验、金钱、掉落率也同样有加成。
# 也可以设定指定的敌人不会变成精英(比如BOSS)
#
# 使用方法:将脚本插入到main上
#
=end
module Tan_by_enemy_set
#精英怪出现几率,30代表30%
Tan_enemy_by = 20
#Tan_enemy_by_num = 2 2倍属性
#~ Tan_enemy_by_egold = 3 3倍金钱
#~ Tan_enemy_by_eexp = 3 3倍经验
#~ Tan_enemy_by_edrop = 3 3倍掉落率
Tan_enemy_by_emhp = 2
Tan_enemy_by_num = 1.1
Tan_enemy_by_egold = 2
Tan_enemy_by_eexp = 2
Tan_enemy_by_edrop = 2
#不会成为精英的敌人
NO_BY_ENEMY = [2,3]#表示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_eexp if is_by?
return v.to_i
end
#--------------------------------------------------------------------------
# ● 获取hp
#--------------------------------------------------------------------------
alias tan_by_enemy_mhp mhp
def mhp
v = tan_by_enemy_mhp
v *= Tan_by_enemy_set::Tan_enemy_by_emhp 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_egold 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_edrop if is_by?
return v
end
end
module Tan_by_enemy_set
Boss_by = 15 #Boss出现几率
Boss_hp = 2
Boss_num = 1.2
Boss_gold = 2.5
Boss_exp = 2.5
Boss_drop = 2.5
NO_BOSS = [2,3]#不会成为BOSS的敌人
BB_by = 10 #Boss+精英出现几率
BB_hp = 2
BB_num = 1.3
BB_gold = 3
BB_exp = 3
BB_drop = 3
end
class Game_Enemy < Game_Battler
attr_reader :is_by_boss # 是否boss
attr_reader :is_bb # 是否boss+精英
def init_by_enemy
@is_by = false
@is_by_boss = false
@is_bb = false
@is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
@is_by_boss = true if rand(100)+100 <= Tan_by_enemy_set::Boss_by+100 && !Tan_by_enemy_set::NO_BOSS.include?(enemy_id)
@is_bb = true if rand(100)+200 <= Tan_by_enemy_set::BB_by+200 && !Tan_by_enemy_set::NO_BOSS.include?(enemy_id) && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
@is_by = false if @is_by_boss == true || @is_bb == true
@is_by_boss = false if @is_by == true || @is_bb == true
@is_bb = false if @is_by == true || @is_by_boss == true
@original_name = @original_name + "(精英)" if @is_by == true
@original_name = @original_name + "(boss)" if @is_by_boss == true
@original_name = @original_name + "(boss+精英)" if @is_bb == true
@hp = mhp
@mp = mmp
end
def is_by_boss?
return true if @is_by_boss
return false
end
def is_bb?
return true if @is_bb
return false
end
alias boss_param_base param_base
def param_base(param_id)
v = boss_param_base(param_id)
v *= Tan_by_enemy_set::Boss_num if is_by_boss?
v *= Tan_by_enemy_set::BB_num if is_bb?
return v.to_i
end
alias boss_exp exp
def exp
v = boss_exp
v *= Tan_by_enemy_set::Boss_exp if is_by_boss?
v *= Tan_by_enemy_set::BB_exp if is_bb?
return v.to_i
end
alias boss_mhp mhp
def mhp
v = boss_mhp
v *= Tan_by_enemy_set::Boss_hp if is_by_boss?
v *= Tan_by_enemy_set::BB_hp if is_bb?
return v.to_i
end
alias boss_gold gold
def gold
v = boss_gold
v *= Tan_by_enemy_set::Boss_gold if is_by_boss?
v *= Tan_by_enemy_set::BB_gold if is_bb?
return v.to_i
end
alias boss_drop_item_rate drop_item_rate
def drop_item_rate
v = boss_drop_item_rate
v *= Tan_by_enemy_set::Boss_drop if is_by_boss?
v *= Tan_by_enemy_set::BB_drop if is_bb?
return v
end
end[/pre] |
|