Project1

标题: 怎么弄聚气和归元啊? [打印本页]

作者: 光£郎    时间: 2007-7-2 18:45
标题: 怎么弄聚气和归元啊?
就是战士的MP需要攻击和被攻击才能够积攒起来,从而使用技能
还有就是人物本身没有MP.通过佩带一个宝物来使用魔法
用事件到是可以做成添加技能等,但是道具的MP怎么算啊?
我想把这个道具弄成拥有很多MP但是不能回复MP的道具,用完就销毁了的


[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 光£郎    时间: 2007-7-2 18:45
标题: 怎么弄聚气和归元啊?
就是战士的MP需要攻击和被攻击才能够积攒起来,从而使用技能
还有就是人物本身没有MP.通过佩带一个宝物来使用魔法
用事件到是可以做成添加技能等,但是道具的MP怎么算啊?
我想把这个道具弄成拥有很多MP但是不能回复MP的道具,用完就销毁了的


[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: kaze    时间: 2007-7-2 18:47
黑暗圣剑传说中,每个角色除了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增加蓄气槽。配合主站教学的“状态法”,就可以制作专门恢复蓄气槽的药了。
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 光£郎    时间: 2007-7-2 20:38
那个....这些要全部插到Game_Actor中?
把不是脚本部分的前面加#就可以了吗????
作者: 精灵使者    时间: 2007-7-2 20:48
以下引用光£郎于2007-7-2 12:38:58的发言:

那个....这些要全部插到Game_Actor中?
把不是脚本部分的前面加#就可以了吗????

没那么简单吧- -具体位置看着上边的说明插入。
作者: 光£郎    时间: 2007-7-2 21:57
哦………………
聚气的问题完了
还有物品魔法呢?
女主要要装备一个有能量度的首饰...用里面的能量放魔法!
除了用事件添加技能外怎么设置物品的魔法值啊?
作者: lovelmq    时间: 2007-7-2 22:04
修改脚本..很难的
作者: kaze    时间: 2007-7-3 01:30
以下引用光£郎于2007-7-2 13:57:57的发言:

哦………………
聚气的问题完了
还有物品魔法呢?
女主要要装备一个有能量度的首饰...用里面的能量放魔法!
除了用事件添加技能外怎么设置物品的魔法值啊?

直接设置个在战斗中使用的物品(不消耗),除了本身效果外对应一个公共事件,用个变量表示魔法值,当魔法值小于某定值时不能使用或损坏.
作者: 精灵使者    时间: 2007-7-3 02:59
以下引用kaze于2007-7-2 17:30:59的发言:


以下引用光£郎于2007-7-2 13:57:57的发言:

哦………………
聚气的问题完了
还有物品魔法呢?
女主要要装备一个有能量度的首饰...用里面的能量放魔法!
除了用事件添加技能外怎么设置物品的魔法值啊?


直接设置个在战斗中使用的物品(不消耗),除了本身效果外对应一个公共事件,用个变量表示魔法值,当魔法值小于某定值时不能使用或损坏.

最好设定为不能使用,那么以后还可以用修理来恢复魔法值
作者: CortesDevil    时间: 2007-7-3 03:01
{/fd}不错的思路
作者: 光£郎    时间: 2007-7-3 03:06
哦!谢谢了!
正在构思好玩的东东!都可以派到用场年!
谢谢啊
作者: kaze    时间: 2007-7-3 03:07
以下引用精灵使者于2007-7-2 18:59:05的发言:

最好设定为不能使用,那么以后还可以用修理来恢复魔法值


嗯,不过也有例外的比如柳柳大人的黑暗中的复活石
与那个灵儿外传的五灵珠
作者: 精灵使者    时间: 2007-7-3 03:09
以下引用kaze于2007-7-2 19:07:00的发言:


以下引用精灵使者于2007-7-2 18:59:05的发言:

最好设定为不能使用,那么以后还可以用修理来恢复魔法值



嗯,不过也有例外的比如柳柳大人的黑暗中的复活石
与那个灵儿外传的五灵珠

暗黑的武器除了修理耐久之外,如果附加技能的话还可以修复技能次数,不过超贵……
作者: kaze    时间: 2007-7-3 03:12
以下引用精灵使者于2007-7-2 19:09:09的发言:


以下引用kaze于2007-7-2 19:07:00的发言:


以下引用精灵使者于2007-7-2 18:59:05的发言:

最好设定为不能使用,那么以后还可以用修理来恢复魔法值



嗯,不过也有例外的比如柳柳大人的黑暗中的复活石
与那个灵儿外传的五灵珠


暗黑的武器除了修理耐久之外,如果附加技能的话还可以修复技能次数,不过超贵……


修石头要果实,话说谁能把30次复活石都用完呢

作者: 精灵使者    时间: 2007-7-3 03:27
以下引用kaze于2007-7-2 19:12:27的发言:
修石头要果实,话说谁能把30次复活石都用完呢

如果在我的游戏里面的话,30次复活根本不够用……MS后期的小怪都会即死技能(而且是全体的……)boss会威力更强的密·暗邪鬼,说不定就一倒一片,30次根本不够用。所以我就做能无限复活的物品了,看谁能有机会用它……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1