查看: 2916|回复: 13

[已经解决] 请帮忙做个全敌群共用事件

[复制链接]
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2017-3-23 13:04:09 | 显示全部楼层 |阅读模式

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

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

×
那个..我有个想法..如果能把某个指定敌群编号用作全部敌群共用事件的话就可以省了要在每个敌群都重复用同一事件浪费时间的行为了 不知能不能实现?
跪求大神出手帮忙...
梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2017-3-23 15:18:10 | 显示全部楼层
把战斗场景的 设置战斗事件 里面的敌人队伍ID,固定为你需要的敌人队伍ID就行了。
无论是哪个敌人队伍,始终只执行你固定的那个敌人队伍事件。

点评

从来没想过还有这种方法~  发表于 2017-3-23 17:29
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
 楼主| 发表于 2017-3-23 15:30:00 | 显示全部楼层
本帖最后由 soulsaga 于 2017-3-23 15:31 编辑
芯☆淡茹水 发表于 2017-3-23 15:18
把战斗场景的 设置战斗事件 里面的敌人队伍ID,固定为你需要的敌人队伍ID就行了。
无论是哪个敌人队伍,始 ...


这是改脚本么?
回复

使用道具 举报

梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2017-3-23 17:30:17 | 显示全部楼层
把下面俩敌人队伍ID改为固定的敌人队伍ID
1.png

所以无论遇见什么队伍,都会执行你更改的敌人队伍ID的事件,慎用

点评

O 认可答案..  发表于 2017-3-23 18:09

评分

参与人数 2星屑 +66 梦石 +1 收起 理由
RyanBern + 1 认可答案
soulsaga + 66 认可答案

查看全部评分

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

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-3-23 17:38:39 | 显示全部楼层
芯☆淡茹水 发表于 2017-3-23 17:30
把下面俩敌人队伍ID改为固定的敌人队伍ID

所以改成:

  1. for index in 0...$data_troops[@troop_id].pages.size + 2 # 2 是多余的事件页数量
  2.   page = $data_troops[@troop_id].pages[index] if index < $data_troops[@troop_id].pages.size
  3.   page = $data_troops[10].pages[0] if index == $data_troops[@troop_id].pages.size # 队伍10第1页
  4.   page = $data_troops[10].pages[1] if index == $data_troops[@troop_id].pages.size + 1 # 队伍10第2页
  5.   ...
  6.   c = page.conditon
  7.   ...
复制代码


类似这样就可以尽可能减少麻烦……

点评

酱还不如专门弄几个事件队伍,哪些队伍执行A队伍事件;哪些队伍执行B队伍事件;哪些队伍执行本身事件。  发表于 2017-3-23 17:53
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
 楼主| 发表于 2017-3-23 18:48:34 | 显示全部楼层
本帖最后由 soulsaga 于 2017-3-24 09:50 编辑

[pre lang="ruby"]
  # ● 设置战斗事件
  #--------------------------------------------------------------------------
  def setup_battle_event
    # 正在执行战斗事件的情况下
    if $game_system.battle_interpreter.running?
      return
    end
    # 搜索全部页的战斗事件
    event_flags2 = 0
    for index in 0...$data_troops[4].pages.size
      # 获取事件页
      page2 = $data_troops[4].pages[index]
      # 事件条件可以参考 c
      c = page2.condition
      # 没有指定任何条件的情况下转到下一页
      unless c.turn_valid or c.enemy_valid or
             c.actor_valid or c.switch_valid
        next
      end
      # 执行完毕的情况下转到下一页
      if $game_temp.battle_event_flags[index]
        next
      end
      # 确认回合条件
      if c.turn_valid
        n = $game_temp.battle_turn
        a = c.turn_a
        b = c.turn_b
        if (b == 0 and n != a) or
           (b > 0 and (n < 1 or n < a or n % b != a % b))
          next
        end
      end
      # 确认敌人条件
      if c.enemy_valid
        enemy = $game_troop.enemies[c.enemy_index]
        if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
          next
        end
      end
      # 确认角色条件
      if c.actor_valid
        actor = $game_actors[c.actor_id]
        if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
          next
        end
      end
      # 确认开关条件
      if c.switch_valid
        if $game_switches[c.switch_id] == false
          next
        end
      end
      event_flags = true
      # 设置事件
      $game_system.battle_interpreter.setup(page2.list, 0)
      if page2.span <= 1
        # 设置执行结束标志
        $game_temp.battle_event_flags[index] = true
      end
      #return
    end
    for index2 in 0...$data_troops[@troop_id].pages.size
      # 获取事件页
      page = $data_troops[@troop_id].pages[index2]
      # 事件条件可以参考 c
      c = page.condition
      # 没有指定任何条件的情况下转到下一页
      unless c.turn_valid or c.enemy_valid or
             c.actor_valid or c.switch_valid
        next
      end
      # 执行完毕的情况下转到下一页
      if event_flags2 == true
        #event_flags2 = 0
        next
      end
      # 确认回合条件
      if c.turn_valid
        n = $game_temp.battle_turn
        a = c.turn_a
        b = c.turn_b
        if (b == 0 and n != a) or
           (b > 0 and (n < 1 or n < a or n % b != a % b))
          next
        end
      end
      # 确认敌人条件
      if c.enemy_valid
        enemy = $game_troop.enemies[c.enemy_index]
        if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
          next
        end
      end
      # 确认角色条件
      if c.actor_valid
        actor = $game_actors[c.actor_id]
        if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
          next
        end
      end
      # 确认开关条件
      if c.switch_valid
        if $game_switches[c.switch_id] == false
          next
        end
      end
      # 设置事件
      $game_system.battle_interpreter.setup(page.list, 0) if $game_temp.battle_event_flags[index2] != true
      $game_system.battle_interpreter.setup(page.list+page2.list, 0) if event_flags == true
      event_flags2 = true
      # 本页的范围是 [战斗] 或 [回合] 的情况下
      if page.span <= 1
        # 设置执行结束标志
        $game_temp.battle_event_flags[index2] = true
         end
      return
    end
  end
  end[/pre]

点评

这次辛辛苦苦总算改好了..脚本盲的悲哀啊..  发表于 2017-3-24 09:50
直接把我给你的图片俩地方改为4就行了,何必那么复杂。  发表于 2017-3-24 08:00
这样就有条件判断了..吧  发表于 2017-3-23 19:53
这样啊..忘了呢..  发表于 2017-3-23 19:24
那随你的喜好就行。你那通用事件是强制执行,并没经过条件判断。  发表于 2017-3-23 19:19
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部