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

Project1

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

战斗特殊效果中的“聚气”能否影响物理特技

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
跳转到指定楼层
1
发表于 2008-10-27 21:45:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
来自那个战斗特殊效果脚本:
http://rpg.blue/web/htm/news184.htm



战斗特殊效果脚本中以下部分是描写角色每回合使用“聚气”的特技之后普通攻击威力有所上升,但是对特技没有影响。

我想修改为:每回合使用“聚气”的特技之后所有物理攻击类特技的威力也一起上升。应该怎么写?魔法类特技依然不受影响

PS:物理特技我定义为力量F大于魔力F的特技,反之是魔法特技



  1. #--------------------------------------------------------------------------
  2. # ● 初期化
  3. #--------------------------------------------------------------------------
  4. alias before_powerstock_original_initialize initialize
  5. def initialize
  6. before_powerstock_original_initialize
  7. @powerstock = 0
  8. @powerstock_skill_id = $data_system.elements.index(POWERSTOCK_SKILL_ELEMENT_NAME)
  9. @powerstock_skill_id = 0 if @powerstock_skill_id == nil
  10. @effect_message = nil
  11. end
  12. #--------------------------------------------------------------------------
  13. # ● 通常攻撃の効果適用
  14. # attacker : 攻撃者 (バトラー)
  15. #--------------------------------------------------------------------------
  16. alias before_powerstock_original_attack_effect attack_effect
  17. def attack_effect(attacker)
  18. # 攻撃者が「ちからため」しているか?
  19. if attacker.powerstock > 0
  20. bool_powerstock = true
  21. # 攻撃者の力を一時的に上昇させる
  22. stock_attacker_str = attacker.str
  23. attacker.str += ( stock_attacker_str * POWERSTOCK_BASE_RATE * attacker.powerstock ).to_i

  24. @action_message = POWERSTOCK_SKILL_ELEMENT_NAME
  25. @action_message += " x"
  26. @action_message += attacker.powerstock.to_s
  27. attacker.powerstock = 0
  28. else
  29. bool_powerstock = false
  30. end

  31. result = before_powerstock_original_attack_effect(attacker)

  32. if bool_powerstock
  33. attacker.str = stock_attacker_str
  34. end
  35. return result
  36. end
  37. #--------------------------------------------------------------------------
  38. # ● スキルの効果適用
  39. # user : 使用者 (バトラー)
  40. # skill: スキル
  41. #--------------------------------------------------------------------------
  42. alias before_powerstock_original_skill_effect skill_effect
  43. def skill_effect(user, skill)

  44. if skill.element_set.include?(@powerstock_skill_id)

  45. @powerstock += 1 # 「ちからため」回数を1増やす
  46. self.damage = "Charge"
  47. return true
  48. else
  49. return before_powerstock_original_skill_effect(user, skill)
  50. end
  51. end
  52. end
复制代码


此贴于 2008-11-1 13:17:32 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-11-22 10:46:26 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-11-24 13:44:36 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
2
 楼主| 发表于 2008-10-29 17:28:44 | 只看该作者
有人说用以下方法解决,但是我没看懂...拜托哪位解释得详细点.{/gg}




skill_effect 中加
if user.powerstock > 0 then
.........
定义你自己的公式


然后你所说的物理 OR 魔法 特技
module RPG
class Skill
  def name
    name = @name.split(/@/)[0]
    return name != nil ? name : ''
  end
  def panduan
    add_name = @name.split(/@/)[1]
    return add_name != nil ? add_name : ""
  end
end
end

IF SKILL.PANDUAN = .. THEN
.....
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
676
在线时间
224 小时
注册时间
2006-12-7
帖子
839
3
发表于 2008-10-29 20:10:09 | 只看该作者
class Game_Battler

skill_effect里面

在计算倍率的地方把你的powerstock算进去
并且加上if
你设置力量加成大于魔法加成是武攻,那就是
str_f > int_f的时候用if判定算聚气的加成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
4
 楼主| 发表于 2008-10-29 20:23:23 | 只看该作者
倍率是什么意思啊?战斗特殊效果脚本里有一个倍率自定义是在脚本最上方:
POWERSTOCK_BASE_RATE = 0.7            #——每回合聚气威力上升倍率

如果沿用那个公式的话在倍率下应该怎么写呢?在Game_Battler 3里写成下面这样?


      # 计算倍率
      rate = 20
      if user.powerstock > 0
        if str_f > int_f
          user.str += ( stock_user_str * 0.7 * user.powerstock ).to_i
        end
      end
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
5
 楼主| 发表于 2008-10-29 20:38:23 | 只看该作者
试了下,当角色聚气后再使用特技就出错啦{/ll}{/ll}

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-3-8
帖子
305
6
发表于 2008-10-31 18:10:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
7
 楼主| 发表于 2008-11-2 00:16:42 | 只看该作者
以下引用鸟神乌鸦于2008-10-31 10:10:24的发言:

我的实现步骤:
1.畜力一定是个状态
2.在普通攻击时,如果攻击者是是畜力状态,着伤害*2 同时移除攻击者的畜力状态
         if attacker.states.include?(42)#如果攻击者为畜力状态
           a = 2
           self.damage = self.damage * a
           attacker.remove_state(42)
        end
3.如果是特技攻击,如果攻击者是畜力状态,而使用的技能为特技攻击,则伤害*2 同时移除攻击者的畜力状态。
if attacker.states.include?(42) and skill.atk_f > 0#如果攻击者为畜力状态
           a = 2
           self.damage = self.damage * a
           attacker.remove_state(42)
        end





你设置的状态可以根据蓄力的次数累加么?只要不攻击或被打死,威力就随着蓄力次数的增加而不断上升...


而且我希望蓄力超过一定次数威力就回到原样,这个在原脚本的蓄力部分添加attacker.powerstock < 3的判断倒可以实现了,可惜只实现了普通攻击部分
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
8
 楼主| 发表于 2008-11-8 01:18:36 | 只看该作者
都六天了!{/ll}
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-3-8
帖子
305
9
发表于 2008-11-21 23:20:56 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-21 08:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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