设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1929|回复: 5
打印 上一主题 下一主题

[已经解决] 怎样设置指定角色的一个变量数值有增伤和伤减效果?

[复制链接]

Lv2.观梦者

梦石
0
星屑
584
在线时间
193 小时
注册时间
2011-3-12
帖子
111

开拓者

跳转到指定楼层
1
发表于 2014-1-25 02:07:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2星屑
例如角色1学会某技能,用事件增加变量【最终伤害+】80点,就会在普通攻击和技能的总伤害值加上80点固定伤害。
角色1学会某技能,用事件增加变量【防御抵消+】80点,就会在受到伤害的总值减掉80点固定伤害。

目前,我是这样弄的,
Game_Battler里def make_attack_damage_value(attacker)里
@hp_damage = damage上面插入

    damage -= $game_variable[5] if attacker.is_a?(Game_Enemy)
    damage += $game_variable[6] if attacker.is_a?(Game_Actor)

然后还有def make_obj_damage_value(user, obj)里if obj.damage_to_mp上面插入

    if damage > 0
      damage -= $game_variable[5] if user.is_a?(Game_Enemy)
      damage += $game_variable[6] if user.is_a?(Game_Actor)
    end

这样子,所以角色都对这两个变量有效果.
我想要的是每个ID都有两个变量实现效果.
希望有大神能改成[指定角色]享有,这样就能做出不同角色有不同的效果了.

最佳答案

查看完整内容

你需要每个角色都有这种效果,且每个角色的不一样,有两个办法, 设置n个变量, 对于角色1你的脚本之所以对每个角色都生效,是因为没有判定角色ID。 另外一种办法就是在Game_Actor开始部分加入在def setup(actor_id)中加入然后通过脚本来增加atk_plus 或 def_plus的值

点评

原先的脚本不要删除,找对地方插进去就行  发表于 2014-1-25 15:02
i是指角色ID n是指你设定的值,比如 80。忘了一个 += atk_plus 应该是 attacker.atk_plus -= def_plus是self.def_plus  发表于 2014-1-25 15:01
欢迎回归  发表于 2014-1-25 09:56

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
2
发表于 2014-1-25 02:07:52 | 只看该作者
你需要每个角色都有这种效果,且每个角色的不一样,有两个办法,
设置n个变量,
对于角色1
  1. if attacker.is_a?(Game_Actor) and attacker.id == 1
  2.   damage += $game_variables[1]
  3. end
  4. if self.is_a?(Game_Actor) and self.id == 1
  5.   damage -= $game_variables[2]
  6. end
复制代码
你的脚本之所以对每个角色都生效,是因为没有判定角色ID。
另外一种办法就是在Game_Actor开始部分加入
  1. attr_accessor :atk_plus
  2. attr_accessor :def_plus
复制代码
在def setup(actor_id)中加入
  1. @atk_plus = 0
  2. @def_plus = 0
复制代码
然后
  1. if attacker.is_a?(Game_Actor)
  2.   damage += atk_plus
  3. end
  4. if self.is_a?(Game_Actor)
  5.   damage -= def_plus
  6. end
复制代码
通过脚本
  1. $game_actors[i].atk_plus += n
复制代码
来增加atk_plus 或 def_plus的值

点评

那么之前的设置需要把他删走不?  发表于 2014-1-25 14:55
$game_actors[i].atk_plus += n,,,,,,,[i]是指ID吗?N就是指变量?  发表于 2014-1-25 14:54

评分

参与人数 1星屑 +60 收起 理由
yangjunyin2002 + 60 技能伤害大触啊~六道君~精品文章+认可答案+.

查看全部评分

这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
196
在线时间
835 小时
注册时间
2012-9-16
帖子
1811
3
发表于 2014-1-25 08:03:37 | 只看该作者
这种大事情当然应该要找大触P叔叔了~~~我来帮你at把(>_<)@protosssonny @丿梁丶小柒  

点评

这算神马大事?这种事情应该找最擅长修改技能伤害的六道君@a364774426  发表于 2014-1-25 09:49

——旧坑欢迎戳
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
584
在线时间
193 小时
注册时间
2011-3-12
帖子
111

开拓者

4
 楼主| 发表于 2014-1-31 20:12:46 | 只看该作者
a364774426 发表于 2014-1-25 08:56
你需要每个角色都有这种效果,且每个角色的不一样,有两个办法,
设置n个变量,
对于角色1你的脚本之所以对 ...

不好意思~
if attacker.is_a?(Game_Actor)
  damage += atk_plus
end
if self.is_a?(Game_Actor)
  damage -= def_plus
end

这段应该插在哪里?

点评

damage += $game_variables[x] if obj.base_damage > 0,damage -= ………… if obj.base_damage > 0。希望以后你能自己解读这类脚本。  发表于 2014-2-1 10:47
看6L  发表于 2014-2-1 10:35
你怎么能生搬呢,attacker你不改成user的吗  发表于 2014-2-1 09:31
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
5
发表于 2014-1-31 20:43:12 | 只看该作者
将你自己写的改成我的就行了

点评

出现了一个很严重的问题。。。。就是放增益技能给自己的时候秒掉自己了。。。。  发表于 2014-2-1 10:18
弄好了。那么判断obj.base_damage大于0还是小于0是不是在后面加if damage > 0?  发表于 2014-2-1 10:13
我按第一个方法改,结果普通攻击改成功了。技能一放就弹出了。  发表于 2014-2-1 09:27
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
582
在线时间
917 小时
注册时间
2013-3-13
帖子
557
6
发表于 2014-1-31 21:43:40 | 只看该作者
我补充一点,设定减伤的话需要注意判断obj.base_damage大于0还是小于0。

点评

这个判断在哪里加插?  发表于 2014-2-1 10:39

评分

参与人数 1星屑 +30 收起 理由
a364774426 + 30 我很赞同

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 07:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表