| 赞 | 402 |
| VIP | |
| 好人卡 | |
| 积分 | 251 |
| 经验 | |
| 最后登录 | 2024-7-2 |
| 在线时间 | 3339 小时 |
- 梦石
- 1
- 星屑
- 24088
- 在线时间
- 3339 小时
- 注册时间
- 2011-7-8
- 回帖
- 3862

|
发表于 2014-12-24 14:17:53
|
显示全部楼层
本帖最后由 guoxiaomi 于 2014-12-25 20:18 编辑
第二个问题我可以回答,最近正好在研究这个。
immortal出现在这里:- #--------------------------------------------------------------------------
- # ● 战斗不能判定
- #--------------------------------------------------------------------------
- def dead?
- return (@hp == 0 and not @immortal)
- end
- #--------------------------------------------------------------------------
- # ● 存在判定
- #--------------------------------------------------------------------------
- def exist?
- return (not [url=home.php?mod=space&uid=292300]@Hidden[/url] and (@hp > 0 or @immortal))
- end
复制代码 所以如果设置角色或敌人的immortal为true的话,生命值为0的时候是不会附加上“战斗不能”状态的。并且以HP0目标为对象的及技能和物品不能对immortal的角色或敌人使用,相反,正常的技能、物品可以对immortal的角色或敌人使用。
current_action是class Game_BattleAction下的对象,用来记录每回合各角色的行动。下面有7个实例变量:- #--------------------------------------------------------------------------
- # ● 定义实例变量
- #--------------------------------------------------------------------------
- attr_accessor :speed # 速度
- attr_accessor :kind # 种类 (基本 / 特技 / 物品)
- attr_accessor :basic # 基本 (攻击 / 防御 / 逃跑)
- attr_accessor :skill_id # 特技 ID
- attr_accessor :item_id # 物品 ID
- attr_accessor :target_index # 对像索引
- attr_accessor :forcing # 强制标志
复制代码 speed是用来决定动作的先后;
kind(0,1,2)是决定动作类型,kind=0要设置basic的值,=1要设置skill_id的值,=2要设置item_id的值。
target_index是一个数,决定了技能或物品的目标对象。要是对象是“全体XX”或使用者就不需要设置。
forcing是强制标志,forcing为false的时候,如果技能没学习或者物品不存在,这个action是不会生效的。
至少有一个作用是在物品/技能的公共事件里加上如下代码:- if rand(100) < 25
- @a = $scene.active_battler
- @action = @a.current_action
- @action.kind = 2
- @action.item_id = 34
- $game_temp.forcing_battler = @a
- end
复制代码 那么在技能/物品释放完毕后,有25%的概率立即使用34号物品,我的工程里34号物品对象是“使用者”,所以没有设置target_index
请在战斗中测试,并自行设置[pre lang="ruby" line="1"]class Scene_Battle
attr_reader :active_battler
end[/pre]
|
评分
-
查看全部评分
|