Project1

标题: 战斗菜单调用公共事件 [打印本页]

作者: 789456qwe    时间: 2016-2-20 21:02
标题: 战斗菜单调用公共事件


战斗菜单调用公共事件
,角色1调用 角色1公共事件

,角色2调用 角色2公共事件

,角色3调用 角色3公共事件

,角色4调用 角色4公共事件

,角色5调用 角色5公共事件

,角色6调用 角色6公共事件
。。。。。

怎么写脚本?{:2_272:}

谢谢!

2.JPG (14.65 KB, 下载次数: 24)

2.JPG

1.JPG (19.37 KB, 下载次数: 28)

1.JPG

3.JPG (97.48 KB, 下载次数: 28)

3.JPG

作者: yang1zhi    时间: 2016-2-20 22:09
本帖最后由 yang1zhi 于 2016-2-22 14:33 编辑

Scene_Battle 1
这里找到    s1 = $data_system.words.attack
    s2 = $data_system.words.skill
    s3 = $data_system.words.guard
    s4 = $data_system.words.item
    @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
加个S5进去
s5 = "角色公共事件"

在Scene_Battle 3里面找到  # ● 刷新画面 (角色命令回合 : 基本命令)
      # 角色指令窗口光标位置分之
      case @actor_command_window.index
在这个分支下面添加一个when 4
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)  
        # 开始执行公共事件
$game_temp.common_event_id = actor.id


楼下说的对,应该是这样写的。

RUBY 代码复制
  1. class Scene_Battle
  2.   def main
  3.     # 初始化战斗用的各种暂时数据
  4.     $game_temp.in_battle = true
  5.     $game_temp.battle_turn = 0
  6.     $game_temp.battle_event_flags.clear
  7.     $game_temp.battle_abort = false
  8.     $game_temp.battle_main_phase = false
  9.     $game_temp.battleback_name = $game_map.battleback_name
  10.     $game_temp.forcing_battler = nil
  11.     # 初始化战斗用事件解释器
  12.     $game_system.battle_interpreter.setup(nil, 0)
  13.     # 准备队伍
  14.     @troop_id = $game_temp.battle_troop_id
  15.     $game_troop.setup(@troop_id)
  16.     # 生成角色命令窗口
  17.     s1 = $data_system.words.attack
  18.     s2 = $data_system.words.skill
  19.     s3 = $data_system.words.guard
  20.     s4 = $data_system.words.item
  21.     # ★新建选项
  22.     s5 = "公共事件"
  23.     # ★调整窗口及坐标
  24.     @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, s5])
  25.     @actor_command_window.y = 128
  26.     @actor_command_window.back_opacity = 160
  27.     @actor_command_window.active = false
  28.     @actor_command_window.visible = false
  29.     # 生成其它窗口
  30.     @party_command_window = Window_PartyCommand.new
  31.     @help_window = Window_Help.new
  32.     @help_window.back_opacity = 160
  33.     @help_window.visible = false
  34.     @status_window = Window_BattleStatus.new
  35.     @message_window = Window_Message.new
  36.     # 生成活动块
  37.     @spriteset = Spriteset_Battle.new
  38.     # 初始化等待计数
  39.     @wait_count = 0
  40.     # 执行过渡
  41.     if $data_system.battle_transition == ""
  42.       Graphics.transition(20)
  43.     else
  44.       Graphics.transition(40, "Graphics/Transitions/" +
  45.         $data_system.battle_transition)
  46.     end
  47.     # 开始自由战斗回合
  48.     start_phase1
  49.     # 主循环
  50.     loop do
  51.       # 刷新游戏画面
  52.       Graphics.update
  53.       # 刷新输入信息
  54.       Input.update
  55.       # 刷新画面
  56.       update
  57.       # 如果画面切换的话就中断循环
  58.       if $scene != self
  59.         break
  60.       end
  61.     end
  62.     # 刷新地图
  63.     $game_map.refresh
  64.     # 准备过渡
  65.     Graphics.freeze
  66.     # 释放窗口
  67.     @actor_command_window.dispose
  68.     @party_command_window.dispose
  69.     @help_window.dispose
  70.     @status_window.dispose
  71.     @message_window.dispose
  72.     if @skill_window != nil
  73.       @skill_window.dispose
  74.     end
  75.     if @item_window != nil
  76.       @item_window.dispose
  77.     end
  78.     if @result_window != nil
  79.       @result_window.dispose
  80.     end
  81.     # 释放活动块
  82.     @spriteset.dispose
  83.     # 标题画面切换中的情况
  84.     if $scene.is_a?(Scene_Title)
  85.       # 淡入淡出画面
  86.       Graphics.transition
  87.       Graphics.freeze
  88.     end
  89.     # 战斗测试或者游戏结束以外的画面切换中的情况
  90.     if $BTEST and not $scene.is_a?(Scene_Gameover)
  91.       $scene = nil
  92.     end
  93.   end    #--------------------------------------------------------------------------
  94.   # ● 刷新画面 (角色命令回合 : 基本命令)
  95.   #--------------------------------------------------------------------------
  96.   def update_phase3_basic_command
  97.     # 按下 B 键的情况下
  98.     if Input.trigger?(Input::B)
  99.       # 演奏取消 SE
  100.       $game_system.se_play($data_system.cancel_se)
  101.       # 转向前一个角色的指令输入
  102.       phase3_prior_actor
  103.       return
  104.     end
  105.     # 按下 C 键的情况下
  106.     if Input.trigger?(Input::C)
  107.       # 角色指令窗口光标位置分之
  108.       case @actor_command_window.index
  109.       when 0  # 攻击
  110.         # 演奏确定 SE
  111.         $game_system.se_play($data_system.decision_se)
  112.         # 设置行动
  113.         @active_battler.current_action.kind = 0
  114.         @active_battler.current_action.basic = 0
  115.         # 开始选择敌人
  116.         start_enemy_select
  117.       when 1  # 特技
  118.         # 演奏确定 SE
  119.         $game_system.se_play($data_system.decision_se)
  120.         # 设置行动
  121.         @active_battler.current_action.kind = 1
  122.         # 开始选择特技
  123.         start_skill_select
  124.       when 2  # 防御
  125.         # 演奏确定 SE
  126.         $game_system.se_play($data_system.decision_se)
  127.         # 设置行动
  128.         @active_battler.current_action.kind = 0
  129.         @active_battler.current_action.basic = 1
  130.         # 转向下一位角色的指令输入
  131.         phase3_next_actor
  132.       when 3  # 物品
  133.         # 演奏确定 SE
  134.         $game_system.se_play($data_system.decision_se)
  135.         # 设置行动
  136.         @active_battler.current_action.kind = 2
  137.         # 开始选择物品
  138.         start_item_select
  139.         # ★新建分歧
  140.       when 4
  141.         # 演奏确定 SE
  142.         $game_system.se_play($data_system.decision_se)
  143.         # 执行
  144.         common_event = $data_common_events[@active_battler.id]
  145.         $game_system.battle_interpreter.setup(common_event.list, 0)
  146.                 # 转到下一位角色的指令输入
  147.         phase3_next_actor
  148.  
  149.       end
  150.       return
  151.     end
  152.   end
  153.   end

作者: 789456qwe    时间: 2016-2-21 07:59
yang1zhi 发表于 2016-2-20 22:09
Scene_Battle 1
这里找到    s1 = $data_system.words.attack
    s2 = $data_system.words.skill

然后怎么写?


错误

4.JPG (27.56 KB, 下载次数: 28)

4.JPG

5.JPG (20.1 KB, 下载次数: 28)

5.JPG

6.JPG (20.49 KB, 下载次数: 30)

6.JPG

作者: 紫英晓狼1130    时间: 2016-2-21 10:51
LS的执行公共事件不对,这样用才对
  1. common_event = $data_common_events[xxx]
复制代码
LZ可以看一下范例,查找“★”来查看更改 Project1.rar (187.29 KB, 下载次数: 80)
作者: 789456qwe    时间: 2016-2-21 11:52
本帖最后由 789456qwe 于 2016-2-21 11:53 编辑
紫英晓狼1130 发表于 2016-2-21 10:51
LS的执行公共事件不对,这样用才对LZ可以看一下范例,查找“★”来查看更改 ...


谢谢大神!
作者: 789456qwe    时间: 2016-2-22 07:38
yang1zhi 发表于 2016-2-20 22:09
Scene_Battle 1
这里找到    s1 = $data_system.words.attack
    s2 = $data_system.words.skill


那么怎么修改?大神
作者: 789456qwe    时间: 2016-2-22 17:22
紫英晓狼1130 发表于 2016-2-21 10:51
LS的执行公共事件不对,这样用才对LZ可以看一下范例,查找“★”来查看更改 ...

大神,别生气,谢谢!




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