Project1

标题: 技能伤害计算公式如何读取变量 [打印本页]

作者: blueeyescyj    时间: 2014-5-26 18:41
标题: 技能伤害计算公式如何读取变量
公式设置是这样的

类型:体力值伤害   属性:无

计算公式:v[1]*1000

使用效果:
公共事件  变量1

公共事件
名称:变量1
内容:变量操作[0001:变量1] = 队伍人数


已经尝试过将伤害类型、属性更改,还有将变量改成常数,均不能对怪物打出伤害。将计算公式改成和变量无关的式子时,可以有伤害。

另外搜索到了一个貌似可以解决这个问题的脚本(下一行,只有一句),不知道如何使用,求指点
($Skill_Addition[0][$Skill_Lv]+100)/100
作者: 皮卡星    时间: 2014-5-26 19:15
计算公式直接用:
$game_party.members.size * 1000
作者: 皮卡星    时间: 2014-5-26 19:37
希望别计算成连帖,因为点评内容太少
金钱 = $game_party.gold
步数 = $game_party.steps
游戏时间 = Graphics.frame_count / Graphics.frame_rate
计时器 = $game_timer.sec
存档次数 = $game_system.save_count
战斗回数 = $game_system.battle_count
随机数 = rand(随机数)
作者: moy    时间: 2014-5-26 19:43

  1. class Game_Battler < Game_BattlerBase
  2.    #------------------------------------------------------------------------
  3.    # ● 快捷访问
  4.    #------------------------------------------------------------------------
  5.   def const_missing(sym)
  6.     case sym
  7.     when :V   then $game_variables
  8.     when :S   then $game_switches
  9.     when :N   then $game_actors
  10.     when :GP  then $game_party
  11.     when :P   then $game_party.members
  12.     when :G   then $game_party.gold
  13.     when :GT  then $game_troop
  14.     when :E   then $game_troop.members
  15.     else super
  16.     end
  17.   end
  18. end
复制代码
直接从事件快捷访问搬来的,是否会有诡异的错误我不知道

作者: blueeyescyj    时间: 2014-5-26 19:52
皮卡星 发表于 2014-5-26 19:37
希望别计算成连帖,因为点评内容太少
金钱 = $game_party.gold
步数 = $game_party.steps

谢谢。但这样还没有实质解决我的问题,比如我的变量是两个的(金钱*5+步数*10)

或者是分段的变量
金钱为0时,
v[1]=A
金钱大于0小于5000时
v[1]=B
金钱大于5000,小于10000时
v[1]=C
金钱大于1000时
v[1]=D
A、B、C、D是不相等的
这样又改如何解决?

作者: moy    时间: 2014-5-26 19:59
blueeyescyj 发表于 2014-5-26 19:52
谢谢。但这样还没有实质解决我的问题,比如我的变量是两个的(金钱*5+步数*10)

或者是分段的变量
  1. G * 5 + V[1] * 10 #步数在事件自己设定吧
复制代码
  1. V[1] = G > 0 ? G>5000 ? G> 10000 ? D : C : B : A ; V[1]
复制代码
无测试
作者: 皮卡星    时间: 2014-5-26 20:13
moy 发表于 2014-5-26 12:59
无测试

第一个可以用
  1. G * 5 + $game_party.steps * 10
复制代码
话说第二个的ABCD就那么写会出错的吧www
作者: blueeyescyj    时间: 2014-5-27 00:18
皮卡星 发表于 2014-5-26 20:13
第一个可以用话说第二个的ABCD就那么写会出错的吧www

没办法做到先读取变量,再计算伤害吗?不管怎么样还是谢谢前辈的指教{:6_367:}{:6_367:}{:6_367:}
作者: taroxd    时间: 2014-5-27 06:26
blueeyescyj 发表于 2014-5-27 00:18
没办法做到先读取变量,再计算伤害吗?不管怎么样还是谢谢前辈的指教 ...


学点简单的事件脚本吧…… 所有变量操作全都可以用脚本实现

顺便别用4L的脚本,那个是误导
作者: 紫苍焰    时间: 2014-5-27 07:59
……
记得有个用强制行动来做奥义什么的的方法……
你可以试试用第一个技能给变量赋值,然后第二个强制用的才计算伤害……
作者: taroxd    时间: 2014-5-27 15:30
moy 发表于 2014-5-26 19:43
直接从事件快捷访问搬来的,是否会有诡异的错误我不知道

这个eval定义在rgss内置脚本中,并不是在battler的上下文中执行代码。
其实我真不知道这个eval的上下文,现在我上学,也没环境。总之你在技能公式里输出self来确认一下eval的上下文吧……应该不是battler类的实例就是
作者: 紫苍焰    时间: 2014-5-27 16:41
@blueeyescyj
先造一个技能,没伤害,附加一个空状态,然后读取公共事件,公共事件的最后加一条强制行动-使用技能,这里填那个真正有伤害公式的技能, 目标就用前一个目标。
先这样试试。
不过要记得强制的那个技能最好别填使用时如何如何之类的东西,不然会违和,第一个没伤害的技能也必须添加一个空状态,不然会显示怪毫发无伤。
作者: blueeyescyj    时间: 2014-5-28 02:10
紫苍焰 发表于 2014-5-27 16:41
@blueeyescyj
先造一个技能,没伤害,附加一个空状态,然后读取公共事件,公共事件的最后加一条强制行动-使 ...

像这样子吗?




但是有点违和感。会显示两次XX使用了XX技能。

谢谢各位前辈,基本可以算解决我的问题了。谢谢大家{:6_367:} {:6_367:} {:6_367:} {:6_367:} {:6_367:}





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