Connexion
Meilleurs posteurs
Yosura (252) | ||||
L'homme sans visage (225) | ||||
The Best of Maker (196) | ||||
okaya (103) | ||||
kilari (26) | ||||
apocalypse (8) | ||||
Shaymin (6) | ||||
EM!R'Ald (4) | ||||
yojoqc (3) | ||||
fandbz13 (3) |
Horloge Socratienne
Nombre de Visiteurs
Derniers sujets
[Partenaire] Super RPG
Sam 24 Jan 2009 - 0:38 par L\'homme sans visage
Voici le site de nôtre ami The Best of Maker.
Il parle de RPG maker (vous l'aurez sûrement devinez ) :
Super RPG
Il parle de RPG maker (vous l'aurez sûrement devinez ) :
Super RPG
Commentaires: 0
Héros de dos en combat
2 participants
RPG Socrate :: Général :: Scripts :: Combat
Page 1 sur 1
Héros de dos en combat
votre ambassadeur favorit a encore trouvé un script pour Xp
Voici le script, à placer au dessus de Main et a appeler Combat_Dos :
Portion de code:
#==============================================================================
# ++ サイドビューバトル(歩行グラフィック版) ver. 1.14 ++
# Script by パラ犬
# http://para.j-mx.com/
#------------------------------------------------------------------------------
# バトルフィールドに歩行グラフィックを表示します。
#==============================================================================
module SDVA
X_LINE = 140 # 横位置のバトラー表示座標
Y_LINE = 300 # 縦位置のバトラー表示座標
X_SPACE = 120 # 横位置のバトラー同士の間隔
Y_SPACE = 0 # 縦位置のバトラー同士の間隔
X_POSITION = 0 # 隊列[前衛・中衛・後衛]の横間隔
Y_POSITION = 10 # 隊列[前衛・中衛・後衛]の縦間隔
ATTACK_MOVE = true # 攻撃時に前へ踏み出すか( true / false )
SKILL_MOVE = true # スキル使用時に前へ踏み出すか( true / false )
ITEM_MOVE = false # アイテム使用時に前へ踏み出すか( true / false )
MOVE_STEP = 1 # 移動歩数
MOVE_PIXEL = 10 # 一歩あたりのピクセル数
PARTY_POS = 3 # キャラクターの向き( 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
Voici le script, à placer au dessus de Main et a appeler Combat_Dos :
Portion de code:
#==============================================================================
# ++ サイドビューバトル(歩行グラフィック版) ver. 1.14 ++
# Script by パラ犬
# http://para.j-mx.com/
#------------------------------------------------------------------------------
# バトルフィールドに歩行グラフィックを表示します。
#==============================================================================
module SDVA
X_LINE = 140 # 横位置のバトラー表示座標
Y_LINE = 300 # 縦位置のバトラー表示座標
X_SPACE = 120 # 横位置のバトラー同士の間隔
Y_SPACE = 0 # 縦位置のバトラー同士の間隔
X_POSITION = 0 # 隊列[前衛・中衛・後衛]の横間隔
Y_POSITION = 10 # 隊列[前衛・中衛・後衛]の縦間隔
ATTACK_MOVE = true # 攻撃時に前へ踏み出すか( true / false )
SKILL_MOVE = true # スキル使用時に前へ踏み出すか( true / false )
ITEM_MOVE = false # アイテム使用時に前へ踏み出すか( true / false )
MOVE_STEP = 1 # 移動歩数
MOVE_PIXEL = 10 # 一歩あたりのピクセル数
PARTY_POS = 3 # キャラクターの向き( 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
Yosura- Ambassadeur
-
Nombre de messages : 252
Age : 28
Localisation : dans le chateaux des tenebre de mon cousin Soron
Avertissement :
Points : 12968
Date d'inscription : 19/12/2008
Re: Héros de dos en combat
Salut,
Tu pourrais préciser :
- Mettre un screen (capture d'écran)
- L'auteur
- Mettre le script entre des balises codes :
- Il y a plein d'autres chose, j'ai mis un post-it pour la présentation des script,
la tu lut ?
Je suis méchant je sais mais il faut que les autres membres débutant (ah ! ah ! ah !)
comprennent.
La phrase qui tue
S'il te plait, fait ça pour tous tes script au lieu de me faire du copier/coller
Salut
Tu pourrais préciser :
- Mettre un screen (capture d'écran)
- L'auteur
- Mettre le script entre des balises codes :
- Code:
Comme ceci
- Il y a plein d'autres chose, j'ai mis un post-it pour la présentation des script,
la tu lut ?
Je suis méchant je sais mais il faut que les autres membres débutant (ah ! ah ! ah !)
comprennent.
La phrase qui tue
S'il te plait, fait ça pour tous tes script au lieu de me faire du copier/coller
Salut
RPG Socrate :: Général :: Scripts :: Combat
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Mar 19 Juin 2012 - 19:07 par apocalypse
» parodie des jeux pokemon
Ven 8 Juin 2012 - 18:56 par apocalypse
» Rpg maker xp
Jeu 14 Juil 2011 - 4:56 par kaplio0777
» Présentation de kaplio0777
Jeu 14 Juil 2011 - 4:43 par kaplio0777
» me presenté
Ven 17 Juin 2011 - 17:12 par apocalypse
» créer un jeu de rôle
Ven 17 Juin 2011 - 17:09 par apocalypse
» se presenter
Mer 19 Jan 2011 - 21:54 par apocalypse
» Serment du Juge actuel
Dim 26 Déc 2010 - 15:52 par Yosura
» Le Réseau Social - Parodie de la BA de The Social Network
Dim 26 Déc 2010 - 15:42 par Yosura