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

Project1

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

[已经解决] 吸血技能

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3606
在线时间
1891 小时
注册时间
2010-6-19
帖子
1211
跳转到指定楼层
1
发表于 2014-8-18 08:55:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 黑米馒头 于 2014-11-16 19:31 编辑

如何制作1个吸血技能,技能为被动技能,攻击敌人的时候,自己恢复攻击伤害的20%的气血,在特技的【属性】库里面,设置被动技能的时候要勾选 10号【属性】,还要勾选1个【属性】为【吸血】的属性。

普通攻击同伴.rar

2.51 MB, 下载次数: 117

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-8-18 09:41:50 | 只看该作者
本帖最后由 恐惧剑刃 于 2014-11-18 23:31 编辑

吸血脚本
  1. #==============================================================================
  2. # - 普通攻击简易吸血 -
  3. # 只有学会特定技能的角色或敌人才可以吸血;
  4. # 敌人要设置发动特技的条件,一个永远不被打开的开关;
  5. # 为了方便起见,技能id越大视为吸血效果越好。
  6. #==============================================================================
  7. module Battler_XiXue
  8.   Attack_Setup = {}
  9.   #----------------------------------------------------------------------------
  10.   # Attack_Setup[技能id] = [回复率, 触发概率, 分散度]
  11.   #----------------------------------------------------------------------------
  12.   Attack_Setup[57] = [10, 100, 20]
  13. end
  14. #==============================================================================
  15. # - Game_Battler
  16. #==============================================================================
  17. class Game_Battler
  18.   #----------------------------------------------------------------------------
  19.   # 应用普通攻击效果
  20.   #----------------------------------------------------------------------------
  21.   alias :attack_effect_xixue_old :attack_effect
  22.   def attack_effect(attacker)
  23.     attack_effect_xixue_old(attacker)
  24.     #--------------------------------------------------------------------------
  25.     # 吸血判断
  26.     #--------------------------------------------------------------------------
  27.     if attacker.is_a?(Game_Actor)
  28.       jj = attacker.skills & Battler_XiXue::Attack_Setup.keys
  29.     else
  30.       s = []
  31.       for i in $data_enemies[attacker.id].actions
  32.         s << i.skill_id
  33.       end
  34.       jj = s & Battler_XiXue::Attack_Setup.keys
  35.     end
  36.     #--------------------------------------------------------------------------
  37.     # 吸血效果
  38.     #--------------------------------------------------------------------------
  39.     if jj.size > 0
  40.       d = Battler_XiXue::Attack_Setup[jj.max]
  41.       if self.damage.is_a?(Numeric) and self.damage > 0 and rand(100) < d[1]
  42.         attacker.damage = 0 - self.damage * d[0] / 100
  43.         d = attacker.damage * d[2] / 100
  44.         d += 1 if d == 0
  45.         f = 0 - d
  46.         e = 0 - f
  47.         v = [*e..f]
  48.         attacker.damage += v[rand(v.size)]
  49.         attacker.hp -= attacker.damage
  50.       end
  51.     end
  52.   end
  53. end
  54. #==============================================================================
  55. # - Scene_Battle 显示吸血效果 默认用
  56. #==============================================================================
  57. class Scene_Battle
  58.   alias :update_phase4_step5_xixue_old :update_phase4_step5
  59.   def update_phase4_step5
  60.     update_phase4_step5_xixue_old
  61.     if @active_battler.damage
  62.       @active_battler.damage_pop = true
  63.     end
  64.   end
  65. end
  66. =begin
  67. #==============================================================================
  68. # - Scene_Battle 显示吸血效果 真移位用
  69. #==============================================================================
  70. class Scene_Battle
  71.   alias :update_phase4_step4_xixue_old :update_phase4_step4
  72.   def update_phase4_step4
  73.     if @active_battler.damage
  74.       @active_battler.damage_pop = true
  75.     end
  76.     update_phase4_step4_xixue_old
  77.   end
  78. end
  79. #==============================================================================
  80. # - Scene_Battle 显示吸血效果(字体颜色) 真移位追加
  81. #==============================================================================
  82. class Bitmap
  83.   def draw_number(x, y, number,o,picture = RPG::Cache.system("number"))
  84.     w = picture.width / 10
  85.     h = picture.height / 5
  86.     rect = Rect.new(0,0,w,h)
  87.     if number.is_a?(Numeric)
  88.       rect.set(0,h*2,w,h) if number < 0
  89.       number = number.abs
  90.     end
  91.     number = number.to_s
  92.     array = number.split(//)
  93.     for i in 0...array.size
  94.       array[i] = array[i].to_i
  95.     end
  96.     case o
  97.     when 1
  98.       x += 81 - (array.size * 9)
  99.     when 2
  100.     end
  101.     if number == "Miss"
  102.       self.blt(x,y,picture,Rect.new(0,h*3,picture.width,h))
  103.       return
  104.     end
  105.     for sz in array
  106.       rect.x = sz * w
  107.       self.blt(x,y,picture,rect)
  108.       x += w
  109.     end
  110.   end
  111. end
  112. module RPG
  113.   class Sprite < ::Sprite
  114.     def damage(value, critical)
  115.       dispose_damage
  116.       bitmap = Bitmap.new(160, 48)
  117.       bitmap.font.name = "Arial Black"
  118.       bitmap.font.size = 32
  119.       if value.is_a?(Numeric) and value < 0
  120.         bitmap.font.color.set(176, 255, 144)
  121.       else
  122.         bitmap.font.color.set(255, 255, 255)
  123.       end
  124.       bitmap.draw_number(0, 12, value, 1)
  125.       if critical
  126.         bitmap.font.size = 20
  127.         bitmap.font.color.set(0, 0, 0)
  128.         bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  129.         bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  130.         bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  131.         bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  132.         bitmap.font.color.set(255, 255, 255)
  133.         bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  134.       end
  135.       @_damage_sprite = ::Sprite.new(self.viewport)
  136.       @_damage_sprite.bitmap = bitmap
  137.       @_damage_sprite.ox = 80
  138.       @_damage_sprite.oy = 20
  139.       @_damage_sprite.x = self.x
  140.       @_damage_sprite.y = self.y - self.oy / 2
  141.       @_damage_sprite.z = 3000
  142.       @_damage_duration = 40
  143.     end
  144.   end
  145. end
  146. =end
复制代码
技能书脚本
  1. module Battler_XiXue
  2.   Item_ID = [1, 2, 3, 4, 5]  # 作为技能书的物品id
  3.   Skill_ID = [1, 2, 3, 4, 5] # 技能书对应习得的技能
  4. end
复制代码
Scene_Item 168行下加
  1. if Battler_XiXue::Item_ID.include?(@item.id)
  2.         ii = Battler_XiXue::Item_ID.index(@item.id)
  3.         target.learn_skill(Battler_XiXue::Skill_ID[ii])
  4.         used = true if !used
  5.       end
复制代码

点评

这只能组合梦二脚本使用了  发表于 2014-11-19 18:57
貌似这样角色可以了,但是我用的是梦幻群侠传2的脚本,这样弄宠物竟然不能学习技能。能否弄成像梦幻群侠传那样的方法习得技能。  发表于 2014-11-19 18:34
原因是当前物品不能使用,比如说角色是满HP的,就不能再用回复HP的药品了。脚本又简单改了下。  发表于 2014-11-18 23:28
貌似可以了,但是有个问题,物品使用了之后不会消耗的。这是怎么回事  发表于 2014-11-18 20:12
都能弄的,设置一个己方单体的技能书物品在脚本中稍作改动就OK了,不过还是要一个一个设置,除非技能id与物品id之间有特定规律 比如 相等  发表于 2014-11-18 18:45
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
250
在线时间
233 小时
注册时间
2013-8-2
帖子
587
3
发表于 2014-8-18 09:52:06 | 只看该作者
请搜索 吸血技能
我忘了,我要怎么遗忘。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3606
在线时间
1891 小时
注册时间
2010-6-19
帖子
1211
4
 楼主| 发表于 2014-8-18 10:41:02 | 只看该作者
恐惧剑刃 发表于 2014-8-18 09:41
不用那么麻烦,只要是有200号特技都会吸血

吸血是可以了,不过有个问题,因为我用的是真移位,攻击好敌人之后,没有直接恢复HP,而是角色返回之后才恢复的HP。有没办法改成,攻击之后恢复HP。

吸血.rar

509.16 KB, 下载次数: 83

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
164 小时
注册时间
2011-8-15
帖子
238
5
发表于 2014-8-18 13:12:44 | 只看该作者
可以做成一个带恢复效果的攻击技能= -,这两者好像没区别....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
6
发表于 2014-8-18 21:51:52 | 只看该作者
本帖最后由 恐惧剑刃 于 2014-12-4 18:09 编辑

沙发有更新

点评

貌似范例看不见  发表于 2014-8-28 10:41
范例http://url.cn/PFtgVE  发表于 2014-8-28 10:23
帮忙弄个小吸血,血量为10%  发表于 2014-8-27 15:51
可以了,3Q  发表于 2014-8-21 07:08
现在可以了  发表于 2014-8-21 06:22

评分

参与人数 1梦石 +1 收起 理由
︶ㄣ牛排ぶ + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3606
在线时间
1891 小时
注册时间
2010-6-19
帖子
1211
7
 楼主| 发表于 2014-8-29 13:21:31 | 只看该作者
本帖最后由 黑米馒头 于 2014-8-29 13:23 编辑
恐惧剑刃 发表于 2014-8-18 21:51


能否像你这个吸血技能那样,制作一个物理攻击连击的被动技能,有高级和低级之分,
高级的连击最高次数是5次,每次连击只有80%伤害,每次连击的几率都不同,
第一次为100%几率,
第二次为50%,
第三次为45%,
第四次为40%,
第五次为35%,

当然要打出第二次连击的时候,才有几率触发第三次,在是第四次,以此类推。

低级连击最高为3次,每次连击只有75%的伤害,
第一次为100%,
第二次为50%几率,
第三次为45%几率,

最好设置1个地方,可以增加连击数的,方便我以后提高次数用。

能弄吗,弄成真移位可以用的,就是连击的时候,站在敌人面前连击,梦3的连击太鸡肋了,打一下回来在打,感觉好恶心
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
8
发表于 2014-8-29 14:15:38 | 只看该作者
设置同吸血就不多叙述了

真移位物理(被动)连击.rar

537.01 KB, 下载次数: 52

点评

在弄个主动技能连击,有3次连击的,第一下100,110,120. 7次连击的,7连的话每次连击伤害为第一次100%,然后95%,90%,85%。。。。。5%的减少。  发表于 2014-8-29 15:41
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3606
在线时间
1891 小时
注册时间
2010-6-19
帖子
1211
9
 楼主| 发表于 2014-8-29 16:06:13 | 只看该作者
恐惧剑刃 发表于 2014-8-29 14:15
设置同吸血就不多叙述了

貌似我这样设置,怎么一攻击就出错误

新建 文本文档.rar

1.09 KB, 下载次数: 44

回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
10
发表于 2014-8-29 18:45:45 | 只看该作者
主动连击也放进去了,顺便测试下那个十字斩吧
两个附件,新建文本文档的那个是你说会报错的那个问题

真移位物理(主动and被动),法术连击.rar

538.99 KB, 下载次数: 62

新建 文本文档.rar

1.2 KB, 下载次数: 34

点评

弄个仿梦幻西游STL的鹰击,最高秒7,打1下回来,在打别的敌人。  发表于 2014-8-29 18:55
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 12:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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