Petite Mme du Fow
Age : 34 Inscrit le : 23/11/2011 Messages : 192
| Sujet: [RÉSOLU] BVBS - Behind View Battle System Lun 13 Mai 2013 - 14:40 | |
| Source : BVBS - Behind View Battle System (By Jet & Efeberk)
Lali-Ho ! (Ça veut dire : Saloute !)
Alors voilà, je zonais sur la Woile (Web + Toile = Woile XD) à la recherche d'un possible chara pour mon rang perso (bouh frimeuse va !) quand j'ai trouvé ce cadeau tombé du ciel : un Side Battle System remasterisé en BEHIND ! (Le rêve pour ACE selon moi !)
Du coup l'envie me prends de sauter dessus et donc je m'interroge : faut-il les mêmes prérequis que pour le SBS, le fonctionnement est-il différent, traiter les fichiers autrement, etc... et blabliblu et bliblubla... bref : comment fonctionne c'te bête là ?
Ou sinon existe-il d'autres versions du même genre (possibles francophones) tirés d'autres systèmes mieux connu, plus productifs, bien travaillés, bref vous me comprenez ?
En attente de réponse, Cordialement.
Dernière édition par Izayoie le Mar 14 Mai 2013 - 11:53, édité 1 fois |
|
Poulet trizo Lv.3
Inscrit le : 28/01/2012 Messages : 44
| Sujet: Re: [RÉSOLU] BVBS - Behind View Battle System Lun 13 Mai 2013 - 16:24 | |
| Hum j'ai envie de te dire : 1 : Google Traduction permet de traduire des sites entiers, donc traduit le site et à toi les infos ! 2 : Je croit qu'il est déjà posté sur le forum... donc au pire va sur le topic du forum (si il existe bel et bien) 3 : Va sur la Woile certains sites francophones doivent l'avoir ! |
|
Age : 30 Inscrit le : 22/12/2011 Messages : 1600
| Sujet: Re: [RÉSOLU] BVBS - Behind View Battle System Lun 13 Mai 2013 - 17:14 | |
| On peut voir le script ? Sinon, oui il y a plusieurs BVBS. Je te filerais les liens. |
|
Petite Mme du Fow
Age : 34 Inscrit le : 23/11/2011 Messages : 192
| Sujet: Re: [RÉSOLU] BVBS - Behind View Battle System Lun 13 Mai 2013 - 19:52 | |
| (Au fait Rito : magnifique avatar ! ) - RitoJS a écrit:
- On peut voir le script ?
Sinon, oui il y a plusieurs BVBS. Je te filerais les liens. Et hop : - Code:
-
#=============================================================================== # Behind-View Battle System # By Jet and efeberk #=============================================================================== # This script will allow you to have battle where all the actor's sprites are # display on the behind of the characters. # This script has: 10 customization options. #=============================================================================== # Overwritten Methods: # Scene_Battle: show_attack_animation # Spriteset_Battle: update_actors #------------------------------------------------------------------------------- # Aliased methods: # Spriteset_Battle: create_actors, create_enemies # Sprite_Character: initialize, update, dispose, start_new_effect # Scene_Battle: use_item, next_command, prior_command # Game_Character: screen_x, screen_y #===============================================================================
module Jet module Sideview
#=========================================================================== # ENEMY OPTIONS #===========================================================================
# These are the attack animations for enemies when they use a regular attack. # It follows this format: enemy_id => animation_id ENEMY_ATK_ANIMS = {
}
# This is the default enemy attack animation, used when they do not have a # specific attack animation above. ENEMY_ATK_ANIMS.default = 1
# This is a list of enemies whose portraits should be flipped in battle. FLIPPED_ENEMIES = [2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 17, 18, 19]
#=========================================================================== # ACTOR OPTIONS #===========================================================================
# Should the player sprite have a shadow beneath them? PLAYER_SHADOW = true
# These are sprite changes depending on state infliction. # It follows this format: state_id => "sprite_appention" # This means if the state is inflicted, the sprite will look for a graphic # that is the same name as the character's sprite, plus the appended option. # EX: Ralph's sprite's name is $ralph. Ralph gets knocked-out. This means # state 1 was inflicted, and my below config for 1 was: 1 => "_dead" # Now, his shown sprite will be $ralph_dead. If the sprite does not exist, # no change will be made. # The sprite index will be the same as the actor's. STATE_SPRITES = {
1 => "_dead", 2 => "_poison", 3 => "_blind"
}
#=========================================================================== # GENERAL_OPTIONS #===========================================================================
# This is the animation displayed when a skill is about to be used. SKILL_ANIMATION = 43
# This is the animation displayed when an item is about to be used. ITEM_ANIMATION = 43
# These are the animations played when a state is inflicted. # It follows this format: state_id => animation_id STATE_ANIMATIONS = {
1 => 56, 2 => 50, 3 => 51
}
#=========================================================================== # FIELD OPTIONS #===========================================================================
# This is where the line-up begins. [x, y]. The higher the x, the further # right and the higher the y the further down. FIELD_POS = [275, 280]
# This is how far down, and to the right each player is from the previous # actor. [x, y]. Same rules as above. FIELD_SPACING = [50, 0]
end end
#=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #===============================================================================
($imported ||= {})[:jet] ||= {} $imported[:jet][:Sideview] = true
class Game_Character
attr_accessor :step_anime
%w[screen_x screen_y].each {|a| aStr = %Q{ alias jet6372_#{a} #{a} def #{a}(*args, &block) $BTEST ? 0 : jet6372_#{a}(*args, &block) end } module_eval(aStr) } end
class Game_Actor
def animation_id=(t) self.battle_sprite.start_animation($data_animations[t]) rescue nil end end
class Game_Battler
def battle_sprite return nil unless SceneManager.scene_is?(Scene_Battle) SceneManager.scene.spriteset.battler_sprites.each {|a| return a if a.battler == self } return nil end end
class Spriteset_Battle
alias jet2847_create_enemies create_enemies def create_enemies(*args, &block) jet2847_create_enemies(*args, &block) @enemy_sprites.each {|a| a.mirror = Jet::Sideview::FLIPPED_ENEMIES.include?(a.battler.enemy.id) } end
alias jet3835_create_actors create_actors def create_actors(*args, &block) jet3835_create_actors(*args, &block) @jet_party = $game_party.members @actor_sprites.each {|a| a.dispose } @actor_sprites = [] $game_party.members.each {|a| f = Game_Character.new f.set_graphic(a.character_name, a.character_index) f.step_anime = true f.set_direction(8) n = Sprite_Character.new(@viewport1, f) n.jet_x = Jet::Sideview::FIELD_POS[0] + a.index * Jet::Sideview::FIELD_SPACING[0] n.jet_y = Jet::Sideview::FIELD_POS[1] + a.index * Jet::Sideview::FIELD_SPACING[1] n.battler = a n.battle_sprite = true if Jet::Sideview::PLAYER_SHADOW v = Sprite.new(nil) v.bitmap = Cache.system("Shadow") n.shadow_sprite = v end @actor_sprites.push(n) } end
def update_actors if @jet_party != $game_party.members @actor_sprites.each {|a| a.dispose } @actor_sprites = [] create_actors end @actor_sprites.each {|a| a.update } end end
class Sprite_Character
attr_accessor :battle_sprite, :jet_x, :jet_y, :shadow_sprite, :battler
alias jet4646_initialize initialize def initialize(*args, &block) @battle_sprite = false jet4646_initialize(*args, &block) end
alias jet3645_update update def update(*args, &block) jet3645_update(*args, &block) if @battle_sprite @character.step_anime = !@battler.dead? @character.update self.x = @jet_x self.y = @jet_y if !@battler.nil? f = @battler.states.dup f.sort! {|a, b| a.priority <=> b.priority }.reverse! for i in 0...f.size a = Jet::Sideview::STATE_SPRITES[f[i].id] next if a.nil? b = (Cache.character(@character.character_name + a) rescue false) next unless b index = @character.character_index @character.set_graphic(@character.character_name + a, index) break end end if !@shadow_sprite.nil? @shadow_sprite.x = self.x - @shadow_sprite.width / 2 @shadow_sprite.y = self.y - 28 @shadow_sprite.visible = self.visible @shadow_sprite.viewport = self.viewport @shadow_sprite.z = self.z - 1 end end end
alias jet5484_dispose dispose def dispose(*args, &block) @shadow_sprite.dispose if !@shadow_sprite.nil? jet5484_dispose(*args, &block) end
def move_x(times, amount) i = 0 until i == times self.jet_y += amount i += 1 [Graphics, SceneManager.scene.spriteset].each {|a| a.update } end end
def effect? false end end
class Game_Enemy
def atk_animation_id1 return Jet::Sideview::ENEMY_ATK_ANIMS[@enemy_id] end
def atk_animation_id2 return 0 end end
class Scene_Battle
attr_reader :spriteset
alias jet2711_use_item use_item def use_item(*args, &block) if @subject.is_a?(Game_Actor) if !@subject.current_action.guard? @subject.battle_sprite.move_x(11, -4) end end if !@subject.current_action.guard? && !@subject.current_action.attack? if @subject.current_action.item.is_a?(RPG::Item) n = $data_animations[Jet::Sideview::ITEM_ANIMATION] else n = $data_animations[Jet::Sideview::SKILL_ANIMATION] end @subject.battle_sprite.start_animation(n) wait_for_animation end jet2711_use_item(*args, &block) if @subject.is_a?(Game_Actor) if !@subject.current_action.guard? @subject.battle_sprite.move_x(11, 4) end end end
def show_attack_animation(targets) aid1 = @subject.atk_animation_id1 aid2 = @subject.atk_animation_id2 show_normal_animation(targets, aid1, false) show_normal_animation(targets, aid2, true) end
%w[next prior].each {|a| aStr = %Q{ alias jet3734_#{a}_command #{a}_command def #{a}_command(*args, &block) f = BattleManager.actor f.battle_sprite.move_x(6, 4) if f.is_a?(Game_Actor) jet3734_#{a}_command(*args, &block) f = BattleManager.actor f.battle_sprite.move_x(6, -4) if f.is_a?(Game_Actor) end } module_eval(aStr) } end
class Game_Action
def guard? item == $data_skills[subject.guard_skill_id] end end
if $imported[:jet][:BattlePopUps] class Sprite_Character
attr_accessor :popups
alias jet4758_initialize initialize def initialize(*args, &block) @popups = [] @updating_sprites = [] @popup_wait = 0 jet4758_initialize(*args, &block) end
alias jet7467_update update def update(*args, &block) jet7467_update(*args, &block) if @popup_wait == 0 if !@popups.empty? @updating_sprites.push(@popups.pop) @popup_wait = 30 end else @popup_wait -= 1 end @updating_sprites.each {|a| a.visible = true if !a.visible a.update @updating_sprites.delete(a) if a.disposed? } end
alias jet5483_dispose dispose def dispose(*args, &block) (@updating_sprites + @popups).each {|a| a.dispose } jet5483_dispose(*args, &block) end
alias jet3745_setup_new_effect setup_new_effect def setup_new_effect(*args, &block) jet3745_setup_new_effect(*args, &block) do_sprite_popups end
def make_popup(text, color) @popups.unshift(Sprite_JetPopup.new(text.to_s, color, self)) end
def do_sprite_popups return if @battler.nil? if @battler_struct.nil? @battler_struct = Struct.new(:hp, :mp, :tp).new(0, 0, 0) @battler_struct.hp = @battler.hp @battler_struct.mp = @battler.mp @battler_struct.tp = @battler.tp end check_success_popup check_hp_popup check_mp_popup check_tp_popup end
def check_success_popup if @battler.result.success if @battler.result.critical make_popup(Jet::BattlePopUps::CRITICAL_TEXT, Jet::BattlePopUps::CRITICAL_COLOR) elsif @battler.result.missed make_popup(Jet::BattlePopUps::MISSED_TEXT, Jet::BattlePopUps::MISS_COLOR) elsif @battler.result.evaded make_popup(Jet::BattlePopUps::EVADED_TEXT, Jet::BattlePopUps::EVADE_COLOR) end @battler.result.clear_hit_flags end end
def check_hp_popup if @battler_struct.hp != @battler.hp f = @battler_struct.hp - @battler.hp if f > 0 make_popup(Jet::BattlePopUps::HURT_TEXT + f.to_s, Jet::BattlePopUps::HURT_COLOR) elsif f < 0 make_popup(Jet::BattlePopUps::HEAL_TEXT + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR) end @battler_struct.hp = @battler.hp end end
def check_mp_popup if @battler_struct.mp != @battler.mp f = @battler_struct.mp - @battler.mp if f > 0 make_popup(Jet::BattlePopUps::HURT_TEXT_MP + f.to_s, Jet::BattlePopUps::HURT_COLOR_MP) elsif f < 0 make_popup(Jet::BattlePopUps::HEAL_TEXT_MP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_MP) end @battler_struct.mp = @battler.mp end end
def check_tp_popup if @battler_struct.tp != @battler.tp f = (@battler_struct.tp - @battler.tp).round if f > 0 make_popup(Jet::BattlePopUps::HURT_TEXT_TP + f.to_s, Jet::BattlePopUps::HURT_COLOR_TP) elsif f < 0 make_popup(Jet::BattlePopUps::HEAL_TEXT_TP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_TP) end @battler_struct.tp = @battler.tp end end end end |
|
Age : 30 Inscrit le : 22/12/2011 Messages : 1600
| Sujet: Re: [RÉSOLU] BVBS - Behind View Battle System Lun 13 Mai 2013 - 22:21 | |
| (Merci. ) Sinon, ce script ne possède aucun pré-requis. C'est du plug and play. Après tu peux toujours changer la position du groupe ici: - Code:
-
# This is where the line-up begins. [x, y]. The higher the x, the further # right and the higher the y the further down. FIELD_POS = [275, 280] Ça c'est la position du groupe entier. - Code:
-
# This is how far down, and to the right each player is from the previous # actor. [x, y]. Same rules as above. FIELD_SPACING = [50, 0] Ça c'est l'espace entre chaque personnages. Je n'ai pas VX Ace sur mon pc actuel donc je ne sais pas si il faut une planche par chara ou pas. Concernant les autres BVBS il y a celui de formar: L'interface est jolie mais les héros ne sont pas animé et ce sont des images. Lien Il y a aussi le Visual battlers de Yanfly: A peu près la même chose que celui de jet mais en plus customisable (du moins pour les positions.) Lien Voilà, voilà. |
|
Petite Mme du Fow
Age : 34 Inscrit le : 23/11/2011 Messages : 192
| Sujet: Re: [RÉSOLU] BVBS - Behind View Battle System Mar 14 Mai 2013 - 11:53 | |
| Merci pour toutes ces infos Rito ! [RÉSOLU] |
|
| Sujet: Re: [RÉSOLU] BVBS - Behind View Battle System | |
| |
|