查看: 2638|回复: 6

[已经解决] 如何在战斗中给敌人的能力值增加附加值呢?

[复制链接]

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-10-17 13:33:21 | 显示全部楼层 |阅读模式

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

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

×
距离上次提问真是间隔挺久了呢

于是我回来活跃一下提问区了!

基本问题就是如题所示,在敌群中执行事件增减敌人的能力值。

尽管可以通过状态增减,但是不大符合制作的需要。

因为这样的效果会运用到几乎所有敌人上,主要用于制作出“能力值随机浮动”的敌人。

$game_troop.members[0].mhp += rand(10000)
$game_troop.members[0].hp == mhp

是否有类似↑这样方便的句子能写出效果呢?

点评

……敌群事件可不可以强制使用技能……如果可以的话就好办了……  发表于 2014-10-17 15:40

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-10-17 15:25:41 | 显示全部楼层
本帖最后由 taroxd 于 2014-10-17 15:27 编辑

可以。在 Game_Enemy 定义一个 mhp= 方法,直接修改数据库的值(不存档)

如果不希望直接修改数据库的话,那么就利用一个实例变量吧

点评

这个方法怎么定义呢,能否麻烦举个栗子 _(:з」∠)_  发表于 2014-10-18 21:06
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-10-18 21:19:38 | 显示全部楼层
随手瞎写,只是提供思路

[pre lang="ruby" line="1"]class Game_Enemy
  def mhp=(mhp)
    @assigned_mhp = mhp
  end

  alias mhp_from_database mhp
  def mhp
    @assigned_mhp || mhp_from_database
  end
end[/pre]

点评

XD触泥这举例我都没理解啥意思诶……我是不是没救了……_(:з」∠)_  发表于 2014-10-18 23:35

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

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

开拓者

发表于 2014-10-18 22:12:23 | 显示全部楼层
制作出“能力值随机浮动”的敌人?那直接在战斗开始的时候加判断呗···XP以前也有人问这样的问题,就是这样解决了···

点评

方法放楼下了,但是有缺陷  发表于 2014-10-18 22:22
有这么轻松就好了……  发表于 2014-10-18 22:18
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

开拓者

发表于 2014-10-18 22:20:59 | 显示全部楼层
Game_Troop

的
  1.   #--------------------------------------------------------------------------
  2.   # ● 设置
  3.   #--------------------------------------------------------------------------
  4.   def setup(troop_id)
  5.     clear
  6.     @troop_id = troop_id
  7.     @enemies = []
  8.     troop.members.each do |member|
  9.       next unless $data_enemies[member.enemy_id]
  10.       enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
  11.       enemy.hide if member.hidden
  12.       enemy.screen_x = member.x
  13.       enemy.screen_y = member.y
  14.       @enemies.push(enemy)
  15.     end
  16.     init_screen_tone
  17.     make_unique_names
  18.   end
复制代码
在
  1. init_screen_tone
复制代码
的上面加一段
  1.     for i in 0...@enemies.size
  2.       @enemies[i].hp*=1.25
  3.     end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

开拓者

发表于 2014-10-18 22:21:58 | 显示全部楼层
本帖最后由 chd114 于 2014-10-18 05:28 编辑
chd114 发表于 2014-10-18 05:20
Game_Troop

的在的上面加一段


但是有个缺陷,这样处理不能让敌人的HP超过数据库里设置的数,比如数据库里的敌人MHP设置的是1000,那么随机的HP不能超过1000

因为在这处理读取不到mhp

点评

我就是用默认试的···你要传工程的话←_←  发表于 2014-10-19 14:49
只是默认系统达不到……  发表于 2014-10-19 14:36
如果你要让随即能力的敌人的HP超过MHP效果目测是达不到···  发表于 2014-10-19 09:23
这还达不到我需要的效果呢……  发表于 2014-10-18 23:34
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
 楼主| 发表于 2014-10-20 00:02:48 | 显示全部楼层
得到高人教诲,已经达到了需要的理想效果~

麻烦结贴~  @taroxd @VIPArcher  
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部