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

Project1

 找回密码
 注册会员
搜索

如何自定屬性數值

查看数: 1681 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2012-10-29 14:12

正文摘要:

我爬了下文 是有找到相關的文章 就是例如新增了命中 回避 爆擊等數據 但是我只看到每提升一級以及設定等級多少就固定加多少 有辦法能夠像設定原本數據那樣 例如 1級給他10 99級給他300 中間級數的數字會自己分配的嗎 ...

回复

a364774426 发表于 2012-10-29 19:49:19
忘记了防御的英文缩写也是定义的缩写,
我这里有三个解决办法:
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. #########其实就是搬了防御的定义
复制代码

点评

P叔言简意赅,俺又学到新东西了~~~  发表于 2012-10-29 20:59
把def改成self.def,它就不变蓝了,喵~~  发表于 2012-10-29 20:55
有了有了~a364774426你好神!! 但是...爆撃數值卻還是0... 怎麼回事0.0"  发表于 2012-10-29 20:02
我覺得應該是這段"return n"的問題 似乎他不給另外+或-喔  发表于 2012-10-29 19:59
試過了...但是還是這行 54 return n + atk + def /2 出問題  发表于 2012-10-29 19:57
a364774426 发表于 2012-10-29 19:29:44
如果攻击防御什么的定义没有变,我想这样应该就可以了
  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
复制代码

评分

参与人数 2星屑 +14 梦石 +2 收起 理由
Luciffer + 2 认可答案
怪蜀黍 + 14 精美好人卡

查看全部评分

亂堂和樹 发表于 2012-10-29 19:18:33
本帖最后由 亂堂和樹 于 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前輩你說的~假設依照角色ID去區別... 或許真的能做到...不過肯定也是很長很長的腳本(狂汗  发表于 2012-10-29 19:39
其实,那个建议是我乱说的,不知道你信不信?不管你信不信,反正我信了~~~~~~  发表于 2012-10-29 19:33
亂堂和樹 发表于 2012-10-29 15:21:19
a364774426 发表于 2012-10-29 14:54
LZ的意思是自己设定角色的命中闪避这些的属性,并且每个角色的计算方法不一样,是吗?若然,方法如下:
在G ...


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

点评

话说和树君如果是因为汉语用不惯什么之类的原因你可以直接用日语然后@我,我来翻译=A=(当然,前提是和树君真是泥轰人嘛。。。)  发表于 2012-10-29 15:51
用数学中的函数来解决,定义域是1-99(级),函数自己设计。  发表于 2012-10-29 15:49
难道是我的理解能力太差了吗,于是在诸多语病中我找不到要点。  发表于 2012-10-29 15:28
a364774426 发表于 2012-10-29 14:54:35
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
若不然,请具体说说你要实现什么东西。
彭格列第XI代 发表于 2012-10-29 14:32:29
自己算下嘛~
(300-10)/98=?   [大概是这样]
自己用计算器...ME懒~

点评

哇…那豈不是weh1-99打到昏倒 而且希望每個人都是不一樣的數據啊!  发表于 2012-10-29 14:38
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-7-19 14:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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