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

Project1

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

[已经过期] 有关升级脚本整合的问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
260 小时
注册时间
2010-9-18
帖子
11
跳转到指定楼层
1
发表于 2011-5-10 10:01:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问能将 升级提示◆暮2版的 文字显示 功能  并入泛用型升级提示 v1.1 中吗?

泛用型升级提示 v1.1  在显示获得技能时 位置出错,如下图(黄字部分)

升级提示◆暮2版的如下图(紫色部分),是类似Rmxp中文章显示的功能


或者,能将 升级提示◆暮2版 加上升级提示音乐吗(在脚本中加),别的升级提示似乎都有这个功能
以下为两个脚本

1.泛用型升级提示 v1.1
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #==============================================================================
  5. # 泛用型升级提示 v1.1
  6. #
  7. # 核心部分 By 叶子
  8. # 窗口部分 原作者:桜雅 在土 修改:叶子
  9. #
  10. # Date: 2-12-2006 -v1.0
  11. #       3-2-2006 -v1.1
  12. #==============================================================================
  13. #
  14. # 在对话时,调用“增加EXP”或“增减等级”指令前,请等待3帧以上,否则对话框来不及消失。
  15. #
  16. # 当打开此号数的开关的时候,等级上升将不会提示,比如默认打开45号开关,等级上升不再提示
  17. $不显示升级窗口 = 255
  18. #==============================================================================

  19. class Game_Actor
  20. #--------------------------------------------------------------------------
  21. # ● 更改 EXP
  22. #     exp : 新的 EXP
  23. #--------------------------------------------------------------------------
  24. def exp=(exp)
  25.    # 记录旧等级
  26.    last_level = @level
  27.    @exp = [[exp, 9999999].min, 0].max
  28.    # 升级
  29.    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  30.      @level += 1
  31.      # 学会特技
  32.      for j in $data_classes[@class_id].learnings
  33.        if j.level == @level
  34.          learn_skill(j.skill_id)
  35.        end
  36.      end
  37.    end
  38.    # 降级
  39.    while @exp < @exp_list[@level]
  40.      @level -= 1
  41.    end
  42.    # 修正当前的 HP 与 SP 超过最大值
  43.    @hp = [@hp, self.maxhp].min
  44.    @sp = [@sp, self.maxsp].min
  45.    # 升级了的话,升级显示处理
  46.    if @level > last_level and $game_switches[$不显示升级窗口] == false and
  47.      not $BTEST
  48.      show_level_up_result(last_level)
  49.    end
  50. end
  51. #--------------------------------------------------------------------------
  52. # ● 升级显示处理
  53. #--------------------------------------------------------------------------
  54. def show_level_up_result(last_level)
  55.    actor_parameters = self.last_parameters(last_level)
  56.    last_maxhp = actor_parameters[0]
  57.    last_maxsp = actor_parameters[1]
  58.    last_str = actor_parameters[2]
  59.    last_dex = actor_parameters[3]
  60.    last_agi = actor_parameters[4]
  61.    last_int = actor_parameters[5]
  62.    level_up_window = Window_LevelUpWindow_A.new self,last_level,last_maxhp,
  63.    last_maxsp,last_str,last_dex,last_agi,last_int
  64.    level_up_window.visible = true
  65.    skill_learning_window = Window_SkillLearning_A.new(@class_id,
  66.    last_level, @level)
  67.    # 循环
  68.    loop do
  69.      # 刷新游戏画面
  70.      Graphics.update
  71.      # 刷新输入信息
  72.      Input.update
  73.      # 按下C就关闭窗口
  74.      if Input.trigger?(Input::C)
  75.        unless skill_learning_window.refresh
  76.          level_up_window.dispose
  77.          skill_learning_window.dispose
  78.          return true
  79.        end
  80.      end
  81.    end
  82. end
  83. #--------------------------------------------------------------------------
  84. # ● 一次取得全部旧属性
  85. #--------------------------------------------------------------------------
  86. def last_parameters(level)
  87.    #---------------------------
  88.    # maxhp
  89.    #---------------------------
  90.    n = [[$data_actors[@actor_id].parameters[0, level] + @maxhp_plus, 1].max, 9999].min
  91.    for i in @states
  92.      n *= $data_states[i].maxhp_rate / 100.0
  93.    end
  94.    n = [[Integer(n), 1].max, 9999].min
  95.    maxhp = n
  96.    #---------------------------
  97.    # maxsp
  98.    #---------------------------
  99.    n = [[$data_actors[@actor_id].parameters[1, level] + @maxsp_plus, 0].max, 9999].min
  100.    for i in @states
  101.      n *= $data_states[i].maxsp_rate / 100.0
  102.    end
  103.    n = [[Integer(n), 0].max, 9999].min
  104.    maxsp = n
  105.    #---------------------------
  106.    # str
  107.    #---------------------------
  108.    n = $data_actors[@actor_id].parameters[2, level]
  109.    weapon = $data_weapons[@weapon_id]
  110.    armor1 = $data_armors[@armor1_id]
  111.    armor2 = $data_armors[@armor2_id]
  112.    armor3 = $data_armors[@armor3_id]
  113.    armor4 = $data_armors[@armor4_id]
  114.    n += weapon != nil ? weapon.str_plus : 0
  115.    n += armor1 != nil ? armor1.str_plus : 0
  116.    n += armor2 != nil ? armor2.str_plus : 0
  117.    n += armor3 != nil ? armor3.str_plus : 0
  118.    n += armor4 != nil ? armor4.str_plus : 0
  119.    n = [[n + @str_plus, 1].max, 999].min
  120.    for i in @states
  121.      n *= $data_states[i].str_rate / 100.0
  122.    end
  123.    n = [[Integer(n), 1].max, 999].min
  124.    str = n
  125.    #---------------------------
  126.    # dex
  127.    #---------------------------
  128.    n = $data_actors[@actor_id].parameters[3, level]
  129.    weapon = $data_weapons[@weapon_id]
  130.    armor1 = $data_armors[@armor1_id]
  131.    armor2 = $data_armors[@armor2_id]
  132.    armor3 = $data_armors[@armor3_id]
  133.    armor4 = $data_armors[@armor4_id]
  134.    n += weapon != nil ? weapon.dex_plus : 0
  135.    n += armor1 != nil ? armor1.dex_plus : 0
  136.    n += armor2 != nil ? armor2.dex_plus : 0
  137.    n += armor3 != nil ? armor3.dex_plus : 0
  138.    n += armor4 != nil ? armor4.dex_plus : 0
  139.    n = [[n + @dex_plus, 1].max, 999].min
  140.    for i in @states
  141.      n *= $data_states[i].dex_rate / 100.0
  142.    end
  143.    n = [[Integer(n), 1].max, 999].min
  144.    dex = n
  145.    #---------------------------
  146.    # agi
  147.    #---------------------------
  148.    n = $data_actors[@actor_id].parameters[4, level]
  149.    weapon = $data_weapons[@weapon_id]
  150.    armor1 = $data_armors[@armor1_id]
  151.    armor2 = $data_armors[@armor2_id]
  152.    armor3 = $data_armors[@armor3_id]
  153.    armor4 = $data_armors[@armor4_id]
  154.    n += weapon != nil ? weapon.agi_plus : 0
  155.    n += armor1 != nil ? armor1.agi_plus : 0
  156.    n += armor2 != nil ? armor2.agi_plus : 0
  157.    n += armor3 != nil ? armor3.agi_plus : 0
  158.    n += armor4 != nil ? armor4.agi_plus : 0
  159.    n = [[n + @agi_plus, 1].max, 999].min
  160.    for i in @states
  161.      n *= $data_states[i].agi_rate / 100.0
  162.    end
  163.    n = [[Integer(n), 1].max, 999].min
  164.    agi = n
  165.    #---------------------------
  166.    # int
  167.    #---------------------------
  168.    n = $data_actors[@actor_id].parameters[5, level]
  169.    weapon = $data_weapons[@weapon_id]
  170.    armor1 = $data_armors[@armor1_id]
  171.    armor2 = $data_armors[@armor2_id]
  172.    armor3 = $data_armors[@armor3_id]
  173.    armor4 = $data_armors[@armor4_id]
  174.    n += weapon != nil ? weapon.int_plus : 0
  175.    n += armor1 != nil ? armor1.int_plus : 0
  176.    n += armor2 != nil ? armor2.int_plus : 0
  177.    n += armor3 != nil ? armor3.int_plus : 0
  178.    n += armor4 != nil ? armor4.int_plus : 0
  179.    n = [[n + @int_plus, 1].max, 999].min
  180.    for i in @states
  181.      n *= $data_states[i].int_rate / 100.0
  182.    end
  183.    n = [[Integer(n), 1].max, 999].min
  184.    int = n
  185.    return [maxhp, maxsp, str, dex, agi, int]
  186. end
  187. end


  188. #==============================================================================
  189. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  190. #==============================================================================


  191. #==============================================================================
  192. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  193. #==============================================================================

  194. # ————————————————————————————————————

  195. # ▼▲▼ XRXS_BP10. LEVEL UP!能力上昇表示ウィンドウ plus ▼▲▼
  196. # by 桜雅 在土

  197. #——以下3个如果需要修改,直接输入文件名即可
  198. $data_system_level_up_se = "" #升级时的音效设置
  199. $data_system_level_up_me = "Audio/ME/007-Fanfare01" # 升级时播放的ME
  200. $data_system_skilllearn_se = "" # 学会特技时播放的声效。

  201. #==============================================================================
  202. # ■ Window_LevelUpWindow
  203. #------------------------------------------------------------------------------
  204. #  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
  205. #==============================================================================
  206. class Window_LevelUpWindow_A < Window_Base
  207. #--------------------------------------------------------------------------
  208. # ● オブジェクト初期化
  209. #--------------------------------------------------------------------------
  210. def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  211.    super(210, 100, 220, 222)
  212.    self.contents = Bitmap.new(width - 32, height - 32)
  213.    self.visible = false
  214.    self.back_opacity = 160
  215.    # 防止被对话框遮住
  216.    self.z = 9999
  217.    refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  218.    # SEの再生
  219.    if $data_system_level_up_se != ""
  220.      Audio.se_play($data_system_level_up_se)
  221.    end
  222.    # MEの再生
  223.    if $data_system_level_up_me != ""
  224.      Audio.me_stop
  225.      Audio.me_play($data_system_level_up_me)
  226.    end
  227. end
  228. #--------------------------------------------------------------------------
  229. # ● リフレッシュ
  230. #--------------------------------------------------------------------------
  231. def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  232.    self.contents.clear
  233.    self.contents.font.color = text_color(6)
  234.    self.contents.font.size = 20
  235.    self.contents.draw_text(0, 0, 160, 24, actor.name.to_s)
  236.    self.contents.font.color = system_color
  237.    self.contents.font.size = 18
  238.    self.contents.draw_text( 0, 26, 160, 24, "等级")
  239.    self.contents.font.size = 18
  240.    self.contents.draw_text( 0, 48, 80, 24, $data_system.words.hp)
  241.    self.contents.draw_text( 0, 70, 80, 24, $data_system.words.sp)
  242.    self.contents.draw_text( 0, 92, 80, 24, $data_system.words.str)
  243.    self.contents.draw_text( 0, 114, 80, 24, $data_system.words.dex)
  244.    self.contents.draw_text( 0, 136, 80, 24, $data_system.words.agi)
  245.    self.contents.draw_text( 0, 158, 80, 24, $data_system.words.int)
  246.    self.contents.draw_text(110, 26, 128, 24, "→")
  247.    self.contents.draw_text(110, 48, 128, 24, "→")
  248.    self.contents.draw_text(110, 70, 128, 24, "→")
  249.    self.contents.draw_text(110, 92, 128, 24, "→")
  250.    self.contents.draw_text(110, 114, 128, 24, "→")
  251.    self.contents.draw_text(110, 136, 128, 24, "→")
  252.    self.contents.draw_text(110, 158, 128, 24, "→")
  253.    self.contents.font.color = normal_color
  254.    self.contents.draw_text( 60, 26, 88, 24, last_lv.to_s)
  255.    self.contents.draw_text( 60, 48, 72, 24, up_hp.to_s)
  256.    self.contents.draw_text( 60, 70, 72, 24, up_sp.to_s)
  257.    self.contents.draw_text( 60, 92, 72, 24, up_str.to_s)
  258.    self.contents.draw_text( 60, 114, 72, 24, up_dex.to_s)
  259.    self.contents.draw_text( 60, 136, 72, 24, up_agi.to_s)
  260.    self.contents.draw_text( 60, 158, 72, 24, up_int.to_s)
  261.    self.contents.draw_text( 145, 26, 128, 24, actor.level.to_s)
  262.    self.contents.draw_text( 145, 48, 128, 24, actor.maxhp.to_s)
  263.    self.contents.draw_text( 145, 70, 128, 24, actor.maxsp.to_s)
  264.    self.contents.draw_text( 145, 92, 128, 24, actor.str.to_s)
  265.    self.contents.draw_text( 145, 114, 128, 24, actor.dex.to_s)
  266.    self.contents.draw_text( 145, 136, 128, 24, actor.agi.to_s)
  267.    self.contents.draw_text( 145, 158, 128, 24, actor.int.to_s)
  268. end
  269. end
  270. #==============================================================================
  271. # ■ Window_SkillLearning
  272. #------------------------------------------------------------------------------
  273. #  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
  274. #==============================================================================
  275. class Window_SkillLearning_A < Window_Base
  276. #--------------------------------------------------------------------------
  277. # ● オブジェクト初期化
  278. #--------------------------------------------------------------------------
  279. def initialize(class_id, last_lv, now_lv)
  280.    super(210, 322, 220, 56)
  281.    self.contents = Bitmap.new(width - 32, height - 16) # わざと▽を表示
  282.    self.visible = false
  283.    self.back_opacity = 160
  284.    # 防止被对话框遮住
  285.    self.z = 9999
  286.    @learn_skills = []
  287.    for i in 0...$data_classes[class_id].learnings.size
  288.      learn_lv = $data_classes[class_id].learnings[i].level
  289.      # 今回のレベルアップ範囲で習得するスキルの場合
  290.      if learn_lv > last_lv and learn_lv <= now_lv
  291.        @learn_skills.push $data_skills[
  292.        $data_classes[class_id].learnings[i].skill_id].name
  293.      end
  294.    end
  295.    refresh
  296. end
  297. #--------------------------------------------------------------------------
  298. # ● リフレッシュ
  299. #--------------------------------------------------------------------------
  300. def refresh
  301.    # 各描写
  302.    skill_name = @learn_skills.shift
  303.    if skill_name == nil
  304.      return false
  305.    end
  306.    # SEの再生
  307.    if $data_system_skilllearn_se != ""
  308.      Audio.se_play($data_system_skilllearn_se, 100, 70)
  309.    end
  310.    self.contents.clear
  311.    self.contents.font.size = 18
  312.    self.contents.font.color = text_color(0)
  313.    self.contents.draw_text(0,0,156,24, "学会特技:"+skill_name)
  314.    self.contents.font.color = text_color(6)
  315.    self.contents.draw_text(0,0,156,24, "          "+skill_name)
  316.    self.contents.font.color = text_color(0)
  317.    self.visible = true
  318.    return true
  319. end
  320. end
  321. #==============================================================================
  322. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  323. #==============================================================================
复制代码
升级提示◆暮色轮回2版
  1. #◆◇◆◇◆  レベルアップポップスクリプト ver 1.03  ◇◆◇◆◇
  2. # 全マスタースクリプト共通スクリプト
  3. #  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
  4. #   by みんと

  5. =begin

  6. ■ 更新履歴

  7. ○ ver 1.03(2009/04/29)
  8. レイアウトと汎用性を修正

  9. ○ ver 1.02(2009/04/27)
  10. 汎用性を向上

  11. ○ ver 1.01(2009/04/26)
  12. ウィンドウの消し忘れを修正

  13. ○ ver 1.00(2009/04/25)
  14. 公開

  15. ■ 説明

  16. レベルアップした際の詳細な情報を1つずつ素早く表示します。
  17. スキルを習得した場合は習得したスキル名を表示します。
  18. 動くリザルトシリーズ、
  19. 及びアクティブレベルアップ両シリーズにも対応しています。

  20. 両シリーズよりも「下」に導入してください。

  21. =end

  22. #==============================================================================
  23. # ☆ MINTO
  24. #------------------------------------------------------------------------------
  25. #   様々なフラグを扱うメインモジュールです。
  26. #==============================================================================

  27. module MINTO
  28.   
  29.   # レベルアップポップスクリプトを有効化 ( true で有効 / false で無効 )
  30.   RGSS["レベルアップポップスクリプト"] = true
  31.   
  32. end

  33. # レベルアップポップスクリプトが有効な場合に以降の処理を実行する
  34. if MINTO::RGSS["レベルアップポップスクリプト"] == true then
  35.   
  36. #==============================================================================
  37. # ☆ カスタマイズ
  38. #------------------------------------------------------------------------------
  39. #   機能のカスタマイズをここで行います。
  40. #==============================================================================

  41. module MINTO
  42.   
  43.   # パラメータ上昇時のSE(名前、音量、ピッチ)
  44.   SE_Data = ["Audio/SE/002-System02", 100, 120]
  45.   
  46.   # スキル習得時のSE(名前、音量、ピッチ)
  47.   Skill_SE_Data = ["Audio/SE/157-Skill01", 100, 200]
  48.   
  49.   # スキル習得時のメッセージ末尾
  50.   LearningMessage = "战技习得!!"
  51.   
  52. end
  53. #==============================================================================
  54. # ■ Object
  55. #------------------------------------------------------------------------------
  56. #  全てのクラスのスーパークラス。オブジェクトの一般的な振舞いを定義します。
  57. #==============================================================================

  58. class Object
  59.   #--------------------------------------------------------------------------
  60.   # ● 深い複製の作成
  61.   #--------------------------------------------------------------------------
  62.   def dec
  63.     # Marshalモジュールを経由して、完全な複製を作成
  64.     return Marshal.load(Marshal.dump(self))
  65.   end
  66. end
  67. #==============================================================================
  68. # ■ Bitmap
  69. #------------------------------------------------------------------------------
  70. #  画像そのものを扱う組み込みクラスです。
  71. #==============================================================================

  72. class Bitmap
  73.   #--------------------------------------------------------------------------
  74.   # ● 指定範囲のクリア
  75.   #--------------------------------------------------------------------------
  76.   def rect_clear(x, y, width, height)
  77.     # 対象の範囲を消す
  78.     rect = Rect.new(x, y, width, height)
  79.     self.fill_rect(rect, Color.new(0, 0, 0, 0))
  80.   end
  81. end
  82. #==============================================================================
  83. # ■ Window
  84. #------------------------------------------------------------------------------
  85. #  ゲーム内の全てのウィンドウのスーパークラスです。
  86. #   内部的には複数のスプライトで構成されています。
  87. #==============================================================================

  88. class Window
  89.   #--------------------------------------------------------------------------
  90.   # ● ウィンドウのセンタリング
  91.   #--------------------------------------------------------------------------
  92.   def centering
  93.     # ウィンドウを画面の中央に配置する
  94.     self.x = (640 - self.width)  / 2
  95.     self.y = (480 - self.height) / 2
  96.   end
  97. end
  98. #==============================================================================
  99. # ■ Window_BattleStatus
  100. #------------------------------------------------------------------------------
  101. #  バトル画面でパーティメンバーのステータスを表示するウィンドウです。
  102. #==============================================================================

  103. class Window_BattleStatus < Window_Base
  104.   #--------------------------------------------------------------------------
  105.   # ● 公開インスタンス変数
  106.   #--------------------------------------------------------------------------
  107.   attr_accessor :level_up_flags           # レベルアップフラグ
  108. end
  109. #==============================================================================
  110. # ■ Window_Lvup_Data
  111. #------------------------------------------------------------------------------
  112. #   Lvup時のデータを表示するウィンドウです。
  113. #==============================================================================

  114. class Window_Lvup_Data < Window_Base
  115.   #--------------------------------------------------------------------------
  116.   # ● 公開インスタンス変数
  117.   #--------------------------------------------------------------------------
  118.   attr_accessor :data                     # データ
  119.   #--------------------------------------------------------------------------
  120.   # ● オブジェクト初期化
  121.   #--------------------------------------------------------------------------
  122.   def initialize
  123.     super(0, 0, 512, 192)
  124.     self.contents = Bitmap.new(width - 32, height - 32)
  125.     self.z = 10016
  126.     self.visible = false
  127.     @data = {}
  128.     centering
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● リフレッシュ
  132.   #    actor : アクター
  133.   #--------------------------------------------------------------------------
  134.   def refresh(actor)
  135.     x = 160
  136.     self.contents.clear
  137.     # アクター名を描写
  138.     self.contents.font.color = normal_color
  139.     self.contents.draw_text(x * 0, 32 * 0, 224, 32, actor.name)
  140.     # アクターグラフィックを描写
  141.     battler_name = actor.battler_name
  142.     battler_hue = actor.battler_hue
  143.     bitmap = RPG::Cache.battler(battler_name, battler_hue)
  144.     self.contents.blt(336, 0, bitmap, bitmap.rect)
  145.     # 用語を描写
  146.     self.contents.font.color = system_color
  147.     self.contents.draw_text(x * 0, 32 * 1, 96, 32, "Level")
  148.     self.contents.draw_text(x * 0, 32 * 2, 96, 32, $data_system.words.hp)
  149.     self.contents.draw_text(x * 0, 32 * 3, 96, 32, $data_system.words.sp)
  150.     self.contents.draw_text(x * 1, 32 * 1, 96, 32, $data_system.words.str)
  151.     self.contents.draw_text(x * 1, 32 * 2, 96, 32, $data_system.words.dex)
  152.     self.contents.draw_text(x * 1, 32 * 3, 96, 32, $data_system.words.agi)
  153.     self.contents.draw_text(x * 1, 32 * 4, 96, 32, $data_system.words.int)
  154.     self.contents.font.color = normal_color
  155.     # パラメータを描写
  156.     for i in 0...@data[actor].size do
  157.       draw_status(actor, i)
  158.     end
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● 能力の描写
  162.   #    actor : アクター
  163.   #    index : 項目
  164.   #--------------------------------------------------------------------------
  165.   def draw_status(actor, index)
  166.     # 描写座標を設定
  167.     x = 60 + ((index / 4) * 160) + ((index / 4) * 8)
  168.     y = 32 + ((index % 4) * 32)
  169.     # 描写範囲をクリア
  170.     self.contents.rect_clear(x, y, 48, 32)
  171.     # 能力値を描写
  172.     self.contents.draw_text(x, y, 96, 32, @data[actor][index].to_s)
  173.   end
  174. end
  175. #==============================================================================
  176. # ■ Window_BattleCenter_Help
  177. #------------------------------------------------------------------------------
  178. #  戦闘画面で任意の文章を表示するウィンドウです。
  179. #==============================================================================

  180. class Window_BattleCenter_Help < Window_Base
  181.   #--------------------------------------------------------------------------
  182.   # ● オブジェクト初期化
  183.   #--------------------------------------------------------------------------
  184.   def initialize
  185.     super(0, 0, 64, 56)
  186.     self.z = 20000
  187.     self.visible = false
  188.     create_contents
  189.     @message_duration = 0
  190.     @save_text = ""
  191.     @text = []
  192.     @text_y = 0
  193.     @text_x = 0
  194.     @text_type = 0
  195.     @text_index = 0
  196.     @text_width = []
  197.     @speed = 1
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● ウィンドウ内容の作成
  201.   #--------------------------------------------------------------------------
  202.   def create_contents
  203.     unless self.contents.nil?
  204.       self.contents.dispose
  205.       self.contents = nil
  206.     end
  207.     self.contents = Bitmap.new(width - 32, height - 32)
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ● テキスト設定
  211.   #    text : スプライトに表示する文字列
  212.   #--------------------------------------------------------------------------
  213.   def set_text(text)
  214.     # 求められたテキストが無効な場合
  215.     if text.to_s == "" then
  216.       # 表示カウントを設定
  217.       @message_duration = 8
  218.       # メソッドを終了
  219.       return
  220.     end
  221.     self.active = true
  222.     # 終了記号を追加
  223.     text += "\\bw"
  224.     # スプライトを可視状態にする
  225.     self.visible = true
  226.     # 各データを初期化
  227.     @save_text = ""
  228.     @text = []
  229.     @text_width = []
  230.     @text_index = 0
  231.     @text_type = 0
  232.     @speed = 1
  233.     self.pause = false
  234.     self.opacity = 192
  235.     self.contents_opacity = 255
  236.     # 表示カウントを設定
  237.     @message_duration = 16
  238.     # 文字を複製
  239.     data = text.dup
  240.     # 各制御文字を仮変換
  241.     data.gsub!(/\\\\/) { "\000" }
  242.     data.gsub!(/\\[Cc]\[([0-9]+)\]/) { "" }
  243.     data.gsub!(/\\[Bb][Ww]/) { "" }
  244.     # ウィンドウのサイズを調節
  245.     self.width = 32 + (self.contents.text_size(data).width)
  246.     self.height = 56
  247.     # センター表示
  248.     centering
  249.     # ビットマップを再作成
  250.     create_contents
  251.     refresh(text.dup)
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● リフレッシュ
  255.   #    text : スプライトに表示する文字列
  256.   #--------------------------------------------------------------------------
  257.   def refresh(text)
  258.     # 基本情報を初期化
  259.     self.contents.clear
  260.     self.contents.font.color = normal_color
  261.     self.contents.font.bold = false
  262.     self.contents.font.italic = false
  263.     @text_x = 0
  264.     @text_y = 0
  265.     # 文章のインデックスを初期化
  266.     @text_index = 0
  267.     # 便宜上、"\\\\" を "\000" に変換
  268.     text.gsub!(/\\\\/) { "\000" }
  269.     # 各制御文字を実際のものに変換
  270.     text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  271.     text.gsub!(/\\[Bb][Ww]/) { "\017" }
  272.     @save_text = text.dup
  273.   end
  274.   #--------------------------------------------------------------------------
  275.   # ● テキストの更新
  276.   #--------------------------------------------------------------------------
  277.   def text_update
  278.     @text = @save_text.split(//)
  279.     # 無効な文字列の場合
  280.     if @text[@text_index] == nil then
  281.       # メソッドを返す
  282.       return false
  283.     end
  284.     # スプライトを可視状態にする
  285.     self.visible = true
  286.     # テキストを取得
  287.     c = @text[@text_index]
  288.     # \\ の場合
  289.     if c == "\000" then
  290.       # 本来の文字に戻す
  291.       c = "\\"
  292.     # \C[n] の場合
  293.     elsif c == "\001" then
  294.       # 制御文字を処理
  295.       @save_text.sub!(/\[([0-9]+)\]/, "")
  296.       # 文字色のIDを取得
  297.       color = $1.to_i
  298.       # 文字色のIDが有効な場合
  299.       if color >= 0 then
  300.         # 文字色を変更
  301.         self.contents.font.color = text_color(color)
  302.       end
  303.       # インデックスを進める
  304.       @text_index += 1
  305.       # メソッドを返す
  306.       return true
  307.     # \BW の場合
  308.     elsif c == "\017" then
  309.       # 文章の表示速度を初期化
  310.       @speed = 0
  311.       # ポーズサインを表示する
  312.       self.pause = true
  313.       # ボタン待ちフラグをオン
  314.       @press = true
  315.       # インデックスを進める
  316.       @text_index += 1
  317.       # メソッドを返す
  318.       return true
  319.     end
  320.     # 文字を描画
  321.     self.contents.draw_text(@text_x, 0, 40, 24, c)
  322.     # @text_x に描画した文字の幅を加算
  323.     @text_x += self.contents.text_size(c).width
  324.     # インデックスを進める
  325.     @text_index += 1
  326.     return true
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● フレーム更新
  330.   #--------------------------------------------------------------------------
  331.   def update
  332.     # ボタン入力待ちフラグがオンの場合
  333.     if @press == true then
  334.       super
  335.       # C ボタンが押された場合
  336.       if Input.trigger?(Input::C) == true then
  337.         # ボタン入力待ちフラグをオフ
  338.         @press = false
  339.         # ポーズサインを非表示にする
  340.         self.pause = false
  341.         # ウィンドウを不可視にする
  342.         self.visible = false
  343.         # ボタン入力待ちフラグをオフ
  344.         @press = false
  345.       end
  346.       # メソッドを返す
  347.       return
  348.     end
  349.     # 更新が可能なフレームでない場合
  350.     if @speed != 0 and (Graphics.frame_count % @speed != 0) then
  351.       # メソッドを返す
  352.       return
  353.     end
  354.     # テロップを更新中の場合
  355.     if text_update == true then
  356.       # スピードが 0 の場合
  357.       if @speed == 0 then
  358.         update
  359.       end
  360.       # メソッドを返す
  361.       return
  362.     else
  363.       # 文章の表示速度を最速化
  364.       @speed = 1
  365.     end
  366.   end
  367. end
  368. #==============================================================================
  369. # ■ Scene_Battle (分割定義 1)
  370. #------------------------------------------------------------------------------
  371. #  バトル画面の処理を行うクラスです。
  372. #==============================================================================

  373. class Scene_Battle
  374.   #--------------------------------------------------------------------------
  375.   # ● メイン処理
  376.   #--------------------------------------------------------------------------
  377.   alias main_MITO_RGSS_120 main
  378.   def main
  379.     # 元の処理を実行
  380.     main_MITO_RGSS_120
  381.     # レベルアップウィンドウが有効な場合
  382.     unless @lvup_window.nil?
  383.       # レベルアップウィンドウを解放
  384.       @lvup_window.dispose
  385.       # センターヘルプウィンドウを解放
  386.       @center_help_window.dispose
  387.     end
  388.   end
  389. end
  390. #==============================================================================
  391. # ■ Scene_Battle (分割定義 2)
  392. #------------------------------------------------------------------------------
  393. #  バトル画面の処理を行うクラスです。
  394. #==============================================================================

  395. class Scene_Battle  
  396.   #--------------------------------------------------------------------------
  397.   # ● アフターバトルフェーズ開始
  398.   #--------------------------------------------------------------------------
  399.   alias start_phase5_MITO_RGSS_120 start_phase5
  400.   def start_phase5
  401.     @last_skills_array = []
  402.     # フラグを設定
  403.     @levelup_effect = false
  404.     # レベルアップウィンドウを作成
  405.     @lvup_window = Window_Lvup_Data.new
  406.     # センターヘルプウィンドウを作成
  407.     @center_help_window = Window_BattleCenter_Help.new
  408.     # ループ処理(パーティー)
  409.     for i in 0...$game_party.actors.size do
  410.       # アクターを取得
  411.       actor = $game_party.actors[i]
  412.       # 最終能力値を保存
  413.       save_last_parameter(actor)
  414.       @last_skills_array[i] = []
  415.       # ループ処理
  416.       for skill in $data_classes[actor.class_id].learnings do
  417.         # レベル条件を満たしている場合
  418.         if skill.level <= actor.level then
  419.           # 習得スキルに追加
  420.           @last_skills_array[i].push(skill.skill_id)
  421.         end
  422.       end
  423.       # 習得スキルに追加
  424.       @last_skills_array[i] += actor.skills
  425.       # 重複する要素を除外
  426.       @last_skills_array[i].uniq!
  427.     end
  428.     # 元の処理を実行
  429.     start_phase5_MITO_RGSS_120
  430.   end
  431.   #--------------------------------------------------------------------------
  432.   # ● 最終能力値の記憶
  433.   #    actor : アクター
  434.   #--------------------------------------------------------------------------
  435.   def save_last_parameter(actor)
  436.     @lvup_window.data[actor] = []
  437.     @lvup_window.data[actor][0] = actor.level
  438.     @lvup_window.data[actor][1] = actor.maxhp
  439.     @lvup_window.data[actor][2] = actor.maxsp
  440.     @lvup_window.data[actor][3] = nil
  441.     @lvup_window.data[actor][4] = actor.str
  442.     @lvup_window.data[actor][5] = actor.dex
  443.     @lvup_window.data[actor][6] = actor.agi
  444.     @lvup_window.data[actor][7] = actor.int
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   # ● 現在のパラメータの取得
  448.   #    actor : アクター
  449.   #    index : 項目
  450.   #--------------------------------------------------------------------------
  451.   def look_parameter(actor, index)
  452.     # 項目に応じて分岐
  453.     case index
  454.     when 0 then
  455.       return actor.level
  456.     when 1 then
  457.       return actor.maxhp
  458.     when 2 then
  459.       return actor.maxsp
  460.     when 3 then
  461.       return nil
  462.     when 4 then
  463.       return actor.str
  464.     when 5 then
  465.       return actor.dex
  466.     when 6 then
  467.       return actor.agi
  468.     when 7 then
  469.       return actor.int
  470.     end
  471.   end
  472.   #--------------------------------------------------------------------------
  473.   # ● 習得したスキルの表示
  474.   #    actor : アクター
  475.   #--------------------------------------------------------------------------
  476.   def learning_skills_pop(actor)
  477.     # 最新のスキル
  478.     learning_skills = []
  479.     # ループ処理
  480.     for skill in $data_classes[actor.class_id].learnings do
  481.       # レベル条件を満たしている場合
  482.       if skill.level <= actor.level then
  483.         # 最新のスキルに追加
  484.         learning_skills.push(skill.skill_id)
  485.       end
  486.     end
  487.     # 最新のスキルにアクターのスキルを追加
  488.     learning_skills += actor.skills
  489.     # 重複する要素を除外
  490.     learning_skills.uniq!
  491.     # 習得済みスキルを除外
  492.     learning_skills -= @last_skills_array[actor.index]
  493.     # スキルを習得していない場合
  494.     if learning_skills.empty?
  495.       # メソッドを返す
  496.       return
  497.     end
  498.     # ループ処理
  499.     for id in learning_skills do
  500.       # スキルを取得
  501.       skill = $data_skills[id]
  502.       # 習得MEを演奏
  503.       data = MINTO::Skill_SE_Data
  504.       Audio.se_play(data[0], data[1], data[2])
  505.       text = "\\c[1]#{skill.name}\\c[0]#{MINTO::LearningMessage}"
  506.       # スキル名を表示
  507.       @center_help_window.set_text(text)
  508.       # 表示が終わるまでループ
  509.       while @center_help_window.visible == true
  510.         # ゲーム画面を更新
  511.         Graphics.update
  512.         # 入力情報を更新
  513.         Input.update
  514.         # センターヘルプウィンドウを更新
  515.         @center_help_window.update
  516.       end
  517.     end
  518.   end
  519.   #--------------------------------------------------------------------------
  520.   # ● レベルアップモーション
  521.   #--------------------------------------------------------------------------
  522.   def level_up_motion
  523.     # ポップ作成
  524.     @pop = Mint_Pop.new
  525.     # ループ処理(パーティー)
  526.     for id in 0...$game_party.actors.size do
  527.       # アクターを取得
  528.       actor = $game_party.actors[id]
  529.       # パラメータウィンドウをリフレッシュ
  530.       @lvup_window.refresh(actor)
  531.       # レベルが上がっている場合
  532.       if actor.level > @lvup_window.data[actor][0] then
  533.         # パラメータウィンドウを表示
  534.         @lvup_window.visible = true
  535.         # ループ処理
  536.         for i in (0..7) do
  537.           # 描写座標を設定
  538.           x = 168 + ((i / 4) * 160)
  539.           y = 172 + ((i % 4) * 32)
  540.           # 上昇したパラメータを読み込む
  541.           parameter = look_parameter(actor, i)
  542.           # 結果を収納する
  543.           string = "+#{parameter.to_i - @lvup_window.data[actor][i].to_i}"
  544.           # 無効なパラメータの場合
  545.           if parameter.nil? then
  546.             # 次のパラメータへ
  547.             next
  548.           end
  549.           # 上昇後のパラメータを設定
  550.           @lvup_window.data[actor][i] = parameter
  551.           # パラメータウィンドウをリフレッシュ
  552.           @lvup_window.draw_status(actor, i)
  553.           # ポップ描写
  554.           @pop.string_pop(string, x, y)
  555.           # ウェイトカウントを設定
  556.           wait = i == 7 ? 160 : 6
  557.           # ポップSEを演奏
  558.           data = MINTO::SE_Data
  559.           Audio.se_play(data[0], data[1], data[2])
  560.           # フレーム更新
  561.           wait.times do
  562.             # ゲーム画面を更新
  563.             Graphics.update
  564.             # 入力情報を更新
  565.             Input.update
  566.             # スプライトセットを更新
  567.             @spriteset.update
  568.             # ポップを更新
  569.             @pop.update
  570.             # パラメータウィンドウを更新
  571.             @lvup_window.update
  572.             # 最終インデックスの場合
  573.             if i == 7 then
  574.               # ポーズサインを表示する
  575.               @lvup_window.pause = true
  576.               # C ボタンが押された場合
  577.               if Input.trigger?(Input::C) == true then
  578.                 # ポーズサインを非表示にする
  579.                 @lvup_window.pause = false
  580.                 # 更新を中断
  581.                 break
  582.               end
  583.             end
  584.           end
  585.         end
  586.       end
  587.       # 習得したスキルを表示
  588.       learning_skills_pop(actor)
  589.       # ポップを解放
  590.       @pop.dispose
  591.       # パラメータウィンドウを閉じる
  592.       @lvup_window.visible = false
  593.     end
  594.   end
  595.   #--------------------------------------------------------------------------
  596.   # ● フレーム更新 (アフターバトルフェーズ)
  597.   #--------------------------------------------------------------------------
  598.   alias update_phase5_MITO_RGSS_120 update_phase5
  599.   def update_phase5
  600.     # 元の処理を実行
  601.     update_phase5_MITO_RGSS_120
  602.     # ウェイトカウントが0の場合
  603.     if @phase5_wait_count.zero? == true then
  604.       # 演出未実行の場合
  605.       unless @levelup_effect then
  606.         # レベルアップモーション
  607.         level_up_motion
  608.         # フラグをオンにする
  609.         @levelup_effect = true
  610.       end
  611.     end
  612.   end
  613. end
  614. #==============================================================================
  615. # ■ Mint_Pop
  616. #------------------------------------------------------------------------------
  617. #  数字のスプライト表示を扱うクラスです。
  618. #==============================================================================

  619. class Mint_Pop
  620.   #--------------------------------------------------------------------------
  621.   # ● オブジェクト初期化
  622.   #--------------------------------------------------------------------------
  623.   def initialize
  624.     @string_pop_sprite = []
  625.     @string_pop_duration = []
  626.   end
  627.   #--------------------------------------------------------------------------
  628.   # ● ストリングポップ
  629.   #    string : 求められた文字列
  630.   #    x      : X座標
  631.   #    y      : Y座標
  632.   #--------------------------------------------------------------------------
  633.   def string_pop(string = "", x = 0, y = 0)
  634.     # string が無効なら処理を終了
  635.     return if string == ""
  636.     # スプライトを生成
  637.     string_pop_sprite = Sprite.new
  638.     # 文字を描写
  639.     string_pop_sprite.bitmap = Bitmap.new(96, 40)
  640.     string_pop_sprite.bitmap.font.size = 17
  641.     string_pop_sprite.bitmap.font.color.set(0, 0, 0)
  642.     string_pop_sprite.bitmap.draw_text(-1, 12-1, 96, 32, string, 1)
  643.     string_pop_sprite.bitmap.draw_text(+1, 12-1, 96, 32, string, 1)
  644.     string_pop_sprite.bitmap.draw_text(-1, 12+1, 96, 32, string, 1)
  645.     string_pop_sprite.bitmap.draw_text(+1, 12+1, 96, 32, string, 1)
  646.     string_pop_sprite.bitmap.font.color.set(176, 255, 144)
  647.     string_pop_sprite.bitmap.draw_text(0, 12, 96, 32, string, 1)
  648.     # 座標データを代入
  649.     string_pop_sprite.x = x
  650.     string_pop_sprite.y = y
  651.     string_pop_sprite.z = 10032
  652.     # 配列の先頭にシフト
  653.     @string_pop_sprite.unshift(string_pop_sprite)
  654.     @string_pop_duration.unshift(40)      
  655.   end
  656.   #--------------------------------------------------------------------------
  657.   # ● 解放
  658.   #--------------------------------------------------------------------------
  659.   def dispose
  660.     # ループ処理
  661.     for i in 0...@string_pop_sprite.size do
  662.       # 有効なスプライトの場合
  663.       unless @string_pop_sprite[i].nil? then
  664.         # スプライトを解放
  665.         @string_pop_sprite[i].bitmap.dispose
  666.         @string_pop_sprite[i].dispose
  667.         @string_pop_sprite[i] = nil
  668.         @string_pop_duration[i] = nil
  669.       end
  670.     end
  671.     # 配列内容をクリア
  672.     @string_pop_sprite.clear
  673.     @string_pop_duration.clear
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ● フレーム更新
  677.   #--------------------------------------------------------------------------
  678.   def update
  679.     # 1つでもストリングポップが表示中の場合
  680.     if @string_pop_sprite.size > 0
  681.       # 表示中のストリングポップを1つずつ処理する
  682.       for i in 0...@string_pop_sprite.size
  683.         # ストリングポップを代入
  684.         string = @string_pop_sprite[i]
  685.         # カウントが0の場合
  686.         if @string_pop_duration[i] == 0
  687.           # 次の処理へ
  688.           next
  689.         end
  690.         # カウントを減らす
  691.         @string_pop_duration[i] -= 1
  692.         # 残りカウントに応じて分岐
  693.         case @string_pop_duration[i]
  694.         when 36..39
  695.           string.y -= 4
  696.         when 33..37
  697.           string.y -= 2
  698.         when 32..34
  699.           string.y += 2
  700.         when 25..32
  701.           string.y += 4
  702.         end
  703.       end
  704.     end
  705.   end
  706. end

  707. end
复制代码

未命名200.jpg (108.59 KB, 下载次数: 0)

未命名200.jpg

Lv1.梦旅人

梦石
0
星屑
49
在线时间
27 小时
注册时间
2010-6-16
帖子
78
2
发表于 2011-5-10 12:20:10 | 只看该作者
好男啊- - !
回复 支持 反对

使用道具 举报

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

3
发表于 2011-5-10 13:31:43 | 只看该作者
在合适的地方加一句Audio.me_play(路径)就行了……
不等等其实我是想问楼主你在对维纳利斯传奇做什么!?要是敢让我看到维纳利斯传奇被随便改改就当你自己的作品小心我要你好看= =#

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
260 小时
注册时间
2010-9-18
帖子
11
4
 楼主| 发表于 2011-5-10 22:57:50 | 只看该作者
天圣的马甲 发表于 2011-5-10 13:31
在合适的地方加一句Audio.me_play(路径)就行了……
不等等其实我是想问楼主你在对维纳利斯传奇做什么!?要 ...

可以帮添加一下吗?自己加了一句,但测试无效
  1. module MINTO

  2.   Audio.me_play("Audio/ME/007-Fanfare01" )# 升级时播放的ME
  3.   
  4.   # パラメータ上昇時のSE(名前、音量、ピッチ)
  5.   SE_Data = ["Audio/SE/002-System02", 100, 120]
  6.   
复制代码
PS:只是想将它《维纳利斯传奇》的模版改进一下提取出来。:L
作整合脚本测试用,个人比较喜欢这个游戏的剧情

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 12:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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