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

Project1

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

[已经解决] 突然呆萌忘掉了是否有达成此功能的东西

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2512
在线时间
215 小时
注册时间
2017-9-27
帖子
613
跳转到指定楼层
1
发表于 2018-3-1 02:43:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
每失去1%HP增加一定能力值这种应该有吧,但是找了好多再加上难以搜索,我也弱智一回来问问吧

评分

参与人数 1+1 收起 理由
2256538860 + 1 塞糖

查看全部评分

浅尝辄止,宜乎众矣。

Lv5.捕梦者

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

开拓者

2
发表于 2018-3-1 07:42:38 | 只看该作者
那每恢复 1% 的HP又会怎么样呢?

点评

那不就是神灵武士的被动吗···  发表于 2018-3-2 13:58
恢复以后就按恢复后的受伤血量计算啊  发表于 2018-3-1 20:50
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2794
在线时间
614 小时
注册时间
2018-1-17
帖子
1293
3
发表于 2018-3-1 16:13:59 | 只看该作者
总觉得...不需要插件脚本就能做到呢

点评

并不喜欢每个敌群事件页都复制粘贴一大串判断  发表于 2018-3-1 20:49
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

4
发表于 2018-3-2 08:39:47 | 只看该作者
大体是这个效果?

  1. #==============================================================================
  2. class Game_Actor < Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   #HP每少 1% 属性增加的点数。格式:属性ID=>增加值。
  5.   #(1:最大MP;2:攻击;3:防御;4:魔攻;5:魔防;6:敏捷;7:运气)
  6.   # 某项属性不增加可写 0 或删除它。
  7.   HP_PLUS_DATA = {1=>1,2=>2,3=>1,4=>2,5=>1,6=>1.5,7=>1.5}
  8.   #--------------------------------------------------------------------------
  9.   def param(param_id)
  10.     return (param_id == 0 ? 0 : hp_rate_plus(param_id)) + super
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   def hp_rate_plus(param_id)
  14.     rate = (mhp - hp) * 100.0 / mhp
  15.     return ((HP_PLUS_DATA[param_id] || 0) * rate).to_i
  16.   end
  17. end
  18. #==============================================================================
复制代码


这个增加值是纯加,不会因 buff 而增幅。

点评

↓你搜到的东西也可以贴出来并且示例用法啊! 我不可能知道每种插件。再说有搜和理解的时间,自己都可以 pia 出一段新的来。  发表于 2018-3-2 16:10
芯大大,其实可以去搜索普通能力,那边也能,没必要特别提出  发表于 2018-3-2 15:52
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
帖子
571
5
发表于 2018-3-2 20:23:02 | 只看该作者
    value = param_base(param_id) + param_plus(param_id) #基础+装备固定
    value *= param_rate(param_id) * param_buff_rate(param_id) #百分比*BUFF

param_id: 0 血量 1 法力值 2攻击力 3 防御 4 法强 5 法抗 6 速度 7 幸运

举个例子 value += 1(加的数值) if param_id == 2(这是p_id) #攻击力+1 总结来说,你只要把value看成一个数值就可以了,判定不止pid = X的 可以技能判定,状态判定等等。想知道更多判定方法可以看我的教程交流贴

介绍一个比较简单的例子:给1号角色+100血量—— value +=100 if param_id == 0 and self.id == 1 and self.actor?
pid = 0 id=1 确认为角色(self.enemy?这是确认敌人)
写起来可能会麻烦,但是学到了再去写是很快的,而且只受自身脑子的限制,而不会被其他的的构思限制

QQ截图20180302201715.png (116.38 KB, 下载次数: 29)

QQ截图20180302201715.png
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

6
发表于 2018-3-3 10:27:22 | 只看该作者
300英雄 发表于 2018-3-2 20:23
value = param_base(param_id) + param_plus(param_id) #基础+装备固定
    value *= param_rate(param ...



你这是在写教程? 还是在解决LZ问题?

如果是写教程,请稍微规范一点。
“ if param_id == 2(这是p_id)”  excuse me ???   p_id 是什么鬼?  
“判定不止pid = X的”                      这个 pid 又是什么东东?
讲真,可能本人比较愚钝,看得云里雾里。

如果是解决LZ问题,人家LZ提出的 每少1%HP增加属性, 你还没提到点子上呢?!
就“value += 1(加的数值) if param_id == 2”后面再判断“ self.id == 1”?!
那还不如直接 事件 - 更改角色属性 !

不就是需要 敌人 也要有这个效果吗?!
RUBY 代码复制
  1. #==============================================================================
  2. class Game_BattlerBase
  3.   #--------------------------------------------------------------------------
  4.   #HP每少 1% 属性增加的点数。格式:属性ID=>增加值。
  5.   #(1:最大MP;2:攻击;3:防御;4:魔攻;5:魔防;6:敏捷;7:运气)
  6.   # 某项属性不增加可写 0 或删除它。
  7.  
  8.   # ↓ 角色属性增加
  9.   ACTOR_HP_PLUS_DATA = {1=>1,2=>2,3=>1,4=>2,5=>1,6=>1.5,7=>1.5}
  10.  
  11.   # ↓ 敌人属性增加
  12.   ENEMY_HP_PLUS_DATA = {1=>0,2=>1,3=>0.5,4=>1,5=>1,6=>1,7=>1}
  13.   #--------------------------------------------------------------------------
  14.   alias xr_hp_plus_param param
  15.   def param(param_id)
  16.     return (param_id == 0 ? 0 : hp_rate_plus(param_id)) + xr_hp_plus_param(param_id)
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   def hp_rate_plus(param_id)
  20.     rate = (mhp - hp) * 100.0 / mhp
  21.     plus_data = actor? ? ACTOR_HP_PLUS_DATA : ENEMY_HP_PLUS_DATA
  22.     return ((plus_data[param_id] || 0) * rate).to_i
  23.   end
  24. end
  25. #==============================================================================


如果只需要 角色 有该效果,我干嘛一定要写在 父类 里面!!

点评

能否实现装备某护甲或学会某技能时达成效果呢?(被PIA飞≡ ̄﹏ ̄≡)  发表于 2018-3-4 00:23

评分

参与人数 2+2 收起 理由
刹那铃音 + 1 认可答案
魔法丶小肉包 + 1 我很赞同

查看全部评分

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
帖子
571
7
发表于 2018-3-3 16:31:05 | 只看该作者
本帖最后由 300英雄 于 2018-3-3 16:36 编辑

每少1%HP增加属性是吧 p_id是param_id的简写,字懒得打那么多,组合太灵活了:各种各样的判定说不完

这里分享技能类
if self.skills.include?($data_skills[X]) X表示你技能的ID,只要拥有这个技能就可以触发,角色持有的话:if self.skills.include?($data_skills[X]) and self.actor?添加一下就行
case param_id
when 1..7        这里数字看p_id的解释,血量是0号所以p_id不要弄0,会弄出A召唤B B召唤A的那种循环BUG
(self.mhp - self.hp).to_f / self.mhp.to_f * Y      Y是你要的数值每损失1%增加Y数值
end
end

self.skills.include?($data_skills[X])可以改成self.state?(X):表示状态ID。self.id如果要判断建议再判定一次self.enemy?或者self.actor?不然敌人角色只要符合你的判定都可以加的
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

8
发表于 2018-3-4 20:37:39 | 只看该作者
  1. #==============================================================================
  2. class Game_BattlerBase
  3.   #--------------------------------------------------------------------------
  4.   #HP每少 1% 属性增加的点数。格式:属性ID=>增加值。
  5.   #(1:最大MP;2:攻击;3:防御;4:魔攻;5:魔防;6:敏捷;7:运气)
  6.   # 某项属性不增加可写 0 或删除它。

  7.   # ↓ 角色属性增加
  8.   ACTOR_HP_PLUS_DATA = {1=>1,2=>2,3=>1,4=>2,5=>1,6=>1.5,7=>1.5}

  9.   # ↓ 敌人属性增加
  10.   ENEMY_HP_PLUS_DATA = {1=>0,2=>1,3=>0.5,4=>1,5=>1,6=>1,7=>1}
  11.   
  12.   # 备注:
  13.   # 装备 或 技能 备注:<HpRatePlus>
  14.   # 只有当角色穿上该装备或习得该技能时, 这个 属性增加 才起效。
  15.   
  16.   # 敌人也是备注:<HpRatePlus>
  17.   # 未备注的敌人不起效。
  18.   
  19.   #--------------------------------------------------------------------------
  20.   alias xr_hp_plus_param param
  21.   def param(param_id)
  22.     return (param_id == 0 ? 0 : hp_rate_plus(param_id)) + xr_hp_plus_param(param_id)
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   def hp_rate_plus(param_id)
  26.     return 0 unless meet_condition?
  27.     rate = (mhp - hp) * 100.0 / mhp
  28.     plus_data = actor? ? ACTOR_HP_PLUS_DATA : ENEMY_HP_PLUS_DATA
  29.     return ((plus_data[param_id] || 0) * rate).to_i
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   def meet_condition?
  33.     return actor? ? actor_condition : enemy_condition
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   def actor_condition
  37.     return equip_condition || skill_condition
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   def equip_condition
  41.     return equips.any?{|e| e && e.note.match(/<HpRatePlus>/)}
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   def skill_condition
  45.     return skills.any?{|s| s && s.note.match(/<HpRatePlus>/)}
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   def enemy_condition
  49.     return enemy && enemy.note.match(/<HpRatePlus>/)
  50.   end
  51. end
  52. #==============================================================================
复制代码

点评

感谢芯大  发表于 2018-3-4 22:27

评分

参与人数 1+1 收起 理由
刹那铃音 + 1 认可答案

查看全部评分

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 09:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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