先用一个变量代入箭矢的数量,
然后修改脚本,两句代码可以搞定,打开横版动作设定的脚本(系统设定),查找"class Weapon",其下就是设置各种武器动作的地方,具体设置方法,请移步夕阳前辈的教学贴。
比如我原先的设定是:
when 101,102,103,104
return "箭矢"
稍加更改,就能达到目的、
when 101,102,103,104
if $game_variables[16] >0 #箭矢数量大于0的时候
$game_party.lose_item($data_items[7],1) #意思是进行该动作,则减少7号物品1个,我7号物品是箭矢。
return "箭矢"
else
return "通常攻击"
end
如果不想动,将通常攻击换成待机也可。
技能设定同理。
如:when 201
if $game_variables[16] >=4
$game_party.lose_item($data_items[7],4)
return "四连射"
else
return "通常攻击"
end
当然还有一个需要注意的细节,如果没有箭矢,但你还是要去攻击敌人,那么攻击力当然不能和有箭矢时相提并论,所以需要写一个在没有箭矢时,弓箭手的伤害公式。
打开Game_Battler脚本,找到"damage = attacker.atk * 4 - self.def * 2 "这一句,它是默认的普通攻击伤害计算公式,
在其下添加几句:
if $game_variables[16] == 0 ##没有箭矢
if attacker.is_a?(Game_Actor) and attacker.id == 2 ##二号角色是弓箭手
Damage /=10 ##伤害变为1/10
end
end
想到了普通攻击,那么技能当然也要考虑,
以上面的“四连射”为例:
if[201].include?(obj.id) and user.is_a?(Game_Actor) #需要四只箭矢
if $game_variables[16] < 4
damage /=10
end
end
好啦,基本方法就是这样了,当然是不可能面面俱到的。但所谓触类旁通,举一反三。更多的创新还要看各路英雄好汉哈。
P叔建议的实现:脚本编辑器全局查找“ return false if calc_mp_cost(skill) > mp
”最后一个出现该代码的地方,同样以四连射为例,于其下添加: return false if [201].include?(skill.id) and $game_variables[16] < 4