Project1
标题:
问个关于技能对象的问题
[打印本页]
作者:
青梅不酸
时间:
2021-5-3 15:22
标题:
问个关于技能对象的问题
事情是这样的:我设置一个技能,可以在平时使用,效果是不遇敌,技能对象设置成了“无”,然后我想在战斗中也能使用该技能,效果为提升我方单体回避率。一言以蔽之就是如何使技能在战斗与非战斗时对象范围不一样。通过脚本应该能实现的的吧,就发帖问了,拜托~~~~~~
作者:
saiya酱
时间:
2021-5-3 18:25
不是很明白,非战斗中就算设置技能对象也可以实现不遇敌吧,也有可能是我的理解错误(
作者:
任小雪
时间:
2021-5-3 18:35
你可以将这个技能变成两个技能(阴阳两个面)
作者:
enghao_lim
时间:
2021-5-3 23:00
最好的方法就是分成两个技能,然后用脚本实现在战斗时替换技能,这样就可以区分战斗与非战斗时效果。
使用以下重定义技能脚本就可实现,例子是1号技能在战斗时会替换成80号,可以自行追加与更改。
class Game_Actor < Game_Battler
def skills
# 非战斗技能编号 => 战斗时技能编号
skillDef = {
1 => 80
}
skills = []
@skills.each{|skillId|
if $scene.is_a?(Scene_Battle) and skillDef[skillId] != nil
skills.push(skillDef[skillId])
else
skills.push(skillId)
end
}
return skills
end
end
复制代码
作者:
RPGzh500223
时间:
2021-5-4 06:54
本帖最后由 RPGzh500223 于 2021-5-4 07:06 编辑
如果是多个这种技能,使用楼上的会好点。
说明:
首先说明,并没有更改技能 战时与非战时的 的 对象范围,只是现实你描述的效果。
假设为100号特技,数据库中设置按 战时所需效果(可能使用:平时)进行设置, 可参考 056:闪避;
至于非战时使用时,不会执行 数据库 的 效果,至于技能对象“无”,就当是无需选择目标,
该技能为开关效果,用1次禁止遇敌,再用1次开启遇敌。
脚本:
脚本插入的地方——默认RMXP脚本 Scene_Skill 的 98行,注释 # 效果范围是我方的情况下 的上面。
if @skill.id == 100
$scene = Scene_Map.new
bool = $game_system.encounter_disabled
$game_system.encounter_disabled = !bool
$game_player.make_encounter_count
$game_temp.message_text = bool ? "开始遇敌" : "禁止遇敌"
$game_system.map_interpreter.instance_variable_set(
"@message_waiting", true)
$game_temp.message_proc = Proc.new { @message_waiting = false }
return
end
复制代码
作者:
青梅不酸
时间:
2021-5-4 18:32
感谢两支招,问题解决了
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1