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

Project1

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

[已经解决] 如何将某增幅消耗品里面附加随机出现中毒等负面状态

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
91 小时
注册时间
2011-6-29
帖子
165
跳转到指定楼层
1
发表于 2011-7-9 14:07:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如说:发臭的肉 增加HP500 然后在公共事件里面设置”中毒“ 结果一试就悲剧了 战斗测试中的猪脚使用加血后立刻进入中毒状态 怎么才能让出现负面状态的几率变小 比如10%?

Lv1.梦旅人

追从自然的旅行者
奇特空·煦

梦石
0
星屑
107
在线时间
1387 小时
注册时间
2010-12-31
帖子
4944

开拓者贵宾

2
发表于 2011-7-9 17:37:18 | 只看该作者
用变量代入,随机9
条件分歧如果变量=0
中毒

点评

最简单实用的方法啊  发表于 2011-7-11 20:24

评分

参与人数 2星屑 +204 梦石 +2 收起 理由
「旅」 + 200 + 2 认可答案,恭喜你获得由66RPG提供的精美好.
stevenrock + 4

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42453
在线时间
7605 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

3
发表于 2011-7-9 18:06:10 | 只看该作者
命中率这个数值您有注意吗?
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
201 小时
注册时间
2011-1-9
帖子
142
4
发表于 2011-7-9 18:40:12 | 只看该作者
把中毒的随机数调低就可以了
哎,我又回来了,66rpg。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
91 小时
注册时间
2011-6-29
帖子
165
5
 楼主| 发表于 2011-7-10 07:03:57 | 只看该作者
fux2 发表于 2011-7-9 18:06
命中率这个数值您有注意吗?

那加血就会miss=A=

点评

沙发的回答是很好使的  发表于 2011-7-11 20:25
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
777
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
6
发表于 2011-7-10 13:15:36 | 只看该作者
本帖最后由 fux2 于 2011-7-10 16:08 编辑

#脚本修改: Project8.zip (202.35 KB, 下载次数: 6)
  1. #还是不会的加本人@@ 1349607750
  2. #==============================================================================
  3. # ■ Game_Battler (分割定义 4)
  4. #------------------------------------------------------------------------------
  5. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  6. # 超级类来使用。
  7. #==============================================================================

  8. class Game_Battler
  9.   #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  10.   # 增加
  11.   $item_data = { 1 =>[3,100],#物品编号 => [附加状态,几率],
  12.           }
  13.   #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  14.   #--------------------------------------------------------------------------
  15.   # ● 应用物品效果
  16.   #     item : 物品
  17.   #--------------------------------------------------------------------------
  18.   def item_effect(item)
  19.     # 清除会心一击标志
  20.     self.critical = false
  21.     # 物品的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
  22.     # 或者物品的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
  23.     if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
  24.        ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
  25.       # 过程结束
  26.       return false
  27.     end
  28.     # 清除有效标志
  29.     effective = false
  30.     # 公共事件 ID 是有效的情况下,设置为有效标志
  31.     effective |= item.common_event_id > 0
  32.     # 命中判定
  33.     hit_result = (rand(100) < item.hit)
  34.     # 不确定的特技的情况下设置为有效标志
  35.     effective |= item.hit < 100
  36.     # 命中的情况
  37.     if hit_result == true
  38.       ####状态变化,啦啦
  39.       #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  40.       d = $item_data[item.id]
  41.       if d != nil
  42.         st = d[0]
  43.         n = d[1]
  44.         if rand(100) < n
  45.           effective |= states_plus([st])
  46.         end
  47.       end
  48.       #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  49.       # 计算回复量
  50.       recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
  51.       recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
  52.       if recover_hp < 0
  53.         recover_hp += self.pdef * item.pdef_f / 20
  54.         recover_hp += self.mdef * item.mdef_f / 20
  55.         recover_hp = [recover_hp, 0].min
  56.       end
  57.       # 属性修正
  58.       recover_hp *= elements_correct(item.element_set)
  59.       recover_hp /= 100
  60.       recover_sp *= elements_correct(item.element_set)
  61.       recover_sp /= 100
  62.       # 分散
  63.       if item.variance > 0 and recover_hp.abs > 0
  64.         amp = [recover_hp.abs * item.variance / 100, 1].max
  65.         recover_hp += rand(amp+1) + rand(amp+1) - amp
  66.       end
  67.       if item.variance > 0 and recover_sp.abs > 0
  68.         amp = [recover_sp.abs * item.variance / 100, 1].max
  69.         recover_sp += rand(amp+1) + rand(amp+1) - amp
  70.       end
  71.       # 回复量符号为负的情况下
  72.       if recover_hp < 0
  73.         # 防御修正
  74.         if self.guarding?
  75.           recover_hp /= 2
  76.         end
  77.       end
  78.       # HP 回复量符号的反转、设置伤害值
  79.       self.damage = -recover_hp
  80.       # HP 以及 SP 的回复
  81.       last_hp = self.hp
  82.       last_sp = self.sp
  83.       self.hp += recover_hp
  84.       self.sp += recover_sp
  85.       effective |= self.hp != last_hp
  86.       effective |= self.sp != last_sp
  87.       # 状态变化
  88.       @state_changed = false
  89.       effective |= states_plus(item.plus_state_set)
  90.       effective |= states_minus(item.minus_state_set)
  91.       # 能力上升值有效的情况下
  92.       if item.parameter_type > 0 and item.parameter_points != 0
  93.         # 能力值的分支
  94.         case item.parameter_type
  95.         when 1  # MaxHP
  96.           @maxhp_plus += item.parameter_points
  97.         when 2  # MaxSP
  98.           @maxsp_plus += item.parameter_points
  99.         when 3  # 力量
  100.           @str_plus += item.parameter_points
  101.         when 4  # 灵巧
  102.           @dex_plus += item.parameter_points
  103.         when 5  # 速度
  104.           @agi_plus += item.parameter_points
  105.         when 6  # 魔力
  106.           @int_plus += item.parameter_points
  107.         end
  108.         # 设置有效标志
  109.         effective = true
  110.       end
  111.       # HP 回复率与回复量为 0 的情况下
  112.       if item.recover_hp_rate == 0 and item.recover_hp == 0
  113.         # 设置伤害为空的字符串
  114.         self.damage = ""
  115.         # SP 回复率与回复量为 0、能力上升值无效的情况下
  116.         if item.recover_sp_rate == 0 and item.recover_sp == 0 and
  117.            (item.parameter_type == 0 or item.parameter_points == 0)
  118.           # 状态没有变化的情况下
  119.           unless @state_changed
  120.             # 伤害设置为 "Miss"
  121.             self.damage = "Miss"
  122.           end
  123.         end
  124.       end
  125.     # Miss 的情况下
  126.     else
  127.       # 伤害设置为 "Miss"
  128.       self.damage = "Miss"
  129.     end
  130.     # 不在战斗中的情况下
  131.     unless $game_temp.in_battle
  132.       # 伤害设置为 nil
  133.       self.damage = nil
  134.     end
  135.     # 过程结束
  136.     return effective
  137.   end
  138. end
复制代码

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2 认可答案,恭喜你获得由66RPG提供的精美好.

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
157 小时
注册时间
2011-7-17
帖子
128
7
发表于 2011-7-20 13:49:11 | 只看该作者
最简单的方法:创建一个公共事件,在公共事件中插”变量操作“选一个变量,再选随机数,填上范围。然后条件分支,当某变量等于多少多少,执行中毒指令。之后,再有副作用的消耗品那个”公共事件“选上刚才的设的那个公共事件就行了。另外,这个方法还可以制作随机得东西的宝箱。

jiao.jpg (40.11 KB, 下载次数: 0)

例:随机锦囊公共事件

例:随机锦囊公共事件

jid.jpg (26.55 KB, 下载次数: 1)

例:随机锦囊物品设置

例:随机锦囊物品设置

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2 认可答案,恭喜你获得由66RPG提供的精美好.

查看全部评分

在那遥远的地方——有一只小猫
这里没有字→
相信我吧。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
42 小时
注册时间
2009-6-7
帖子
336
8
发表于 2011-7-20 14:25:31 | 只看该作者
好吧,话说好久好久没来6R了。。。。
这一次就为这里做那么一丁点儿贡献吧。。。
话说,自己的坑还没完成呢,啊哈哈。。。。。
好吧,话不多说,献上刚出炉的范例,具体看事件如何设置。
上面的方法有的看得我头晕,故而为了方便才自己做个范例,
值得一提的是,范例里的随机量可自己设置,可增加也可减少
希望能看得懂。
如果想要持续中毒伤害的话,自己在状态里设置一下,很容易,所以便不说了
飘走~~~
                                                                               ——看雪留

Project2.rar

185.96 KB, 下载次数: 1

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2 认可答案,恭喜你获得由66RPG提供的精美好.

查看全部评分

看雪还在呢~
制作工作室QQ群:28920237。
欢迎各位加入。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 00:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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