Project1
标题:
如何禁止某个角色使用技能?
[打印本页]
作者:
351323331
时间:
2013-3-14 13:01
标题:
如何禁止某个角色使用技能?
本帖最后由 351323331 于 2013-3-16 15:17 编辑
例如,角色2为战士,我想在该角色战斗时特技选项为灰色并且不能使用(其他角色不影响)。请问如何通过判断职业或者角色id达到这样的效果?
作者:
原野清平
时间:
2013-3-14 19:26
直接把技能改成无法使用行吗?
作者:
a364774426
时间:
2013-3-14 23:11
本帖最后由 a364774426 于 2013-3-14 23:17 编辑
这里有一个直接将指定角色特技选项去掉的办法。
第一步:用一下脚本替换掉“Window_ActorCommand”
class Window_ActorCommand < Window_Command
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(128, [], 1, 4)
self.active = false
end
#--------------------------------------------------------------------------
# ● 设置
# actor : 角色
#--------------------------------------------------------------------------
def setup(actor)
s1 = Vocab::attack
s2 = Vocab::skill
s3 = Vocab::guard
s4 = Vocab::item
if actor.class.skill_name_valid # 是否指定职业技能文字
s2 = actor.class.skill_name # 替换「技能」命令文字
end
if actor.id == 1
@commands = [s1,s3,s4]
@item_max = 3
else
@commands = [s1, s2, s3, s4]
@item_max = 4
end
refresh
self.index = 0
end
end
复制代码
第二步,在Scene_Battle中找到
def update_actor_command_selection
复制代码
将其下的一段替换为:
if Input.trigger?(Input::B)
Sound.play_cancel
prior_actor
elsif Input.trigger?(Input::C)
case @actor_command_window.index
when 0 # 攻击
Sound.play_decision
@active_battler.action.set_attack
start_target_enemy_selection
when 1 # 技能
Sound.play_decision
if @active_battler.id == 1
@active_battler.action.set_guard
next_actor
else
start_skill_selection
end
when 2 # 防御
Sound.play_decision
if @active_battler.id == 1
start_item_selection
else
@active_battler.action.set_guard
next_actor
end
when 3 # 物品
Sound.play_decision
start_item_selection
end
end
end
复制代码
大功告成
注意其中的关键语句"if actor.id == 1"和"if @active_battler.id == 1"
其含义是,假如是一号角色,会怎么样怎么样,这里的1号角色的职业是战士
假如你有多个角色是战士职业,那么可以换另外一种写法:
“if [1,2,3].include?(actor.id)”或者"if [1,2,3].include?(@active_battler.id)"
作者:
351323331
时间:
2013-3-15 12:19
本帖最后由 351323331 于 2013-3-15 22:43 编辑
a364774426 发表于 2013-3-14 23:11
这里有一个直接将指定角色特技选项去掉的办法。
第一步:用一下脚本替换掉“Window_ActorCommand”第二步, ...
手机上的,晚点试试。先谢了。
自己改了下,可以达到我想要的效果。再次感谢。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1