I found this cbs system and it's so simple, runs smoothly and doesn't look all that bad. The thing is, I really like the cool things CCOA added on to her CBS. Here are the scripts.
This is the CBS I'd like to use.
This is the link to CCOA's http://www.rmxp.org/forums/showthread.php?t=3564
The things that I'd like done have nothing to do with the battlers, but rather, with the window.
1)CCOA's has customizable skills. I'd like to be able to split skills into categories like "swordtech" "White magic" "black magic" ect.
2)The way the window system is set up is just much nicer, for example, when selecting attacks, the box stays on the left hand corner, instead of moving across the the bottom when it switches characters.
I don't know how hard this would be, but I hope I've been descriptive enough. Also, if someone could translate the maker of the first script, that would be great, as I would like to credit them.
This is the CBS I'd like to use.
Code:
#==============================================================================
# ++ サイドビューãƒãƒˆãƒ«(æ©è¡Œã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ç‰ˆ) ver. 1.14 ++
#  Script by パラ犬
#  http://rpg.para.s3p.net/
#------------------------------------------------------------------------------
# ãƒãƒˆãƒ«ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«æ©è¡Œã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã‚’表示ã—ã¾ã™ã€‚
#==============================================================================
module SDVA
X_LINE = 500 # 横ä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼è¡¨ç¤ºåº§æ¨™
Y_LINE = 200 # 縦ä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼è¡¨ç¤ºåº§æ¨™
X_SPACE = 15 # 横ä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼åŒå£«ã®é–“éš”
Y_SPACE = 40 # 縦ä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼åŒå£«ã®é–“éš”
X_POSITION = 25 # 隊列[å‰è¡›ãƒ»ä¸è¡›ãƒ»å¾Œè¡›]ã®æ¨ªé–“éš”
Y_POSITION = 0 # 隊列[å‰è¡›ãƒ»ä¸è¡›ãƒ»å¾Œè¡›]ã®ç¸¦é–“éš”
ATTACK_MOVE = true # 攻撃時ã«å‰ã¸è¸ã¿å‡ºã™ã‹( true / false )
SKILL_MOVE = true # スã‚ル使用時ã«å‰ã¸è¸ã¿å‡ºã™ã‹( true / false )
ITEM_MOVE = false # アイテム使用時ã«å‰ã¸è¸ã¿å‡ºã™ã‹( true / false )
MOVE_STEP = 3 # 移動æ©æ•°
MOVE_PIXEL = 13 # 一æ©ã‚ãŸã‚Šã®ãƒ”クセル数
PARTY_POS = 1 # ã‚ャラクターã®å‘ã( 0:下 / 1:å·¦ / 2:å³ / 3:上 )
WINDOWPOS_CHANGE = true # コマンドウインドウをãƒãƒˆãƒ©ãƒ¼ã®æ¨ªã«è¡¨ç¤ºã™ã‚‹ã‹( true / false )
end
#==============================================================================
# â– Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# â— ãƒãƒˆãƒ«ç”»é¢ X 座標ã®å–å¾—
#--------------------------------------------------------------------------
def screen_x
if self.index != nil
# 隊列をå–å¾—
pos = $data_classes[self.class_id].position
x_pos = pos * SDVA::X_POSITION
scr_x = self.index * SDVA::X_SPACE + SDVA::X_LINE + x_pos
# 移動アクションã®ã¨ã
if self.current_action.move_action == true
# 横ã«ç§»å‹•
scr_x += @shift_x
end
return scr_x
else
return 0
end
end
#--------------------------------------------------------------------------
# â— ãƒãƒˆãƒ«ç”»é¢ Y 座標ã®å–å¾—
#--------------------------------------------------------------------------
def screen_y
if self.index != nil
# 隊列をå–å¾—
pos = $data_classes[self.class_id].position
y_pos = pos * SDVA::Y_POSITION
scr_y = self.index * SDVA::Y_SPACE + SDVA::Y_LINE + y_pos
# 移動アクションã®ã¨ã
if self.current_action.move_action == true
# 縦ã«ç§»å‹•
scr_y += @shift_y
end
return scr_y
else
return 0
end
end
#--------------------------------------------------------------------------
# â— ãƒãƒˆãƒ«ç”»é¢ Z 座標ã®å–å¾—
#--------------------------------------------------------------------------
def screen_z
if self.index != nil
return self.index
else
return 0
end
end
end
#==============================================================================
# ■Game_Battler (分割定義 1)
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ◠公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :pattern # æ©è¡Œãƒ‘ターン
attr_reader :trans_x # Xæ–¹å‘ã®ç§»å‹•è·é›¢
attr_reader :moving # 移動ä¸ãƒ•ãƒ©ã‚°
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
#--------------------------------------------------------------------------
alias initialize_sdva initialize
def initialize
initialize_sdva
move_reset
end
#--------------------------------------------------------------------------
# ○ 移動カウント
#--------------------------------------------------------------------------
def move
@moving = 1
if @step < SDVA::MOVE_STEP
# æ©æ•°ã‚’満ãŸã™ã¾ã§ç§»å‹•
@pattern = (@pattern + 1) % 4
@step += 1
move_step
else
# 移動終了
@pattern = 1
@moving = 2
end
end
#--------------------------------------------------------------------------
# â—‹ 移動処ç†
#--------------------------------------------------------------------------
def move_step
# パーティã®å‘ãã«ã‚ˆã£ã¦ç§»å‹•åº§æ¨™ã‚’変ãˆã‚‹
case SDVA::PARTY_POS
when 0
@shift_y = @step * SDVA::MOVE_PIXEL
when 1
@shift_x = -(@step * SDVA::MOVE_PIXEL)
when 2
@shift_x = @step * SDVA::MOVE_PIXEL
when 3
@shift_y = -(@step * SDVA::MOVE_PIXEL)
end
end
#--------------------------------------------------------------------------
# â—‹ 移動ã®ãƒªã‚»ãƒƒãƒˆ
#--------------------------------------------------------------------------
def move_reset
@moving = 0
@pattern = 0
@step = 0
@shift_x = 0
@shift_y = 0
end
end
#==============================================================================
# â– Game_BattleAction
#==============================================================================
class Game_BattleAction
#--------------------------------------------------------------------------
# ◠公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :move_action # 移動ã™ã‚‹ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‹
#--------------------------------------------------------------------------
# ◠クリア
#--------------------------------------------------------------------------
alias clear_sdva clear
def clear
clear_sdva
@move_action = false
end
end
#==============================================================================
# â– Sprite_Battler
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
alias update_sdva update
def update
# ãƒãƒˆãƒ©ãƒ¼ãŒã‚¢ã‚¯ã‚¿ãƒ¼ã«å«ã¾ã‚Œã‚‹ã¨ã
if @battler.is_a?(Game_Actor)
# ファイルåã‹è‰²ç›¸ãŒç¾åœ¨ã®ã‚‚ã®ã¨ç•°ãªã‚‹å ´åˆ
# 行動ä¸ã®å ´åˆ
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue or
@battler.current_action.basic == 0 or
@battler.current_action.kind != 3
# ビットマップをå–å¾—ã€è¨å®š
@character_name = @battler.character_name
@character_hue = @battler.character_hue
# æ©è¡Œã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã‚’æç”»
self.bitmap = RPG::Cache.character(@character_name, @character_hue)
cw = self.bitmap.width / 4
ch = self.bitmap.height / 4
@width = cw
@height = ch
if @battler.current_action.move_action == true
# æ©ã‹ã›ã‚‹
@battler.move
else
@battler.move_reset
end
# 転é€å…ƒã®çŸ©å½¢ã‚’è¨å®š
sx = @battler.pattern * cw
sy = SDVA::PARTY_POS * ch
self.src_rect.set(sx, sy, cw, ch)
self.ox = @width / 2
self.oy = @height
# éš ã‚ŒçŠ¶æ…‹ãªã‚‰ä¸é€æ˜Žåº¦ã‚’ 0 ã«ã™ã‚‹
if @battler.hidden
self.opacity = 0
end
end
end
update_sdva
end
end
#==============================================================================
# â– Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ◠アクターコマンドウィンドウã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—
#--------------------------------------------------------------------------
alias phase3_setup_command_window_sdva phase3_setup_command_window
def phase3_setup_command_window
phase3_setup_command_window_sdva
if SDVA::WINDOWPOS_CHANGE
# アクターコマンドウィンドウã®ä½ç½®ã‚’è¨å®š
case SDVA::PARTY_POS
when 0
x_pos = @active_battler.screen_x - (@actor_command_window.width/2)
y_pos = @active_battler.screen_y
when 1
x_pos = @active_battler.screen_x - @actor_command_window.width - 16
y_pos = @active_battler.screen_y - @actor_command_window.height
when 2
x_pos = @active_battler.screen_x + 16
y_pos = @active_battler.screen_y - @actor_command_window.height
when 3
x_pos = @active_battler.screen_x - (@actor_command_window.width/2)
y_pos = @active_battler.screen_y - @actor_command_window.height - 48
end
@actor_command_window.x = x_pos >= 0 ? x_pos : 0
@actor_command_window.x = x_pos+@actor_command_window.width <= 640 ? x_pos : 640-@actor_command_window.width
@actor_command_window.y = y_pos >= 0 ? y_pos : 0
@actor_command_window.y = y_pos+@actor_command_window.height <= 480 ? y_pos : 480-@actor_command_window.height
# ステータスウインドウã«éš ã‚Œãªã„よã†ã«
@actor_command_window.z = 9999
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (メインフェーズ ステップ 3 : 行動å´ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³)
#--------------------------------------------------------------------------
alias update_phase4_step3_sdva update_phase4_step3
def update_phase4_step3
if SDVA::ATTACK_MOVE
if @active_battler.current_action.basic == 0
@active_battler.current_action.move_action = true
end
end
if SDVA::SKILL_MOVE
if @active_battler.current_action.kind == 1
@active_battler.current_action.move_action = true
end
end
if SDVA::ITEM_MOVE
if @active_battler.current_action.kind == 2
@active_battler.current_action.move_action = true
end
end
# ãƒãƒˆãƒ©ãƒ¼ãŒã‚¢ã‚¯ã‚¿ãƒ¼ã«å«ã¾ã‚Œã€ç§»å‹•ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ä¸
if @active_battler.is_a?(Game_Actor) and
@active_battler.current_action.move_action
# 移動終了時
if @active_battler.moving == 2
update_phase4_step3_sdva
end
elsif @active_battler.moving == 0
update_phase4_step3_sdva
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
#--------------------------------------------------------------------------
alias update_phase4_step6_sdva update_phase4_step6
def update_phase4_step6
@active_battler.current_action.move_action = false
@active_battler.move_reset
update_phase4_step6_sdva
end
end
#==============================================================================
# â– Spriteset_Battle
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
#--------------------------------------------------------------------------
alias initialize_sdva initialize
def initialize
initialize_sdva
@viewport2.z = 1
end
end
#==============================================================================
# â– Arrow_Actor
#==============================================================================
class Arrow_Actor < Arrow_Base
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
alias update_sdva update
def update
update_sdva
# カーソル下
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@index += 1
@index %= $game_party.actors.size
end
# カーソル上
if Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
@index += $game_party.actors.size - 1
@index %= $game_party.actors.size
end
end
end
#==============================================================================
# â– Arrow_Enemy
#==============================================================================
class Arrow_Enemy < Arrow_Base
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
alias update_sdva update
def update
update_sdva
# カーソル下
if Input.repeat?(Input::DOWN)
$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
end
# カーソル上
if Input.repeat?(Input::UP)
$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
end
end
end
This is the link to CCOA's http://www.rmxp.org/forums/showthread.php?t=3564
The things that I'd like done have nothing to do with the battlers, but rather, with the window.
1)CCOA's has customizable skills. I'd like to be able to split skills into categories like "swordtech" "White magic" "black magic" ect.
2)The way the window system is set up is just much nicer, for example, when selecting attacks, the box stays on the left hand corner, instead of moving across the the bottom when it switches characters.
I don't know how hard this would be, but I hope I've been descriptive enough. Also, if someone could translate the maker of the first script, that would be great, as I would like to credit them.