Project1

标题: 如何设计一个伤害随武器等级提升的单体技能? [打印本页]

作者: sttrz    时间: 2017-1-10 22:35
标题: 如何设计一个伤害随武器等级提升的单体技能?
如题,本人是个彻头彻尾的新手,刚刚开始尝试制作游戏,特来请教。
计划制作一名如下角色:武器不可更换但可通过事件升级,每升一级增加固定伤害值,角色所有技能威力也随之提升。公式大致为:技能威力=武器等级*固定伤害*技能系数。
想到了利用技能“公共事件“来实现效果,但尝试后发现公共事件中“减少敌人体力“仅可选择“全体敌人“或特定编号敌人,如此一来单体伤害技能便无法选择想攻击的目标……
另一个麻烦,是公共事件似乎无法实现这个公式,而技能伤害公式中又无法代入常量计算,目前尚未找到解决办法。

顺便一问:令特定角色没有“攻击”技能,有实现的办法吗?
作者: RaidenInfinity    时间: 2017-1-10 23:07
"而技能伤害公式中又无法代入常量计算"



作者: sttrz    时间: 2017-1-11 08:50
RaidenInfinity 发表于 2017-1-10 23:07
"而技能伤害公式中又无法代入常量计算"

居然没注意到最后的小字……自己基本功不扎实啊。感谢指点。
作者: sttrz    时间: 2017-1-11 11:33
RaidenInfinity 发表于 2017-1-10 23:07
"而技能伤害公式中又无法代入常量计算"

希望这个角色没有“攻击”命令,这样我就可以制作另一个技能来代替常规攻击
作者: RaidenInfinity    时间: 2017-1-11 11:54
RUBY 代码复制
  1. #玩家角色类 (继承 战斗人员类)
  2. class Game_Actor < Game_Battler
  3.  
  4.   #判定攻击是否可是用
  5.   def attack_usable?
  6.     #判定:如果[]内包含角色ID则返回假值/禁用攻击
  7.     return false if [1,2,3].include?(@actor_id) #改[]里面的数值
  8.     super #调用Game_BattlerBase里面的attack_usable?原方法
  9.   end
  10.  
  11. end

这个插件脚本会导致特定角色(请在[]里面定义,如果只有一个的话就[1]这样就好)的攻击指令被禁止使用(显示灰色)。
我是比较建议这样做,当然完全移除攻击指令也是有方法的:
RUBY 代码复制
  1. #角色战斗指令窗
  2. class Window_ActorCommand < Window_Command
  3.   #增添攻击指令
  4.   def add_attack_command
  5.     #如果[]里面包含角色ID则返回(不执行增添)
  6.     return if [1,2,3].include?(@actor.id)
  7.     #否则增添攻击指令
  8.     add_command(Vocab::attack, :attack, @actor.attack_usable?)
  9.   end
  10. end

用了这个就不需要上面的了(虽然两个一起放也没啥问题)
绿字注释已经说明了每行代码是干啥的。




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