Project1

标题: 请问如何修改属性的计算公式 [打印本页]

作者: 深海的影    时间: 2009-4-18 07:29
标题: 请问如何修改属性的计算公式
我想设计这样一个系统,HP和MP都由我新增的角色属性来决定,比如说,HP取决于耐力,MP取决于智力。想这样的修改要怎么样做呢?耐力和智力能力的扩展我已经完成,可以公式无法创建,因为智力和耐力都是我新增加的属性。

期待高手的解答,谢谢{/wx} [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 巴哈姆特    时间: 2009-4-18 08:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 开心词典2    时间: 2009-4-18 08:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 深海的影    时间: 2009-4-19 00:14
恩,两位的回答我知道了。简单的增加新属性不能和HP,MP相关的,我尝试过的。我在想是不是能够用修改RPG::Actor的方式来完成,不过还在探索的
作者: 小空弟    时间: 2009-4-19 01:45
那个mdef属性说起来问题也不少
如果想进行调整的话着实需要一番功夫。
特别是与加点系统并不兼容。
作者: 开心词典    时间: 2009-4-19 01:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 深海的影    时间: 2009-4-19 02:09
这样的确是不行的,这样运行,会出现一个错误,大意是mdef方法,在RPG::Actor中没有定义。

在RPG::Actor中有parameters[kind,@level]这样一个二维数组,游戏中的初始属性是在那个里面的,kind这个值只有那么几个,新增的属性不在这个设定里面。我想如果能够修改这个的话,游戏中公式会更加多变,可是我不知道怎么看RPG::Actor的具体定义
作者: 开心词典    时间: 2009-4-19 02:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: 深海的影    时间: 2009-4-19 04:27
呃,这个,好吧,我用一个新工程做了一次实验(我现在的工程整合的东西比较多,怕看不清了)。

简单起见,我试图让MP与精神相关,精神是游戏的内置属性,比较简单。
在Game_Actor的213行做了如下修改:

  #--------------------------------------------------------------------------
  # * 获取初始MP上限值信息
  #--------------------------------------------------------------------------
  def base_maxmp
    #return actor.parameters[1, @level]
    n = actor.parameters[1, @level]
    n += actor.spi
    return n
  end

带注释的是原来的那个语句,完了修改好了,运行,结果会出现如下错误:
脚本节:‘Game_Actor’,行号225:发生了NoMethodError。
undefined method 'spi' for #<RPG::Actor:0x24bf458>

这个错误并不会出现在开始画面还没有出现的时候,而是在点新游戏的时候弹出的错误。所以简单新增属性,然后再加进Game_Actor的方法似乎是没有用的。目前我的想法是就让MP和精神相关,把名称修改一下,然后自己加入一个新属性来代替原来精神的作用。因为原来精神似乎只是决定法术的伤害,这个可以用新属性来完成的……就是这个感觉会有点怪怪的。

不知道这个方法能不能改进成一个带参数的,就像游戏中定义普通攻击伤害和技能伤害的那两个一样,望高手赐招啊,拜托了!!
作者: 开心词典    时间: 2009-4-19 05:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: 深海的影    时间: 2009-4-19 17:44
非常感谢开心辞典的解释啊,{/qiang},这样的确可以,新增属性也没有问题。

这样的话,属性公式也可以非常自由的修改了{/cy}




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