| 赞 | 274 |
| VIP | |
| 好人卡 | |
| 积分 | 496 |
| 经验 | |
| 最后登录 | 2024-6-21 |
| 在线时间 | 1919 小时 |
- 梦石
- 10
- 星屑
- 39550
- 在线时间
- 1919 小时
- 注册时间
- 2010-11-14
- 回帖
- 3214

|
发表于 2019-12-12 16:49:11
|
显示全部楼层
本帖最后由 KB.Driver 于 2019-12-13 22:00 编辑
临时写的,比较粗糙,见谅。
游戏中控制难度的方法:事件脚本中写
[pre lang="ruby"]$game_system.hard_mode = 布尔值[/pre]
布尔值可以是true 或 false,分别代表开启困难模式、关闭困难模式
可以从gif比较一下难度变化前后的伤害
[pre lang="ruby"]#==============================================================================
# ■ 困难模式
#------------------------------------------------------------------------------
# 游戏中控制难度的方法:事件脚本中写
# $game_system.hard_mode = 布尔值
# 布尔值可以是true 或 false,分别代表开启困难模式、关闭困难模式
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 常量
#--------------------------------------------------------------------------
# 是否自动开启困难模式
DEFAULT_HARD_MODE = false
# 困难模式下敌人各项属性的倍数
HARD_MODE_PARAMS_ZOOM = {
:maxhp => 1,
:maxmp => 1,
:atk => 2,
:def => 2,
:spi => 2,
:agi => 2,
:hit => 1,
:eva => 1,
:cri => 1,
}
# 困难模式下敌人各项属性的增加值
HARD_MODE_PARAMS_ADD = {
:maxhp => 0,
:maxmp => 0,
:atk => 0,
:def => 0,
:spi => 0,
:agi => 0,
:hit => 0,
:eva => 0,
:cri => 0,
}
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :hard_mode # 困难模式
#--------------------------------------------------------------------------
# ● [别名修改]初始化对像
#--------------------------------------------------------------------------
alias initialize_for_hard_mode initialize
def initialize
initialize_for_hard_mode
@hard_mode = DEFAULT_HARD_MODE
end
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的 内部使用。
#==============================================================================
class Game_Enemy
#--------------------------------------------------------------------------
# ● [追加]计算不同难度下的属性
#--------------------------------------------------------------------------
def calculate_param(param_type, param)
return param if !$game_system.hard_mode
param * Game_System::HARD_MODE_PARAMS_ZOOM[param_type] +
Game_System::HARD_MODE_PARAMS_ADD[param_type]
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本体力最大值
#--------------------------------------------------------------------------
alias base_maxhp_for_hard_mode base_maxhp
def base_maxhp
return calculate_param(:maxhp, base_maxhp_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本魔力最大值
#--------------------------------------------------------------------------
alias base_maxmp_for_hard_mode base_maxmp
def base_maxmp
return calculate_param(:maxmp, base_maxmp_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本攻击力
#--------------------------------------------------------------------------
alias base_atk_for_hard_mode base_atk
def base_atk
return calculate_param(:atk, base_atk_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本防御力
#--------------------------------------------------------------------------
alias base_def_for_hard_mode base_def
def base_def
return calculate_param(:def, base_def_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本精神力
#--------------------------------------------------------------------------
alias base_spi_for_hard_mode base_spi
def base_spi
return calculate_param(:spi, base_spi_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本敏捷
#--------------------------------------------------------------------------
alias base_agi_for_hard_mode base_agi
def base_agi
return calculate_param(:agi, base_agi_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取命中率
#--------------------------------------------------------------------------
alias hit_for_hard_mode hit
def hit
return calculate_param(:hit, hit_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取闪躲率
#--------------------------------------------------------------------------
alias eva_for_hard_mode eva
def eva
return calculate_param(:eva, eva_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取会心一击率
#--------------------------------------------------------------------------
alias cri_for_hard_mode cri
def cri
return calculate_param(:cri, cri_for_hard_mode)
end
end[/pre]
@冰冷水藍 写多了一份开关控制版,新建工程测试通过。
开关控制版
[pre lang="ruby"]#==============================================================================
# ■ 困难模式
#------------------------------------------------------------------------------
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 常量
#--------------------------------------------------------------------------
# 用于控制困难模式的开关
# -1 永远关闭 0 永远开启 正整数 对应开关编号
HARD_MODE_SWITCH_ID = 101
# 上面的开关无法读取时,是否自动开启困难模式
DEFAULT_HARD_MODE = false
# 困难模式下敌人各项属性的倍数
HARD_MODE_PARAMS_ZOOM = {
:maxhp => 1,
:maxmp => 1,
:atk => 2,
:def => 2,
:spi => 2,
:agi => 2,
:hit => 1,
:eva => 1,
:cri => 1,
}
# 困难模式下敌人各项属性的增加值
HARD_MODE_PARAMS_ADD = {
:maxhp => 0,
:maxmp => 0,
:atk => 0,
:def => 0,
:spi => 0,
:agi => 0,
:hit => 0,
:eva => 0,
:cri => 0,
}
#--------------------------------------------------------------------------
# ● [追加]是否为困难模式
#--------------------------------------------------------------------------
def hard_mode?
case id = HARD_MODE_SWITCH_ID
when -1 then false
when 0 then true
else
$game_switches[id] rescue DEFAULT_HARD_MODE
end
end
alias hard_mode hard_mode?
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的 内部使用。
#==============================================================================
class Game_Enemy
#--------------------------------------------------------------------------
# ● [追加]计算不同难度下的属性
#--------------------------------------------------------------------------
def calculate_param(param_type, param)
return param if !$game_system.hard_mode?
param * Game_System::HARD_MODE_PARAMS_ZOOM[param_type] +
Game_System::HARD_MODE_PARAMS_ADD[param_type]
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本体力最大值
#--------------------------------------------------------------------------
alias base_maxhp_for_hard_mode base_maxhp
def base_maxhp
return calculate_param(:maxhp, base_maxhp_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本魔力最大值
#--------------------------------------------------------------------------
alias base_maxmp_for_hard_mode base_maxmp
def base_maxmp
return calculate_param(:maxmp, base_maxmp_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本攻击力
#--------------------------------------------------------------------------
alias base_atk_for_hard_mode base_atk
def base_atk
return calculate_param(:atk, base_atk_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本防御力
#--------------------------------------------------------------------------
alias base_def_for_hard_mode base_def
def base_def
return calculate_param(:def, base_def_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本精神力
#--------------------------------------------------------------------------
alias base_spi_for_hard_mode base_spi
def base_spi
return calculate_param(:spi, base_spi_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取基本敏捷
#--------------------------------------------------------------------------
alias base_agi_for_hard_mode base_agi
def base_agi
return calculate_param(:agi, base_agi_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取命中率
#--------------------------------------------------------------------------
alias hit_for_hard_mode hit
def hit
return calculate_param(:hit, hit_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取闪躲率
#--------------------------------------------------------------------------
alias eva_for_hard_mode eva
def eva
return calculate_param(:eva, eva_for_hard_mode)
end
#--------------------------------------------------------------------------
# ● [别名修改]获取会心一击率
#--------------------------------------------------------------------------
alias cri_for_hard_mode cri
def cri
return calculate_param(:cri, cri_for_hard_mode)
end
end[/pre]
|
评分
-
查看全部评分
|