| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 2 | 
 
| 积分 | 1 | 
 
| 经验 | 175482 | 
 
| 最后登录 | 2014-1-10 | 
 
| 在线时间 | 27 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 50 
 
        - 在线时间
 - 27 小时
 
        - 注册时间
 - 2008-2-13
 
        - 帖子
 - 1740
 
 
 
 | 
	
- # ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
 
 - # by 桜雅 在土
 
  
- #==============================================================================
 
 - # □ カスタマイズポイント
 
 - #==============================================================================
 
 - class XRXS65A
 
 -   #--------------------------------------------------------------------------
 
 -   # 「シンセ・ゲージ」
 
 -   #--------------------------------------------------------------------------
 
 -   SKIN = "123"  # スキン
 
 -   X    =  2         # X 座標
 
 -   Y    =  0         # Y 座標
 
 -   CHA = true   #是否使用行走图来代替战斗图,建议使用默认RTP的人使用,否则需要给每个怪物配套与战斗图同名的行走图,色调将根据战斗图色调自动变更
 
 -   N=1#隔几帧才刷新,这个数越大可以加快效率,但是图标的移动会看起来“一跳一跳”,不推荐大于10。
 
 - end
 
 - #==============================================================================
 
 - # --- CP メーターをまとめて管理するクラス、表示関係はすべてココ --- [再定義]
 
 - #==============================================================================
 
 - class CP_Meters
 
 -   #--------------------------------------------------------------------------
 
 -   # ○ オブジェクト初期化
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize
 
 -     # シンセゲージの生成
 
 -     @kk = Sprite.new
 
 -     @kk.bitmap = RPG::Cache.windowskin("456").dup
 
 -     @kk.x = 596
 
 -     @kk.y = 0
 
 -     @kk.z = 17
 
  
-     @base = Sprite.new
 
 -     @base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
 
 -     @base.x = XRXS65A::X
 
 -     @base.y = XRXS65A::Y+20
 
 -     @base.z = 16
 
 -     @width  = @base.bitmap.width
 
 -     @height = @base.bitmap.height
 
 -     @icon_set = []
 
 -     refresh
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ○ リフレッシュ
 
 -   #--------------------------------------------------------------------------
 
 -   def refresh(enemy=nil,force=false)
 
 -     if Graphics.frame_count % XRXS65A::N  == 0 or force==true
 
 -     # 生成すべきバトラーの取得
 
 -     need_initializes = []
 
 -     for battler in $game_party.actors + $game_troop.enemies
 
 -       exist = false
 
 -       for set in @icon_set
 
 -         exist |= (set[1] == battler)
 
 -       end
 
 -       need_initializes.push(battler) unless exist
 
 -     end
 
 -     for battler in need_initializes
 
 -       iconname = nil
 
 -       if battler.is_a?(Game_Actor)
 
 -         en = $data_actors[battler.id]
 
 -       else
 
 -         en = $data_enemies[battler.id]
 
 -       end
 
 -       sprite = Sprite.new
 
 -       
 
 -       if XRXS65A::CHA==true
 
 -       bitmap = RPG::Cache.character(en.battler_name, en.battler_hue).dup
 
 -       cw=bitmap.width/4
 
 -       ch=bitmap.height/4
 
 -       src_rect = Rect.new(0, 0, cw, ch)
 
 -       sprite.y = 32+XRXS65A::Y
 
 -       sprite.z = 17
 
 -       sprite.bitmap = Bitmap.new(cw, ch) 
 
 -       sprite.bitmap.blt(0, 0, bitmap, src_rect)
 
 -       sprite.oy=ch/2
 
 -       sprite.ox=cw/2-25
 
 -       else  
 
 -       sprite.bitmap = RPG::Cache.battler(en.battler_name, en.battler_hue).dup
 
 -       sprite.y = 0+XRXS65A::Y 
 
 -       sprite.z = 17
 
 -       sprite.zoom_x = 64.0/sprite.bitmap.height
 
 -       sprite.zoom_y = 64.0/sprite.bitmap.height 
 
 -       end
 
  
-       
 
 -      # item=[sprite,name]
 
 -       
 
 -       @icon_set.push([sprite, battler])
 
 -     end
 
 -     # 更新
 
 -     for set in @icon_set
 
 -     set[0].color = Color.new(0,0,0,0)  
 
 -     set[0].visible = true if set[0].visible ==false  
 
 -     if set[1].rtp>0
 
 -       set[0].color = Color.new(0,255,255,128)
 
 -       set[0].x = XRXS65A::X + @width * [[set[1].rt,0].max,set[1].rtp].min / set[1].rtp - 12
 
 -       set[0].visible = false if set[1].dead? or !set[1].exist?
 
 -     elsif set[1].guarding?
 
 -       set[0].color = Color.new(255,255,0,128)
 
 -       set[0].x = XRXS65A::X + @width * [[set[1].atp,0].max,100].min / 100 - 12
 
 -       set[0].visible = false if set[1].dead? or !set[1].exist?
 
 -     else 
 
 -       set[0].x = XRXS65A::X + @width * [[set[1].atp,0].max,100].min  / 100 - 12
 
 -       set[0].visible = false if set[1].dead? or !set[1].exist?
 
 -     end
 
 -     if set[1].atp>=100 and set[1].rtp==0
 
 -       set[0].color = Color.new(255,255,255,128)
 
 -     elsif set[1]==enemy 
 
 -       set[0].color = Color.new(255,0,0,128)
 
 -     end
 
 -     end
 
 -     end
 
  
-   end
 
 -   #----------敌人变身时的处理
 
 -   def change(enemy)
 
 -   for set in @icon_set
 
 -      if  set[1] == enemy
 
 -        if enemy.is_a?(Game_Actor)
 
 -        en = $data_actors[enemy.id]
 
 -        else
 
 -        en = $data_enemies[enemy.id]
 
 -      end
 
 -        if XRXS65A::CHA==true
 
 -         bitmap = RPG::Cache.character(en.battler_name, en.battler_hue).dup
 
 -         cw=bitmap.width/4
 
 -         ch=bitmap.height/4
 
 -         src_rect = Rect.new(0, 0, cw, ch)
 
 -         set[0].bitmap.dispose
 
 -         set[0].bitmap = Bitmap.new(cw, ch) 
 
 -         set[0].bitmap.blt(0, 0, bitmap, src_rect)
 
 -         set[0].oy=ch/2
 
 -         set[0].ox=cw/2-25
 
 -         set[0].y = 32+XRXS65A::Y
 
 -         set[0].z = 17  
 
 -        else  
 
 -        set[0].bitmap = RPG::Cache.battler(en.battler_name, en.battler_hue).dup
 
 -        set[0].y = 0+XRXS65A::Y
 
 -        set[0].z = 17
 
 -        set[0].zoom_x = 64.0/set[0].bitmap.height
 
 -        set[0].zoom_y = 64.0/set[0].bitmap.height 
 
 -        end
 
 -      end  
 
 -    end
 
 -  end
 
 -   #--------------------------------------------------------------------------
 
 -   # ○ 可視状態
 
 -   #--------------------------------------------------------------------------
 
 -   def visible=(b)
 
 -     @base.visible = b
 
 -     @icon_set.each{|set| set[0].visible = b }
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ○ 解放
 
 -   #--------------------------------------------------------------------------
 
 -   def dispose
 
 -     @base.dispose
 
 -     @kk.dispose
 
 -     @icon_set.each{|set| set[0].dispose }
 
 -   end
 
 - end
 
  
 
- #==============================================================================
 
 - #其它的重定义部分
 
 - #==============================================================================
 
 - #战斗中敌人变身追加change过程
 
 - class Interpreter
 
 -  def command_336
 
 -     # 获取敌人
 
 -     enemy = $game_troop.enemies[@parameters[0]]
 
 -     # 变身处理
 
 -     if enemy != nil
 
 -       enemy.transform(@parameters[1])
 
 -     end
 
 -     $scene.cp_meters.change(enemy)#新增,调用change #zzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -     # 继续
 
 -     return true
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - #RTAB追加变数,重定义
 
 - #==============================================================================
 
 - class Scene_Battle
 
 -     attr_accessor :cp_meters#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -  #--------------------------------------------------------------------------
 
 -  # ○ 重新定义main过程,追加CP条的生成,包括“RTAB连击数-计算部分”里对此部分的追加定义,如果脱离“RTAB连击数-计算部分”,请删除标记了"#$$$$$$$$$$"的三个语句
 
 -  #--------------------------------------------------------------------------
 
 - #--------------------------------------------------------------------------
 
 -   # ● メイン処理
 
 -   #--------------------------------------------------------------------------
 
 -   def main
 
 -     # 戦闘用の各種一時データを初期化
 
 -     Graphics.frame_rate = 60 #特别说明,这行就是RTAB战斗时加速的原因
 
 -     $game_temp.in_battle = true
 
 -     $game_temp.battle_turn = 0
 
 -     $game_temp.battle_event_flags.clear
 
 -     $game_temp.battle_abort = false
 
 -     $game_temp.battle_main_phase = false
 
 -     $game_temp.battleback_name = $game_map.battleback_name
 
 -     $game_temp.forcing_battler = nil
 
 -     # バトルイベント用インタプリタを初期化
 
 -     $game_system.battle_interpreter.setup(nil, 0)
 
 -     # トループを準備
 
 -     @troop_id = $game_temp.battle_troop_id
 
 -     $game_troop.setup(@troop_id)
 
 -     atb_setup
 
 -     # アクターコマンドウィンドウを作成
 
 - #==============================================================================
 
 - #RTAB观光游第三站,战斗菜单增加逃跑选项
 
 - #==============================================================================    
 
 -     s1 = $data_system.words.attack
 
 -     s2 = $data_system.words.skill
 
 -     s3 = $data_system.words.guard
 
 -     s4 = $data_system.words.item
 
 -     s5 = "逃跑"
 
 -     @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4,s5])    
 
 - #   @actor_command_window.y = 160
 
 -     @actor_command_window.y = 128
 
 -     @actor_command_window.back_opacity = 160
 
 -     @actor_command_window.active = false
 
 -     @actor_command_window.visible = false
 
 - #==============================================================================    
 
 -     # その他のウィンドウを作成
 
 - #------------------------------------------------------------------------------
 
 - #RTAB观光游第一站,去除“战斗/逃跑”选项部分    
 
 - #    @party_command_window = Window_PartyCommand.new
 
 - #------------------------------------------------------------------------------    
 
 -     @help_window = Window_Help.new
 
 -     @help_window.back_opacity = 160
 
 -     @help_window.visible = false
 
 -     @status_window = Window_BattleStatus.new
 
 -     @message_window = Window_Message.new
 
 -     @cp_meters = CP_Meters.new#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -     @combohit_window = Window_ComboHit.new#$$$$$$$$$$$$$$$$$$$$$$$$$
 
 -     # スプライトセットを作成
 
 -     @spriteset = Spriteset_Battle.new
 
 -     # ウェイトカウントを初期化
 
 -     @wait_count = 0
 
 -     # トランジション実行
 
 -     if $data_system.battle_transition == ""
 
 -       Graphics.transition(20)
 
 -     else
 
 -       Graphics.transition(40, "Graphics/Transitions/" +
 
 -         $data_system.battle_transition)
 
 -     end
 
 -     # プレバトルフェーズ開始
 
 -     start_phase1
 
 -     # メインループ
 
 -     loop do
 
 -       # ゲーム画面を更新
 
 -       Graphics.update
 
 -       # 入力情報を更新
 
 -       Input.update
 
 -       # フレーム更新
 
 -       update
 
 -       # 画面が切り替わったらループを中断
 
 -       if $scene != self
 
 -         break
 
 -       end
 
 -     end
 
 -     # マップをリフレッシュ
 
 -     $game_map.refresh
 
 -     # トランジション準備
 
 -     Graphics.freeze
 
 -     # ウィンドウを解放
 
 -     @actor_command_window.dispose
 
 -     @cp_meters.dispose#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -     # ウィンドウを解放
 
 -     @combohit_window.dispose#$$$$$$$$$$$$$$$$$$$$$$$$$
 
 -     # コンボクリア
 
 -     $game_party.actors.each {|actor| actor.combohit_clear}#$$$$$$$$$$$$$$$$$$$$$$$$$
 
 - #------------------------------------------------------------------------------
 
 - #RTAB观光游第一站,去除“战斗/逃跑”选项部分    
 
 - #    @party_command_window.dispose
 
 - #------------------------------------------------------------------------------    
 
 -     @help_window.dispose
 
 -     @status_window.dispose
 
 -     @message_window.dispose
 
 -     if @skill_window != nil
 
 -       @skill_window.dispose
 
 -     end
 
 -     if @item_window != nil
 
 -       @item_window.dispose
 
 -     end
 
 -     if @result_window != nil
 
 -       @result_window.dispose
 
 -     end
 
 -     # スプライトセットを解放
 
 -     @spriteset.dispose
 
 -     # タイトル画面に切り替え中の場合
 
 -     if $scene.is_a?(Scene_Title)
 
 -       # 画面をフェードアウト
 
 -       Graphics.transition
 
 -       Graphics.freeze
 
 -     end
 
 -     # 戦闘テストからゲームオーバー画面以外に切り替え中の場合
 
 -     if $BTEST and not $scene.is_a?(Scene_Gameover)
 
 -       $scene = nil
 
 -     end
 
 -   end
 
 -   # 
 
 -   #==============================================================================
 
 -   #选择敌人时的重定义,这是为了实现选择敌人时的变色效果,由于这是针对“RTAB战斗特效” 重定义,而请不要脱离“RTAB战斗特效” 
 
 -   #==============================================================================
 
 - #--------------------------------------------------------------------------
 
 - # ● 开始选择敌人#(武器范围定义必须)(1.03修正显示BUG)
 
 - #--------------------------------------------------------------------------
 
 -   def start_enemy_select   
 
 -     
 
 -     for i in $game_troop.enemies
 
 -       break if i.exist?
 
 -     end#得到1位置的敌人
 
 -     $scene.cp_meters.refresh(i,true) #zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -     @active_actor.set_xrxs19_special_scope(@active_actor.equip_element_set) if @skill_window == nil
 
 -     @active_actor.set_xrxs19_special_scope(@active_actor.skill_element_set(@skill)) if @skill_window != nil
 
 -  if @active_actor.current_action.scope_force == 3
 
 -    # 生成敌人箭头
 
 -    @actor_arrow = Arrow_Actor.new(@spriteset.viewport2)
 
 -    # 关联帮助窗口
 
 -     @actor_arrow.help_window = @help_window
 
 -   else
 
 -     # 生成敌人箭头
 
 -      @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
 
 -      # 关联帮助窗口
 
 -     @enemy_arrow.help_window = @help_window
 
 -     end
 
 -     # 无效化角色指令窗口
 
 -     @actor_command_window.active = false
 
 -     @actor_command_window.visible = false
 
 -   end
 
 - #--------------------------------------------------------------------------
 
 - # ● 结束选择敌人#武器范围定义必须)
 
 - #--------------------------------------------------------------------------
 
 -   def end_enemy_select
 
 -     $scene.cp_meters.refresh(nil,true) #zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -     # 释放敌人箭头
 
 -     @enemy_arrow.dispose if @enemy_arrow != nil
 
 -     @actor_arrow.dispose if @actor_arrow != nil
 
 -     @enemy_arrow = nil
 
 -     @actor_arrow = nil
 
 -     # 指令为 [战斗] 的情况下
 
 -     if @actor_command_window.index == 0
 
 -       # 有效化角色指令窗口
 
 -       @actor_command_window.active = true
 
 -       @actor_command_window.visible = true
 
 -       # 隐藏帮助窗口
 
 -       @help_window.visible = false
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - #修改RTAB默认的刷新方法
 
 - #==============================================================================
 
 - class Window_BattleStatus < Window_Base
 
 -   def at_refresh(number = 0)
 
 -   $scene.cp_meters.refresh
 
 - end
 
 - end
 
 - #==============================================================================
 
 - #清除RTAB的描绘AT条过程
 
 - #==============================================================================
 
 - class Window_Base < Window
 
 -   def draw_actor_atg(actor, x, y, width = 144)
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ■ Arrow_Enemy
 
 - #------------------------------------------------------------------------------
 
 - # 重新定义的选择敌人箭头,也是为了实现择敌人时的变色效果
 
 - #==============================================================================
 
  
- class Arrow_Enemy < Arrow_Base
 
 -   #--------------------------------------------------------------------------
 
 -   # ● フレーム更新
 
 -   #--------------------------------------------------------------------------
 
 -   def update
 
  
-    # $scene.cp_meters.refresh(enemy) 
 
  
 
-     super
 
 -     # 存在しないエネミーを指していたら飛ばす
 
 -     $game_troop.enemies.size.times do
 
 -       break if self.enemy.exist?
 
 -       @index += 1
 
 -       @index %= $game_troop.enemies.size
 
 -     end
 
 -     # カーソル右
 
 -     if Input.repeat?(Input::RIGHT)
 
 -       $game_system.se_play($data_system.cursor_se)
 
 -       $game_troop.enemies.size.times do
 
 -         @index += 1
 
 -         @index %= $game_troop.enemies.size
 
 -         break if self.enemy.exist?
 
 -       end
 
 -       $scene.camera = "select"
 
 -       zoom = 1 / self.enemy.zoom
 
 -       $scene.spriteset.screen_target(self.enemy.attack_x(zoom) * 0.75,
 
 -                                       self.enemy.attack_y(zoom) * 0.75, zoom)
 
 -       $scene.cp_meters.refresh(enemy,true)   #zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                               
 
 -     end
 
 -     # カーソル左
 
 -     if Input.repeat?(Input::LEFT)
 
 -       $game_system.se_play($data_system.cursor_se)
 
 -       $game_troop.enemies.size.times do
 
 -         @index += $game_troop.enemies.size - 1
 
 -         @index %= $game_troop.enemies.size
 
 -         break if self.enemy.exist?
 
 -       end
 
 -       $scene.camera = "select"
 
 -       zoom = 1 / self.enemy.zoom
 
 -       $scene.spriteset.screen_target(self.enemy.attack_x(zoom) * 0.75,
 
 -                                       self.enemy.attack_y(zoom) * 0.75, zoom)
 
 -                                       
 
 -                                      
 
 -       $scene.cp_meters.refresh(enemy,true)   #zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
 -     end
 
 -     # スプライトの座標を設定
 
 -     if self.enemy != nil
 
 -       self.x = self.enemy.screen_x
 
 -       self.y = self.enemy.screen_y
 
 -     end
 
 -   end
 
 - end
 
  复制代码 
 
 
 
 
我2楼给的连接已经很全面了 |   
 
 
 
 |