Project1

标题: 如何让一个角色使用药物回复效果额外增加? [打印本页]

作者: 诺思酱    时间: 2014-5-21 03:52
标题: 如何让一个角色使用药物回复效果额外增加?
本帖最后由 诺思酱 于 2014-5-21 16:28 编辑

嗯,我真的有搜过帖子啦,没有符合我的要求的……
我的意思是:举个栗子,有一个药品,其他角色使用后,回复500的HP,无论目标对谁都是500.然后有一个角色A,他比较精通药理学吧,他使用这个药品,可以回复750的HP,无论是对谁使用,都能比其他人使用额外回复250的HP。
求这个效果怎么做出来……也就是说,如果喂药的人是A,那么他喂的所有药回复效果都会增加,即使不是喂给他自己。然后如果喂药的不是A,则计算正常的回复量,哪怕是喂给A也不会增加回复效果。是这么个意思……
嗯……就是这样……尝试过修改Game_Battler类,以失败告终……
作者: 芯☆淡茹水    时间: 2014-5-21 08:16
意思是:使用药品的效果,与使用者的某项属性有关?
作者: fux2    时间: 2014-5-21 09:22
在Game_Battler里动手思路是非常正确的。
你需要找到
  1. item_effect
复制代码
方法,默认脚本是在Game_Battler 3的209行。
然后前面计算部分可以暂时不看,你只需要看HP和SP更变的部分,即263和264行。
你对recover_hp和recover_sp做变动就可以实现你要的效果了。
举个例子,你在这两句上面插入
  1.       if self.state?(6)
  2.         recover_hp = recover_hp * 130 / 100
  3.       end
复制代码
就可以实现拥有6号状态的角色回复量/损伤量为130%
作者: 诺思酱    时间: 2014-5-21 13:41
fux2 发表于 2014-5-21 09:22
在Game_Battler里动手思路是非常正确的。
你需要找到方法,默认脚本是在Game_Battler 3的209行。
然后前面 ...

唔……我想你可能误解了我的意思……我意思是要该角色无论喂药给谁,药的回复量都会增加,如果按照你这样修改,就变成了,无论谁给这个角色喂药,药的回复量都会增加了。
我是打算做一个角色,专门给人喂药的,然后不管什么药经他之手喂出去,回复量都会增加,是这个意思啦。
作者: 邪恶奶熊    时间: 2014-5-21 13:58
不知道这样符不符合您的要求……其他可以继续细化

QQ图片20140521135737.jpg (24.16 KB, 下载次数: 8)

QQ图片20140521135737.jpg

作者: moy    时间: 2014-5-21 14:10
诺思酱 发表于 2014-5-21 13:41
唔……我想你可能误解了我的意思……我意思是要该角色无论喂药给谁,药的回复量都会增加,如果按照你这样 ...
  1. if self.name == "路人甲"
  2.     recover_hp = recover_hp * 130 / 100
  3. end
复制代码

作者: 诺思酱    时间: 2014-5-21 14:15
邪恶奶熊 发表于 2014-5-21 13:58
不知道这样符不符合您的要求……其他可以继续细化

这样也不是我的意思……这样做出来效果是该角色在队伍中就可以增加回复量,而我希望的是该角色使用药才增加回复量,而其他角色使用药,是正常的回复量,这样。
也就是该角色行动的时候,我给她下达喂药的指令,这样喂的药回复量才会增加,而并非是她在队伍里,回复量就增加……
作者: 邪恶奶熊    时间: 2014-5-21 14:40
那这样?当某个角色有这个状态就多加,没有就正常恢复

QQ图片20140521143935.jpg (23.52 KB, 下载次数: 8)

QQ图片20140521143935.jpg

作者: 诺思酱    时间: 2014-5-21 14:50
moy 发表于 2014-5-21 14:10

这样效果是药品效果的承受者的名字为 路人甲 的时候 回复量增加吧。。。
我需要的是喂药的家伙……而不是吃药的那个……
也就是下达使用药品命令的家伙,是药品的使用者,当他使用药品的时候回复量增加,无论药品的效果是否作用于他身上。
而您这样修改,还是和楼上那位效果一样,都不是我想要的那个效果呢。{:2_276:}
作者: 丰聪耳神子    时间: 2014-5-21 15:49
有点像东方年代记里的科学状态,不过我也不知道哦怎么做出来(
作者: 诺思酱    时间: 2014-5-21 15:51
邪恶奶熊 发表于 2014-5-21 14:40
那这样?当某个角色有这个状态就多加,没有就正常恢复

这样看着更像是光环技能……也不是我想要的……我想要的是 她喂药才增加回复量,而其他人喂药都不增加回复量。
作者: moy    时间: 2014-5-21 16:00
诺思酱 发表于 2014-5-21 14:50
这样效果是药品效果的承受者的名字为 路人甲 的时候 回复量增加吧。。。
我需要的是喂药的家伙……而不是 ...

RUBY 代码复制
  1. class Game_Battler
  2. def item_effect(user, item)
  3.   …
  4.   if user.name == "路人甲"
  5.      recover…
  6.   end
  7.   …
  8. end
  9. end

然后全局搜索item_effect,将之改为类似skill的格式
Scene_Item
RUBY 代码复制
  1. *.item_effect(@actor, @item)

Scene_Battle
RUBY 代码复制
  1. *.item_effect(@active_battler, @item)

作者: fux2    时间: 2014-5-21 17:16
诺思酱 发表于 2014-5-21 13:41
唔……我想你可能误解了我的意思……我意思是要该角色无论喂药给谁,药的回复量都会增加,如果按照你这样 ...

那只能在战斗中生效了,因为平时嗑药没有指定是哪个队员。
Scene_Battle 4的389行改成
  1. target.item_effect(@item,@active_battler)
复制代码
Game_Battler 3的209行定义改成
  1. def item_effect(item,user=nil)
复制代码
最后把我楼上的代码改成
  1.       if user && user.state?(6)
  2.         recover_hp = recover_hp * 130 / 100
  3.       end
复制代码
这样就变成了使用者有6号状态的时候目标所受治疗/伤害变为130%

作者: yang1zhi    时间: 2014-5-22 21:33
邪恶奶熊 发表于 2014-5-21 14:40
那这样?当某个角色有这个状态就多加,没有就正常恢复

把这个放到药的公共事件里面来判断
使用药就会启动这个公共事件




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