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

Project1

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

[推荐问答] 如何给敌人设置被动技能

[复制链接]

Lv2.观梦者

梦石
0
星屑
538
在线时间
254 小时
注册时间
2010-8-25
帖子
371
跳转到指定楼层
1
发表于 2012-9-6 17:56:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我曾经看见过梦幻群侠传3里面的脚本,发现只要敌人拥有那个被动技能,就可以获得所设置的效果。

但是我搜索主站上面的脚本的时候,发现所有的被动技能都是为主角设计的,有没有为敌人设计的。

注意:不要状态设置。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
2
发表于 2012-9-7 09:44:15 | 只看该作者
- -b战斗事件中条件分歧加强制行动可以实现...
好歹当年也当过大魔王过,orz
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
538
在线时间
254 小时
注册时间
2010-8-25
帖子
371
3
 楼主| 发表于 2012-9-7 11:50:41 | 只看该作者
zhangbanxian 发表于 2012-9-7 09:44
- -b战斗事件中条件分歧加强制行动可以实现...

我要敌人的攻击是百分百暴击的哦,还有无视我方防御的被动技能哦
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4504
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

4
发表于 2012-9-7 12:10:43 | 只看该作者
本帖最后由 protosssonny 于 2012-9-7 12:49 编辑

假象设计(一共三步):
目标:为3号敌人本身设计一个无任何效果且不能使用的技能,假如是“被动吸血25%”
1、那么在def attack_effect(attacker)定义的下面找到
  1. self.hp -= self.damage
复制代码
在这句话下面的下面加:
  1. if attacker.is_a?(Game_Enemy)   # 攻击者是敌人
  2.   if attacker.enemy_id == 3       # 攻击者的敌人ID是3
  3.     attacker.hp += self.damage * 25 / 100  # 攻击者的HP增加伤害值的25%
  4.   end
  5. end
复制代码
这样3号敌人攻击后就可以有吸血效果了。
(接下来设计假象)
2、添加一个技能,叫做“吸血[被动]”,技能使用范围设计成“无”,可能使用时设计成“不能使用”。
3、为3号敌人的行为下面加上这个技能,行动概率最低,为0。

这样就完成了,如果使用了怪物图鉴脚本的话,就可以看见3号敌人有一个被动技能“吸血[被动]”,而且3号敌人攻击时的确可以吸血。而实际上这个技能的存在与否与吸血效果的设计完全是两码事,图鉴中的被动技能“吸血[被动]”只是一个假象罢了。


<补充>3号敌人100%暴击的设计,在def attack_effect(attacker)定义的下面找到相应的位置并替换:
  1. if self.damage > 0
  2.   if attacker.is_a?(Game_Enemy)   # 攻击者是敌人
  3.     case attacker.enemy_id
  4.     when 3                        # 当是3号敌人时,若是多号敌人的话,id之间用逗号隔开,如:when 3,4,5
  5.       self.damage *= 2
  6.       self.critical = true
  7.     else                          # 攻击者是其他敌人
  8.       # 会心一击修正
  9.       if rand(100) < 4 * attacker.dex / self.agi
  10.         self.damage *= 2
  11.         self.critical = true
  12.       end
  13.       # 防御修正
  14.       if self.guarding?
  15.         self.damage /= 2
  16.       end
  17.     end
  18.   else                            # 攻击者是角色
  19.     # 会心一击修正
  20.     if rand(100) < 4 * attacker.dex / self.agi
  21.       self.damage *= 2
  22.       self.critical = true
  23.     end
  24.     # 防御修正
  25.     if self.guarding?
  26.       self.damage /= 2
  27.     end
  28.   end
  29. end
复制代码
2、3点同上不变。

点评

喵!作为VX党第一次在XP区被认可~~~,感谢斑竹,感谢66RPG,感谢CCTV,感谢奥巴马==b  发表于 2012-9-14 10:37
把那个“enemy_”删除掉吧,报错的,我实践的时候发现删除才能实现  发表于 2012-9-7 20:22

评分

参与人数 2星屑 +10 梦石 +2 收起 理由
hcm + 2 认可答案
闻人翎 + 10 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
538
在线时间
254 小时
注册时间
2010-8-25
帖子
371
5
 楼主| 发表于 2012-9-7 20:14:47 | 只看该作者
protosssonny 发表于 2012-9-7 12:10
假象设计(一共三步):
目标:为3号敌人本身设计一个无任何效果且不能使用的技能,假如是“被动吸血25%”
...

复制上去,到3号敌人攻击的时候就出现

未定义

enemy_id

点评

不是,我们VX都是写enemy.enemy_id不是enemy.id,两个是不同的。你最好按照我的办法,加一句话,那里继续保持enemy_id。  发表于 2012-9-7 20:28
在任意一个class Game_Battler下面仅接着写一行attr_accessor :enemy_id就可以了  发表于 2012-9-7 20:25
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-21 00:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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