Project1

标题: 请问怎么样让特定怪物只出现一次? [打印本页]

作者: 白魔导师宝儿    时间: 2013-10-4 13:06
标题: 请问怎么样让特定怪物只出现一次?
暗雷遇怪时,某种特定怪物只会出现一次,打败它一次就再也不会出现。
如果没有打败可以继续出现。怎么设置这个效果?
作者: 夜沫痕    时间: 2013-10-4 13:13
http://rpg.blue/forum.php?mod=vi ... D100%26typeid%3D100
你看看这个么…遇见过一次就不能遇见的话可以自己修改一下
作者: 白魔导师宝儿    时间: 2013-10-4 13:17
不懂怎么样设置
作者: 卡奥尼特    时间: 2013-10-4 15:50
如果要设置特定的怪物,就要利用开关了(不是自用开关)
打开那个开关以后,怪物出现一次
战斗完毕再关掉那个开关就行了...
作者: 白魔导师宝儿    时间: 2013-10-7 13:36
卡奥尼特 发表于 2013-10-4 15:50
如果要设置特定的怪物,就要利用开关了(不是自用开关)
打开那个开关以后,怪物出现一次
战斗完毕再关掉那个 ...

不清楚怎么设置,能具体讲讲吗
作者: 丿梁丶小柒    时间: 2013-10-8 12:31
照着设置试试




作者: 白魔导师宝儿    时间: 2013-10-8 12:58
丿梁丶小柒 发表于 2013-10-8 12:31
照着设置试试

暗雷遇怪的,明雷设置我会,暗雷我不懂设置。
作者: 白魔导师宝儿    时间: 2013-10-12 12:44
容我继续求助
作者: 上贺茂润    时间: 2013-10-12 17:05
1 明雷设置 战斗后嗝屁
2 暗雷设置 战斗页开关
3 脚本
作者: Password    时间: 2013-10-12 21:31
本帖最后由 Password 于 2013-10-13 08:48 编辑

按照如图所示的地方用此帖给出的脚本框中脚本分别代替原红框框出地方的脚本:


脚本:
  1.   #--------------------------------------------------------------------------
  2.   # ● 遇敌处理
  3.   #--------------------------------------------------------------------------
  4.   def update_encounter
  5.     return if $game_player.encounter_count > 0        # 检查步数
  6.     return if $game_map.interpreter.running?          # 判断是否有事件正在执行
  7.     return if $game_system.encounter_disabled         # 判断是否禁止遇敌
  8.     troop_id = $game_player.make_encounter_troop_id   # 判断敌人队伍
  9.     return if $data_troops[troop_id] == nil           # 判断队伍是否无效
  10.     if troop_id == 3 and $game_switches[1] == true    # 判断敌人队伍是否为3号队伍且遇到过(1号开关为开)
  11.       return # 返回 ↖敌人队伍ID        ↑指定开关ID ,这两个数可根据自己实际修改
  12.     else # 不是的话
  13.       $game_switches[1] = true if troop_id == 3       #标记已经遇到过此队伍
  14.       #              ↑指定标记开关ID,必须和122行的开关ID号一致(troop_id 后数字同)
  15.     end # ←不要删掉
  16.     $game_troop.setup(troop_id)
  17.     $game_troop.can_escape = true
  18.     $game_temp.battle_proc = nil
  19.     $game_temp.next_scene = "battle"
  20.     preemptive_or_surprise
  21.   end
复制代码
  1.   #--------------------------------------------------------------------------
  2.   # ● 逃跑处理
  3.   #--------------------------------------------------------------------------
  4.   def process_escape
  5.     @info_viewport.visible = false
  6.     @message_window.visible = true
  7.     text = sprintf(Vocab::EscapeStart, $game_party.name)
  8.     $game_message.texts.push(text)
  9.     if $game_troop.preemptive
  10.       success = true
  11.     else
  12.       success = (rand(100) < @escape_ratio)
  13.     end
  14.     Sound.play_escape
  15.     if success
  16.       troop_id = $game_player.make_encounter_troop_id
  17.       $game_switches[1] = false if troop_id == 3
  18.       # ↑指定标记开关                 ↑敌人队伍ID
  19.       wait_for_message
  20.       battle_end(1)
  21.     else
  22.       @escape_ratio += 10
  23.       $game_message.texts.push('\.' + Vocab::EscapeFailure)
  24.       wait_for_message
  25.       $game_party.clear_actions
  26.       start_main
  27.     end
  28.   end
复制代码
如果还有问题的话请下载该范例:
Project1.rar (237.63 KB, 下载次数: 59)
(修改过的脚本已经在脚本编辑器中名称前用“★”标出)
作者: 白魔导师宝儿    时间: 2013-10-14 12:58
Password 发表于 2013-10-12 21:31
按照如图所示的地方用此帖给出的脚本框中脚本分别代替原红框框出地方的脚本:

十分感谢
作者: arsddzf    时间: 2013-10-22 21:25
我把Password大大的VX用的那一段移植到Ace上。
在game_player下替换原来的遇敌处理,
暗雷是解决了,但是利用明雷遇敌时打过的敌人却依旧会重复出现。
请问要如何解决?
RUBY 代码复制
  1. def encounter
  2.     return false if @encounter_count > 0        # 检查步数
  3.     return false if $game_map.interpreter.running?          # 判断是否有事件正在执行
  4.     return false if $game_system.encounter_disabled         # 判断是否禁止遇敌
  5.     troop_id = make_encounter_troop_id   # 判断敌人队伍
  6.     return false if $data_troops[troop_id] == nil           # 判断队伍是否无效
  7.     if $game_switches[troop_id + 20] == true    # 判断敌人队伍是否遇到过
  8.       return false # 返回 ↖敌人队伍ID
  9.     else # 不是的话
  10.       $game_switches[troop_id + 20] = true       #标记已经遇到过此队伍
  11.       #              ↑指定标记开关ID
  12.     end
  13.     BattleManager.setup(troop_id)
  14.     BattleManager.on_encounter
  15.     return true
  16.   end





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1