赞 | 4 |
VIP | 211 |
好人卡 | 175 |
积分 | 7 |
经验 | 48096 |
最后登录 | 2014-1-9 |
在线时间 | 1327 小时 |
Lv2.观梦者 (?????)
- 梦石
- 0
- 星屑
- 729
- 在线时间
- 1327 小时
- 注册时间
- 2011-7-18
- 帖子
- 3184
|
本帖最后由 各种压力的猫君 于 2011-10-14 15:48 编辑
- #==============================================================================
- # ■ 使用特技后遗忘该特技
- #------------------------------------------------------------------------------
- # 插入到Game_Battler3以下
- # 注:无论是否命中均会遗忘!
- #==============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ● 应用特技效果
- # user : 特技的使用者 (battler)
- # skill : 特技
- #--------------------------------------------------------------------------
- alias old_skill_effect skill_effect
- def skill_effect(user, skill)
- # 遗忘特技
- $game_actors[user.id].forget_skill(skill.id) if user.is_a?(Game_Actor) and $game_temp.in_battle
- old_skill_effect(user, skill)
- end
- end
复制代码 主体就是这一句啦:- # 遗忘特技
- $game_actors[user.id].forget_skill(skill.id) if user.is_a?(Game_Actor) and $game_temp.in_battle
复制代码 “如果使用特技的是玩家角色而且在战斗中的话,让使用者遗忘使用的特技。”
但是这样插进去虽然方便,但是有缺点(不能判断特技是否命中)
为了判断是否命中,就要手动修改了:
Game_Battler 3 99行左右找到“● 应用特技效果”,一直往下看,直到“● 应用物品效果”上面,找到:
在这句上面插入这个就好了。
想要判断命中的话才遗忘,把这句改成这样:- $game_actors[user.id].forget_skill(skill.id) if user.is_a?(Game_Actor) and $game_temp.in_battle and hit_result == true
复制代码 “如果使用特技的是玩家角色而且在战斗中并且该特技命中的话,让使用者遗忘使用的特技。”
也就是在结尾加上“ and hit_result == true”
注意:如果是按照我给的脚本插入的话这样改是无效的,因为插入那个脚本遗忘特技是在判断命中之前的。
注意:我刚刚忘记了很重要的一段“ and $game_temp.in_battle”,
现在已经补上了。只有加了这个才是战斗中,切记切记。
那么现在还有一个问题,难道回复类的特技也要他消失掉么?那也太坑爹了吧!
所以把上面那句换成这段:- # 遗忘特技
- noforget = [1, 2, 3, 4, 5, 6]
- for i in noforget
- noforget = true if skill.id == i
- end
- $game_actors[user.id].forget_skill(skill.id) if user.is_a?(Game_Actor) and $game_temp.in_battle and hit_result == true unless noforget == true
- # 不遗忘标记设为 false
- noforget = false
复制代码 其中第2行的“1, 2, 3, 4, 5, 6”为使用后也不会遗忘的特技。 当然这个可以整合到我上面给出的脚本里,也就是这样:- #==============================================================================
- # ■ 使用特技后遗忘该特技
- #------------------------------------------------------------------------------
- # 插入到Game_Battler3以下
- #==============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ● 应用特技效果
- # user : 特技的使用者 (battler)
- # skill : 特技
- #--------------------------------------------------------------------------
- alias old_skill_effect skill_effect
- def skill_effect(user, skill)
- # 设置不会遗忘的特技编号
- noforget = [1, 2, 3, 4, 5, 6]
- for i in noforget
- noforget = true if skill.id == i
- end
- # 如果特技编号不在不会遗忘的列表中,那么遗忘特技
- $game_actors[user.id].forget_skill(skill.id) if user.is_a?(Game_Actor) and $game_temp.in_battle and hit_result == true unless noforget == true
- # 不遗忘标记设为 false
- noforget = false
- old_skill_effect(user, skill)
- end
- end
复制代码 当然这个不能判定是否命中(理由我前面说过了)
因此想要判断是否击中的话还是自己到Game_Battler 3里相应的部分(前面我也说过了)修改吧。
(完) |
|