Project1

标题: CP战斗系统中我方和敌方图标盖在窗口上了…… [打印本页]

作者: sjkd34    时间: 2009-1-10 22:09
标题: CP战斗系统中我方和敌方图标盖在窗口上了……
就是CP槽上的图标,会盖在在选择敌人时(最顶端出现敌人状态)的状态条上,怎样把它弄下去? [LINE]1,#dddddd[/LINE]此贴于 2009-1-11 22:51:02 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2009-1-11 22:57:30 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: darkten    时间: 2009-1-11 00:40
你是用这个脚本吗?
“CP制战斗 改进版(显示全局CP)”
http://rpg.blue/web/htm/news474.htm

如果是的话请往下看,不是的话就无视吧...



忘了如何改...以前解决问题的帖子又找不回来...
直接贴出脚本算了...

覆盖原有的[AX追加]就行了...
  1. #=begin
  2. # ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
  3. # by 桜雅 在土

  4. #==============================================================================
  5. # □ カスタマイズポイント
  6. #==============================================================================
  7. class XRXS65A
  8.   #--------------------------------------------------------------------------
  9.   # 「アイコン設定」
  10.   #--------------------------------------------------------------------------
  11.   DEFAULT = "046-Skill03" # ディフォルトアイコン
  12.   # アイコンハッシュ  記述方式 : アクターID=>アイコン名
  13.   ICONS = {
  14.     1=>"",
  15.     2=>"",
  16.     3=>"",
  17.     4=>""
  18.   }
  19.   # アイコンハッシュE  記述方式 : エネミーID=>アイコン名
  20.   ICONE = {
  21.     1=>"",
  22.     2=>"",
  23.     3=>"",
  24.     5=>"",
  25.     6=>"",
  26.     7=>"",
  27.     8=>"",
  28.     9=>"",
  29.     10=>"",
  30.   }
  31.   #--------------------------------------------------------------------------
  32.   # 「シンセ・ゲージ」
  33.   #--------------------------------------------------------------------------
  34.   SKIN = "CP_Bar"  # スキン
  35.   X    =  70         # X 座標
  36.   Y    =  63         # Y 座標
  37. end
  38. #==============================================================================
  39. # --- CP メーターをまとめて管理するクラス、表示関係はすべてココ --- [再定義]
  40. #==============================================================================
  41. class CP_Meters
  42.   #--------------------------------------------------------------------------
  43.   # ○ オブジェクト初期化
  44.   #--------------------------------------------------------------------------
  45.   def initialize
  46.     # シンセゲージの生成
  47.     @base = Sprite.new
  48.     @base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
  49.     @base.x = XRXS65A::X
  50.     @base.y = XRXS65A::Y
  51.     @base.z = XRXS65A::X
  52.     @width  = @base.bitmap.width
  53.     @height = @base.bitmap.height
  54.     @icon_set = []
  55.     refresh
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ○ リフレッシュ
  59.   #--------------------------------------------------------------------------
  60.   def refresh
  61.     # 生成すべきバトラーの取得
  62.     need_initializes = []
  63.     for battler in $game_party.actors + $game_troop.enemies
  64.       exist = false
  65. #      need_initializes.push(battler) unless exist
  66.       for set in @icon_set
  67.         exist |= (set[1] == battler)
  68.       end
  69.       need_initializes.push(battler) unless exist
  70.     end
  71.     for battler in need_initializes
  72.       iconname = nil
  73.       if battler.is_a?(Game_Actor)
  74.         iconname = XRXS65A::ICONS[battler.id]
  75.       else
  76.         iconname = XRXS65A::ICONE[battler.id]
  77.       end
  78.       if iconname == nil
  79.         iconname = XRXS65A::DEFAULT
  80.       end
  81.       sprite = Sprite.new
  82.       sprite.bitmap = RPG::Cache.icon(iconname).dup
  83.       sprite.y = XRXS65A::Y + @height / 2 - 24
  84.       @icon_set.push([sprite, battler])
  85.     end
  86.     # 更新
  87.     for set in @icon_set
  88.       set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp - 12
  89.       set[0].z = XRXS65A::X#set[0].x
  90. #      set[0].visible = false if set[1].dead? or !set[1].exist?
  91. if set[1].dead? or !set[1].exist?
  92. set[0].visible = false
  93. else
  94. set[0].visible = true
  95. end

  96.   end
  97.     end
  98.   #--------------------------------------------------------------------------
  99.   # ○ 可視状態
  100.   #--------------------------------------------------------------------------
  101.   def visible=(b)
  102.     @base.visible = b
  103.     @icon_set.each{|set| set[0].visible = b }
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ○ 解放
  107.   #--------------------------------------------------------------------------
  108.   def dispose
  109.     @base.dispose
  110.     @icon_set.each{|set| set[0].dispose }
  111.   end
  112. end

  113. #=end
复制代码
解决了的问题:
1. 图标的优先度高过一般的窗口...
2. 死亡角色复活后图标不重现的问题... [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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