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

Project1

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

[已经过期] 能力提升叠加效果

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2014-1-13
帖子
57
跳转到指定楼层
1
发表于 2014-9-28 20:48:57 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
设置一个技能,使用后自己魔法攻击+60%这个状态,再次使用后此魔法攻击可继续增加至120%,上限叠加5次。是否可实现?

Lv1.梦旅人

梦石
0
星屑
89
在线时间
900 小时
注册时间
2012-11-13
帖子
893
2
发表于 2014-9-29 10:58:56 | 只看该作者
http://artificialprovidence.web. ... BUFF_DEBUFF_ENH.txt
然后自己设置
(乱码别找我)
废弃
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
3
发表于 2014-9-29 12:27:04 | 只看该作者
连续设置五个状态 然后用公共事件
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
4
发表于 2014-9-30 10:01:51 | 只看该作者
本帖最后由 三途亚梦 于 2014-9-30 10:04 编辑

2L给的链接是有墙的日站脚本,你需要翻墙才能看到。
它的效果估计就是把所有能力提升效果分为10个阶段等级,但是只能分为10个阶段,没法按照技能需要进行不同数值的叠加。

你需要的答案思路在3L

设置5个同名的状态,状态效果分别是:
+60%的魔法攻击
+120%的魔法攻击
以此类推设置5个状态。

如果是在技能中添加状态的话我建议在脚本中做,公共事件中要读取技能使用者的信息有些麻烦。
在Game_Battler中大概350行左右找到下面两句语句
  1.   def make_damage_value(user, item)
  2.     value = item.damage.eval(user, self, $game_variables)
复制代码
然后在value = item.damage.eval(user, self, $game_variables)后面添加下面这段内容
其中 "when" 后面的1对应的是你所设置的技能的ID
括号中的数字 26 - 30 就对应你所设置的5个等级的状态(它们是递增的)
  1.   #-------------------技能使用额外效果------------------
  2.      if item.is_a?(RPG::Skill)
  3.       case item.id
  4.        when 1
  5.            if user.state?(26)
  6.              user.add_state(27).to_i && user.remove_state(26).to_i
  7.            else if user.state?(27)
  8.                   user.add_state(28).to_i && user.remove_state(27).to_i
  9.            else if user.state?(28)
  10.                   user.add_state(29).to_i && user.remove_state(28).to_i
  11.            else if user.state?(29)
  12.                   user.add_state(30).to_i && user.remove_state(29).to_i
  13.            else if user.state?(30)
  14.              else user.add_state(26)
  15.            end
  16.            end
  17.            end
  18.            end
  19.          end
  20.        end
  21.      end
  22.   #-----------------------------------------------------
复制代码

点评

脚本真的只是门外汉呢,这个是照着救世小树那边现有的方法依葫芦画瓢做的呢。  发表于 2014-9-30 13:08
你脚本的技术还不是很过关。继续努力吧  发表于 2014-9-30 12:48
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
发表于 2014-10-3 11:24:18 | 只看该作者
  1. #==============================================================================
  2. # ■ 修改属性设置,允许属性吸收等效果
  3. #------------------------------------------------------------------------------
  4. #   RPG VX Ace默认不允许属性被吸收,最低的属性有效度为0,最高为10倍(可叠乘)
  5. #  本脚本的原理:将属性设置的叠乘计算改为叠加计算,从而允许属性吸收效果
  6. #   数据库设置:
  7. #     1.当只有1条属性抵抗起作用时,和原来的算法相同
  8. #     2.当有多条属性抵抗起作用时,其效果倍率各自减100%后叠加计算,
  9. #       如“[冰]*200”和“[冰]*250”叠加的效果为“[冰]*350”
  10. #       如“[冰]*150”和“[冰]*50”叠加的效果为“[冰]*100”
  11. #     3.现在“某属性*0”的效果为倍率-1,所以如果要实现属性100%吸收,可如下设置
  12. #       “[冰]*0”和“[冰]*0”叠加,效果即为倍率减2,即“[冰]*-100”
  13. #       类似的,若“[冰]*0”三重叠加,效果即为倍率减3,即“[冰]*-200”,双倍吸收
  14. #     4.如果要实现属性X%吸收(X<100),可如下设置
  15. #       “[冰]*0”和“[冰]*(100-x)”叠加
  16. #==============================================================================

  17. class Game_BattlerBase
  18.   #--------------------------------------------------------------------------
  19.   # ● 计算属性抵抗
  20.   #--------------------------------------------------------------------------
  21.   def features_elem(code, id)
  22.     features_with_id(code, id).inject(1.0) {|r, ft| r += ft.value - 1}
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 获取属性抗性
  26.   #--------------------------------------------------------------------------
  27.   def element_rate(element_id)
  28.     features_elem(FEATURE_ELEMENT_RATE, element_id)
  29.   end
  30. end

  31. class Game_Battler
  32.   #--------------------------------------------------------------------------
  33.   # ● 获取属性的最大修正值,返回所有属性中最有效的一个
  34.   #     elements : 属性 ID 数组
  35.   #--------------------------------------------------------------------------
  36.   def elements_max_rate(elements)
  37.     elements.inject([]) {|r, i| r.push(element_rate(i)) }.max
  38.   end  
  39. end

  40. module Vocab

  41.   ActorDrainRev = "%s逆向吸取了%s点%s!"
  42.   EnemyDrainRev = "%s逆向吸取了%s点%s!"

  43. end

  44. class Game_ActionResult
  45.   alias sailcat_hp_damage_text hp_damage_text
  46.   alias sailcat_mp_damage_text mp_damage_text
  47.   #--------------------------------------------------------------------------
  48.   # ● 获取 HP 伤害的文字
  49.   #--------------------------------------------------------------------------
  50.   def hp_damage_text
  51.     if @hp_drain < 0
  52.       fmt = @battler.actor? ? Vocab::ActorDrainRev : Vocab::EnemyDrainRev
  53.       sprintf(fmt, @battler.name, -@hp_drain, Vocab::hp)
  54.     else
  55.       sailcat_hp_damage_text
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 获取 MP 伤害的文字
  60.   #--------------------------------------------------------------------------
  61.   def mp_damage_text
  62.     if @mp_drain < 0
  63.       fmt = @battler.actor? ? Vocab::ActorDrainRev : Vocab::EnemyDrainRev
  64.       sprintf(fmt, @battler.name, -@mp_drain, Vocab::mp)
  65.     else
  66.       sailcat_mp_damage_text
  67.     end
  68.   end
  69. end
复制代码
我不确定这个是不是你要的那种···

点评

请看清题目再来回答(即使va区没版规)  发表于 2014-10-3 13:04
完全不是  发表于 2014-10-3 12:29
目测完全不是  发表于 2014-10-3 11:26
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-2 22:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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