Jump to content
Rpg²S Forum

Actor Battler Grafichs


Recommended Posts

Voi sapete che, su Rpg Maker XP, nel battlesystem predefinito, è possibile scegliere i propri battler, che si visualizzano in battaglia? Bè, io lo considero una gran ficata. E questo script lo imita per il VX-Ace! ^o^

 

Autore:

Victor Sant

 

Versione:

1.05

 

 

Script:

 

#==============================================================================

# ** Victor Engine - Actors Battlers

#------------------------------------------------------------------------------

# Author : Victor Sant

#

# Version History:

# v 1.00 - 2011.12.19 > First relase

# v 1.01 - 2011.12.30 > Faster Regular Expressions

# v 1.02 - 2012.01.15 > Compatibility with Target Arrow

# v 1.03 - 2012.01.28 > Compatibility with Animated Battle

# v 1.04 - 2012.03.11 > Added position distance settings

# v 1.05 - 2012.03.17 > Fixed battle test glitch

#------------------------------------------------------------------------------

# This script adds visible battler graphics for the party actors actors

# during combat. With the visible battlers, new options will be available

# like setting actor's battlers positions and attack animations.

#------------------------------------------------------------------------------

# Compatibility

# Requires the script 'Victor Engine - Basic Module' v 1.11 or higher

# If used with 'Victor Engine | Animated Battle' paste this one bellow it.

#

# * Overwrite methods (Default)

# class Spriteset_Battle

# def create_actors

# def update_actors

#

# class Scene_Battle < Scene_Base

# def show_attack_animation(targets)

#

# * Alias methods (Default)

# class << DataManager

# def setup_new_game

# def create_game_objects

# def make_save_contents

# def extract_save_contents(contents)

#

# class Game_Actor < Game_Battler

# def setup(actor_id)

#

# * Alias methods (Basic Module)

# class Game_Interpreter

# def comment_call

#

#------------------------------------------------------------------------------

# Instructions:

# To instal the script, open you script editor and paste this script on

# a new section on bellow the Materials section. This script must also

# be bellow the script 'Victor Engine - Basic'

#

#------------------------------------------------------------------------------

# Comment calls note tags:

# Tags to be used in events comment box, works like a script call.

#

# <battler name id: x>

# This tag allows to change the actor battler graphic.

# id : actor ID

# x : battler graphic filename

#

# <battler hue id: x>

# This tag allows to change the actor battler graphic.

# id : actor ID

# x : battler graphic hue (0-360)

#

# <battler position i: x, y>

# This tag allows to change the battler position during combat.

# only valid if VE_BATTLE_FORMATION = :custom

# i : position index

# x : new coorditante X

# y : new coorditante X

#

#------------------------------------------------------------------------------

# Actors note tags:

# Tags to be used on the Actors note box in the database

#

# <battler name: x>

# This tag allows to set the initial battler graphic filename for the actor.

# x : battler graphic filename

#

# <battler hue: x>

# This tag allows to set the initial battler graphic hur for the actor.

# x : battler graphic hue (0-360)

#

#------------------------------------------------------------------------------

# Enemies note tags:

# Tags to be used on the Enemies note box in the database

#

# <attack animation: x>

# This tag allows to set the normal attack animation for the enemy

# x : animation ID

#

#==============================================================================

#==============================================================================

# ** Victor Engine

#------------------------------------------------------------------------------

# Setting module for the Victor Engine

#==============================================================================

module Victor_Engine

#--------------------------------------------------------------------------

# * Set the battle formation

# Choose here how the actors battlers will be placed on the combat.

# :front : horizontal placement

# :side : vertical placement

# :iso : isometric placement

# :custom : custom placement

#--------------------------------------------------------------------------

VE_BATTLE_FORMATION = :front

#--------------------------------------------------------------------------

# * Set battler centralization

# When true, battlers are centralized automatically.

# Not valid if VE_BATTLE_FORMATION = :custom

#--------------------------------------------------------------------------

VE_BATTLE_CENTRALIZE = true

#--------------------------------------------------------------------------

# * Set battlers custom positions

# Only if VE_BATTLE_FORMATION = :custom, allows to set the position of

# all party actors, don't forget to add values for all positions

# available if using a party bigger than the default.

#--------------------------------------------------------------------------

VE_CUSTOM_POSITION = {

# Position

1 => {x: 460, y: 180}, # Position for the first actor.

2 => {x: 480, y: 210}, # Position for the second actor.

3 => {x: 500, y: 240}, # Position for the thrid actor.

4 => {x: 520, y: 270}, # Position for the fourth actor.

} # Don't remove

#--------------------------------------------------------------------------

# * Actors battlers position adjust

# Used to adjust the position of all actors battlers.

#--------------------------------------------------------------------------

VE_POSITION_ADJUST = {x: 0, y: 0}

#--------------------------------------------------------------------------

# * Actors battlers position adjust

# Used to adjust the position of all actors battlers.

#--------------------------------------------------------------------------

VE_DISTANCE_ADJUST = {x: 48, y: 32}

#--------------------------------------------------------------------------

# * required

# This method checks for the existance of the basic module and other

# VE scripts required for this script to work, don't edit this

#--------------------------------------------------------------------------

def self.required(name, req, version, type = nil)

if !$imported[:ve_basic_module]

msg = "The script '%s' requires the scriptn"

msg += "'VE - Basic Module' v%s or higher above it to work properlyn"

msg += "Go to http://victorscripts.wordpress.com/ to download this script."

msgbox(sprintf(msg, self.script_name(name), version))

exit

else

self.required_script(name, req, version, type)

end

end

#--------------------------------------------------------------------------

# * script_name

# Get the script name base on the imported value, don't edit this

#--------------------------------------------------------------------------

def self.script_name(name, ext = "VE")

name = name.to_s.gsub("_", " ").upcase.split

name.collect! {|char| char == ext ? "#{char} -" : char.capitalize }

name.join(" ")

end

end

$imported ||= {}

$imported[:ve_actor_battlers] = 1.04

Victor_Engine.required(:ve_actor_battlers, :ve_basic_module, 1.11, :above)

#==============================================================================

# ** DataManager

#------------------------------------------------------------------------------

# This module handles the game and database objects used in game.

# Almost all global variables are initialized on this module

#==============================================================================

class << DataManager

#--------------------------------------------------------------------------

# * Alias method: setup_new_game

#--------------------------------------------------------------------------

alias :setup_new_game_ve_actor_battlers :setup_new_game

def setup_new_game

setup_new_game_ve_actor_battlers

$game_custom_positions = VE_CUSTOM_POSITION.dup

end

#--------------------------------------------------------------------------

# * Alias method: setup_battle_test

#--------------------------------------------------------------------------

alias :setup_battle_test_ve_actor_battlers :setup_battle_test

def setup_battle_test

setup_battle_test_ve_actor_battlers

$game_custom_positions = VE_CUSTOM_POSITION.dup

end

#--------------------------------------------------------------------------

# * Alias method: create_game_objects

#--------------------------------------------------------------------------

alias :create_game_objects_ve_actor_battlers :create_game_objects

def create_game_objects

create_game_objects_ve_actor_battlers

$game_custom_positions = {}

end

#--------------------------------------------------------------------------

# * Alias method: make_save_contents

#--------------------------------------------------------------------------

alias :make_save_contents_ve_actor_battlers :make_save_contents

def make_save_contents

contents = make_save_contents_ve_actor_battlers

contents[:formations_ve] = $game_custom_positions

contents

end

#--------------------------------------------------------------------------

# * Alias method: extract_save_contents

#--------------------------------------------------------------------------

alias :extract_save_contents_ve_actor_battlers :extract_save_contents

def extract_save_contents(contents)

extract_save_contents_ve_actor_battlers(contents)

$game_custom_positions = contents[:formations_ve]

end

end

#==============================================================================

# ** Game_Actor

#------------------------------------------------------------------------------

# This class handles actors. It's used within the Game_Actors class

# ($game_actors) and referenced by the Game_Party class ($game_party).

#==============================================================================

class Game_Actor < Game_Battler

#--------------------------------------------------------------------------

# * Public Instance Variables

#--------------------------------------------------------------------------

attr_accessor :screen_x # Coordenada X na tela

attr_accessor :screen_y # Coordenada Y na tela

#--------------------------------------------------------------------------

# * Alias method: setup

#--------------------------------------------------------------------------

alias :setup_ve_actor_battlers :setup

def setup(actor_id)

setup_ve_actor_battlers(actor_id)

@battler_name = actor_battler_name

@battler_hue = actor_battler_hue

end

#--------------------------------------------------------------------------

# * Overwrite method: use_sprite?

#--------------------------------------------------------------------------

def use_sprite?

return true

end

#--------------------------------------------------------------------------

# * Overwrite method: screen_z

#--------------------------------------------------------------------------

def screen_z

return 100

end

#--------------------------------------------------------------------------

# * New method: actor_battler_name

#--------------------------------------------------------------------------

def actor_battler_name

actor.note =~ /<BATTLER NAME: ([^><]*)>/i ? $1.to_s : ""

end

#--------------------------------------------------------------------------

# * New method: actor_battler_hue

#--------------------------------------------------------------------------

def actor_battler_hue

actor.note =~ /<BATTLER HUE: (d+)>/i ? $1.to_i : 0

end

#--------------------------------------------------------------------------

# * New method: battler_name

#--------------------------------------------------------------------------

def battler_name=(name)

@battler_name = name if name.is_a?(String)

end

#--------------------------------------------------------------------------

# * New method: battler_hue

#--------------------------------------------------------------------------

def battler_hue=(hue)

@battler_hue = hue if hue.numeric?

end

#--------------------------------------------------------------------------

# * New method: screen_x

#--------------------------------------------------------------------------

def screen_x

setup_x

end

#--------------------------------------------------------------------------

# * New method: screen_y

#--------------------------------------------------------------------------

def screen_y

setup_y

end

#--------------------------------------------------------------------------

# * New method: setup_x

#--------------------------------------------------------------------------

def setup_x

case VE_BATTLE_FORMATION

when :front then position = get_frontal_x

when :side then position = get_sideview_x

when :iso then position = get_isometric_x

when :custom then position = $game_custom_positions[index + 1][:x]

end

position + VE_POSITION_ADJUST[:x]

end

#--------------------------------------------------------------------------

# * New method: setup_y

#--------------------------------------------------------------------------

def setup_y

case VE_BATTLE_FORMATION

when :front then position = get_frontal_y

when :side then position = get_sideview_y

when :iso then position = get_isometric_y

when :custom then position = $game_custom_positions[index + 1][:y]

end

position + VE_POSITION_ADJUST[:y]

end

#--------------------------------------------------------------------------

# * New method: get_frontal_x

#--------------------------------------------------------------------------

def get_frontal_x

if VE_BATTLE_CENTRALIZE

size = $game_party.battle_members.size

position = (index + 1) * Graphics.width / (size + 1)

else

size = $game_party.max_battle_members

position = index * Graphics.width / size + 64

end

position

end

#--------------------------------------------------------------------------

# * New method: get_frontal_y

#--------------------------------------------------------------------------

def get_frontal_y

Graphics.height - 16

end

#--------------------------------------------------------------------------

# * New method: get_sideview_x

#--------------------------------------------------------------------------

def get_sideview_x

if VE_BATTLE_CENTRALIZE

size = $game_party.max_battle_members

x = dist[:x] / 8

position = -index * (index * x - x * size) + Graphics.width - 160

else

position = index * dist[:x] + Graphics.width - 192

end

position

end

#--------------------------------------------------------------------------

# * New method: get_sideview_y

#--------------------------------------------------------------------------

def get_sideview_y

if VE_BATTLE_CENTRALIZE

size = $game_party.battle_members.size

height = Graphics.height

position = (index - size) * dist[:y] + size * dist[:y] / 2 + height - 160

else

position = index * dist[:y] + Graphics.height - 192

end

position

end

#--------------------------------------------------------------------------

# * New method: get_isometric_x

#--------------------------------------------------------------------------

def get_isometric_x

if VE_BATTLE_CENTRALIZE

position = -index * (index * dist[:x] - 32) + Graphics.width - 160

else

position = index * dist[:x] + Graphics.width - 192

end

position

end

#--------------------------------------------------------------------------

# * New method: get_isometric_y

#--------------------------------------------------------------------------

def get_isometric_y

if VE_BATTLE_CENTRALIZE

position = index * (dist[:y] - index * 6) + Graphics.height - 160

else

position = Graphics.height - 96 - index * dist[:y]

end

position

end

#--------------------------------------------------------------------------

# * New method: dist

#--------------------------------------------------------------------------

def dist

VE_DISTANCE_ADJUST

end

end

#==============================================================================

# ** Game_Enemy

#------------------------------------------------------------------------------

# This class handles enemy characters. It's used within the Game_Troop class

# ($game_troop).

#==============================================================================

class Game_Enemy < Game_Battler

#--------------------------------------------------------------------------

# * New method: atk_animation_id1

#--------------------------------------------------------------------------

def atk_animation_id1

enemy.note =~ /<ATTACK ANIM(?:ATION): (d+)>/i ? $1.to_i : 1

end

#--------------------------------------------------------------------------

# * New method: atk_animation_id2

#--------------------------------------------------------------------------

def atk_animation_id2

return 0

end

end

#==============================================================================

# ** Game_Interpreter

#------------------------------------------------------------------------------

# An interpreter for executing event commands. This class is used within the

# Game_Map, Game_Troop, and Game_Event classes.

#==============================================================================

class Game_Interpreter

#--------------------------------------------------------------------------

# * Alias method: comment_call

#--------------------------------------------------------------------------

alias :comment_call_ve_actor_battlers :comment_call

def comment_call

change_battler_name

change_battler_hue

change_position

comment_call_ve_actor_battlers

end

#--------------------------------------------------------------------------

# * New method: change_battler_name

#--------------------------------------------------------------------------

def change_battler_name

note.scan(/<BATTLER NAME (d+): ([^><]*)>/i) do |id, name|

$game_actors[id.to_i].battler_name = name

end

end

#--------------------------------------------------------------------------

# * New method: change_battler_hue

#--------------------------------------------------------------------------

def change_battler_hue

note.scan(/<BATTLER HUE (d+): (d+)>/i) do |id, hue|

$game_actors[id.to_i].battler_hue = hue

end

end

#--------------------------------------------------------------------------

# * New method: change_position

#--------------------------------------------------------------------------

def change_position

regexp = /<BATTLER POSITION (d+): (d+) *, *(d+)>/i

note.scan(regexp) do |i, x, y|

$game_custom_positions[i.to_i][:x] = x.to_i

$game_custom_positions[i.to_i][:y] = y.to_i

end

end

end

#==============================================================================

# ** Spriteset_Battle

#------------------------------------------------------------------------------

# This class brings together battle screen sprites. It's used within the

# Scene_Battle class.

#==============================================================================

class Spriteset_Battle

#--------------------------------------------------------------------------

# * Overwrite method: create_actors

#--------------------------------------------------------------------------

def create_actors

@actor_sprites = $game_party.battle_members.reverse.collect do |actor|

Sprite_Battler.new(@viewport1, actor)

end

@actors_party = $game_party.battle_members.dup

end

#--------------------------------------------------------------------------

# * Overwrite method: update_actors

#--------------------------------------------------------------------------

def update_actors

update_party if $game_party.battle_members != @actors_party

@actor_sprites.each {|sprite| sprite.update }

end

#--------------------------------------------------------------------------

# * New method: update_party

#--------------------------------------------------------------------------

def update_party

@actor_sprites.each_index do |i|

next if $game_party.battle_members.include?(@actor_sprites.battler)

@actor_sprites.dispose

@actor_sprites = nil

end

$game_party.battle_members.collect do |actor|

next if @actors_party.include?(actor)

@actor_sprites.push(Sprite_Battler.new(@viewport1, actor))

end

@actor_sprites.compact!

@actors_party = $game_party.battle_members.dup

$game_party.battle_members.each do |actor|

old_position = [actor.screen_x, actor.screen_y]

actor.setup_position

if old_position != [actor.screen_x, actor.screen_y]

sprite(actor).start_effect(:appear)

end

end

end

end

#==============================================================================

# ** Scene_Battle

#------------------------------------------------------------------------------

# This class performs battle screen processing.

#==============================================================================

class Scene_Battle < Scene_Base

#--------------------------------------------------------------------------

# * Overwrite method: show_attack_animation

#--------------------------------------------------------------------------

def show_attack_animation(targets)

show_normal_animation(targets, @subject.atk_animation_id1, false)

show_normal_animation(targets, @subject.atk_animation_id2, true)

end

end

 

 

 

Screen:

 

http://img845.imageshack.us/img845/1673/actorsbattlers.png

 

 

 

Per poterlo utilizzare, bisogna inserire forzatamente lo script "Victor's Engine - Basic Module" per farlo funzionare. Così vale anche per tutti (o quasi) i suoi script. Il link dove poter prendere questo script: http://victorscripts.wordpress.com/rpg-maker-vx-ace/basic-scripts/basic-module/

 

Istruzioni all'interno dello script, sono semplicissime da seguire.

 

 

 

 

 

Ave a voi! :3

Finalmente, la sezione Rgss3 si sta riempiendo di bei script *-*

 

A presto con altri script!

Link to comment
Share on other sites

Preferirei vedere meno BS standard che siano di VX od XP che sia... XD, ma sempre un'aggiunta in più! Sembrano fichi poi quei battler nello screen! ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

Guarda, se quelli della enterbrain si degnassero di creare anche i battler dei personaggi ma di schiena già farebbero un passo avanti. Considerato che hanno dei disegnatori di livello molto alto perchè cavolo non fanno ste cose? Me lo sono sempre chiesto.

 

Non vogliono rifare il bs laterale? Bon amen. Ma almeno fare un frontale con battler sia per personaggi (di schiena), sia per mostri (frontali). Comunque buono script.

Edited by Dexter

http://img89.imageshack.us/img89/618/qzfc.png

Premi:

http://i49.tinypic.com/2cpdkb8.jpghttp://i40.tinypic.com/w0tfev.jpghttp://i42.servimg.com/u/f42/13/12/87/37/screen10.pnghttp://i42.servimg.com/u/f42/13/12/87/37/screen10.pnghttp://i42.servimg.com/u/f42/13/12/87/37/screen10.pnghttp://www.rpgmkr.net/contest/screen-contest-primo.pnghttp://www.rpgmkr.net/contest/screen-contest-secondo.pnghttp://www.rpgmkr.net/contest/screen-contest-secondo.png http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gif



http://oi60.tinypic.com/206c3nc.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...