Project1

标题: 偶尔发现的 [打印本页]

作者: timiesea    时间: 2013-11-17 13:54
标题: 偶尔发现的
本帖最后由 timiesea 于 2013-11-17 14:00 编辑

在进入战斗后,如何判断当前伤害输出的单位是敌是友?

关于这一点,我偶然间找到了方法:

在class Game_Battler类的make_damage_value函数中有2个参数,分别是user和item。user代表的是伤害输出的单位,item代表的是伤害输出方式。

我们在这个函数加上一句:p user

然后进入战斗测试:



看见区别没?看见区别没?

有一个公共的而又不同的属性。没错,就是battle_name(或许还有其他的吧)

敌人有battle_name而队友没有。当然,这个是建立在不改变战斗系统的前提下,那么判断敌我就非常简单了

if user.battler_name == ""
     队友
     发挥想象力吧!队友该干嘛
end

或许还有其他的判断方式吧。欢迎大家展开联想。
作者: 天地有正气    时间: 2013-11-17 14:08
多谢楼主!
作者: 无脑之人    时间: 2013-11-17 14:42
难道不是应该判定class么………………
作者: timiesea    时间: 2013-11-17 14:45
无脑之人 发表于 2013-11-17 14:42
难道不是应该判定class么………………

据我测试,的确不是判定class。
作者: chd114    时间: 2013-11-17 15:26
队友应该当奶水用的奶妈···感觉从这方面来看的话还是XP好用···里面的user是使用者,self是受到效果者
作者: 芯☆淡茹水    时间: 2013-11-18 08:43
本帖最后由 芯☆淡茹水 于 2013-11-18 08:49 编辑

直接:
if user.is_a?(Game_Actor)   # 判断是角色
if user.is_a?(Game_Enemy)  # 判断是敌人

地球人都知道。 LZ 走弯路了。
作者: dukesward    时间: 2013-11-18 10:55
那是因为默认只有敌人有战斗图的缘故,如果是横版战斗就难说了。既然是判断对象的类,当然用类来判断,何必用变量来判断呢
作者: LBQ    时间: 2013-11-18 13:12
看着楼主这种激动的状态,我突然觉得我在看一个学生发现了1+1=2的真谛一般。。。
作者: 晴兰    时间: 2013-11-19 06:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: timiesea    时间: 2013-11-19 11:18
晴兰 发表于 2013-11-19 06:11
如果记不住is_a? kind_of? === class没关系。。
你可以case user
  when Game_Actor

inspect是输出到哪里呢?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1