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

Project1

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

[已经解决] 如何制作会吸血的武器

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-12-2
帖子
19
跳转到指定楼层
 楼主| 发表于 2013-2-26 22:52:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
有谁知道RPG Maker XP吸血剑怎么制作?按伤害的百分比回血的武器。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-12-2
帖子
19
7
 楼主| 发表于 2013-2-27 18:07:48 | 只看该作者
芯☆淡茹水 发表于 2013-2-27 13:59
把脚本修改过,具体设置看脚本里

{:2_275:}  3Q
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-12-2
帖子
19
6
 楼主| 发表于 2013-2-27 14:05:22 手机端发表。 | 只看该作者
小和尚 发表于 2013-2-27 13:26
我发的那个里面是通过状态达到吸血效果 所以你可以把武器上附加该状态 试一试= = 如果不行的话再问.... ...

怎么给武器上状态。。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33131
在线时间
5105 小时
注册时间
2012-11-19
帖子
4878

开拓者

5
发表于 2013-2-27 13:59:28 | 只看该作者
    把脚本修改过,具体设置看脚本里
  1. #==============================================================================
  2. #★【吸血】★   
  3. #------------------------------------------------------------------------------
  4. #   by  芯☆淡茹水
  5. #------------------------------------------------------------------------------
  6. #    复制脚本,插入到 main 前。
  7. #------------------------------------------------------------------------------
  8. #        把想要有吸血功能的武器附加上以下设置的状态 ID 即可 。
  9. #     状态设置为 不可抵抗  。
  10. #     技能同上。
  11. #==============================================================================
  12. #◆ 设置项:
  13. #------------------------------------------------------------------------------
  14. STATE_ID = 10         # 吸血状态 ID 。
  15. RECOVER_HP = 50        # 吸的 HP 量为总伤害的百分比。
  16. #==============================================================================
  17. class Game_Battler
  18.   #---------------------------------------------------------------------------
  19.   def attack_effect(attacker)
  20.     self.critical = false
  21.     hit_result = (rand(100) < attacker.hit)
  22.     if hit_result == true
  23.       atk = [attacker.atk - self.pdef / 2, 0].max
  24.       self.damage = atk * (20 + attacker.str) / 20
  25.       self.damage *= elements_correct(attacker.element_set)
  26.       self.damage /= 100
  27.       if self.damage > 0
  28.         if rand(100) < 4 * attacker.dex / self.agi
  29.           self.damage *= 2
  30.           self.critical = true
  31.         end
  32.         if self.guarding?
  33.           self.damage /= 2
  34.         end
  35.       end
  36.       if self.damage.abs > 0
  37.         amp = [self.damage.abs * 15 / 100, 1].max
  38.         self.damage += rand(amp+1) + rand(amp+1) - amp
  39.       end
  40.       eva = 8 * self.agi / attacker.dex + self.eva
  41.       hit = self.damage < 0 ? 100 : 100 - eva
  42.       hit = self.cant_evade? ? 100 : hit
  43.       hit_result = (rand(100) < hit)
  44.     end
  45.     if hit_result == true
  46.       remove_states_shock
  47.       if states.include?(STATE_ID)
  48.         attacker.hp += self.damage * RECOVER_HP / 100
  49.         self.hp -= self.damage
  50.         remove_state(STATE_ID)
  51.       else
  52.        self.hp -= self.damage
  53.       end
  54.       @state_changed = false
  55.       states_plus(attacker.plus_state_set)
  56.       states_minus(attacker.minus_state_set)
  57.     else
  58.       self.damage = "Miss"
  59.       self.critical = false
  60.     end
  61.     return true
  62.   end
  63.   #----------------------------------------------------------------------------
  64.   def skill_effect(user, skill)
  65.     self.critical = false
  66.     if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
  67.        ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
  68.       return false
  69.     end
  70.     effective = false
  71.     effective |= skill.common_event_id > 0
  72.     hit = skill.hit
  73.     if skill.atk_f > 0
  74.       hit *= user.hit / 100
  75.     end
  76.     hit_result = (rand(100) < hit)
  77.     effective |= hit < 100
  78.     if hit_result == true
  79.       power = skill.power + user.atk * skill.atk_f / 100
  80.       if power > 0
  81.         power -= self.pdef * skill.pdef_f / 200
  82.         power -= self.mdef * skill.mdef_f / 200
  83.         power = [power, 0].max
  84.       end
  85.       rate = 20
  86.       rate += (user.str * skill.str_f / 100)
  87.       rate += (user.dex * skill.dex_f / 100)
  88.       rate += (user.agi * skill.agi_f / 100)
  89.       rate += (user.int * skill.int_f / 100)
  90.       self.damage = power * rate / 20
  91.       self.damage *= elements_correct(skill.element_set)
  92.       self.damage /= 100
  93.       if self.damage > 0
  94.         if self.guarding?
  95.           self.damage /= 2
  96.         end
  97.       end
  98.       if skill.variance > 0 and self.damage.abs > 0
  99.         amp = [self.damage.abs * skill.variance / 100, 1].max
  100.         self.damage += rand(amp+1) + rand(amp+1) - amp
  101.       end
  102.       eva = 8 * self.agi / user.dex + self.eva
  103.       hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
  104.       hit = self.cant_evade? ? 100 : hit
  105.       hit_result = (rand(100) < hit)
  106.       effective |= hit < 100
  107.     end
  108.     if hit_result == true
  109.       if skill.power != 0 and skill.atk_f > 0
  110.         remove_states_shock
  111.         effective = true
  112.       end
  113.       last_hp = self.hp
  114.       if states.include?(STATE_ID)
  115.         user.hp += self.damage * RECOVER_HP / 100
  116.         self.hp -= self.damage
  117.         remove_state(STATE_ID)
  118.       else
  119.        self.hp -= self.damage
  120.       end
  121.       effective |= self.hp != last_hp
  122.       @state_changed = false
  123.       effective |= states_plus(skill.plus_state_set)
  124.       effective |= states_minus(skill.minus_state_set)
  125.       if skill.id == SKILLRECOVER_HP_ID
  126.         user.hp += self.damage * RECOVER_HP / 100
  127.       end
  128.       if skill.power == 0
  129.         self.damage = ""
  130.         unless @state_changed
  131.           self.damage = "Miss"
  132.         end
  133.       end
  134.     else
  135.       self.damage = "Miss"
  136.     end
  137.     unless $game_temp.in_battle
  138.       self.damage = nil
  139.     end
  140.     return effective
  141.   end
  142. end
  143. #==============================================================================
复制代码

评分

参与人数 1梦石 +1 收起 理由
hcm + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2011-2-17
帖子
518
4
发表于 2013-2-27 13:26:20 | 只看该作者
934421082 发表于 2013-2-26 23:22
不知道是我理解错了还是怎样。。我是要做1个吸血的武器而不是吸血的技能。 ...

我发的那个里面是通过状态达到吸血效果 所以你可以把武器上附加该状态 试一试= = 如果不行的话再问....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-12-2
帖子
19
3
 楼主| 发表于 2013-2-26 23:22:55 | 只看该作者
晴兰 发表于 2013-2-26 23:12
技能的效果是公共事件,然后在公共事件里面用另一个技能来强制攻击,同时自己回复HP ...

不知道是我理解错了还是怎样。。我是要做1个吸血的武器而不是吸血的技能。

点评

状态设置为必中(不可抵抗勾选)  发表于 2013-2-26 23:37
你可以用一个空的状态,武器的攻击效果包含这个状态,但不包括伤害,然后公共事件中判断有这个状态的敌人,开始用那个技能的公共事件处理  发表于 2013-2-26 23:36
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2011-2-17
帖子
518
2
发表于 2013-2-26 23:20:48 | 只看该作者
吸血:当角色或敌人使用该吸血特技时,吸血量 = 总伤害 乘以 吸血 百分比/100

用用下面这个脚本吧
http://rpg.blue/forum.php?mod=viewthread&tid=285921
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

1
发表于 2013-2-26 23:12:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-10-1 00:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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