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

Project1

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

[已经解决] 血量减半

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
256 小时
注册时间
2013-5-27
帖子
196
跳转到指定楼层
1
发表于 2013-6-13 23:09:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 scottyfan 于 2013-6-18 15:54 编辑

想做一个技能,在战斗让使用者的血量减去自身最大血量的一半,如何实现?
如果是让目标血量减半,又要如何实现?

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
2
发表于 2013-6-14 12:08:08 | 只看该作者
自减写一个公共事件。

但是会出现一句“对???无效”可以无视。

对敌要在这里改,
写一个if,判断这个技能然后加上一句这个:
  1. damage = self.Maxhp/2
复制代码

点评

如果获得当前使用者的最大HP?比如是敌人用这个技能话。  发表于 2013-6-14 20:27

评分

参与人数 1星屑 +100 收起 理由
怪蜀黍 + 100 但是要注意Maxhp必须小写!

查看全部评分

长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
3
发表于 2013-6-14 22:59:53 | 只看该作者
本帖最后由 shinliwei 于 2013-6-14 23:02 编辑
  1. module RPG
  2.   #=============================================================================
  3.   # ■ State
  4.   #=============================================================================
  5.   class State
  6.     def read_note(section, mismatch = nil)
  7.       self.note.each_line do |line|
  8.         ## 不希望忽略大小写,则删掉下一行最后一个i
  9.         eval("#{line}; return #{section}") if line =~ /^\s*#{section}\s*=/i
  10.       end
  11.       return mismatch
  12.     end
  13.   end
  14. end

  15. # 设定模块,设定三项能力值的最大值

  16. module Enhance_State
  17.   CRITICAL_MAX = 999
  18.   HIT_MAX = 999
  19.   EVA_MAX = 999
  20.   MAXHP_MAX = 9999
  21.   MAXMP_MAX = 9999
  22. end

  23. # RPG::State模块,定义读取三种附加能力
  24. module RPG
  25.   class State
  26.     def cri_plus
  27.       return read_note("cri_plus")
  28.     end
  29.    
  30.     def hit_plus
  31.       return read_note("hit_plus")
  32.     end
  33.    
  34.     def eva_plus
  35.       return read_note("eva_plus")
  36.     end
  37.    
  38.     def maxhp_plus
  39.       return read_note("maxhp_plus")
  40.     end
  41.    
  42.     def maxmp_plus
  43.       return read_note("maxmp_plus")
  44.     end
  45.   end
  46. end

  47. # 致命一击、命中率和闪躲率的追加定义
  48. class Game_Actor
  49.   include Enhance_State
  50.   alias :enhance_cri :cri
  51.   def cri
  52.     n = enhance_cri
  53.     states.each do |state|
  54.       n += state.cri_plus || 0
  55.     end
  56.     return [n , CRITICAL_MAX].min
  57.   end
  58.   
  59.   alias :enhance_hit :hit
  60.   def hit
  61.     n = enhance_hit
  62.     states.each do |state|
  63.       n += state.hit_plus || 0
  64.     end
  65.     return [n , HIT_MAX].min
  66.   end
  67.   
  68.   alias :enhance_eva :eva
  69.   def eva
  70.     n = enhance_eva
  71.     states.each do |state|
  72.       n += state.eva_plus || 0
  73.     end
  74.     return [n , EVA_MAX].min
  75.   end
  76.   
  77.   alias :enhance_maxhp :maxhp
  78.   def maxhp
  79.     n = enhance_maxhp
  80.     states.each do |state|
  81.       n += state.maxhp_plus || 0
  82.     end
  83.     return [n , MAXHP_MAX].min
  84.   end
  85.   
  86.   alias :enhance_maxmp :maxmp
  87.   def maxmp
  88.     n = enhance_maxmp
  89.     states.each do |state|
  90.       n += state.maxmp_plus || 0
  91.     end
  92.     return [n , MAXMP_MAX].min
  93.   end
  94. end
复制代码
减半我不会改脚本  这个脚本可以实现减少一定数量

脚本插入后 首先设定一个状态


其次设定一个技能


让主角学会这个技能
然后就使用 扣除100点最大HP  增加25%精神力

点评

多谢,这个脚本也挺实用。  发表于 2013-6-18 13:30
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
4
发表于 2013-6-15 14:29:12 | 只看该作者
在脚本里有一个“damage”的数值,在判断这个技能之后写上damage=self.MAXHP/2就好了

点评

认可答案  发表于 2013-6-18 15:53
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2019
在线时间
1871 小时
注册时间
2009-8-17
帖子
256
5
发表于 2013-6-15 19:47:44 | 只看该作者
http://rpg.blue/thread-306208-1-1.html
这个可以参考下。写法应该可以通用。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 03:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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