Project1
标题:
如何让sp显示在动画后。
[打印本页]
作者:
流浪剑客
时间:
2012-2-22 21:06
标题:
如何让sp显示在动画后。
本帖最后由 流浪剑客 于 2012-2-23 22:13 编辑
之前求助sp显示脚本,找到了一个,但是它的sp显示都在动画前,怎样改成动画后显示?这是那个脚本范例。 dsu_plus_rewardpost_czw
SP消耗显示.rar
2012-2-23 22:13 上传
点击文件名下载附件
187.66 KB, 下载次数: 8
作者:
无双sxa
时间:
2012-2-22 21:50
主站找的,不知有木有用:
黑暗圣剑传说中,每个角色除了HP、SP以外,还根据角色不同有HP或SP的储存条。HP的储存条在挨打时候蓄气,SP储存条在战斗中使用技能时候蓄气。部分技能必须需要一条的HP、SP储存能量才能发出(一条是100点)。
本教学为高级教学,不推荐尚未学习脚本的新人看
下面简单说一下这个功能怎么制作:
1、添加HP_Store,SP_Store的储存数据,也就是储存条的能量。
由于只有Actor才有,所以在Game_Actor添加
attr_accessor :hp_store # ★ 添加HP蓄气槽
attr_accessor :sp_store # ★ 添加SP蓄气槽
并在def setup的时候让他们等于0
@hp_store = 0 # ★
@sp_store = 0 # ★
2、修改Game_Actor角色的可以使用特技判定,当遇到需要储存条的技能时候,如果储存能量不足,不能使用。
#--------------------------------------------------------------------------
# ● 可以使用特技判定 ★
# skill_id : 特技 ID
#--------------------------------------------------------------------------
def skill_can_use?(skill_id)
if not skill_learn?(skill_id)
return false
end
if $data_skills[skill_id].element_set.include?(20) #如果是HP蓄气技能
return false if @hp_store < 100
end
if $data_skills[skill_id].element_set.include?(21) #如果是SP蓄气技能
return false if @sp_store < 100
end
return super
end
这里假定带20号属性的是“HP蓄气技能”,带21号属性的是“SP蓄气技能”
3、在减血的时候储存@hp_store。ctrl_shift_F全局搜索.hp -=这个内容,每个下面都添加类似的东西:
if self.is_a?(Game_Actor) # ★ 挨打的时候蓄HP储存条
self.hp_store += [self.damage*100/self.maxhp , 0].max
self.hp_store = [self.hp_store,300].min
end
这里的意思是说,如果是角色,则hp_store的增长量为伤害占总血量的百分比,并且增长量要大于0,最大值小于300(最多3条)。这里的self.是因为这个地方是self.hp -=,如果是battler.则全部self改为battler。
你可以有选择性的选一部分伤害添加这个,比如地图中毒的时候减血并不储存能量,那么Game_Party中那个就不用改了。
除了.hp -= 还应该有.hp +=,这样会搜索到使用物品等处。不过黑暗圣剑中使用物品造成伤害并不会蓄槽,还有使用事件强行减的HP也不会蓄槽。所以这里就不做修改了。
4、类似的,找到所有的.sp -=和.sp +=,添加
if @XX.is_a?(Game_Actor) # ★设定sp_store的增加
@XX.sp_store += [@skill.sp_cost*100/@XX.maxsp, 0].max
@XX.sp_store = [@XX.sp_store,300].min
end
其中XX是那个.sp的主人,如@active_battler或@actor。黑暗圣剑中.sp +=这几个都没有改,也就是使用物品恢复SP、事件强行减SP这几个,不需要这样的效果。
5、添加使用技能消耗储存条。还是找到.sp -=,添加如下:
if @skill.element_set.include?(20) #★,消耗HP储存条
@XX.hp_store -= 100
end
if @skill.element_set.include?(21) #★,消耗SP储存条
@XX.sp_store -= 100
end
6、不同职业所拥有的槽不同。这里都只是显示的问题了,虽然角色本身都是有两个槽的,但是只要不显示并且不学会“不应该学会的特技”,完全可以用简单方法如下:我们把可以附带的槽,职业数据库有效度设置为A。比如战士可以附带HP蓄气槽,则20号属性有效度为A
接着,draw_actor_hp中定义一下(Window_Base或血槽脚本):
if $data_classes[actor.class_id].element_ranks[20]==1 #追加描绘HP储存量
self.contents.draw_text(hp_x+30, y, 48, 32, "("+actor.hp_store.to_s+")", 2)
end
这只是一个简单的定义,因为窗口描绘不在这一节讲。同样定义SP的描绘:
if $data_classes[actor.class_id].element_ranks[21]==1 #追加描绘HP储存量
self.contents.draw_text(sp_x+30, y, 48, 32, "("+actor.sp_store.to_s+")", 2)
end
7、其他使用。这样定义之后,可以用actor.hp_store += 来直接给actor增加蓄气槽。配合主站教学的“状态法”,就可以制作专门恢复蓄气槽的药了。
复制代码
作者:
流浪剑客
时间:
2012-2-22 22:02
不是这个,是使用物品恢复sp不显示数值。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1