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

Project1

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

[已发主站] 【VA】【教程】被动技能,自主决定启用/停用。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2012-6-30
帖子
39
跳转到指定楼层
1
发表于 2012-7-8 19:27:32 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Sion 于 2013-12-17 15:41 编辑

啊啊……这个帖子要实现的就是一个“可以自己决定启用或者关闭的被动技能”。
例如主角学了这么一个【魔力护壁】被动技能,内容是当HP小于HP最大值的50%时,角色的防御和魔防增加到200%,MP每回合下降5%。这个被动技能可以在自己需要的时候随时启用/关闭。关闭的时候被动技能是不生效的。

下面来说说这个想法的实现方法吧。
首先这么设定一个状态:魔力值再生-5%,防御和魔防各200%。


然后我们这么改脚本……
在脚本Game_BattlerBase里面有这么一段

  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4.   def refresh
  5.     state_resist_set.each {|state_id| erase_state(state_id) }
  6.     @hp = [[@hp, mhp].min, 0].max
  7.     @mp = [[@mp, mmp].min, 0].max
  8.     @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  9.   end
复制代码
@hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
这句的意思就是 当HP等于0 就附加死亡状态 当HP不等于0了 就消除死亡状态
于是你就仿照这个在前面加一句
@hp <= @mhp * 0.5 ? add_state(26) : remove_state(26)
意思是HP小于最大HP的50%附加26号状态,否则消去26号状态的效果,再加以开关条件控制。
修改后是这样的

  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4.   def refresh
  5.     state_resist_set.each {|state_id| erase_state(state_id) }
  6.     @hp = [[@hp, mhp].min, 0].max
  7.     @mp = [[@mp, mmp].min, 0].max
  8.     if $game_switches[90] == true
  9.       @hp <= @mhp * 0.5 ? add_state(26) : remove_state(26)
  10.     end
  11.     @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  12.   end
复制代码
嗯,然后设定开关90号开关的公共事件。

(漏了一句……关闭被动技能时消去26号状态诶……)
最后把公共事件关联到技能上。

这样,可以自主启用/关闭的被动技能就做好了,是不是很简单呢。

评分

参与人数 7星屑 +103 +7 收起 理由
fufa + 1 认可答案
火烧兔子 + 10 塞糖
1561496327 + 7 我很赞同
Shy07 + 6 主站收录
Luciffer + 56 威武!
·雾逝者· + 24 凑个数~很赞哦
☆恒皇杨之神★ + 6 没糖了,本来想发20来着。

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2012-6-30
帖子
39
2
 楼主| 发表于 2012-7-9 18:11:12 | 显示全部楼层
啊啊…… 不是这样的。
只要把技能设置成【随时可用】,那这个技能就可以随时启用/停用。战斗中只是单纯地生效而已,并不需要再反复开启了。
装备的设置里,本来就可以设置附加某技能,不过貌似要在遗忘技能那里加个分歧,如果遗忘的是被动技能则先关闭再遗忘。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2012-6-30
帖子
39
3
 楼主| 发表于 2012-7-10 08:42:42 | 显示全部楼层
本帖最后由 放开那个触手! 于 2012-7-10 08:48 编辑
z2z4 发表于 2012-7-10 07:32
话说 你这脚本 貌似  只能做一个被动技能?  我昨天研究了 10多个 被动技能 用HP触发 看你这个脚本  应该做不起 几个技能


不不、不是这样的。当然不止做一个被动技能。

  1. if $game_switches[90] == true #这里是被动技能所关联的开关
  2.       @hp <= @mhp * 0.5 ? add_state(26) : remove_state(26) #这里是被动技能的条件和关联的状态
  3. end
复制代码
你可以多多添加的,每添加一个技能就增加一小段像上面的。你乐意的话,想添加上百个被动技能都可以。
或者我举些例子吧,你可以以此为参照多多开动脑筋喔。

  1. @hp <= @mhp * 0.5 #这是HP在50%以下触发。
  2. @mp == 0 #这是MP为0触发。
  3. @hp <= @mp #这是HP数值低于MP就触发。
  4. @hp < 500 #这是HP值低于500就触发。
  5. @tp == 100 #这是TP值攒满就触发。
复制代码
这个脚本很简单,但是有滋味的啦。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2012-6-30
帖子
39
4
 楼主| 发表于 2012-7-11 21:51:42 | 显示全部楼层
z2z4 发表于 2012-7-11 07:11
你这个公共设置 只能设置一个技能  我是1个角色  学4个技能 同时只能开启一个  所以你这个公共设置 还是不 ...

  1. if $game_switches[90] == true #第90号开关
  2.       @hp <= @mhp * 0.5 ? add_state(26) : remove_state(26) #关联26号状态,发动条件为HP低于一半
  3. end
  4. if $game_switches[91] == true #第91号开关
  5.       @mp <= @mmp * 0.5 ? add_state(27) : remove_state(27) #关联27号状态,发动条件为MP低于一半
  6. end
  7. if $game_switches[92] == true #第92号开关
  8.       @tp == 100 ? add_state(28) : remove_state(28) #关联28号状态,发动条件为TP满100
  9. end
  10. if $game_switches[93] == true #第93号开关
  11.       @hp <= @mp ? add_state(29) : remove_state(29) #关联29号状态,发动条件为当前HP低于当前MP
  12. end
复制代码
然后你在公共事件里设置一下
打开开关90就自动关闭91 92 93
打开开关91就自动关闭90 92 93
打开开关92就自动关闭90 91 93
打开开关93就自动关闭90 91 92
就可以了喔……

随随便便说不行的话……很打击人的……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 07:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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