查看: 2249|回复: 5

[已经解决] 怎样做到角色等级不低于16级时追加武器0..1次攻击?

[复制链接]
梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
发表于 2017-3-28 17:30:24 | 显示全部楼层 |阅读模式

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

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

×
等级不等于36级时追加武器1..2次攻击,等级不低于56级时追加武器2..3次攻击以此类推

点评

不等於36和不低於56都只有一例怎麼類推  发表于 2017-3-30 08:30
梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2017-3-30 18:04:11 | 显示全部楼层
写错了是不低于36级
回复

使用道具 举报

梦石
0
星屑
1788
在线时间
1313 小时
注册时间
2012-8-4
回帖
724
发表于 2017-3-30 19:42:25 | 显示全部楼层
行动列表里面多添加一次角色
回复

使用道具 举报

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2017-3-31 09:42:52 | 显示全部楼层
本帖最后由 QQ蚊子湯 于 2017-3-31 09:55 编辑

看了你在水區的帖子
https://rpg.blue/forum.php?mod=v ... page%3D1&page=1
我決定把你當成一個認真求學的人來回答這一題
請你看完之後評估自己的水平或是付出的物質/精神代價是否能夠駕馭這樣的功能
(或者我純粹在浪費時間講一個你還沒有任何概念的東西)
#========

因為是追加攻擊,所以先找到掌管戰鬥行動的Game_Action類
[pre lang="ruby"]class Game_Action
    def targets_for_opponents
    if item.for_random?
      Array.new(item.number_of_targets) { opponents_unit.random_target }
    elsif item.for_one?
      num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
      if @target_index < 0
        [opponents_unit.random_target] * num
      else
        [opponents_unit.smooth_target(@target_index)] * num
      end
    else
      opponents_unit.alive_members
    end
  end
end[/pre]

在這裡我們會看到num這個臨時變量
[pre lang="ruby"]      num = 1 + (attack? ? subject.atk_times_add.to_i : 0)[/pre]

他代表的是實行動作為敵人時套用的攻擊次數
也就是敵我不分的
這裡可以透過判斷subject是否為角色來把行動主體為怪物的因素屏除,
或是判斷是否為指定角色的實例、該行動主體是否擁有技能來做到角色特性、技能差分

atk_times_add這個值則是來自Game_BattlerBase類的定義
[pre lang="ruby"]class Game_BattlerBase
  def atk_times_add
    [features_sum_all(FEATURE_ATK_TIMES), 0].max
  end
end[/pre]
他是行動主體的攻擊次數特性總和
因為attack? 這個判斷所以他只會在普通攻擊時發揮作用
在這裡我們知道他是什麼就可以了
我們需要改變整個num的總和,也就是照我們的條件進行追加
[pre lang="ruby"]num = 1 + (attack? ? subject.atk_times_add.to_i : 0) + ( subject.actor? && subject.level >= 16 ?  你要增加的攻擊次數 : 0)[/pre]
(非可直接執行的代碼)
隨機部分你可以在條件達成時的函數中用rand(2)來產生0或1兩個數,再將他與基數相加
例如 2 + rand(2) 會隨機產生 2或是3的結果

以上,不知道你是否能學會呢

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 版主认可的答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2017-3-31 17:42:27 | 显示全部楼层
不过在你发了这个脚本之前我用事件解决了这个问题,就是麻烦了点,不过我对帮助过人表示感谢
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部