幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2431|回复: 11

置頂『RGSS收集』帖中,第八樓升級窗口的問題

[复制链接]

2

主题

25

帖子

1563

积分

⑥精研

积分
1563
发表于 2005-1-24 19:37:30 | 显示全部楼层 |阅读模式
八樓那個:『#脚本功能:升级提示 + 学会技能提示』

出錯在第172行,估計是那個半形問號出的錯。

但不能判斷是什麼問題,

請知道的前輩解答一下(順便也替置頂帖除錯?)
最口胡的事情就是,自己的帳號只打一半…… 偶素維琪雅,後面那個_jia是Jiang……|||bbb QQ隱身中:29848696
回复

使用道具 举报

2

主题

25

帖子

1563

积分

⑥精研

积分
1563
 楼主| 发表于 2005-1-24 19:53:02 | 显示全部楼层
找到一個似乎能替代的。

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

#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class Scene_Battle
  LEVEL_UP_SE   = \"\"                       # レベルアップSE。\"\"で無し。
  LEVEL_UP_ME   = \"Audio/ME/007-Fanfare01\" # レベルアップME
end
class Window_SkillLearning < Window_Base
  SKILLLEARN_SE = \"Audio/SE/106-Heal02\"    # スキル習得SE。
end
#==============================================================================
# ■ Window_LevelUpWindow
#------------------------------------------------------------------------------
#  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
#==============================================================================
class Window_LevelUpWindow < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(x, y, actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
    super(x, y, 160, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.back_opacity = 160
    refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.font.size = 14
    self.contents.draw_text( 0,   0, 160, 24, \"LEVEL UP!!\")
    self.contents.font.size = 18
    self.contents.draw_text( 0,  28, 160, 24, $data_system.words.hp)
    self.contents.draw_text( 0,  50, 160, 24, $data_system.words.sp)
    self.contents.font.size = 14
    self.contents.draw_text( 0,  72,  80, 24, $data_system.words.str)
    self.contents.draw_text( 0,  94,  80, 24, $data_system.words.dex)
    self.contents.draw_text( 0, 116,  80, 24, $data_system.words.agi)
    self.contents.draw_text( 0, 138,  80, 24, $data_system.words.int)
    self.contents.draw_text(92,   0, 128, 24, \"→\")
    self.contents.draw_text(76,  28, 128, 24, \"=\")
    self.contents.draw_text(76,  50, 128, 24, \"=\")
    self.contents.draw_text(76,  72, 128, 24, \"=\")
    self.contents.draw_text(76,  94, 128, 24, \"=\")
    self.contents.draw_text(76, 116, 128, 24, \"=\")
    self.contents.draw_text(76, 138, 128, 24, \"=\")
    self.contents.font.color = normal_color
    self.contents.draw_text( 0,   0,  88, 24, last_lv.to_s, 2)
    self.contents.draw_text( 0,  28,  72, 24, \"+\" + up_hp.to_s, 2)
    self.contents.draw_text( 0,  50,  72, 24, \"+\" + up_sp.to_s, 2)
    self.contents.draw_text( 0,  72,  72, 24, \"+\" + up_str.to_s, 2)
    self.contents.draw_text( 0,  94,  72, 24, \"+\" + up_dex.to_s, 2)
    self.contents.draw_text( 0, 116,  72, 24, \"+\" + up_agi.to_s, 2)
    self.contents.draw_text( 0, 138,  72, 24, \"+\" + up_int.to_s, 2)
    self.contents.font.size = 20
    self.contents.draw_text( 0,   0, 128, 24, actor.level.to_s, 2)
    self.contents.draw_text( 0,  26, 128, 24, actor.maxhp.to_s, 2)
    self.contents.draw_text( 0,  48, 128, 24, actor.maxsp.to_s, 2)
    self.contents.draw_text( 0,  70, 128, 24, actor.str.to_s, 2)
    self.contents.draw_text( 0,  92, 128, 24, actor.dex.to_s, 2)
    self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
    self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
  end
end
#==============================================================================
# ■ Window_SkillLearning
#------------------------------------------------------------------------------
#  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
#==============================================================================
class Window_SkillLearning < Window_Base
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
    attr_reader   :learned                  # スキルを習得したかどうか
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(class_id, last_lv, now_lv)
    super(160,  64, 320, 64)
    self.contents = Bitmap.new(width - 32, height - 28) # わざと▽を表示
    self.visible  = false
    self.back_opacity = 160
    @learned      = false
    refresh(class_id, last_lv, now_lv)
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(class_id, last_lv, now_lv)
    for i in 0...$data_classes&#91;class_id&#93;.learnings.size
      learn_lv = $data_classes&#91;class_id&#93;.learnings&#91;i&#93;.level
      # 今回のレベルアップ範囲で習得するスキルの場合
      if learn_lv > last_lv and learn_lv <= now_lv
        @learned = true
        # SEの再生
        if SKILLLEARN_SE != \"\"
          Audio.se_play(SKILLLEARN_SE)
        end
        # 各描写
        skill_name = $data_skills&#91;$data_classes&#91;class_id&#93;.learnings&#91;i&#93;.skill_id&#93;.name
        self.contents.clear
        self.contents.draw_text(0,0,448,32, skill_name + \"を習得!!\")
        self.visible  = true
        # メインループ
        loop do
          # ゲーム画面を更新
          Graphics.update
          # 入力情報を更新
          Input.update
          # フレーム更新
          update
          # 画面が切り替わったらループを中断
          if @learned == false
            break
          end
        end
        # メインループここまで
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      @learned = false
      self.visible  = false
    end
  end
end
#==============================================================================
# ■ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 追加・公開インスタンス変数
  #--------------------------------------------------------------------------
    attr_accessor :level_up_flags             # LEVEL UP!表示
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● アフターバトルフェーズ開始
  #--------------------------------------------------------------------------
  alias xrxs_bp10_start_phase5 start_phase5
  def start_phase5
    xrxs_bp10_start_phase5
    # 獲得 EXPを取得
    @exp_gained = battle_exp
    # EXP 獲得を取り消す
    for i in 0...$game_party.actors.size
      actor = $game_party.actors&#91;i&#93;
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp -= @exp_gained
        if actor.level < last_level
          @status_window.level_up_flags&#91;i&#93; = false
        end
      end
    end
    # 設定
    @exp_gain_actor    = -1
    # リザルトウィンドウを表示
    @result_window.visible = true
  end
  #--------------------------------------------------------------------------
  # ● 獲得する戦闘経験値の取得
  #--------------------------------------------------------------------------
  unless defined? battle_exp
  def battle_exp
    bexp = 0
    # ループ
    for enemy in $game_troop.enemies
      # エネミーが隠れ状態でない場合
      unless enemy.hidden
        # 獲得を追加
        bexp += enemy.exp
      end
    end
    return bexp
  end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (アフターバトルフェーズ)
  #--------------------------------------------------------------------------
  alias xrxs_bp10_update_phase5 update_phase5
  def update_phase5
    @level_up_phase_done = false if @level_up_phase_done != true
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # ウィンドウを閉じて次のアクターへ
      @levelup_window.visible = false if @levelup_window != nil
      @status_window.level_up_flags&#91;@exp_gain_actor&#93; = false
      @level_up_phase_done = phase5_next_levelup
    end
    if @level_up_phase_done
      if @phase5_wait_count < 2
        # リザルトウィンドウをvisible=trueでも不可視に
        @result_window.opacity = 0
        @result_window.back_opacity = 0
        @result_window.contents_opacity = 0
      end
      # 呼び戻す
      xrxs_bp10_update_phase5
      # レベルアップしている場合は強制バトル終了
      battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 次のアクターのレベルアップ表示へ
  #--------------------------------------------------------------------------
  def phase5_next_levelup
    begin
      # 次のアクターへ
      @exp_gain_actor += 1
      # 最後のアクターの場合
      if @exp_gain_actor >= $game_party.actors.size
        # アフターバトルフェーズ開始
        return true
      end
      actor = $game_party.actors&#91;@exp_gain_actor&#93;
      if actor.cant_get_exp? == false
        # 現在の能力値を保持
        last_level = actor.level
        last_maxhp = actor.maxhp
        last_maxsp = actor.maxsp
        last_str = actor.str
        last_dex = actor.dex
        last_agi = actor.agi
        last_int = actor.int
        # 戦闘経験値の再取得
        actor.exp += @exp_gained
        # 判定
        if actor.level > last_level
          # レベルアップした場合
          @status_window.level_up(@exp_gain_actor)
          # リザルトウィンドウを消す
          @result_window.visible = false
          # SEの再生
          if LEVEL_UP_SE != \"\"
            Audio.se_play(LEVEL_UP_SE)
          end
          # MEの再生
          if LEVEL_UP_ME != \"\"
            Audio.me_stop
            Audio.me_play(LEVEL_UP_ME)
          end
          # LEVEL-UPウィンドウの設定
          actors_size = &#91;$game_party.actors.size, 4&#93;.max
          x_shift = 160 + (640 - 160*actors_size)/(actors_size - 1)
          x = x_shift * @exp_gain_actor
          y = 128
          @levelup_window = Window_LevelUpWindow.new(x, y, actor, last_level,
            actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
            actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
          @levelup_window.visible = true
          # ステータスウィンドウをリフレッシュ
          @status_window.refresh
          # スキル習得ウィンドウの設定
          @skilllearning_window = Window_SkillLearning.new(actor.class_id, last_level, actor.level)
          # ウェイトカウントを設定
          @phase5_wait_count = 40
          return false
        end
      end
    end until false
  end
end


[此贴子已经被作者于2005-1-24 20:01:05编辑过]
最口胡的事情就是,自己的帳號只打一半…… 偶素維琪雅,後面那個_jia是Jiang……|||bbb QQ隱身中:29848696
回复 支持 反对

使用道具 举报

122

主题

3385

帖子

8590

积分

⑦老手

积分
8590
发表于 2005-1-24 20:09:31 | 显示全部楼层
又是桜雅在土-_,-
回复 支持 反对

使用道具 举报

carol3 该用户已被删除
发表于 2005-1-24 21:32:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

18

主题

230

帖子

3055

积分

⑥精研

积分
3055
QQ
发表于 2005-1-24 21:53:55 | 显示全部楼层
能不能以附件的形式上传txt格式的代码?-_,-
txt应该没问题吧?
回复 支持 反对

使用道具 举报

carol3 该用户已被删除
发表于 2005-1-25 01:05:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

18

主题

230

帖子

3055

积分

⑥精研

积分
3055
QQ
发表于 2005-1-25 13:52:01 | 显示全部楼层
http://www4.big.or.jp/~fukuyama/
这里进不去了
那个置顶帖大部分我都试了
基本上没几个不出错的
我又不知道论坛在哪里屏蔽了什么
所以我做不了-_-|||
回复 支持 反对

使用道具 举报

2

主题

25

帖子

1563

积分

⑥精研

积分
1563
 楼主| 发表于 2005-1-26 00:00:03 | 显示全部楼层
去廟裡問神啊~
問古苟大神『什麼什麼在哪裡』一下,它會給你答案的。
古苟大神的神廟:http://www.google.com
我找到的那個,用的關鍵字是RGSS LEVEL UP 這三個字。
最口胡的事情就是,自己的帳號只打一半…… 偶素維琪雅,後面那個_jia是Jiang……|||bbb QQ隱身中:29848696
回复 支持 反对

使用道具 举报

carol3 该用户已被删除
发表于 2005-1-26 04:20:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

13

主题

237

帖子

1452

积分

⑥精研

积分
1452
QQ
发表于 2005-1-26 14:14:13 | 显示全部楼层
512的那个站里有这些RGSS啊……
而且试了好几个都是对的:)
我已经很老很老了...老到已经记不清RMXP是什么东西了....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-19 07:39 , Processed in 0.014639 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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