赞 | 1 |
VIP | 16 |
好人卡 | 23 |
积分 | 0 |
经验 | 49509 |
最后登录 | 2016-1-9 |
在线时间 | 2459 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 48
- 在线时间
- 2459 小时
- 注册时间
- 2011-12-18
- 帖子
- 1484
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 a364774426 于 2012-9-25 13:52 编辑
不少游戏都会出现射手类的职业,用弓用枪械或者飞镖,不过有一个问题就是,没有箭矢,没有子弹,或者没有飞镖的情况下,照样可以攻击并且使用技能。这明显是不合理的,但大家都习惯忽视了。之前也有人写过一篇帖子说过这个问题的解决办法,地址是:http://rpg.blue/forum.php?mod=viewthread&tid=233488&extra=page%3D1%26filter%3Dtypeid%26typeid%3D100%26typeid%3D100这个办法是将技能作为普通攻击来使用,效果自然差强人意。所以我自己想了一个办法,针对横版,以弓箭手为例,有箭矢时,则在原地射出箭矢,没有的时候则跑到敌人跟前用弓敲打,当然什么都不做也是可以的,技能也是如此。
下面是方法,很简单。
先用一个变量代入箭矢的数量,
然后修改脚本,两句代码可以搞定,打开横版动作设定的脚本(系统设定),查找"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
|
评分
-
查看全部评分
|