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

Project1

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

[已经解决] 如何在使用特技前调用公共事件

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2011-3-13
帖子
24
跳转到指定楼层
1
发表于 2011-10-15 15:21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想打到的效果是,执行某一个特技前播放一个声音。但是在技能设置里面绑定公共事件,公共事件只能在特技后执行。请问各位高手,怎么才能在使用特技前调用公共事件?

点评

这问题问过多少次了 = = 请善用搜索  发表于 2011-10-15 15:24

Lv1.梦旅人

梦石
0
星屑
50
在线时间
234 小时
注册时间
2010-10-6
帖子
768
2
发表于 2011-10-15 15:24:24 | 只看该作者
...使用技能前播放声音...咱判断使用技能前呢?LZ
LZ的意思是技能动画前吧....
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2011-10-11
帖子
72
3
发表于 2011-10-15 15:52:27 | 只看该作者
  1.     class Scene_Battle
  2.       #--------------------------------------------------------------------------
  3.       # ● 刷新画面
  4.       #--------------------------------------------------------------------------
  5.       def update
  6.         # 执行战斗事件中的情况下
  7.         if $game_system.battle_interpreter.running?
  8.           # 刷新解释器
  9.           $game_system.battle_interpreter.update
  10.           # 强制行动的战斗者不存在的情况下
  11.           if $game_temp.forcing_battler == nil
  12.             # 执行战斗事件结束的情况下
  13.             unless $game_system.battle_interpreter.running?
  14.               # 继续战斗的情况下、再执行战斗事件的设置
  15.               unless @common_event_id != 0
  16.                 unless judge
  17.                   setup_battle_event
  18.                 end
  19.               end
  20.             end
  21.             # 如果不是结束战斗回合的情况下
  22.             if @phase != 5 and @common_event_id == 0
  23.               # 刷新状态窗口
  24.               @status_window.refresh
  25.             end
  26.           end
  27.         end
  28.         # 系统 (计时器)、刷新画面
  29.         $game_system.update
  30.         $game_screen.update
  31.         # 计时器为 0 的情况下
  32.         if $game_system.timer_working and $game_system.timer == 0
  33.           # 中断战斗
  34.           $game_temp.battle_abort = true
  35.         end
  36.         # 刷新窗口
  37.         @help_window.update
  38.         @party_command_window.update
  39.         @actor_command_window.update
  40.         @status_window.update
  41.         @message_window.update
  42.         # 刷新活动块
  43.         @spriteset.update
  44.         # 处理过渡中的情况下
  45.         if $game_temp.transition_processing
  46.           # 清除处理过渡中标志
  47.           $game_temp.transition_processing = false
  48.           # 执行过渡
  49.           if $game_temp.transition_name == ""
  50.             Graphics.transition(20)
  51.           else
  52.             Graphics.transition(40, "Graphics/Transitions/" +
  53.               $game_temp.transition_name)
  54.           end
  55.         end
  56.         # 显示信息窗口中的情况下
  57.         if $game_temp.message_window_showing
  58.           return
  59.         end
  60.         # 显示效果中的情况下
  61.         if @spriteset.effect?
  62.           return
  63.         end
  64.         # 游戏结束的情况下
  65.         if $game_temp.gameover
  66.           # 切换到游戏结束画面
  67.           $scene = Scene_Gameover.new
  68.           return
  69.         end
  70.         # 返回标题画面的情况下
  71.         if $game_temp.to_title
  72.           # 切换到标题画面
  73.           $scene = Scene_Title.new
  74.           return
  75.         end
  76.         # 中断战斗的情况下
  77.         if $game_temp.battle_abort
  78.           # 还原为战斗前的 BGM
  79.           $game_system.bgm_play($game_temp.map_bgm)
  80.           # 战斗结束
  81.           battle_end(1)
  82.           return
  83.         end
  84.         # 等待中的情况下
  85.         if @wait_count > 0
  86.           # 减少等待计数
  87.           @wait_count -= 1
  88.           return
  89.         end
  90.         # 强制行动的角色存在、
  91.         # 并且战斗事件正在执行的情况下
  92.         if $game_temp.forcing_battler == nil and
  93.            $game_system.battle_interpreter.running?
  94.           return
  95.         end
  96.         # 回合分支
  97.         case @phase
  98.         when 1  # 自由战斗回合
  99.           update_phase1
  100.         when 2  # 同伴命令回合
  101.           update_phase2
  102.         when 3  # 角色命令回合
  103.           update_phase3
  104.         when 4  # 主回合
  105.           update_phase4
  106.         when 5  # 战斗结束回合
  107.           update_phase5
  108.         end
  109.       end
  110.       #--------------------------------------------------------------------------
  111.       # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  112.       #--------------------------------------------------------------------------
  113.       def update_phase4_step3
  114.         # 行动方动画 (ID 为 0 的情况下是白色闪烁)
  115.         if @animation1_id == 0
  116.           @active_battler.white_flash = true
  117.         else
  118.           @active_battler.animation_id = @animation1_id
  119.           @active_battler.animation_hit = true
  120.         end
  121.         # 公共事件 ID 有效的情况下
  122.         if @common_event_id > 0
  123.           # 设置事件
  124.           common_event = $data_common_events[@common_event_id]
  125.           $game_system.battle_interpreter.setup(common_event.list, 0)
  126.         end
  127.         # 移至步骤 4
  128.         @phase4_step = 4
  129.       end

  130.       def update_phase4_step4
  131.         # 对像方动画
  132.         for target in @target_battlers
  133.           target.animation_id = @animation2_id
  134.           target.animation_hit = (target.damage != "Miss")
  135.         end
  136.         if @show_skill_name
  137.           @help_window.set_text(@skill.name, 1)
  138.           @show_skill_name = false
  139.         end
  140.         # 限制动画长度、最低 8 帧
  141.         @wait_count = 8
  142.         # 移至步骤 5
  143.         @phase4_step = 5
  144.       end
  145.       #--------------------------------------------------------------------------
  146.       # ● 刷新画面 (主回合步骤 5 : 显示伤害)
  147.       #--------------------------------------------------------------------------
  148.       def update_phase4_step5
  149.         # 隐藏帮助窗口
  150.         @help_window.visible = false
  151.         # 刷新状态窗口
  152.         @status_window.refresh
  153.         # 显示伤害
  154.         for target in @target_battlers
  155.           if target.damage != nil
  156.             target.damage_pop = true
  157.           end
  158.         end
  159.         if @active_battler.damage != nil
  160.           @active_battler.damage_pop = true
  161.         end
  162.         # 移至步骤 6
  163.         @phase4_step = 6
  164.       end
  165.       #--------------------------------------------------------------------------
  166.       # ● 刷新画面 (主回合步骤 6 : 刷新)
  167.       #--------------------------------------------------------------------------
  168.       def update_phase4_step6
  169.         # 清除强制行动对像的战斗者
  170.         $game_temp.forcing_battler = nil
  171.         # 移至步骤 1
  172.         @phase4_step = 1
  173.       end
  174.       
  175.       def make_skill_action_result
  176.         # 获取特技
  177.         @skill = $data_skills[@active_battler.current_action.skill_id]
  178.         # 如果不是强制行动
  179.         unless @active_battler.current_action.forcing
  180.           # 因为 SP 耗尽而无法使用的情况下
  181.           unless @active_battler.skill_can_use?(@skill.id)
  182.             # 清除强制行动对像的战斗者
  183.             $game_temp.forcing_battler = nil
  184.             # 移至步骤 1
  185.             @phase4_step = 1
  186.             return
  187.           end
  188.         end
  189.         # 消耗 SP
  190.         @active_battler.sp -= @skill.sp_cost
  191.         # 刷新状态窗口
  192.         @status_window.refresh
  193.         # 设置动画 ID
  194.         @animation1_id = @skill.animation1_id
  195.         @animation2_id = @skill.animation2_id
  196.       
  197.         @show_skill_name = true
  198.         # 设置公共事件 ID
  199.         @common_event_id = @skill.common_event_id
  200.         # 设置对像侧战斗者
  201.         set_target_battlers(@skill.scope)
  202.         # 应用特技效果
  203.         for target in @target_battlers
  204.           target.skill_effect(@active_battler, @skill)
  205.         end
  206.       end
  207.     end
复制代码
伸手党啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
GoogleBaiduYahooWiki新浪摆在你面前不知道用
再见到你伸手,马上砍下来!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2011-3-13
帖子
24
4
 楼主| 发表于 2011-10-15 22:12:58 | 只看该作者
壬穹雷光 发表于 2011-10-15 15:24
...使用技能前播放声音...咱判断使用技能前呢?LZ
LZ的意思是技能动画前吧.... ...

是的,就是这样


yi0147于2011-10-15 22:14补充以下内容:
搜不到才问的啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
5
发表于 2011-10-15 23:16:07 | 只看该作者
其实这种玩意
在技能前使用公共事件。
你可以理解为在公共事件后使用技能
懂?

点评

事件功能不是万能的,以前的我,这种方法所用到的技能都是全体攻击技能。  发表于 2011-10-16 09:34
那咋调用公共事件......~(=V=)~,突然有一瞬间明白了......,话说如何判断选择对象?  发表于 2011-10-15 23:26
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
6
发表于 2011-10-16 02:31:21 | 只看该作者
先播声音然后出动画不行么,改下动画而已

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 19:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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