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

Project1

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

[已经解决] 如何在某技能释放之后,先执行公共事件再实现技能效果

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3701
在线时间
1786 小时
注册时间
2010-12-21
帖子
2294
跳转到指定楼层
1
发表于 2011-1-12 20:32:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 黄亦天 于 2011-1-13 17:04 编辑

其实我最理想的想法是:发动技能后的顺序是公共事件A+技能效果+公共事件B……
但是感觉比较麻烦,于是打算改成:公共事件A+技能效果+公共事件A 这样的组合
于是我试着改了Scene_Skill里面的内容,但是改完之后啥用没有……
求解,应该改什么地方……

Lv1.梦旅人

梦石
0
星屑
50
在线时间
120 小时
注册时间
2010-11-19
帖子
160
2
发表于 2011-1-13 03:27:43 | 只看该作者
应该着手在战斗系统?
楼主是用哪一个战斗脚本哦?

点评

我不幸的用的VX是默认的战斗脚本  发表于 2011-1-13 10:52
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
3
发表于 2011-1-13 08:50:59 | 只看该作者
也许阁下可以参考参考别人怎么写的……
  1. #==============================================================================
  2. #    ☆VX RGSS2 「スキル使用前コモン」☆
  3. #      EnDlEss DREamER
  4. #     URL:http://mitsu-evo.6.ql.bz/
  5. #     製作者 mitsu-evo
  6. #     Last:2010/8/16
  7. #   データベース「スキル」設定のコモンイベントをスキル使用前に実行する。
  8. #     ▼ 他の戦闘系イベントより下に。
  9. #==============================================================================
  10. $ed_rgss2 = {} if $ed_rgss2 == nil
  11. $ed_rgss2["ed_skill_common"] = true
  12. # 使い方:スキルのメモ欄に「使用前コモン」と記入。(「」はいらない。)
  13. =begin

  14. 8/16:敵キャラIDが変数に正常に格納されていなかったのを修正。

  15.      使い方
  16.     ?スキルメモ欄に「使用前コモン」と入れておくと
  17.      そのスキルのコモンイベントはスキル使用前の実行されます。
  18.      「END_SKILL_COMMON」が「true」の場合は使用後も実行されます。
  19.     ?アクター及びエネミーのIDをイベントコマンドの変数に格納します。
  20.     ?対象キャラのIDとは「アクターID」及び「エネミーID」です。
  21.      コモンイベントの組み方によって、特定の敵や味方の時にのみ
  22.      会話や演出を行うことが出来るようになります。
  23.     ?敵キャラIDなので複数の同じ敵の場合は全員が対象となります。
  24.      ボス戦など同じ敵が複数出現しない場合などに有効です。
  25.    
  26. =end

  27. module ED
  28.   SKILL_COMMON = "使用前コモン"
  29.   END_SKILL_COMMON = false                # スキル使用前と使用後にコモン発生
  30.   ACTIVE_ACTOR = 6                        # 行動中のアクターID格納変数
  31.   ACTIVE_ENEMY = 7                        # 行動中のエネミーID格納変数
  32.   ACTIVE_TARGET = 8                       # 対象キャラID格納変数
  33.   # 全体なら対象キャラIDは「9999」になる。
  34. end

  35. #==============================================================================
  36. # ■ Scene_Battle
  37. #------------------------------------------------------------------------------
  38. #  バトル画面の処理を行うクラスです。
  39. #==============================================================================

  40. class Scene_Battle < Scene_Base
  41.   #--------------------------------------------------------------------------
  42.   # ● 戦闘行動の実行
  43.   #--------------------------------------------------------------------------
  44.   alias ed_skill_common_execute_action execute_action
  45.   def execute_action
  46.     if @active_battler.actor?
  47.       $game_variables[ED::ACTIVE_ACTOR] = @active_battler.id
  48.     else
  49.       $game_variables[ED::ACTIVE_ENEMY] = @active_battler.enemy_id
  50.     end
  51.     ed_skill_common_execute_action
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 戦闘行動の実行 : スキル
  55.   #--------------------------------------------------------------------------
  56.   def execute_action_skill
  57.    
  58.     skill = @active_battler.action.skill
  59.     text = @active_battler.name + skill.message1
  60.     targets = @active_battler.action.make_targets
  61.     # ターゲットのID取得
  62.     if targets.size == 1
  63.       for ed_target in targets
  64.         if ed_target.actor?
  65.           $game_variables[ED::ACTIVE_TARGET] = ed_target.id
  66.         else
  67.           $game_variables[ED::ACTIVE_TARGET] = ed_target.enemy_id
  68.         end
  69.       end
  70.     else
  71.       $game_variables[ED::ACTIVE_TARGET] = 9999
  72.     end
  73.     skill_common = skill.note.scan(/#{ED::SKILL_COMMON}/)
  74.     skill_common = skill_common.flatten
  75.     skill_common = skill_common[0].to_s
  76.     # スキル使用前にコモンイベント実行
  77.     if skill_common != nil and not skill_common.empty?
  78.       $game_temp.common_event_id = skill.common_event_id
  79.       process_battle_event
  80.       @message_window.dispose
  81.       @message_window = Window_BattleMessage.new
  82.     end
  83.    
  84.     @message_window.add_instant_text(text)
  85.     unless skill.message2.empty?
  86.       wait(10)
  87.       @message_window.add_instant_text(skill.message2)
  88.     end
  89.     display_animation(targets, skill.animation_id)
  90.     @active_battler.mp -= @active_battler.calc_mp_cost(skill)
  91.     # 通常通りにスキルコモンイベント実行
  92.     if skill_common == nil or skill_common == "" or ED::END_SKILL_COMMON == true
  93.       $game_temp.common_event_id = skill.common_event_id
  94.     end
  95.     for target in targets
  96.       target.skill_effect(@active_battler, skill)
  97.       display_action_effects(target, skill)
  98.     end
  99.   end
  100.   
  101. end



复制代码

评分

参与人数 1星屑 +700 收起 理由
八云紫 + 700 认可答案

查看全部评分

新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3701
在线时间
1786 小时
注册时间
2010-12-21
帖子
2294
4
 楼主| 发表于 2011-1-13 13:25:34 | 只看该作者
回复 企鹅达达 的帖子

一堆日文很头疼……(只会读平假名不会读片假名的飘过~~)
突然想起不知是哪位前辈说过的“一顿p”的方法,于是我也一顿p……
这个脚本的意思我大概弄清楚了,它的原理就是先判定技能注释里有没有识别标识,如果有,就直接执行公共事件,如果没有,就不带入技能公共事件的ID
那么说明,技能执行公共事件的地方还不是Scene_Battle
于是我又回去找了Scene_Skill,只在最后那块找到了common字样的一段,我把包含common的整个if判断放到它那个def的最前面,但是貌似还是没有效果……
这个公共事件处理的地方应该是哪?求解……

点评

其实直接用上面这个脚本就可以解决问题了……但是还是想知道其脚本真身在何处……  发表于 2011-1-13 13:59
绿坝娘素材库企划

素材库获取方法:暂时中止,需求者私聊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
5
发表于 2011-1-13 14:39:49 | 只看该作者
回复 黄亦天 的帖子

就是在Scene_Battle这里,def execute_action_skill
display_animation(targets, skill.animation_id)这个是播放技能动画
$game_temp.common_event_id =×× 这个是执行公用事件

点评

成功了~~ 非常感谢的说~~  发表于 2011-1-13 16:45
再加一句 process_battle_event  发表于 2011-1-13 16:11
但是我把$game_temp.common_event_id =××放到display_animation(targets, skill.animation_id)前面,技能依旧是原来的顺序,是不是还要改些什么?……  发表于 2011-1-13 15:00

评分

参与人数 1星屑 +120 收起 理由
黄亦天 + 120 个人认可~~

查看全部评分

新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-16 23:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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