设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2098|回复: 3
打印 上一主题 下一主题

[已经解决] 如何制作技能的触发效果?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
143
在线时间
347 小时
注册时间
2010-7-7
帖子
128
跳转到指定楼层
1
发表于 2012-9-24 11:18:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我想做一个触发类的技能,比如当我用技能A攻击目标时,有几率使自身触发一个状态,该状态可以使我的技能B不消耗魔法值,或是使技能B的伤害提高。该如何实现呢?

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4509
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

2
发表于 2012-9-24 15:58:59 | 只看该作者
本帖最后由 protosssonny 于 2012-9-24 16:08 编辑

话说P叔不是只回答VX区的问题的吗?
今天怎么来VA区抢生意啦。
嗷呜,P叔偶尔也想越越限嘛,不好意思啦。
P叔帮你制作了一个范例,里面的注释写得非常详细,请你拿去好好研究吧。
范例在此: Project1.rar (301.32 KB, 下载次数: 184)
由于只能上传小于999K的附件,所以请在System文件夹下自行添加RGSS300.dll文件!
添加的两种魔法和两种状态:
P叔魔法1(技能ID127):给予单个敌人无属性伤害,有概率让自己附加省魔状态。省魔状态时发动P叔魔法2不消耗MP。
P叔魔法2(技能ID128):给予单个敌人无属性伤害。有概率让自己附加魔攻增强状态,使得P叔魔法1伤害变得异常恐怖。
省魔状态(状态ID26)
魔攻增强状态(状态ID27)

脚本在此:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #------------------------------------------------------------------------------
  4. #  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
  5. #==============================================================================
  6.  
  7. class Game_Battler < Game_BattlerBase
  8.   #--------------------------------------------------------------------------
  9.   # ● 应用技能/物品的效果
  10.   #--------------------------------------------------------------------------
  11.   def item_apply(user, item)
  12.     @result.clear
  13.     @result.used = item_test(user, item)
  14.     @result.missed = (@result.used && rand >= item_hit(user, item))
  15.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  16.     special_state(user, item) # 添加本行,调用自定义函数special_state
  17.     if @result.hit?
  18.       unless item.damage.none?
  19.         @result.critical = (rand < item_cri(user, item))
  20.         make_damage_value(user, item)
  21.         execute_damage(user)
  22.       end
  23.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  24.       item_user_effect(user, item)
  25.     end
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 特技附加指定的状态效果(自定义函数)
  29.   #--------------------------------------------------------------------------
  30.   def special_state(user, item)
  31.     return unless item.is_a?(RPG::Skill)  # 如果item不是技能就返回,什么也不做
  32.     case item.id                          # 当item的ID为:
  33.     when 127                              # ID为127时,表示127号技能(P叔技能1)
  34.       user.add_state(26) if rand(100) < 45# 45%概率技能使用者附加26号状态(省魔)
  35.     when 128                              # ID为128时,表示128号技能(P叔技能2)
  36.       user.add_state(27) if rand(100) < 45# 45%概率技能使用者附加27号状态(魔攻增强)
  37.     end  
  38.   end  
  39. end  
  40.  
  41. #==============================================================================
  42. # ■ Game_BattlerBase
  43. #------------------------------------------------------------------------------
  44. #  管理战斗者的类。主要含有能力值计算的方法。Game_Battler 类的父类。
  45. #==============================================================================
  46.  
  47. class Game_BattlerBase
  48.   #--------------------------------------------------------------------------
  49.   # ● 判定是否足够扣除技能的使用消耗
  50.   #--------------------------------------------------------------------------
  51.   def skill_cost_payable?(skill)
  52.     # 如果战斗者是携带26号状态(省魔)并且被判定的技能为128号技能(P叔技能2)时,
  53.     # 就返回“真”,即不判定耗魔,直接允许使用128号技能。
  54.     return true if self.state?(26) and skill.id == 128
  55.     # 当除了以上情况的时候才判定耗魔
  56.     tp >= skill_tp_cost(skill) and mp >= skill_mp_cost(skill)
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 扣除技能的使用消耗
  60.   #--------------------------------------------------------------------------
  61.   def pay_skill_cost(skill)
  62.     # 只有不是“战斗者是携带26号状态(省魔)并且被判定的技能为128号技能(P叔技能2)”
  63.     # 的情况时,才计算MP消耗。
  64.     self.mp -= skill_mp_cost(skill) unless self.state?(26) and skill.id == 128
  65.     self.tp -= skill_tp_cost(skill)
  66.   end
  67. end  
  68.  
  69. #==============================================================================
  70. # ■ Game_Battler
  71. #------------------------------------------------------------------------------
  72. #  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
  73. #==============================================================================
  74.  
  75. class Game_Battler < Game_BattlerBase
  76.   #--------------------------------------------------------------------------
  77.   # ● 计算伤害
  78.   #--------------------------------------------------------------------------
  79.   def make_damage_value(user, item)
  80.     value = item.damage.eval(user, self, $game_variables)
  81.     # 如果item是一种技能,并且技能ID为121(P叔技能1),并且使用者是携带27号状态(魔攻
  82.     # 增强),当以上三个条件同时满足时,伤害增加1000,P叔技能1的伤害变得非常恐怖。
  83.     value += 1000 if item.is_a?(RPG::Skill) and item.id == 127 and user.state?(27)
  84.     value *= item_element_rate(user, item)
  85.     value *= pdr if item.physical?
  86.     value *= mdr if item.magical?
  87.     value *= rec if item.damage.recover?
  88.     value = apply_critical(value) if @result.critical
  89.     value = apply_variance(value, item.damage.variance)
  90.     value = apply_guard(value)
  91.     @result.make_damage(value.to_i, item)
  92.   end
  93. end

点评

感谢zxz2874让我发现P叔又卖萌了 =v=  发表于 2012-9-26 13:09
节操-666  发表于 2012-9-26 13:08
这次不会有坏人卡了  发表于 2012-9-26 13:07
P叔又卖萌了……  发表于 2012-9-26 13:07
我看到白字了……  发表于 2012-9-26 13:07

评分

参与人数 2星屑 +4 梦石 +2 收起 理由
dorx2010 + 4 强大&gt;&lt; 好范本~~~
Mic_洛洛 + 2 认可答案,附赠6R精美好人卡一张的说!.

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
143
在线时间
347 小时
注册时间
2010-7-7
帖子
128
3
 楼主| 发表于 2012-9-24 19:56:20 | 只看该作者
protosssonny 发表于 2012-9-24 15:58
话说P叔不是只回答VX区的问题的吗?  
今天怎么来VA区抢生意啦。
嗷呜,P叔偶尔也想越 ...

哇!好强大,感谢P叔!嘿嘿...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
55 小时
注册时间
2009-6-12
帖子
22
4
发表于 2012-9-26 12:56:45 | 只看该作者
纯事件能解决。。
但这是个学脚本的好范本!
R
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-8 04:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表