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

Project1

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

[已经解决] 如何自定屬性數值

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
跳转到指定楼层
1
发表于 2012-10-29 14:12:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我爬了下文
是有找到相關的文章
就是例如新增了命中 回避 爆擊等數據
但是我只看到每提升一級以及設定等級多少就固定加多少
有辦法能夠像設定原本數據那樣
例如
1級給他10
99級給他300
中間級數的數字會自己分配的嗎

点评

每个人那就IF 队员ID=?? 那么就怎么计算啥的= =  发表于 2012-10-29 14:40

Lv1.梦旅人

梦石
0
星屑
38
在线时间
1165 小时
注册时间
2012-3-16
帖子
5336
2
发表于 2012-10-29 14:32:29 | 只看该作者
自己算下嘛~
(300-10)/98=?   [大概是这样]
自己用计算器...ME懒~

点评

哇…那豈不是weh1-99打到昏倒 而且希望每個人都是不一樣的數據啊!  发表于 2012-10-29 14:38
我想要到的是保护同伴的力量,能与同伴一起欢笑的未来的力量,如果无法做到的话,那就无需继承,如果是这样的彭格列的话,那我亲手毁掉它!
  
                       欢迎加入我们的家族~
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
3
发表于 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
若不然,请具体说说你要实现什么东西。
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
4
 楼主| 发表于 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
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
5
 楼主| 发表于 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
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
6
发表于 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 精美好人卡

查看全部评分

这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
7
 楼主| 发表于 2012-10-29 19:38:12 | 只看该作者
出現錯誤囉0.0...



似乎有什麼定義不給弄?

点评

這個是什麼東西不是很清楚=srpg2腳本中~有個項目設定~是依照地形而改變能力 例如:平原=重擊+0 / 草原=重擊+20 那麼在草原~角色的CRI數值+20  发表于 2012-10-29 20:26
n = apply_tile_effect(n, TSRPG::CRI) 这里,n = 改成 n +=试试看  发表于 2012-10-29 20:07
不然你把 公式写在外面试试看,n +=atk+fang/2 return n  发表于 2012-10-29 20:03
把 return n + atk + def/2 中的 def改成fang了吗?  发表于 2012-10-29 19:59
Game_actor中def base_atk那一段里。  发表于 2012-10-29 19:54
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
8
发表于 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
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
9
 楼主| 发表于 2012-10-29 20:13:36 | 只看该作者
本帖最后由 亂堂和樹 于 2012-10-29 20:23 编辑

成功了~a364774426前輩



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

還有a364774426前輩問個問題...
爆撃腳本中...
用你的方法..他還是沒改變喔~
而且...
下方不用+ return n 類的
他算的出來嘛0.0?���
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
10
 楼主| 发表于 2012-10-29 20:38:53 | 只看该作者
有了~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

效果↓

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 11:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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