Project1

标题: 请问加了一个类似HP的属性后,如何在事件中减少这个属性? [打印本页]

作者: dkhy_2005    时间: 2013-3-3 10:43
标题: 请问加了一个类似HP的属性后,如何在事件中减少这个属性?
新添加了一个类似于HP、MP的属性SP,可是由于数据库中本没有SP这个属性,想在事件中的“脚本”一栏里用脚本来减少SP,于是请教各位前辈如何在事件中的“脚本”一栏写这个减SP的脚本,谢谢各位前辈了~
作者: yangjunyin2002    时间: 2013-3-3 11:26
SP?其实SP就是MP啦。对了,现在又什么怒气值之类的脚本。相当于VX ACE的TP值。可以去搜索下载哦~
另外你可以用变量的说,为什么用属性呢?
作者: yangjunyin2002    时间: 2013-3-3 11:33
- -下次别点评,害得我连贴。。。楼主。

呃,你可以在游戏一开始就打开开关,公共事件,当这个开关开启时,选择并行处理。
然后随时用另一个变量记录角色的等级。如有增加或减少,进行相应的处理。虽然比较麻烦但是值得。
或者按我刚才说的,用怒气值的脚本。
作者: dkhy_2005    时间: 2013-3-3 11:47
yangjunyin2002 发表于 2013-3-3 11:33
- -下次别点评,害得我连贴。。。楼主。

呃,你可以在游戏一开始就打开开关,公共事件,当这个开关开启时 ...

按照你所说的我建立了这么一个公共事件,并且在游戏一开始新建了事件打开了让公共事件执行的开关。我的设定是角色每增加一级SP值随之增加5点,接下去要怎么做才能使SP的值有所减少呢,我没怎么想明白。
作者: OCTSJimmy    时间: 2013-3-3 11:58
需要增加一个属性,其实完全可以参照MP来写的。
第一步,在Game_Battler中定义一个实例变量:
RUBY 代码复制
  1. attr_reader   :sp                       # SP

接着,做出类似这样的东东,在同个脚本中:
RUBY 代码复制
  1. def maxsp
  2.     return [[base_maxsp + @maxsp_plus, 0].max, 9999].min
  3.   end
  4.   def maxsp=(new_maxsp)
  5.     @maxsp_plus += new_maxsp - self.maxsp
  6.     @maxsp_plus = [[@maxsp_plus, -9999].max, 9999].min
  7.     @sp = [@mp, self.maxsp].min
  8.   end
  9.   def sp=(sp)
  10.     @sp = [[sp, maxsp].min, 0].max
  11.   end


这只是初步修改,接着要配合你用到的战斗系统,进一步在战斗脚本中修改技能的定义。
感觉自己做实在太麻烦了。
作者: dkhy_2005    时间: 2013-3-3 12:02
OCTSJimmy 发表于 2013-3-3 11:58
需要增加一个属性,其实完全可以参照MP来写的。
第一步,在Game_Battler中定义一个实例变量:
attr_reader  ...

谢谢,这些我已经做好了,现在的问题是加进去了不知如何使用,而且我不需要在战斗中使用这个SP,仅仅需要在事件中使用,所以不知怎么在事件中减少。
作者: OCTSJimmy    时间: 2013-3-3 12:07
本帖最后由 OCTSJimmy 于 2013-3-3 12:09 编辑
dkhy_2005 发表于 2013-3-3 12:02
谢谢,这些我已经做好了,现在的问题是加进去了不知如何使用,而且我不需要在战斗中使用这个SP,仅仅需要 ...


加好了就简单了嘛
直接上脚本:
RUBY 代码复制
  1. $game_party.members[0].sp=500


解释一下:$game_party是队伍,members取的其实是Game_Actors数组中的某一项,实际是Game_Actor,Game_Actor的原型是Game_Battler。




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