Project1

标题: 请教怎么在技能描述中添加伤害的变量呢? [打印本页]

作者: zlpwb1666    时间: 2014-4-27 13:15
标题: 请教怎么在技能描述中添加伤害的变量呢?
本帖最后由 zlpwb1666 于 2014-4-27 14:37 编辑

RT
怎么在技能描述中添加关于伤害的变量数值。
比如一个技能的伤害由atk、mat、dex、luk同时加成但是各个属性加成百分比不一样。
那么要怎样才能使其在技能描述版面上显示出来的(具体数值)?
就是类似于LOL中的技能描述,根据装备变更而增减。
能够清晰明了的看出不同属性对于该技能伤害的加成,以便堆叠某属性,使技能伤害最大化。


如图,怎么样才能显示其中的\i[36]\c[1]75\c[0]、\i[37]\c[1]25\c[0]这两个属性百分比的具体数值
作者: VIPArcher    时间: 2014-4-27 13:20
其实我有一个想法,就是在公共事件里把伤害一个个算出来放到不同变量里,然后在说明里显示相应的变量就好了。然后在每次打开技能窗口时都运行一次这个公共事件。(大误{:7_305:}好烦的方法,
作者: taroxd    时间: 2014-4-27 13:23
直接写在描述栏里呗
作者: qknight    时间: 2014-4-27 13:31
记得图书馆里有一个技能升级脚本,里面就会自动计算并显示该技能的伤害值……不知能不能满足你的要求{:7_305:}
作者: zlpwb1666    时间: 2014-4-27 13:32
taroxd 发表于 2014-4-27 13:23
直接写在描述栏里呗

对,这个数值是会变的,比如这个技能的伤害时50%的mhp+100%的mmp
当角色hp100mp100的时候伤害就该显示150点。
当角色hp300mp100的时候伤害就该显示250点。


作者: zlpwb1666    时间: 2014-4-27 13:41
qknight 发表于 2014-4-27 13:31
记得图书馆里有一个技能升级脚本,里面就会自动计算并显示该技能的伤害值……不知能不能满足你的要求{:7_30 ...

谢谢你的提醒,这个脚本在起初想到过,但是它只能计算最终的伤害值。
因为我想要多属性加成,并且分开的显示在技能描述上。
so 打个比方,1技能伤害由200%mat及50%luk加成,在技能描述中也就应该显示具体数值
作者: sh0016    时间: 2014-4-27 19:26
不太明白楼主的问题...所以是显示会变化的最终伤害值还是数值比率?
我理解的是:1号技能显示【基础伤害+魔攻200%+幸运50%】,后面2项加成会变动。
例如说装备一把魔剑显示会变成【基础伤害+魔攻230%+幸运40%】?
如果是这样的话没有实际意义,因为只需要在装备方面提升或降低数值还是能达到提高伤害的效果。

如果楼主是想说显示【基础伤害+(魔攻200%)+(幸运50%)】括号中直接计算,同样没有意义,这些简单的计算玩家自己做得到.....
如果想显示【计算后最终伤害值】,这样玩家就完全没办法知道要提升哪些数值。

所以请楼主把问题写清楚点= =。
作者: 紫苍焰    时间: 2014-4-27 19:34
sh0016 发表于 2014-4-27 19:26
不太明白楼主的问题...所以是显示会变化的最终伤害值还是数值比率?
我理解的是:1号技能显示【基础伤害+魔 ...

……
参看LOL里,会出现某个技能的固定伤害(白字)+受攻击力加成的伤害数值(橙字)+受法强加成的伤害数值(绿字)……
大约就是这么个意思?
作者: zlpwb1666    时间: 2014-4-27 19:35
sh0016 发表于 2014-4-27 19:26
不太明白楼主的问题...所以是显示会变化的最终伤害值还是数值比率?
我理解的是:1号技能显示【基础伤害+魔 ...

我想让技能描述面板上显示那个“魔攻230%”的值是多少!如果该技能设置为“魔攻430%”这个值肯定又不一样的啦!
是没有什么意义,但是能清晰明了的看出来是魔攻属性加成高,还是幸运属性加成高,才能使伤害最大化。
不好意思,我游戏里面技能的学习全是通过堆积某种属性来领悟的,所以属性的权重明了的显示出来比较方便啦。
呵呵

作者: 紫苍焰    时间: 2014-4-27 19:40
本帖最后由 紫苍焰 于 2014-4-27 19:41 编辑
zlpwb1666 发表于 2014-4-27 19:35
我想让技能描述面板上显示那个“魔攻230%”的值是多少!如果该技能设置为“魔攻430%”这个值肯定又不一样 ...


……
你直接写出来每个技能的加成是多少不好吗……
这么一说的话,用变量有啥意义?单个技能受到的加成是不变的,变化的只是当前属性值吧……
你直接把受多少加成写出来不就完了……
作者: sh0016    时间: 2014-4-27 19:49
zlpwb1666 发表于 2014-4-27 19:35
我想让技能描述面板上显示那个“魔攻230%”的值是多少!如果该技能设置为“魔攻430%”这个值肯定又不一样 ...

呵呵泥煤

在描述里写上【魔攻230%】跟【魔攻430%】当然不一样,难道还需要去计算才会发现原来不一样?
再说【魔攻200%】跟【幸运50%】当然是魔攻更能提升伤害值这也要去计算?就算幸运的平均值是魔攻的4倍+1点魔攻=+2%伤害跟+1点幸运=0.5%伤害这也要计算才能看得出来?

既然属性是重点那只需要告诉玩家提升哪项就行了,直接写上【伤害=魔攻200%】很土很渣吗?
还有别告诉我你的游戏中所有的属性都是隐藏数值,不给直接计算就不知道伤害有多少。
作者: zlpwb1666    时间: 2014-4-27 19:51
紫苍焰 发表于 2014-4-27 19:40
……
你直接写出来每个技能的加成是多少不好吗……
这么一说的话,用变量有啥意义?单个技能受到的加成是 ...

谢谢你的回复。
怎么写的出来呢?
属性会变化啊 变化了那个值也就变化了啊!!
还有如果直接写出来那个效果没有用数据显示出来的那么明了、清晰、易懂
作者: 紫苍焰    时间: 2014-4-27 19:54
本帖最后由 紫苍焰 于 2014-4-27 19:56 编辑
zlpwb1666 发表于 2014-4-27 19:51
谢谢你的回复。
怎么写的出来呢?
属性会变化啊 变化了那个值也就变化了啊!!


……
名称:摇摆风暴
描述:通过旋转巨斧华丽的连续攻击,造成230%攻击力的伤害。对【战狂】状态的目标伤害加倍。无视防御。

敢问,这个你看懂了吗?
莫非你写的技能还带角色1级的时候是230%,角色8级就变成450%的?如果是这样而不是在数据库里换了一个同名技能的话请务必告诉我你是怎么做到的……
作者: zlpwb1666    时间: 2014-4-27 19:58
sh0016 发表于 2014-4-27 19:49
呵呵泥煤

在描述里写上【魔攻230%】跟【魔攻430%】当然不一样,难道还需要去计算才会发现原来不一样?

谢谢你的回复。
首先我没有觉得经过上述所说的设置之后就会有多么的高大上,首先我还是把态度摆正了的。
然后,我的设定导致我没法很好的告诉玩家具体提升哪项属性,每个属性提高至600点以上都有各自不同的技能会领悟到,而且每个属性延伸出来的技能伤害加成都受制于他们的那个属性。
所以我想弄个能计算的变量在那,供玩家自己权衡走什么路线。
例:战士 力量600+ 就会有5个有力量属性加成的攻击性技能。
但是如果 战士 防御600+ 就会有5个防御属性加成的防御技能。
嗯 差不多就是这个意思。
真不好意思,麻烦你了
作者: zlpwb1666    时间: 2014-4-27 20:03
紫苍焰 发表于 2014-4-27 19:54
……
名称:摇摆风暴
描述:通过旋转巨斧华丽的连续攻击,造成230%攻击力的伤害。对【战狂】状态的目标伤 ...

NO NO NO
首先 谢谢你的回复。
我不是说这个的改变。
技能公式里写 例:100 + a.atk * 2.3 - b.def * 1 这样
我的技能描述是造成100点 + (230%ATK)的伤害。
我想要在技能描述里显示出括号里的具体数值。OK?
作者: 紫苍焰    时间: 2014-4-27 20:06
zlpwb1666 发表于 2014-4-27 19:58
谢谢你的回复。
首先我没有觉得经过上述所说的设置之后就会有多么的高大上,首先我还是把态度摆正了的。
...

……
你的意思是,同一个技能,属性值不同加成也不同?
这是怎么做到的请务必告诉咱。
作者: 紫苍焰    时间: 2014-4-27 20:07
zlpwb1666 发表于 2014-4-27 20:03
NO NO NO
首先 谢谢你的回复。
我不是说这个的改变。

为毛非要纠结具体数值?
难道玩家都是⑨,百分比就比不出来大小?
作者: 紫苍焰    时间: 2014-4-27 20:11
zlpwb1666 发表于 2014-4-27 20:03
NO NO NO
首先 谢谢你的回复。
我不是说这个的改变。

先问一下,你玩过WOW吗?
其次,你玩过的话,武器战玩过吗?
现在除了雷霆一击和几个投掷外加防战的几个技能跟龙吼之外,其他战士技能真心都是武器伤害的百分比……
你觉得那样子很傻【哔——】是吗?
还是你觉得玩武器战的玩家都是智商超群的人不然看百分比会晕?
作者: zlpwb1666    时间: 2014-4-27 20:11
紫苍焰 发表于 2014-4-27 20:07
为毛非要纠结具体数值?
难道玩家都是⑨,百分比就比不出来大小?

好吧 我错了
首先 谢谢你的回复。
我不想打那么多百分比,因为很多技能都是多属性加成,如果直接计算了,就是一个伤害值,是数字的。
显示也比较方便,我角色光是属性百分比显示有点看起来不怎么明了、清晰、易懂。
作者: zlpwb1666    时间: 2014-4-27 20:16
紫苍焰 发表于 2014-4-27 20:11
先问一下,你玩过WOW吗?
其次,你玩过的话,武器战玩过吗?
现在除了雷霆一击和几个投掷外加防战的几个 ...

首先 谢谢你的回复。
第一题 答:玩过 70年**始玩的
第二题 答:没有玩过武器战 全部玩的远程
第三题 答:我并没有觉得那样子很S&B
第四题 答:其他。

其他:首先我没有觉得玩武器战的玩家都是智商超群的人,当然也不能排除有这样的人。
其次,看百分比应该都不会晕吧,不过你不觉得用变量的数值来显示更加的明了、清晰、易懂么?
作者: 紫苍焰    时间: 2014-4-27 20:32
zlpwb1666 发表于 2014-4-27 20:11
好吧 我错了
首先 谢谢你的回复。
我不想打那么多百分比,因为很多技能都是多属性加成,如果直接计算了 ...

……
那其实很简单啊。
你只需要把所有技能的数值自己算出来然后写上就好。
其他有提升属性的技能,你可以把对应数值写出来,然后做到让那个提升数值+技能里的计算数值=最终伤害数值,这样一来玩家要做的就是记住提升属性的数值和每个技能的伤害数值,相加就是最终的伤害数值。
这样一来你的角色绝对的明了、清晰、易懂。
作者: 紫苍焰    时间: 2014-4-27 20:48
zlpwb1666 发表于 2014-4-27 20:16
首先 谢谢你的回复。
第一题 答:玩过 70年**始玩的
第二题 答:没有玩过武器战 全部玩的远程

……
你所谓的明了清晰易懂只不过是让玩家焦头烂额而已……
LOL把伤害写的很高,可是实际上打出来的伤害通常连描述中的70%都不到,而且就算是LOL也有很多技能的伤害没有明确的写出来。比如蒙多的Q,只说了最低伤害是多少,实际伤害描述里只说了固定伤害和蒙多当前HP一定百分比的额外伤害,这个额外伤害是多少你永远找不到数值。还有蒙多的E也是,5级固定100伤害,每损失1%HP增加一定量的伤害,你是不是觉得蒙多很不清晰、明了、易懂?
实际上这货反倒是最简单好用的几个英雄之一。
作者: kiuh99999    时间: 2014-4-27 20:50
感觉很有趣。。有一个理论方法,楼主可以试一试,,,由于可以找代码的参考txt删了。。所以楼主自己看看能不能试一试,
就是有 一段代码 x   ,可以读取角色具体数值的。然后, 结果就是  代码x*百分比 = 显示为具体数值,。但是那个技能就变成只能给一个角色用了。。。

作者: 紫苍焰    时间: 2014-4-27 20:52
zlpwb1666 发表于 2014-4-27 20:16
首先 谢谢你的回复。
第一题 答:玩过 70年**始玩的
第二题 答:没有玩过武器战 全部玩的远程

游戏不需要让玩家知道太多的东西,他们只需要一个大致的判断,知道每个技能的优点和弊端,并且了解哪个伤害比其他技能高就可以了。
你那样做的话,就算有个技能比别的技能伤害高30,但是谁会在意这区区30点伤害?与其寄希望于这30点伤害还不如想方设法多出一发伤害低30的技能来得实在。
作者: sh0016    时间: 2014-4-27 22:11
本帖最后由 sh0016 于 2014-4-28 18:48 编辑

修正小数点错误。

控制符“\D[A][B]”:A=数值ID(HP=0,MP=1等等),B=比率(80,230等),只能输入数字。
例子:\D[4][200]=显示魔攻*200%
以上。
  1. #==============================================================================
  2. # ■ Window_Help
  3. #==============================================================================

  4. class Window_Help < Window_Base
  5.   #--------------------------------------------------------------------------
  6.   # ● 初始化对象
  7.   #--------------------------------------------------------------------------
  8.   def initialize(line_number = 2)
  9.     super(0, 0, Graphics.width, fitting_height(line_number))
  10.     [url=home.php?mod=space&uid=95897]@actor[/url] = nil
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 设置角色
  14.   #--------------------------------------------------------------------------
  15.   def actor=(actor)
  16.     return if @actor == actor
  17.     @actor = actor
  18.     refresh
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 设置物品
  22.   #     item : 技能、物品等
  23.   #--------------------------------------------------------------------------
  24.   def set_item(item)
  25.     set_text(item ? item.description : "")
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 进行控制符的事前变换
  29.   #    在实际绘制前、将控制符替换为实际的内容。
  30.   #    为了减少歧异,文字「\」会被首先替换为转义符(\e)。
  31.   #--------------------------------------------------------------------------
  32.   def convert_escape_characters(text)
  33.     result = text.to_s.clone
  34.     result.gsub!(/\\/)            { "\e" }
  35.     result.gsub!(/\e\e/)          { "\\" }
  36.     result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
  37.     result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
  38.     result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
  39.     result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
  40.     result.gsub!(/\eG/i)          { Vocab::currency_unit }
  41.     #--
  42.     result.gsub!(/\eD\[(\d+)\]\[(\d+)\]/i) { @actor.param($1.to_i) * $2.to_i / 100 }
  43.     result
  44.   end
  45. end

  46. #==============================================================================
  47. # ■ Scene_MenuBase
  48. #------------------------------------------------------------------------------
  49. #  所有菜单画面的基本处理
  50. #==============================================================================

  51. class Scene_MenuBase < Scene_Base
  52.   #--------------------------------------------------------------------------
  53.   # ● 生成帮助窗口
  54.   #--------------------------------------------------------------------------
  55.   alias create_help_window_plus create_help_window
  56.   def create_help_window
  57.     create_help_window_plus
  58.     @help_window.actor = @actor
  59.   end
  60. end

  61. #==============================================================================
  62. # ■ Scene_Battle
  63. #==============================================================================

  64. class Scene_Battle < Scene_Base
  65.   #--------------------------------------------------------------------------
  66.   # ● 指令“技能”
  67.   #--------------------------------------------------------------------------
  68.   alias command_skill_plus command_skill
  69.   def command_skill
  70.     @help_window.actor = BattleManager.actor
  71.     command_skill_plus
  72.   end
  73. end
复制代码

作者: 最后制帽匠    时间: 2014-4-28 11:29
LZ,你可以考虑把1个技能弄2个,一个是描述技能,触发一个公共事件,设置一开关,当战斗开始的时候打开,在地图上关闭开关,判断是否在战斗中,不在战斗中就显示文字,在战斗中的话就强制角色使用实际的技能




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