Project1

标题: 关于回复物品的设定 [打印本页]

作者: 黑崎一护    时间: 2011-7-15 13:11
标题: 关于回复物品的设定
本帖最后由 黑崎一护 于 2011-7-15 15:47 编辑

想设定主角使用回复物品A时能回复100%,而其他队友使用回复物品A是只能回复50%,其余回复物品则没有此效果。

例如:物品B的恢复效果是所有人都有一样的...

需要使用公共事件么?还是需要使用脚本呢?

dsu_plus_rewardpost_czw
作者: Cherry    时间: 2011-7-15 13:15
本帖最后由 Cherry 于 2011-7-15 13:16 编辑

你可以在回复100%HP的角色数据库中{药物知识}打钩
设置药品A回复50%HP,但说明中要说“回复100%HP"
作者: 黑崎一护    时间: 2011-7-15 13:28
Cherry 发表于 2011-7-15 13:15
你可以在回复100%HP的角色数据库中{药物知识}打钩
设置药品A回复50%HP,但说明中要说“回复100%HP" ...

在角色数据库中{药物知识}打钩的话,其他回复物品使用时不会受影响么?

看了{药物知识}的解释是:让本角色在同伴身上使用回复物品是效果加倍。
作者: 仲秋启明    时间: 2011-7-15 15:14
Game_Actor中插入
  1.   #--------------------------------------------------------------------------
  2.   # ● 计算使用物品的体力回复量
  3.   #--------------------------------------------------------------------------
  4.   def calc_hp_recovery(user, item)
  5.     result = maxhp * item.hp_recovery_rate / 100 + item.hp_recovery
  6.     result *= 2 if user.pharmacology    # 「药物知识」效果加成2倍
  7.     result *= 10 if @actor_id ==4
  8.     return result
  9.   end
复制代码
意为4号角色恢复的HP是10倍
作者: 7426248626q    时间: 2011-7-15 15:37
改主角属性时轻轻地点击一下下药物知识
作者: 黑崎一护    时间: 2011-7-15 15:58
仲秋启明 发表于 2011-7-15 15:14
Game_Actor中插入意为4号角色恢复的HP是10倍

我觉得可能是我的表达能力太差了,我应该补充一下:问题里面的产生效果只限于某种物品针对某个角色。

感觉上打了{药物知识}的勾,其它物品也会跟着产生这种效果...
作者: 匿名    时间: 2011-7-15 16:08
黑崎一护 发表于 2011-7-15 15:58
我觉得可能是我的表达能力太差了,我应该补充一下:问题里面的产生效果只限于某种物品针对某个角色。

感 ...

actor属性建哈希什么的我才不知道呢
作者: 忧雪の伤    时间: 2011-7-15 17:42
本帖最后由 忧雪の伤 于 2011-7-15 17:55 编辑

  1. class Game_Actor
  2.   alias _calc_hp_recovery calc_hp_recovery unless $@
  3.   def calc_hp_recovery(*args)
  4.     case self.id
  5.       when 5 # 有加成的角色的编号。
  6.         case args[1].id
  7.         when 10 # 有加成的物品的编号。
  8.           return _calc_hp_recovery(*args) * 2 # 加成的幅度。
  9.         else
  10.           _calc_hp_recovery(*args)
  11.         end
  12.       else
  13.       _calc_hp_recovery(*args)
  14.     end
  15.   end
  16. end
复制代码


这个不是很好……

  1. class Game_Actor # 角色物件。
  2.   # 定义常量。可以自己添加更多的单元。参见帮助文件的哈希说明。
  3.   # 格式是:[角色编号, 物品编号] => 威力倍数 。
  4.   ItemAmplitude = { [1, 5] => 2, [3, 8] => 1.5 }
  5.   alias calc_itemamplitude calc_hp_recovery unless $@ # 别名
  6.   def calc_hp_recovery(*args) # 修改方法
  7.     # 根据是否存在,决定处理方法。
  8.     unless ItemAmplitude.key?([self.id, args[1].id])
  9.       return calc_itemamplitude(*args)
  10.     else
  11.       return calc_itemamplitude(*args) * ItemAmplitude[[self.id, args[1].id]]
  12.     end
  13.   end
  14. end
复制代码


这个还行……


反正,有问题再问我。
作者: 黑崎一护    时间: 2011-7-16 14:42
忧雪の伤 发表于 2011-7-15 17:42


这个不是很好……



请问使用第二个脚本,使用方法是修改第四行么?
如:ItemAmplitude = { [1, 5] => 2, [3, 8] => 1.5 }
改为:ItemAmplitude = { [2, 6] => 2, [1, 7] => 0.5 }

该脚本的插入也是插入Game_Actor中么?
作者: 忧雪の伤    时间: 2011-7-16 14:45
黑崎一护 发表于 2011-7-16 14:42
请问使用第二个脚本,使用方法是修改第四行么?
如:ItemAmplitude = { [1, 5] => 2, [3, 8] => 1.5 }
...

恩,是这样修改。
作者: 黑崎一护    时间: 2011-7-16 14:46
本帖最后由 黑崎一护 于 2011-7-16 14:54 编辑
忧雪の伤 发表于 2011-7-16 14:45
恩,是这样修改。


谢谢你,我明白了。







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