| Nouvelle interface de choix dans un combat [resolu] | |
|
|
Auteur | Message |
---|
freyja
Nombre de messages : 19 Date d'inscription : 24/01/2007
| Sujet: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 17:36 | |
| J'aimerait faire une nouvelle interface de combat avec cette image comment je peut faire ?
Dernière édition par le Sam 27 Jan - 18:20, édité 1 fois | |
|
| |
Dark Dan Membre de la Team AMK
Nombre de messages : 76 Age : 33 Date d'inscription : 20/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 18:23 | |
| Hum... Ben sa dépend, si tu veut garder l'image, c'est pas moi qui vis povoir t'aider. Si par contre tu veut juste ces mots la et cette police la tu modifie le script ATB et c'est bon^^ | |
|
| |
freyja
Nombre de messages : 19 Date d'inscription : 24/01/2007
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 18:28 | |
| oui je veut gardé l'image | |
|
| |
Demon_Hunter Graphiste
Nombre de messages : 474 Date d'inscription : 30/05/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 19:03 | |
| je croiqs qui faut s'y connaite un peu en scripting XD | |
|
| |
Roshi Modérateur
Nombre de messages : 215 Age : 42 Localisation : Tourlaville(50) Emploi : précaire Loisirs : beaucoup trop Date d'inscription : 17/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 19:04 | |
| Le seul moyen de changer tout ca c'est de modifier le script,j'peux voir ca,ca m'a pas l'air enorme comme modif. Tu compte utiliser le curseur d'origine ? | |
|
| |
Demon_Hunter Graphiste
Nombre de messages : 474 Date d'inscription : 30/05/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 19:20 | |
| normalemnt le script utilise les ressouce placer dans le gestionnaire, je crois que si on met sa dans le dossier pictures et qu'on rdonne au script d'utliser le fichier sa doit etre bon, c'est sa?? | |
|
| |
Roshi Modérateur
Nombre de messages : 215 Age : 42 Localisation : Tourlaville(50) Emploi : précaire Loisirs : beaucoup trop Date d'inscription : 17/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 19:54 | |
| pour moi le plus simple c'est de faire appel a une bitmap dans le contents du window conserné et de changer son opacité(du window) a 0 afin de cacher le windowskin par defaut,j'ai bidouiller un peu j'y suis presque j'ai juste un petit souci avec le curseur(il apparait dessous l'image). J'attend le feu vert de freyja avant de me lancer a fond dedans.J'ai pas trop envi de me perdre dans des expliquations en Ruby,j'peux fournir le code,mais l'expliquer ca risque d'etre tres long et j'peux m'emmbrouiller severement. | |
|
| |
freyja
Nombre de messages : 19 Date d'inscription : 24/01/2007
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 21:32 | |
| pour le curseur j'ai un script qui m'affiche un doigt a coté de la fenetre a lors ne cherche pas pour ca merci | |
|
| |
Roshi Modérateur
Nombre de messages : 215 Age : 42 Localisation : Tourlaville(50) Emploi : précaire Loisirs : beaucoup trop Date d'inscription : 17/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 23:04 | |
| donc pour afficher ton image comme boite de commande remplace le script Scene_Battle 1 par celui-ci : - Code:
-
class Scene_Battle def main $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) s1 = " " s2 = " " s3 = " " s4 = " " s5 = " " @command_bitmap = Bitmap.new("Graphics/Windowskins/commande2fr") @actor_command_window = Window_Command.new(@command_bitmap.width+32, [s1, s2, s3, s4,s5]) @actor_command_window.y = 124 @actor_command_window.back_opacity = 0 @actor_command_window.opacity = 0 @actor_command_window.contents = @command_bitmap @actor_command_window.active = false @actor_command_window.visible = false @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 @actor_command_window.z = (@status_window.z - 5) @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 @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 #-------------------------------------------------------------------------- # ● 勝敗判定 #-------------------------------------------------------------------------- def judge # 全滅判定が真、またはパーティ人数が 0 人の場合 if $game_party.all_dead? or $game_party.actors.size == 0 # 敗北可能の場合 if $game_temp.battle_can_lose # バトル開始前の BGM に戻す $game_system.bgm_play($game_temp.map_bgm) # バトル終了 battle_end(2) # true を返す return true end # ゲームオーバーフラグをセット $game_temp.gameover = true # true を返す return true end # エネミーが 1 体でも存在すれば false を返す for enemy in $game_troop.enemies if enemy.exist? return false end end # アフターバトルフェーズ開始 (勝利) start_phase5 # true を返す return true end #-------------------------------------------------------------------------- # ● バトル終了 # result : 結果 (0:勝利 1:敗北 2:逃走) #-------------------------------------------------------------------------- def battle_end(result) # 戦闘中フラグをクリア $game_temp.in_battle = false # パーティ全員のアクションをクリア $game_party.clear_actions # バトル用ステートを解除 for actor in $game_party.actors actor.remove_states_battle end # エネミーをクリア $game_troop.enemies.clear # バトル コールバックを呼ぶ if $game_temp.battle_proc != nil $game_temp.battle_proc.call(result) $game_temp.battle_proc = nil end # マップ画面に切り替え $scene = Scene_Map.new end #-------------------------------------------------------------------------- # ● バトルイベントのセットアップ #-------------------------------------------------------------------------- def setup_battle_event # バトルイベント実行中の場合 if $game_system.battle_interpreter.running? return end # バトルイベントの全ページを検索 for index in 0...$data_troops[@troop_id].pages.size # イベントページを取得 page = $data_troops[@troop_id].pages[index] # イベント条件を c で参照可能に c = page.condition # 何も条件が指定されていない場合は次のページへ unless c.turn_valid or c.enemy_valid or c.actor_valid or c.switch_valid next end # 実行済みの場合は次のページへ if $game_temp.battle_event_flags[index] next end # ターン 条件確認 if c.turn_valid n = $game_temp.battle_turn a = c.turn_a b = c.turn_b if (b == 0 and n != a) or (b > 0 and (n < 1 or n < a or n % b != a % b)) next end end # エネミー 条件確認 if c.enemy_valid enemy = $game_troop.enemies[c.enemy_index] if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp next end end # アクター 条件確認 if c.actor_valid actor = $game_actors[c.actor_id] if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp next end end # スイッチ 条件確認 if c.switch_valid if $game_switches[c.switch_id] == false next end end # イベントをセットアップ $game_system.battle_interpreter.setup(page.list, 0) # このページのスパンが [バトル] か [ターン] の場合 if page.span <= 1 # 実行済みフラグをセット $game_temp.battle_event_flags[index] = true end return end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update # バトルイベント実行中の場合 if $game_system.battle_interpreter.running? # インタプリタを更新 $game_system.battle_interpreter.update # アクションを強制されているバトラーが存在しない場合 if $game_temp.forcing_battler == nil # バトルイベントの実行が終わった場合 unless $game_system.battle_interpreter.running? # 戦闘継続の場合、バトルイベントのセットアップを再実行 unless judge setup_battle_event end end # アフターバトルフェーズでなければ if @phase != 5 # ステータスウィンドウをリフレッシュ @status_window.refresh end end end # システム (タイマー)、画面を更新 $game_system.update $game_screen.update # タイマーが 0 になった場合 if $game_system.timer_working and $game_system.timer == 0 # バトル中断 $game_temp.battle_abort = true end # ウィンドウを更新 @help_window.update @party_command_window.update @actor_command_window.update @status_window.update @message_window.update # スプライトセットを更新 @spriteset.update # トランジション処理中の場合 if $game_temp.transition_processing # トランジション処理中フラグをクリア $game_temp.transition_processing = false # トランジション実行 if $game_temp.transition_name == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name) end end # メッセージウィンドウ表示中の場合 if $game_temp.message_window_showing return end # エフェクト表示中の場合 if @spriteset.effect? return end # ゲームオーバーの場合 if $game_temp.gameover # ゲームオーバー画面に切り替え $scene = Scene_Gameover.new return end # タイトル画面に戻す場合 if $game_temp.to_title # タイトル画面に切り替え $scene = Scene_Title.new return end # バトル中断の場合 if $game_temp.battle_abort # バトル開始前の BGM に戻す $game_system.bgm_play($game_temp.map_bgm) # バトル終了 battle_end(1) return end # ウェイト中の場合 if @wait_count > 0 # ウェイトカウントを減らす @wait_count -= 1 return end # アクションを強制されているバトラーが存在せず、 # かつバトルイベントが実行中の場合 if $game_temp.forcing_battler == nil and $game_system.battle_interpreter.running? return end # フェーズによって分岐 case @phase when 1 # プレバトルフェーズ update_phase1 when 2 # パーティコマンドフェーズ update_phase2 when 3 # アクターコマンドフェーズ update_phase3 when 4 # メインフェーズ update_phase4 when 5 # アフターバトルフェーズ update_phase5 end end end
| |
|
| |
Roshi Modérateur
Nombre de messages : 215 Age : 42 Localisation : Tourlaville(50) Emploi : précaire Loisirs : beaucoup trop Date d'inscription : 17/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Mer 24 Jan - 23:14 | |
| Sinon si tu veux que ta commande fuite fonctionne il te faudra remplacer Scene_Battle 3 par ceci : - Code:
-
class Scene_Battle def start_phase3 @phase = 3 @actor_index = -1 @active_battler = nil phase3_next_actor end def phase3_next_actor # ループ begin if @active_battler != nil @active_battler.blink = false end if @actor_index == $game_party.actors.size-1 start_phase4 return end @actor_index += 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true end until @active_battler.inputable? phase3_setup_command_window end def phase3_prior_actor begin if @active_battler != nil @active_battler.blink = false end if @actor_index == 0 start_phase2 return end @actor_index -= 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true end until @active_battler.inputable? phase3_setup_command_window end #-------------------------------------------------------------------------- def phase3_setup_command_window @party_command_window.active = false @party_command_window.visible = false @actor_command_window.active = true @actor_command_window.visible = true @actor_command_window.x = @actor_index * 160 @actor_command_window.index = 0 end #-------------------------------------------------------------------------- def update_phase3 if @enemy_arrow != nil update_phase3_enemy_select elsif @actor_arrow != nil update_phase3_actor_select elsif @skill_window != nil update_phase3_skill_select elsif @item_window != nil update_phase3_item_select elsif @actor_command_window.active update_phase3_basic_command end end #-------------------------------------------------------------------------- def update_phase3_basic_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) phase3_prior_actor return end if Input.trigger?(Input::C) case @actor_command_window.index when 0 $game_system.se_play($data_system.decision_se) @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 0 start_enemy_select when 1 # スキル $game_system.se_play($data_system.decision_se) @active_battler.current_action.kind = 1 start_skill_select when 2 # 防御 @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 1 phase3_next_actor when 3 # アイテム $game_system.se_play($data_system.decision_se) @active_battler.current_action.kind = 2 start_item_select when 4 $game_system.se_play($data_system.decision_se) update_phase2_escape end return end end #-------------------------------------------------------------------------- def update_phase3_skill_select @skill_window.visible = true @skill_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) end_skill_select return end if Input.trigger?(Input::C) @skill = @skill_window.skill if @skill == nil or not @active_battler.skill_can_use?(@skill.id) $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) @active_battler.current_action.skill_id = @skill.id @skill_window.visible = false if @skill.scope == 1 start_enemy_select elsif @skill.scope == 3 or @skill.scope == 5 start_actor_select else end_skill_select phase3_next_actor end return end end #-------------------------------------------------------------------------- def update_phase3_item_select @item_window.visible = true @item_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) end_item_select return end if Input.trigger?(Input::C) @item = @item_window.item unless $game_party.item_can_use?(@item.id) $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) @active_battler.current_action.item_id = @item.id @item_window.visible = false if @item.scope == 1 start_enemy_select elsif @item.scope == 3 or @item.scope == 5 start_actor_select else end_item_select phase3_next_actor end return end end #-------------------------------------------------------------------------- def update_phase3_enemy_select @enemy_arrow.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) end_enemy_select return end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) @active_battler.current_action.target_index = @enemy_arrow.index end_enemy_select if @skill_window != nil end_skill_select end if @item_window != nil end_item_select end phase3_next_actor end end #-------------------------------------------------------------------------- def update_phase3_actor_select @actor_arrow.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) end_actor_select return end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se); @active_battler.current_action.target_index = @actor_arrow.index end_actor_select if @skill_window != nil end_skill_select end if @item_window != nil end_item_select end phase3_next_actor end end #-------------------------------------------------------------------------- def start_enemy_select @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1) @enemy_arrow.help_window = @help_window @actor_command_window.active = false @actor_command_window.visible = false end #-------------------------------------------------------------------------- def end_enemy_select @enemy_arrow.dispose @enemy_arrow = nil if @actor_command_window.index == 0 @actor_command_window.active = true @actor_command_window.visible = true @help_window.visible = false end end #-------------------------------------------------------------------------- def start_actor_select @actor_arrow = Arrow_Actor.new(@spriteset.viewport2) @actor_arrow.index = @actor_index @actor_arrow.help_window = @help_window @actor_command_window.active = false @actor_command_window.visible = false end #-------------------------------------------------------------------------- def end_actor_select @actor_arrow.dispose @actor_arrow = nil end #-------------------------------------------------------------------------- def start_skill_select @skill_window = Window_Skill.new(@active_battler) @skill_window.help_window = @help_window @actor_command_window.active = false @actor_command_window.visible = false end #-------------------------------------------------------------------------- def end_skill_select @skill_window.dispose @skill_window = nil @help_window.visible = false @actor_command_window.active = true @actor_command_window.visible = true end #-------------------------------------------------------------------------- def start_item_select @item_window = Window_Item.new @item_window.help_window = @help_window @actor_command_window.active = false @actor_command_window.visible = false end #-------------------------------------------------------------------------- def end_item_select @item_window.dispose @item_window = nil @help_window.visible = false @actor_command_window.active = true @actor_command_window.visible = true end end
J'ai grossierement modifier les fichiers d'origine mais en principe ca fonctionne bien,sinon je n'ai pas viré la boite de selection(le curseur) mais ton script va surment le faire par lui meme. | |
|
| |
Siegfried Admin
Nombre de messages : 1634 Age : 37 Localisation : Valence, France Emploi : Etudiant Loisirs : RPG Making, Musique, dessin, mangas Date d'inscription : 17/05/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Jeu 25 Jan - 2:17 | |
| Bravo, en tout cas ( il s'est dopé c'est sûr ). Le scriptmaster en action ! | |
|
| |
Roshi Modérateur
Nombre de messages : 215 Age : 42 Localisation : Tourlaville(50) Emploi : précaire Loisirs : beaucoup trop Date d'inscription : 17/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Jeu 25 Jan - 2:25 | |
| Oups! j'ai oublier de preciser une chose !!! Tu dois importer ton image en tant que windowskin et lui laisser le meme nom(te soucie pas de la taille qu'il fait ca pose aucun probleme pour RMXP). | |
|
| |
freyja
Nombre de messages : 19 Date d'inscription : 24/01/2007
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Jeu 25 Jan - 18:52 | |
| Merci ca marche mais le seul problème c'est quej'utilise un autre script de combat je suis desolé j'aurait du te le dire avant peut t-on l'introduire dedans - Code:
-
#============================================================================== # ** Sprite_Battler #------------------------------------------------------------------------------ # Animated Battlers by Minkoff #==============================================================================
class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize(viewport, battler = nil) @speed =6 @frames = 4 @poses = 10 @stationary_enemies = true @stationary_actors = false @calculate_speed = true @phasing = true @frame = 0 @pose = 0 @last_time = 0 @last_move_time = 0 cbs_initialize(viewport, battler) viewport.z = 99 end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- alias cbs_update update def update return unless @battler
# Regular Update cbs_update
# Start Routine unless @started @width = @width / @frames @height = @height / @poses @display_x = @battler.screen_x @display_y = @battler.screen_y @destination_x = @display_x @destination_y = @display_y end
# Setup Sprite self.src_rect.set(@width * @frame, @height * @pose, @width, @height) self.mirror = @battler.is_a?(Game_Enemy) unless @started
# Position Sprite self.x = @display_x self.y = @display_y self.z = @display_y self.ox = @width / 2 self.oy = @height
# Setup Animation time = Graphics.frame_count / (Graphics.frame_rate / @speed) if @last_time < time @frame = (@frame + 3) % @frames if @frame == 0 or @reload if @freeze @frame = @frames - 3 return end @pose = state end end @last_time = time
# Move It move if moving
# Finish Up @started = true end #-------------------------------------------------------------------------- # * Current State #-------------------------------------------------------------------------- def state # Damage State if [nil,{}].include?(@battler.damage) # Battler Fine @state = 0 # Battler Dead @state = 2 if @battler.dead? end # Guarding State @state = 3 if @battler.guarding? # Moving State if moving # Battler Moving Left @state = 4 if moving.eql?(0) # Battler Moving Right @state = 5 if moving.eql?(1) end # Return State return @state end #-------------------------------------------------------------------------- # * Move #-------------------------------------------------------------------------- def move time = Graphics.frame_count / (Graphics.frame_rate.to_f / (@speed * 3)) if @last_move_time < time
# Pause for Animation return if @pose != state
# Phasing if @phasing d1 = (@display_x - @original_x).abs d2 = (@display_y - @original_y).abs d3 = (@display_x - @destination_x).abs d4 = (@display_y - @destination_y).abs self.opacity = [255 + ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max end
# Calculate Difference difference_x = (@display_x - @destination_x).abs difference_y = (@display_y - @destination_y).abs
# Done? Reset, Stop if [difference_x, difference_y].max.between?(0, 8) @display_x = @destination_x @display_y = @destination_y @pose = state return end
# Calculate Movement Increments increment_x = increment_y = 1 if difference_x < difference_y increment_x = 1.0 / (difference_y.to_f / difference_x) elsif difference_y < difference_x increment_y = 1.0 / (difference_x.to_f / difference_y) end # Calculate Movement Speed if @calculate_speed total = 0; $game_party.actors.each{ |actor| total += actor.agi } speed = @battler.agi.to_f / (total / $game_party.actors.size) increment_x *= speed increment_y *= speed end # Multiply and Move multiplier_x = (@destination_x - @display_x > 0 ? 8 : -8) multiplier_y = (@destination_y - @display_y > 0 ? 8 : -8) @display_x += (increment_x * multiplier_x).to_i @display_y += (increment_y * multiplier_y).to_i end @last_move_time = time end #-------------------------------------------------------------------------- # * Set Movement #-------------------------------------------------------------------------- def setmove(destination_x, destination_y) unless (@battler.is_a?(Game_Enemy) and @stationary_enemies) or (@battler.is_a?(Game_Actor) and @stationary_actors) @original_x = @display_x @original_y = @display_y @destination_x = destination_x @destination_y = destination_y end end #-------------------------------------------------------------------------- # * Movement Check #-------------------------------------------------------------------------- def moving if (@display_x != @destination_x and @display_y != @destination_y) return (@display_x > @destination_x ? 0 : 1) end end #-------------------------------------------------------------------------- # * Set Pose #-------------------------------------------------------------------------- def pose=(pose) @pose = pose @frame = 0 end #-------------------------------------------------------------------------- # * Freeze #-------------------------------------------------------------------------- def freeze @freeze = true end #-------------------------------------------------------------------------- # * Fallen Pose #-------------------------------------------------------------------------- def collapse return end end
#============================================================================== # ** Game_Actor #==============================================================================
class Game_Actor #-------------------------------------------------------------------------- # * Actor X Coordinate #-------------------------------------------------------------------------- def screen_x if self.index != nil return self.index * 350 + 450 else return 0 end end #-------------------------------------------------------------------------- # * Actor Y Coordinate #-------------------------------------------------------------------------- def screen_y return self.index * 25 + 240 end #-------------------------------------------------------------------------- # * Actor Z Coordinate #-------------------------------------------------------------------------- def screen_z return screen_y end end
#============================================================================== # ** Scene_Battle #==============================================================================
class Scene_Battle
#-------------------------------------------------------------------------- # * Action Animation, Movement #-------------------------------------------------------------------------- alias cbs_update_phase4_step3 update_phase4_step3 def update_phase4_step3(battler = @active_battler) @rtab = !@target_battlers target = (@rtab ? battler.target : @target_battlers)[0] @moved = {} unless @moved return if @spriteset.battler(battler).moving case battler.current_action.kind when 0 # Attack if not (@moved[battler] or battler.guarding?) offset = (battler.is_a?(Game_Actor) ? 45 : -450) @spriteset.battler(battler).setmove(target.screen_x + offset, target.screen_y) @moved[battler] = true return elsif not battler.guarding? @spriteset.battler(battler).pose = 6 + rand(2) @spriteset.battler(battler).setmove(battler.screen_x, battler.screen_y) end when 1 # Skill @spriteset.battler(battler).pose = 8 when 2 # Item @spriteset.battler(battler).pose = 8 end @moved[battler] = false @rtab ? cbs_update_phase4_step3(battler) : cbs_update_phase4_step3 end #-------------------------------------------------------------------------- # * Hit Animation #-------------------------------------------------------------------------- alias cbs_update_phase4_step4 update_phase4_step4 def update_phase4_step4(battler = @active_battler) for target in (@rtab ? battler.target : @target_battlers) damage = (@rtab ? target.damage[battler] : target.damage) if damage.is_a?(Numeric) and damage > 0 @spriteset.battler(target).pose = 1 end end @rtab ? cbs_update_phase4_step4(battler) : cbs_update_phase4_step4 end #-------------------------------------------------------------------------- # * Victory Animation #-------------------------------------------------------------------------- alias cbs_start_phase5 start_phase5 def start_phase5 for actor in $game_party.actors return if @spriteset.battler(actor).moving end for actor in $game_party.actors unless actor.dead? @spriteset.battler(actor).pose = 9 @spriteset.battler(actor).freeze end end cbs_start_phase5 end #-------------------------------------------------------------------------- # * Change Arrow Viewport #-------------------------------------------------------------------------- alias cbs_start_enemy_select start_enemy_select def start_enemy_select cbs_start_enemy_select @enemy_arrow.dispose @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2) @enemy_arrow.help_window = @help_window end end
#============================================================================== # ** Spriteset_Battle #==============================================================================
class Spriteset_Battle #-------------------------------------------------------------------------- # * Change Enemy Viewport #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize cbs_initialize @enemy_sprites = [] for enemy in $game_troop.enemies.reverse @enemy_sprites.push(Sprite_Battler.new(@viewport2, enemy)) end end #-------------------------------------------------------------------------- # * Find Sprite From Battler Handle #-------------------------------------------------------------------------- def battler(handle) for sprite in @actor_sprites + @enemy_sprites return sprite if sprite.battler == handle end return false end end
#============================================================================== # ** Arrow_Base #==============================================================================
class Arrow_Base < Sprite #-------------------------------------------------------------------------- # * Reposition Arrows #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize(viewport) cbs_initialize(viewport) self.ox = 14 # 32 self.oy = 10 # 40 end end end | |
|
| |
Roshi Modérateur
Nombre de messages : 215 Age : 42 Localisation : Tourlaville(50) Emploi : précaire Loisirs : beaucoup trop Date d'inscription : 17/06/2006
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Jeu 25 Jan - 19:56 | |
| J'vais voir ca se w-e, pour le moment je suis sur autre chose | |
|
| |
freyja
Nombre de messages : 19 Date d'inscription : 24/01/2007
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Jeu 25 Jan - 20:07 | |
| ok pas de probleme merci beaucoup | |
|
| |
freyja
Nombre de messages : 19 Date d'inscription : 24/01/2007
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] Sam 27 Jan - 18:18 | |
| c'est bon j'ai reussi tout seul XD | |
|
| |
Contenu sponsorisé
| Sujet: Re: Nouvelle interface de choix dans un combat [resolu] | |
| |
|
| |
| Nouvelle interface de choix dans un combat [resolu] | |
|