Project1

标题: 如何自定屬性數值 [打印本页]

作者: 亂堂和樹    时间: 2012-10-29 14:12
标题: 如何自定屬性數值
我爬了下文
是有找到相關的文章
就是例如新增了命中 回避 爆擊等數據
但是我只看到每提升一級以及設定等級多少就固定加多少
有辦法能夠像設定原本數據那樣
例如
1級給他10
99級給他300
中間級數的數字會自己分配的嗎
dsu_plus_rewardpost_czw
作者: 彭格列第XI代    时间: 2012-10-29 14:32
自己算下嘛~
(300-10)/98=?   [大概是这样]
自己用计算器...ME懒~
作者: a364774426    时间: 2012-10-29 14:54
LZ的意思是自己设定角色的命中闪避这些的属性,并且每个角色的计算方法不一样,是吗?若然,方法如下:
在Game_actor里找到 def hit,def eva,def cri这三个地方,以角色ID去判定计算方法,例如
if actor.id == 1
return XX
elsif actor.id == 2
return YY
else
return n
end
若不然,请具体说说你要实现什么东西。
作者: 亂堂和樹    时间: 2012-10-29 15:21
a364774426 发表于 2012-10-29 14:54
LZ的意思是自己设定角色的命中闪避这些的属性,并且每个角色的计算方法不一样,是吗?若然,方法如下:
在G ...


因為srpg2他的腳本把敏捷改成移動力了
而且還自定回避、命中、爆擊等都是數據0
是可以用裝備變成固定數字
升級卻不會改變原來的0
所以才想另外定義成數據庫那樣
設定起頭多少,最後也設定最終數值
中間讓他自己分配

作者: 亂堂和樹    时间: 2012-10-29 19:18
本帖最后由 亂堂和樹 于 2012-10-29 19:29 编辑

不...早上是用手機上網..不太能表達清楚0.0"
a364774426前輩說的是對的...
但是這SRPG2的腳本~他有另外定義
class Game_Enemy < Game_Battler #敵、中立方角色數據能力取得
#--------------------------------------------------------------------------
  # ● 命中率の取得
  #--------------------------------------------------------------------------
  def hit
    return apply_tile_effect(enemy.hit, TSRPG::HIT)
  end
  #--------------------------------------------------------------------------
  # ● 回避率の取得
  #--------------------------------------------------------------------------
  def eva
    return apply_tile_effect(enemy.eva, TSRPG::EVA)
  end
  #--------------------------------------------------------------------------
  # ● クリティカル率の取得
  #--------------------------------------------------------------------------
  def cri
    n = enemy.has_critical ? 10 : 0
    return apply_tile_effect(n, TSRPG::CRI)
  end

-------還有-----
class Game_Actor < Game_Battler #我方角色數據能力取得
  #--------------------------------------------------------------------------
  # ● 基本敏捷性(移動力)の取得
  #--------------------------------------------------------------------------
  def base_agi
    n = actor.parameters[5, @level]
    for item in equips.compact do n += item.agi end
    if TSRPG::JOB_AGI[@class_id] != nil       # 職業別移動力補正あり
      n += TSRPG::JOB_AGI[@class_id]
    end
    n -= 1 if over_weight?                    # 重量過多ならマイナス1#←已取消重量腳本
    return n
  end
  #--------------------------------------------------------------------------
  # ● 命中率の取得
  #--------------------------------------------------------------------------
  def hit
    if two_swords_style
      n1 = weapons[0] == nil ? 95 : weapons[0].hit
      n2 = weapons[1] == nil ? 95 : weapons[1].hit
      n = [n1, n2].min
    else
      n = weapons[0] == nil ? 95 : weapons[0].hit
    end
    n = apply_tile_effect(n, TSRPG::HIT)      # 地形効果による補正を適用
    return n
  end
  #--------------------------------------------------------------------------
  # ● 回避率の取得
  #--------------------------------------------------------------------------
  def eva
    n = over_weight? ? 0 : 5                  # 重量過多なら基本値を0に#←已取消重量腳本
    for item in armors.compact do n += item.eva end
    n = apply_tile_effect(n, TSRPG::EVA)      # 地形効果による補正を適用
    return n
  end
  #--------------------------------------------------------------------------
  # ● クリティカル率の取得
  #--------------------------------------------------------------------------
  def cri
    n = 4
    n += 4 if actor.critical_bonus
    for weapon in weapons.compact
      n += 4 if weapon.critical_bonus
    end
    n = apply_tile_effect(n, TSRPG::CRI)   

因為這些關係...導致命中.爆撃.迴避三種數值一開始都是0
只能靠裝備來改變這數值...但是升級時卻還是停留在0
例如:
A角色穿裝備~迴避10~等級1
打怪物升等到99等~迴避還是10(裝備的)...
這意思...

還有a364774426前輩對不起..我表達能力太差了..(汗
可以的話~我想要...

命中=攻擊+防禦/2
迴避=精神+防禦/2
爆撃=攻擊+精神/2

這樣不僅每個角色計算出來的數據都不同~
也能達到不用每個人物都要腳本設定..
請問該怎麼做修正才會有這樣的數據呢?給個提示也行啊!
上次真的很感謝a364774426前輩給的建議~我才能做出雙畫面狀態的>"<

另外...Luciffer前輩~
我是台灣朋友喔...不是泥轟人啦..
但真名的確是有"和樹"兩字沒錯...(汗
不過最近有住過日本一年半左右~
可能...暫時用語上會有點點..你知道的~像時差都要調整一樣啊(汗���
作者: a364774426    时间: 2012-10-29 19:29
如果攻击防御什么的定义没有变,我想这样应该就可以了
  1. def hit
  2.     if two_swords_style
  3.       n1 = weapons[0] == nil ? 95 : weapons[0].hit
  4.       n2 = weapons[1] == nil ? 95 : weapons[1].hit
  5.       n = [n1, n2].min
  6.     else
  7.       n = weapons[0] == nil ? 95 : weapons[0].hit
  8.     end
  9.     n = apply_tile_effect(n, TSRPG::HIT)      # 地形効果による補正を適用
  10.     return n + atk +def/2        ######不过这样一来,命中率就没有最大值了。
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 回避率の取得
  14.   #--------------------------------------------------------------------------
  15.   def eva
  16.     n = over_weight? ? 0 : 5                  # 重量過多なら基本値を0に
  17.     for item in armors.compact do n += item.eva end
  18.     n = apply_tile_effect(n, TSRPG::EVA)      # 地形効果による補正を適用
  19.     return n+spi+def/2                #################
  20. #--------------------------------------------------------------------------
  21.   # ● クリティカル率の取得
  22.   #--------------------------------------------------------------------------
  23.   def cri
  24.     n = atk + spi/2
  25.     n *= 2 if actor.critical_bonus    ########暴击翻倍的属性
  26.     for weapon in weapons.compact
  27.       n *= 2 if weapon.critical_bonus
  28.     end
  29.     n = apply_tile_effect(n, TSRPG::CRI)   #####这个是什么东西不是很清楚
  30.   end
复制代码

作者: 亂堂和樹    时间: 2012-10-29 19:38
出現錯誤囉0.0...



似乎有什麼定義不給弄?
作者: a364774426    时间: 2012-10-29 19:49
忘记了防御的英文缩写也是定义的缩写,
我这里有三个解决办法:
1,把防御的缩写改了,这个是最麻烦的。
2,以将角色的防御值代入变量,然后公式中的def用变量代替。
3,重新定义一个属性,其值等于防御。然后公式中的def用这个新的属性代替。
方法三具体实现如下:
  1. def fang
  2. n = actor.parameters[3, @level]
  3.     for item in equips.compact do n += item.def end
  4.     return n
  5.   end
  6. #########其实就是搬了防御的定义
复制代码

作者: 亂堂和樹    时间: 2012-10-29 20:13
本帖最后由 亂堂和樹 于 2012-10-29 20:23 编辑

成功了~a364774426前輩



命中跟迴避都有出來~不過...數值好像不是..
命中=格鬥+防禦/2..不應該這麼多吧..
修改了一下
return n = (atk + fang / 20)
才是真正的/2耶...

還有a364774426前輩問個問題...
爆撃腳本中...
用你的方法..他還是沒改變喔~
而且...
下方不用+ return n 類的
他算的出來嘛0.0?���
作者: 亂堂和樹    时间: 2012-10-29 20:38
有了~a364774426前輩
我把你給我的腳本在修改一下~全都OK了~感激不盡!
以下是我修改過後的
  #--------------------------------------------------------------------------
  # ● 命中率の取得
  #--------------------------------------------------------------------------
    def hit
    if two_swords_style
      n1 = weapons[0] == nil ? 95 : weapons[0].hit
      n2 = weapons[1] == nil ? 95 : weapons[1].hit
      n = [n1, n2].min
    else
      n = weapons[0] == nil ? 95 : weapons[0].hit
    end
    n = apply_tile_effect(n, TSRPG::HIT)      # 地形効果による補正を適用
    return n = (atk + fang / 20)       ######不过这样一来,命中率就没有最大值了。
  end
  #--------------------------------------------------------------------------
  # ● 回避率の取得
  #--------------------------------------------------------------------------
  def eva
    n = over_weight? ? 0 : 5                  # 重量過多なら基本値を0に
    for item in armors.compact do n += item.eva end
    n = apply_tile_effect(n, TSRPG::EVA)      # 地形効果による補正を適用
    return n= (spi + fang / 20)             #################
  end
#--------------------------------------------------------------------------
  # ● クリティカル率の取得
  #--------------------------------------------------------------------------
  def cri
    n = (atk + spi / 6)
    n *= 2 if actor.critical_bonus    ########暴击翻倍的属性
    for weapon in weapons.compact
      n *= 2 if weapon.critical_bonus
    end
    n = apply_tile_effect(n, TSRPG::CRI)   #####这个是什么东西不是很清楚
    return n
  end

效果↓






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1