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

Project1

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

[已经解决] 【急】RMVX如何使人物在使用某种物品的时候无敌?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2011-7-23
帖子
5
跳转到指定楼层
1
发表于 2011-7-23 23:46:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的做法是增加一个无敌状态,然后使用物品的时候增加这个状态,再用公共事件处理,公共事件是并行处理,开关是开着的,内容是(简记):
循环
{
如果 (一个主角的名字)无敌
{
自动回复
}
否则
{
跳出循环
}
}


之前没有写跳出循环结果没法切换场景了,写了之后没有效果啊,于是我觉得这种方法不可行,就想到在条件分支里放脚本做到敌人攻击不减血,吸取不减魔,问题是我不怎么会脚本!= =|
于是求助各位有什么办法?(上面的自动回复只是为了模拟出效果,但是没成功,加循环是为了每次被攻击都自动回复)


谢谢了

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6197
在线时间
6595 小时
注册时间
2007-12-16
帖子
4501

贵宾

2
发表于 2011-7-24 09:13:06 | 只看该作者
并行处理不用循环

还在龟速填坑中
回复

使用道具 举报

Lv1.梦旅人

雨狸

梦石
0
星屑
48
在线时间
625 小时
注册时间
2011-3-19
帖子
1296
3
发表于 2011-7-24 11:33:54 | 只看该作者
{:nm_5:}我认为最直接的方法是对方攻击、精神清零~
明夕,何夕
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2011-7-23
帖子
5
4
 楼主| 发表于 2011-7-25 18:58:05 | 只看该作者
2L没有用啊
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4719
在线时间
5242 小时
注册时间
2009-4-29
帖子
14318

贵宾

5
发表于 2011-7-25 21:06:02 | 只看该作者
假设你的无敌状态编号为10,那么在Game_Battler类下的def make_attack_damage_value(attacker)和def make_obj_damage_value(user, obj)这个两定义的最后一个end前都分别加上:
  1. if self.state?(10)      
  2. @hp_damage = 0
  3. @mp_damage = 0
  4. end
复制代码
这样你的无敌就实现了。这样可以使他HP、MP不变,但是会中状态。要彻底无敌,连状态也不中就还需要改脚本。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

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

开拓者贵宾

6
发表于 2011-7-26 08:05:52 | 只看该作者
卧槽VX的战斗系统= =
  1. module Fux2
  2.   INVINCIBLE_INDEX = 17   #无敌状态编号
  3. end

  4. class Scene_Battle < Scene_Base
  5.   def update_target_enemy_selection
  6.     @target_enemy_window.update
  7.     if Input.trigger?(Input::B)
  8.       Sound.play_cancel
  9.       end_target_enemy_selection
  10.     elsif Input.trigger?(Input::C)
  11.       if @target_enemy_window.enemy.state?(Fux2::INVINCIBLE_INDEX)
  12.         $data_system.sounds[3].play
  13.         return
  14.       end
  15.       Sound.play_decision
  16.       @active_battler.action.target_index = @target_enemy_window.enemy.index
  17.       end_target_enemy_selection
  18.       end_skill_selection
  19.       end_item_selection
  20.       next_actor
  21.     end
  22.   end
  23. end

  24. class Game_Unit
  25.   def existing_members_bat
  26.     result = []
  27.     for battler in members
  28.       next unless battler.exist?
  29.       next if battler.state?(Fux2::INVINCIBLE_INDEX)
  30.       result.push(battler)
  31.     end
  32.     return result
  33.   end
  34. end
  35. class Game_BattleAction
  36.   def make_obj_targets(obj)
  37.     targets = []
  38.     if obj.for_opponent?
  39.       if obj.for_random?
  40.         if obj.for_one?
  41.           number_of_targets = 1
  42.         elsif obj.for_two?
  43.           number_of_targets = 2
  44.         else
  45.           number_of_targets = 3
  46.         end
  47.         number_of_targets.times do
  48.           targets.push(opponents_unit.random_target)
  49.         end
  50.       elsif obj.dual?
  51.         targets.push(opponents_unit.smooth_target(@target_index))
  52.         targets += targets
  53.       elsif obj.for_one?
  54.         targets.push(opponents_unit.smooth_target(@target_index))
  55.         targets.push(friends_unit.smooth_target(@target_index))
  56.       else
  57.         targets += opponents_unit.existing_members_bat
  58.       end
  59.     elsif obj.for_user?
  60.       targets.push(battler)
  61.     elsif obj.for_dead_friend?
  62.       if obj.for_one?
  63.         targets.push(friends_unit.smooth_dead_target(@target_index))
  64.       else
  65.         targets += friends_unit.dead_members
  66.       end
  67.     elsif obj.for_friend?
  68.       if obj.for_one?
  69.         targets.push(friends_unit.smooth_target(@target_index))
  70.       else
  71.         targets += friends_unit.existing_members
  72.       end
  73.     end
  74.     return targets.compact
  75.   end
  76. end
复制代码
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2011-7-23
帖子
5
7
 楼主| 发表于 2011-7-28 19:37:56 | 只看该作者
楼上谢了

不过顺便问下,如果要状态无敌呢?就是负面状态在一定时间内无效
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

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

开拓者贵宾

8
发表于 2011-7-29 07:47:59 | 只看该作者
思数冉 发表于 2011-7-28 19:37
楼上谢了

不过顺便问下,如果要状态无敌呢?就是负面状态在一定时间内无效 ...

增加一个移除所有状态好了{:nm_7:}
反正用了这个脚本之后该状态的敌人根本不受战斗影响.
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
686
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

9
发表于 2011-7-29 20:01:22 | 只看该作者
物品施加【无敌状态】,属性为空,过几回合解除神马的自己设定。
战斗并行公共事件判断:角色如果进入【无敌】状态,如果开关XXX没被打开,则用变量代入血量、DEF(防御力),并加到满,开关XXX打开。否则的场合(则角色无无敌状态),血量、防御力减到0,再各自加上之前被代入的变量。
嗯。。就这样了,表达能力甚差,T。T希望能听得懂。

点评

啊 好吧 请无视我,个人比较喜欢用事件。。确实很麻烦,还是小黄鸡有爱~~^ ^  发表于 2011-7-29 20:02
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2011-7-23
帖子
5
10
 楼主| 发表于 2011-7-29 20:15:59 | 只看该作者
-8L:这个我知道,可我的意思是一定时间内无效,举个例子,增加了某个状态后,几个回合内,当敌人使用可以让我方角色中毒的技能时,无法服加【毒】状态,其他状态攻击也是这样,除了那几个提升还有无敌状态以为,其他状态全部无效化,这个要怎么做,咱对脚本研究不深,战斗测试,上面的无敌脚本好像可以达到这个效果,就是不知道怎么单独达到这个效果,谢谢

-9L,用7L脚本我已经搞定无敌了,不过还是谢谢你

点评

那麻烦你结贴好不好  发表于 2011-7-30 07:59
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 21:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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