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

Project1

 找回密码
 注册会员
搜索
查看: 2565|回复: 5

[已经解决] 如何製作困難模式,並讓敵人數據庫能力X2?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2637
在线时间
365 小时
注册时间
2015-12-8
帖子
104
发表于 2019-12-12 16:49:10 | 显示全部楼层 |阅读模式
40星屑
本帖最后由 冰冷水藍 于 2019-12-12 16:50 编辑

您好,請問各位前輩
我想在作品中劃分普通、困難兩個難度
普通難度:敵人資料庫的原始數值X1
困難難度:敵人資料庫的原始數值X2 (攻擊、防禦、精神、速度)

先前採取了用狀態BUFF的做法,但不夠完善
想請教有沒有可以用腳本可以達成的方式?
獎勵獻上,謝謝!!

最佳答案

查看完整内容

临时写的,比较粗糙,见谅。 游戏中控制难度的方法:事件脚本中写 $game_system.hard_mode = 布尔值[/pre] 布尔值可以是true 或 false,分别代表开启困难模式、关闭困难模式 可以从gif比较一下难度变化前后的伤害 #============================================================================== # ■ 困难模式 #------------------------------------------------------------------------------ # 游戏中控制难度的方法 ...

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

发表于 2019-12-12 16:49:11 | 显示全部楼层
本帖最后由 KB.Driver 于 2019-12-13 22:00 编辑

临时写的,比较粗糙,见谅。

游戏中控制难度的方法:事件脚本中写
RUBY 代码复制
  1. $game_system.hard_mode = 布尔值

布尔值可以是true 或 false,分别代表开启困难模式、关闭困难模式

可以从gif比较一下难度变化前后的伤害
11.gif


RUBY 代码复制
  1. #==============================================================================
  2. # ■ 困难模式
  3. #------------------------------------------------------------------------------
  4. # 游戏中控制难度的方法:事件脚本中写
  5. # $game_system.hard_mode = 布尔值
  6. # 布尔值可以是true 或 false,分别代表开启困难模式、关闭困难模式
  7. #==============================================================================
  8.  
  9. class Game_System
  10.   #--------------------------------------------------------------------------
  11.   # ● 常量
  12.   #--------------------------------------------------------------------------
  13.  
  14.   # 是否自动开启困难模式
  15.   DEFAULT_HARD_MODE = false
  16.  
  17.   # 困难模式下敌人各项属性的倍数
  18.   HARD_MODE_PARAMS_ZOOM = {
  19.     :maxhp => 1,
  20.     :maxmp => 1,
  21.     :atk   => 2,
  22.     :def   => 2,
  23.     :spi   => 2,
  24.     :agi   => 2,
  25.     :hit   => 1,
  26.     :eva   => 1,
  27.     :cri   => 1,
  28.   }
  29.  
  30.   # 困难模式下敌人各项属性的增加值
  31.   HARD_MODE_PARAMS_ADD = {
  32.     :maxhp => 0,
  33.     :maxmp => 0,
  34.     :atk   => 0,
  35.     :def   => 0,
  36.     :spi   => 0,
  37.     :agi   => 0,
  38.     :hit   => 0,
  39.     :eva   => 0,
  40.     :cri   => 0,
  41.   }
  42.  
  43.   #--------------------------------------------------------------------------
  44.   # ● 定义实例变量
  45.   #--------------------------------------------------------------------------
  46.   attr_accessor :hard_mode                    # 困难模式
  47.   #--------------------------------------------------------------------------
  48.   # ● [别名修改]初始化对像
  49.   #--------------------------------------------------------------------------
  50.   alias initialize_for_hard_mode initialize
  51.   def initialize
  52.     initialize_for_hard_mode
  53.     @hard_mode = DEFAULT_HARD_MODE
  54.   end
  55. end
  56.  
  57. #==============================================================================
  58. # ■ Game_Enemy
  59. #------------------------------------------------------------------------------
  60. #  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的 内部使用。
  61. #==============================================================================
  62.  
  63. class Game_Enemy
  64.   #--------------------------------------------------------------------------
  65.   # ● [追加]计算不同难度下的属性
  66.   #--------------------------------------------------------------------------
  67.   def calculate_param(param_type, param)
  68.     return param if !$game_system.hard_mode
  69.     param * Game_System::HARD_MODE_PARAMS_ZOOM[param_type] +
  70.     Game_System::HARD_MODE_PARAMS_ADD[param_type]
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● [别名修改]获取基本体力最大值
  74.   #--------------------------------------------------------------------------
  75.   alias base_maxhp_for_hard_mode base_maxhp
  76.   def base_maxhp
  77.     return calculate_param(:maxhp, base_maxhp_for_hard_mode)
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● [别名修改]获取基本魔力最大值
  81.   #--------------------------------------------------------------------------
  82.   alias base_maxmp_for_hard_mode base_maxmp
  83.   def base_maxmp
  84.     return calculate_param(:maxmp, base_maxmp_for_hard_mode)
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● [别名修改]获取基本攻击力
  88.   #--------------------------------------------------------------------------
  89.   alias base_atk_for_hard_mode base_atk
  90.   def base_atk
  91.     return calculate_param(:atk, base_atk_for_hard_mode)
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● [别名修改]获取基本防御力
  95.   #--------------------------------------------------------------------------
  96.   alias base_def_for_hard_mode base_def
  97.   def base_def
  98.     return calculate_param(:def, base_def_for_hard_mode)
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● [别名修改]获取基本精神力
  102.   #--------------------------------------------------------------------------
  103.   alias base_spi_for_hard_mode base_spi
  104.   def base_spi
  105.     return calculate_param(:spi, base_spi_for_hard_mode)
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● [别名修改]获取基本敏捷
  109.   #--------------------------------------------------------------------------
  110.   alias base_agi_for_hard_mode base_agi
  111.   def base_agi
  112.     return calculate_param(:agi, base_agi_for_hard_mode)
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● [别名修改]获取命中率
  116.   #--------------------------------------------------------------------------
  117.   alias hit_for_hard_mode hit
  118.   def hit
  119.     return calculate_param(:hit, hit_for_hard_mode)
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● [别名修改]获取闪躲率
  123.   #--------------------------------------------------------------------------
  124.   alias eva_for_hard_mode eva
  125.   def eva
  126.     return calculate_param(:eva, eva_for_hard_mode)
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● [别名修改]获取会心一击率
  130.   #--------------------------------------------------------------------------
  131.   alias cri_for_hard_mode cri
  132.   def cri
  133.     return calculate_param(:cri, cri_for_hard_mode)
  134.   end
  135. end


@冰冷水藍 写多了一份开关控制版,新建工程测试通过。
开关控制版

点评

再次感謝!!!!!  发表于 2019-12-15 11:52
我测试一下开关控制的可行性  发表于 2019-12-13 21:50
GIF很用心,非常感激><  发表于 2019-12-13 15:30
實測有效,請收下懸賞及膝蓋OTL 另外想請問,若想將布爾值直接作為1號開關可行嗎?  发表于 2019-12-13 15:30

评分

参与人数 2星屑 +300 +1 收起 理由
正太君 + 300 认可答案
冰冷水藍 + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 15:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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