Jump to content
Rpg²S Forum
  • 0

Piccola modifica al BS Minkoff


L. Phatimo
 Share

Question

Ciao a tutti, mi servirebbe una mano... Ho provato il BS minkoff però ho riscontrato un problema: Se in battaglia chiamo un common event tramite una skill per far si che qualche membro del party esca dalla battaglia, le informazioni di questo scompaiono dalla barra blu sottostante, il character (che nel minkoff appunto sostituisce il normale battler) smette di animarsi, non c'è più effettivamente nel party ma nonostante tutto imane il chara immobile in battaglia...

Non so se mi spiego, intanto ecco lo script, dateci un'occhiata per favore se non mi sono spiegato bene chiarirò in seguito.

 

 

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

========

# ** Animated Battlers - Enhanced ver. 5.0 (12-23-2006)

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

# Animated Battlers by Minkoff

# Enhancements by DerVVulfman

# Low percentage and Status Poses

# Concept & Base coding by Twin Matrix

# Stationary Enemies requested by jens009

# Continuous Victory Looping for actors requested by Skyla Doragono

# Actors readying themselves before battle requested by Clive

# Default Battlers for Enemies requested for by WithViolence

# Mixed Default and Spritesheet Battlers requested for by SteveE22

# Hero & Enemy z.depth concept by Min-Chan and Caldaron ( totally redone )

# Stationary Poses suggested by Twin Matrix

# Critical Hit animation requested by Mimi-Chan

# Both Enemy and Actor's individual Frames per Pose requested by creiz

# Expandable Battle Parties beyond 4 requested by Leknaat

# Additional value call added for compatability with Battle Cry script

# Removed dependancy on $game_system for the Sideview Mirror system

# Fixed the 'Blocking during Victory State' bug discovered by Kaze950

# Collapse stack-error found by JirbyTaylor(fixed) / Code by SephirothSpawn

#

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

#

# ADDITIONAL CALLS AVAILABLE PRIOR TO COMBAT:

#

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

# SIDEVIEW MIRROR: This value switches the positions of both enemies and

# heroes to opposite ends of the screen.

#

# Script : $sideview_mirror = [number]

# number : a value indicating whether the hero & enemy positions are switched

# 0 = Default: Enemies on the left, Heroes on the right

# 1 = Switched: Heroes on the left, Enemies on the right

#

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

# BATTLER FORMATIONS: This value changes the way your heroes line up when the

# battle starts.

#

# Script : $formation_style = [number]

# number : a value indicating the type of formation your heroes will use

# 0 = Diagonal (Default) 4 = Column Pattern 1

# 1 = Diagonal Pattern 2 5 = Column Pattern 2

# 2 = Slanted Pattern 1 6 = Wave Formation 1

# 3 = Slanted Pattern 2 7 = Wave Formation 2

#

# 8 = Randomized (system will choose from 0 to 7)

#

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

# FORMATION OPTIONS: These values may expand your system to go beyond the

# default four player system.

#

# Script : $formation_max_member = [number]

# number : A value indicating the maximum number of members in your party.

# (default = 4)

#

# Script : $formation_max_height = [number]

# number : A value indicating (in pixels) the top height of your party shown

# in the Battle Screen. The higher the number, the lower the party

# on the screen. (default = 220)

#

# Script : $formation_max_width = [number]

# number : The left/right width of the party's formation. (default = 128)

#

# Script : $battlestatus_height = [number]

# number : The actual height of your battlestatus window. (default = 160)

#

# NOTE: The combined $formation_max_height and $battlestatus_height determines

# the vertical distance between battlers in their formation.

#

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

 

 

# Things added since original version by Minkoff:

# Can reverse the battler positions

# Editable spritesheet layout in script

# Able to define total/max frames per pose

# Can define individual # of frames per each pose

# Can use 'red-out' RTP death or 'battler death' pose

# Can show battler falling before death.

# 'Casting' pose now available for RTAB/Skill Timing users

# Can show battler celebrating before victory pose

# Can tag battlers who's victory pose loops indefinitely

# Can show actor battlers get ready before battle starts.

# Separate poses for 'skills', 'items' or 'weapons' based on their id

# Can allow the battlers to step forward before using items & skills (FFVII+)

# Attacking battlers rush towards their targets while item & skill users don't

# Certain weapons can force the battler NOT to move

# Certain items & skills can force battlers to 'rush' the enemy

# Certain skills or items can force movement to the center of the screen

# Stationary enemies. In case enemies do NOT move when they attack.

# Adjustable 'low health' checker. Set your low health to 25%... 30%... 10%...

# Poses now available for status ailments

# Dead revert to 'victory' pose bug fixed.

# Default battlers now available for actors and/or enemies

# Default battlers now usable by ID number (had to rewrite red-out for that)

# Escaping Enemies bug found by SteveE22. Fixed just as fast.

# Hero Formations (total of 8 hardwired -& 1 random- ... add at your own risk)

# Z-Depth for attack overlapping purposes

# Corrected attack overlap offset routine. Overlap now based on battler size

# Certain skills and items can now prevent movement

# Can allow battlers to take step forward before performing 'attack' pose.(FF)

# Certain weapons can move battlers to center screen instead of a full move.

# Escaping Enemies can now have a pose before disappearing (was a rush pose)

# Redesigned Scene_Battle's movement routine

# Added pose for Critical Hits

# Added the enemy's hash for frame number based on poses

# Added the actor's hash for frame number based on poses

# Re-Tooled the formations to go beyond the default four party system

# Minor value added for compatability with Delissa's Battle Cry script

# Default Collapse Stack-Error fixed(code by SephirothSpawn) found JirbyTaylor

# Removed dependancy on $game_system for the Sideview Mirror system

# Fixed the 'Blocking during Victory State' bug discovered by Kaze950

# Includes an Adaptation Switch for use with RTAB's Connected Attacking script

#

# 40 counted.

 

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

# ** Sprite_Battler

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

# This sprite is used to display the battler.It observes the Game_Character

# class and automatically changes sprite conditions.

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

 

class Sprite_Battler < RPG::Sprite

 

attr_accessor :battler_offset # Degree of action forcing

attr_accessor :skill_used # Degree of action forcing

attr_accessor :item_used # Degree of action forcing

 

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

# * Initialize

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

alias cbs_initialize initialize

def initialize(viewport, battler = nil)

 

# * Configuration System *

 

# * Default Battler Style Switches

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

$default_enemy = false # If true, these switches allows the use

$default_actor = false # of default battlers for actors/enemies

$default_enemy_id = [] # Ids of enemies using default battlers

$default_actor_id = [] # Ids of actors using default battlers

@default_collapse_actor = false # If true, restores the old 'red fade'

@default_collapse_enemy = true # collapse effect (using spritesheets)

 

 

# * Animation Frames and Animation Speed

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

@speed = 5 # Framerate speed of the battlers

@poses = 4 # Maximum # of poses (stances) in the template

@frames = 4 # Maximum # of frames in each pose

@frames_standard = 4 # Standard # of frames played in each pose.

@low_hp_percentage = 0.25 # Determines health% of battler for WOOZY pose.

 

 

# * Poses Control

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

 

# Editable Template (Some people wanted to change their template design)

$p1 = 1 # Sets the 'Ready Pose' ($p1) to be pose #1 in your template

$p2 = 1 # Sets the 'Struck Pose' ($p2) to be pose #2 in your template

$p3 = 1 # Sets the 'Woozy Pose' ($p3) to be pose #3 in your template

$p4 = 1 # Sets the 'Block Pose' ($p4) to be pose #4 in your template

$p5 = 1 # Sets the 'Charge Pose' ($p5) to be pose #5 in your template

$p6 = 2 # Sets the 'Retreat Pose'($p6) to be pose #6 in your template

$p7 = 1 # Sets the 'Attack Pose' ($p7) to be pose #7 in your template

$p8 = 1 # Sets the 'Item Pose' ($p8) to be pose #8 in your template

$p9 = 1 # Sets the 'Skill Pose' ($p9) to be pose #9 in your template

$p10 = 0 # Sets the 'Victory Pose'($p10)to be pose #10 in your template

$p11 = 3 # Sets the 'Defeat Pose' ($p11)to be pose #11 in your template

# Non-Default Poses (can expand beyond the default 11 poses here)

@poses_setup = nil # Choose animation pose for 'preparation'

@poses_casting = nil # Set casting pose to 'Block' for example

$poses_escaping = nil # Set 'coward' pose for fleeing monsters)

$poses_critical = nil # Set 'critical' hit pose for BIG hits.

@poses_dying = nil # Choose animation pose for dying throws.

@poses_winning = nil # Set winning dance to 'block' for examp.

@poses_winning_loops = [] # Set victory non-freezing actor as #7

# Non-Default Pose Hashes (poses dependant on .id values)

@poses_status = {} # Didn't set any

$poses_skills = {} # Didn't set any

$poses_items = {} # Didn't set any

$poses_weapons = {} # Didn't set any weapons to any poses

 

 

# * Frames Control

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

@frames_per_pose = {0 => 1, 3 => 1} # Set #of frames to pose(by index)

# 1 frame set for 0(Victory) and

# set for 3 (Defeat). All other

# poses are animated.

 

# Advanced Individual Pose/Frame Hashes # Advanced Individual Poses uses

# hashes within hashes.

$poses_actor = {} #

$poses_enemy = {} #

#

 

 

# Individual Battler Settings

@mirror_enemies = true # Enemy battlers use reversed image

@stationary_enemies = false # If the enemies don't move while attacking

@stationary_actors = false # If the actors don't move while attacking

@calculate_speed = false # System calculates a mean/average speed

@phasing = false # Characters fade in/out while attacking

 

 

# * Movement Settings (Step-Forward / Final Fantasy-Style)

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

$rush_offset = 0 # How much additional space between battlers

$rush_attack = false # If true, battler steps forward to attack

$rush_skill = true # If true, battler steps forward to use skill

$rush_item = true # If true, battler steps forward to use item

 

 

# * Movement Arrays (Arrays for skill/weapon/item IDs that affect movement)

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

$moving_item_atk = [1] # Examples are items that need to be applied.

$moving_skill_atk = [57,61] # Examples are martial-arts and sneak attacks

$move2center_atk = [] # Moves battler to center based on weapon id!

$move2center_item = [5] # Moves battler to center for a big item atk!

$move2center_skill = [7] # Moves battler to center for a big skill atk!

 

 

# * Stationary Arrays (Arrays for skill/weapon/item IDs that halt movement)

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

# Array that holds the id # of skills, items or weapons that affect movement

$stationary_enemyid = [] # Enemies that don't RUN during melee attacks

@stationary_weapons = [17,18,19,20,21,22,23,24] # (examples are bows & guns)

@stationary_skills = [] # (examples are bows & guns)

@stationary_items = [] # (examples are bows & guns)

 

# Adaptation Switches

$RTAB_Connected_Attacking = false # Needed to be on if RTAB and Con. Attk.

 

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

 

# DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING

@frame, @pose = 0, 0

@last_time = 0

@last_move_time = 0

@battler_offset = 0

@skill_used = 0

@item_used = 0

$casted = false

$casting = false

@dying = true

@s_pose = false

$victory = false

@winning = true

cbs_initialize(viewport, battler)

viewport.z = 99

$formation = $formation_style

# Setting values called from EVENT scripts

$sv_mirror = $sideview_mirror

$sv_mirror = 0 if $sideview_mirror == nil

$max_member = $formation_max_member

$max_member = 4 if $formation_max_member == nil

$formation_top = $formation_max_height

$formation_top = 220 if $formation_max_height == nil

$formation_width = $formation_max_width

$formation_width = 128 if $formation_max_width == nil

$battlestat_height = $battlestatus_height

$battlestat_height = 160 if $battlestatus_height == nil

$formation = $formation_style

$formation = 0 if $formation_style == nil

# if Formation is random

if $formation == 8 then

$formation = rand(8).to_i

end

end

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

# * Update

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

alias cbs_update update

def update

return unless @battler

# Regular Update

cbs_update

# Reset hash for Advanced Pose/Frames

pose_temp = {}

# Start Routine

unless @started

@pose = state

 

if @battler.is_a?(Game_Enemy)

if not $default_enemy

if $default_enemy_id == nil

# Set up Spritesheet Standards

@width = @width / @frames

@height = @height / @poses

else

if not $default_enemy_id.include?(@battler.id)

@width = @width / @frames

@height = @height / @poses

end

end

end

end

 

if @battler.is_a?(Game_Actor)

if not $default_actor

if $default_actor_id == nil

# Set up Spritesheet Standards

@width = @width / @frames

@height = @height / @poses

else

if not $default_actor_id.include?(@battler.id)

@width = @width / @frames

@height = @height / @poses

end

end

end

end

 

@battler_offset = @width * 0.75

 

@display_x = @battler.screen_x

@display_y = @battler.screen_y

@display_z = @battler.screen_z

@destination_x = @display_x

@destination_y = @display_y

@destination_z = @display_z

self.opacity = 0

@started = true

end

 

# Cut Out Frame

# Enemy Battler Routine

if @battler.is_a?(Game_Enemy)

if $default_enemy

self.src_rect.set(@width * 0, @height * 0, @width, @height)

else

if $default_enemy_id !=nil

if $default_enemy_id.include?(@battler.id)

self.src_rect.set(@width * 0, @height * 0, @width, @height)

else

self.src_rect.set(@width * @frame, @height * @pose, @width, @height)

end

else

self.src_rect.set(@width * @frame, @height * @pose, @width, @height)

end

end

end

 

# Actor Battler Routine

if @battler.is_a?(Game_Actor)

if $default_actor

self.src_rect.set(@width * 0, @height * 0, @width, @height)

else

if $default_actor_id !=nil

if $default_actor_id.include?(@battler.id)

self.src_rect.set(@width * 0, @height * 0, @width, @height)

else

self.src_rect.set(@width * @frame, @height * @pose, @width, @height)

end

else

self.src_rect.set(@width * @frame, @height * @pose, @width, @height)

end

end

end

 

# Position Sprite

self.x = @display_x

self.y = @display_y

self.z = @display_z

self.ox = @width / 2

self.oy = @height

 

# Adjust sprite direction if facing the other way...

if $sv_mirror == 1

if @battler.is_a?(Game_Actor)

self.mirror = !!battler

else

if not @mirror_enemies

self.mirror = !!battler

end

end

else

if @battler.is_a?(Game_Enemy)

if @mirror_enemies

self.mirror = !!battler

end

end

end

 

# Setup Frames per Pose

poseframe = @frames_standard

poseframe = @frames_per_pose[@pose] if @frames_per_pose.include?(@pose)

# Set Advanced Poses for Actors

if @battler.is_a?(Game_Actor)

pose_temp = $poses_actor[@battler.id] if $poses_actor.include?(@battler.id)

poseframe = pose_temp[@pose] if pose_temp.include?(@pose)

end

# Set Advanced Poses for Enemies

if @battler.is_a?(Game_Enemy)

pose_temp = $poses_enemy[@battler.id] if $poses_enemy.include?(@battler.id)

poseframe = pose_temp[@pose] if pose_temp.include?(@pose)

end

 

# Setup Animation

time = Graphics.frame_count / (Graphics.frame_rate / @speed)

if @last_time < time

@frame = (@frame + 1) % poseframe

if @frame == 0

if @freeze

@frame = poseframe - 1

return

end

@pose = state

end

end

@last_time = time

# Setup Dying Animation

if @battler.dead?

if @dying == true

@pose = state

@dying = false

end

else

if @battler.is_a?(Game_Actor)

if @poses_setup != nil

if @s_pose == false

@pose = @poses_setup

@s_pose = true

end

end

if $victory == true

if @winning == true

@pose = state

@winning = false

end

end

end

end

 

# Move It

move if moving

end

 

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

# * Current State

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

def state

# Damage State

if [nil,{}].include?(@battler.damage)

# Battler Fine

@state = $p1

# Battler Wounded

@state = $p3 if @battler.hp < @battler.maxhp * @low_hp_percentage

# Battler Status-Effect

for i in @battler.states

@state = @poses_status if @poses_status.include?(i)

end

# If Battler Dead

if @battler.dead?

# If using default battlers or default collapse

if (@default_collapse_actor and @battler.is_a?(Game_Actor)) or

(@default_collapse_enemy and @battler.is_a?(Game_Enemy)) or

($default_actor and @battler.is_a?(Game_Actor)) or

($default_enemy and @battler.is_a?(Game_Enemy)) or

($default_enemy_id.include?(@battler.id) and @battler.is_a?(Game_Enemy)) or

($default_actor_id.include?(@battler.id) and @battler.is_a?(Game_Actor))

# Do absolutely nothing

else

# Use Poses system

if @poses_dying != nil

if @dying == true

@state = @poses_dying

else

@state = $p11

end

else

@state = $p11

end

# Fix Opacity

self.opacity = 255

end

end

end

 

# Casting State

if $casted

if @battler.rtp != 0

if @poses_casting != nil

@state = @poses_casting

end

end

end

 

# Victory State

if @battler.is_a?(Game_Actor)

if $victory

if @poses_winning != nil

if @winning == true

if not @battler.dead?

@state = @poses_winning

end

else

if not @battler.dead?

@state = $p10

if not @poses_winning_loops.include?(@battler.id)

@freeze = true

end

end

end

else

if not @battler.dead?

@state = $p10

if not @poses_winning_loops.include?(@battler.id)

@freeze = true

end

end

end

end

end

 

 

# Guarding State (not if dead OR in victory)

if not @battler.dead?

if not $victory

@state = $p4 if @battler.guarding?

end

end

# Moving State

if moving

# Adjust sprite direction if facing the other way...

if $sv_mirror == 1

# If enemy battler moving

if @battler.is_a?(Game_Enemy)

# Battler Moving Left

@state = $p5 if moving.eql?(0)

# Battler Moving Right

@state = $p6 if moving.eql?(1)

# Else actor battler moving

else

# Battler Moving Left

@state = $p6 if moving.eql?(0)

# Battler Moving Right

@state = $p5 if moving.eql?(1)

end

else

# If enemy battler moving

if @battler.is_a?(Game_Enemy)

# Battler Moving Left

@state = $p6 if moving.eql?(0)

# Battler Moving Right

@state = $p5 if moving.eql?(1)

# Else actor battler moving

else

# Battler Moving Left

@state = $p5 if moving.eql?(0)

# Battler Moving Right

@state = $p6 if moving.eql?(1)

end

end

end

# Return State

return @state

end

 

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

# * Move

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

def move

time = Graphics.frame_count / (Graphics.frame_rate.to_f / (@speed * 5))

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

difference_z = (@display_z - @destination_z).abs

# Done? Reset, Stop

if [difference_x, difference_y].max.between?(0, 8)

@display_x = @destination_x

@display_y = @destination_y

@display_z = @destination_z

@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

increment_z = increment_y

 

# 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

increment_z *= speed

end

 

# Multiply and Move

multiplier_x = (@destination_x - @display_x > 0 ? 8 : -8)

multiplier_y = (@destination_y - @display_y > 0 ? 8 : -8)

multiplier_z = (@destination_z - @display_z > 0 ? 8 : -8)

@display_x += (increment_x * multiplier_x).to_i

@display_y += (increment_y * multiplier_y).to_i

@display_z += (increment_z * multiplier_z).to_i

 

end

@last_move_time = time

end

 

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

# * Set Movement

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

def setmove(destination_x, destination_y, destination_z)

unless (@battler.is_a?(Game_Enemy) and @stationary_enemies) or

(@battler.is_a?(Game_Actor) and @stationary_actors)

unless @stationary_weapons.include?(@battler.weapon_id) or

@stationary_skills.include?(@skill_used) or

@stationary_items.include?(@item_used)

@original_x = @display_x

@original_y = @display_y

@original_z = @display_z

@destination_x = destination_x

@destination_y = destination_y

@destination_z = destination_z

end

end

end

 

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

# * Movement Check

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

def moving

if (@display_x != @destination_x and @display_y != @destination_y and !@battler.dead?)

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

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

if @derv_anim_bat_stack.nil?

@derv_anim_bat_stack = true

alias cbs_collapse collapse

def collapse

if @default_collapse_enemy

cbs_collapse if @battler.is_a?(Game_Enemy)

end

if @default_collapse_actor

cbs_collapse if @battler.is_a?(Game_Actor)

end

if $default_enemy

cbs_collapse if @battler.is_a?(Game_Enemy)

end

if $default_actor

cbs_collapse if @battler.is_a?(Game_Actor)

end

if $default_enemy_id != nil

if $default_enemy_id.include?(@battler.id)

cbs_collapse if @battler.is_a?(Game_Enemy)

end

end

if $defend_actor.id != nil

if $default_actor_id.include?(@battler.id)

cbs_collapse if @battler.is_a?(Game_Actor)

end

end

end

end

end

 

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

# ** Game_System

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

# This class handles data surrounding the system. Backround music, etc.

# is managed here as well. Refer to "$game_system" for the instance of

# this class.

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

 

class Game_System

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

# * Public Instance Variables

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

attr_accessor :sideview_mirror

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

# * Object Initialization

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

alias initialize_cbs_customize initialize

def initialize

# Call original initialization process

initialize_cbs_customize

@sideview_mirror = 0

end

end

 

 

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

# ** Game_Actor

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

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

# ($game_actors) and refers to the Game_Party class ($game_party).

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

 

class Game_Actor

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

# * Actor X Coordinate

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

def screen_x

# Determine minimum horizontal space between battlers

x_spacer = $formation_width / $max_member

if self.index != nil

case $formation

when 0 # DIAGONAL PATTERN 1

if $sv_mirror == 1

return self.index * -x_spacer + (($max_member+1)*x_spacer) #202

else

return self.index * x_spacer + (640-(($max_member+1)*x_spacer))#450

end

when 1 # DIAGONAL PATTERN 2

if $sv_mirror == 1

return self.index * x_spacer + x_spacer #64

else

return self.index * -x_spacer + (640-x_spacer*2) #576

end

when 2 # 2-ROW SLANT

if $sv_mirror == 1

if self.index < ($max_member/2)

return self.index + (($max_member+1)*x_spacer) + (x_spacer * self.index)

else

return self.index + (x_spacer * self.index) - x_spacer * 0.5

end

else

if self.index < ($max_member/2)

return self.index + (640-(($max_member+1)* x_spacer)) + (-x_spacer * self.index)

else

return self.index + (640-((x_spacer*0.5)-x_spacer)) + (-x_spacer * self.index)

end

end

when 3 # 2 ROW - SLANT

if $sv_mirror == 1

if self.index < ($max_member/2)

return self.index + (x_spacer/2)+(($max_member+1)* x_spacer) + (-x_spacer * self.index)

else

return self.index + (($max_member+1)* x_spacer) + (-x_spacer * self.index)

end

else

if self.index < ($max_member/2)

return self.index + 442 + (x_spacer * self.index)

else

return self.index + 430 + (x_spacer * self.index)

end

end

when 4 # Column Pattern 1

if $sv_mirror == 1

if ((self.index + 1) / 2) >= (((self.index + 1).to_f) / 2 )

return self.index + ($max_member*(x_spacer*1.5)) + (-(x_spacer*1.5) * (self.index-1))

else

return self.index + ($max_member*(x_spacer*1.5)) + (-(x_spacer*1.5) * self.index)

end

else

if ((self.index + 1) / 2) >= (((self.index + 1).to_f) / 2 )

return self.index + 640-($max_member*(x_spacer*1.5)) + ((x_spacer*1.5) * (self.index-1))

else

return self.index + 640-($max_member*(x_spacer*1.5)) + ((x_spacer*1.5) * self.index)

end

end

when 5 # Column Pattern 2

if $sv_mirror == 1

if ((self.index + 1) / 2) >= (((self.index + 1).to_f) / 2 )

return self.index + ($max_member*(x_spacer*1.5)) + (-(x_spacer*1.5) * (self.index-1))

else

return self.index + ($max_member*(x_spacer*1.5)) + (-(x_spacer*1.5) * self.index)

end

else

if ((self.index + 1) / 2) >= (((self.index + 1).to_f) / 2 )

return self.index + 640-($max_member*(x_spacer*1.5)) + ((x_spacer*1.5) * (self.index-1))

else

return self.index + 640-($max_member*(x_spacer*1.5)) + ((x_spacer*1.5) * self.index)

end

end

when 6 # Wave Formation 1

if $sv_mirror == 1

if self.index < ($max_member/2)

return 170

else

return 90

end

else

if self.index < ($max_member/2)

return 470

else

return 550

end

end

else # Wave Formation 2

if $sv_mirror == 1

if self.index < ($max_member/2)

return 170

else

return 90

end

else

if self.index < ($max_member/2)

return 470

else

return 550

end

end

end

else

return 0

end

end

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

# * Actor Y Coordinate

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

def screen_y

# Determine minimum vertical space between battlers

y_spacer = (480 - $battlestat_height - $formation_top) / $max_member

if self.index != nil

case $formation

when 0

return self.index * (y_spacer*1.25) + $formation_top

when 1

return self.index * (y_spacer*1.25) + $formation_top

when 2

if self.index < ($max_member/2)

return $formation_top + ((y_spacer*2.5) * self.index)

else

return ($formation_top - (y_spacer*($max_member+1))) + ((y_spacer*2.5) * self.index) #was 60

end

when 3

if self.index < ($max_member/2)

return $formation_top + ((y_spacer*2.5) * self.index)

else

return ($formation_top - (y_spacer*($max_member+1))) + ((y_spacer*2.5) * self.index) # was 60

end

when 4

if ((self.index + 1) / 2) >= (((self.index + 1).to_f) / 2 )

return $formation_top + ($battlestat_height/2)

else

return $formation_top + ($battlestat_height/6)

end

when 5

if ((self.index + 1) / 2) >= (((self.index + 1).to_f) / 2 )

return $formation_top + ($battlestat_height/6)

else

return $formation_top + ($battlestat_height /2)

end

when 6

if self.index < ($max_member/2)

return $formation_top + (y_spacer * 2.5 * self.index)

else

return $formation_top + (y_spacer * 2.5 * ((self.index) - ($max_member/2)))

end

else

if self.index < ($max_member/2)

return $formation_top + (y_spacer*2.5*(($max_member/2)-1))+ (y_spacer * 2.5 * -self.index)

else

return $formation_top + (y_spacer*2.5*(($max_member/2)-1)) + (y_spacer * 2.5 * -((self.index) - ($max_member/2)))

end

end

end

end

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

# * Actor Z Coordinate

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

def screen_z

return screen_y

end

end

 

 

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

# ** Game_Enemy

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

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

# ($game_troop).

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

 

class Game_Enemy < Game_Battler

def screen_x

if self.index != nil

if $sv_mirror == 1

return 640 - $data_troops[@troop_id].members[@member_index].x

else

return $data_troops[@troop_id].members[@member_index].x

end

end

end

end

 

 

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

# ** Scene_Battle

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

# This class performs battle screen processing.

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

 

class Scene_Battle

 

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

# * Make Skill Action Results (alias used to determine skill used)

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

alias make_skill_action_result_anim make_skill_action_result

def make_skill_action_result(battler = @active_battler, plus_id = 0)

@rtab = !@target_battlers

if $RTAB_Connected_Attacking

make_skill_action_result_anim(battler, plus_id)

else

@rtab ? make_skill_action_result_anim(battler) : make_skill_action_result_anim

end

@skill_used = @skill.id

end

 

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

# * Make Item Action Results (alias used to determine item used)

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

alias make_item_action_result_anim make_item_action_result

def make_item_action_result(battler = @active_battler)

@rtab = !@target_battlers

@rtab ? make_item_action_result_anim(battler) : make_item_action_result_anim

@item_used = @item.id

@item_usage = @item.scope

end

 

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

# * Frame Update (main phase step 1 : action preparation) (Casting Routine)

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

alias update_phase4_step1_anim update_phase4_step1

def update_phase4_step1(battler = @active_battler)

@rtab = !@target_battlers

if $rtab_detected == true

update_phase4_step1_anim(battler)

if battler.current_action.kind == 1 and

(not battler.current_action.forcing or @force != 2)

if battler.rtp != 0

$casted = true

end

end

else

update_phase4_step1_anim

end

end

 

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

# * 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]

 

# If enemy is a default battler

if battler.is_a?(Game_Enemy)

if $default_enemy

if @rtab then battler.white_flash = true end

if @rtab then battler.wait = 10 end

end

if $default_enemy_id != nil

if $default_enemy_id.include?(@battler.id)

if @rtab then battler.white_flash = true end

if @rtab then battler.wait = 10 end

end

end

end

# If actor is a default battler

if battler.is_a?(Game_Actor)

if $default_actor

if @rtab then battler.white_flash = true end

if @rtab then battler.wait = 10 end

end

if $default_actor_id != nil

if $default_actor_id.include?(@battler.id)

if @rtab then battler.white_flash = true end

if @rtab then battler.wait = 10 end

end

end

end

 

# Set values and poses based on Action

case battler.current_action.kind

when 0 # Attack

rush_type = $rush_attack

full_moving = true ; if rush_type; full_moving = false; end

if $move2center_atk.include?(battler.weapon_id); center_move=true ; end

if $stationary_enemyid.include?(battler.id) and battler.is_a?(Game_Enemy)

full_moving = false

center_move = false

rush_type = false

end

if battler.current_action.basic == 2

# If escaping, disable all movement

full_moving = false

center_move = false

rush_type = false

end

base_pose = $p7

base_pose = $poses_weapons[battler.weapon_id] if $poses_weapons.include?(battler.weapon_id)

if battler.current_action.basic == 2

base_pose = $poses_escaping if $poses_escaping != nil

end

 

when 1 # Skill

rush_type = $rush_skill

if $moving_skill_atk.include?(@skill_used) ; full_moving = true ; end

if $move2center_skill.include?(@skill_used) ; center_move = true ; end

base_pose = $p9

base_pose = $poses_skills[@skill_used] if $poses_skills.include?(@skill_used)

when 2 # Item

rush_type = $rush_item

if $moving_item_atk.include?(@item_used) or @item_scope == 1..2 ; full_moving = true ; end

if $move2center_item.include?(@item_used); center_move = true; end

base_pose = $p8

base_pose = $poses_items[@item_used] if $poses_items.include?(@item_used)

end

 

# Control Movement and use current pose

@moved = {} unless @moved

return if @spriteset.battler(battler).moving

if not (@moved[battler] or battler.guarding?)

offset = offset_value(battler)

if rush_type # Steps forward

@spriteset.battler(battler).setmove(battler.screen_x - offset, battler.screen_y + 1, battler.screen_z)

end

if full_moving # Runs to target

@spriteset.battler(battler).setmove(target.screen_x + offset, target.screen_y - 1, target.screen_z + 10)

end

if center_move # Runs to center

@spriteset.battler(battler).setmove(320+(offset/4), battler.screen_y-1, battler.screen_z)

end

@moved[battler] = true

return

@spriteset.battler(battler).pose = base_pose

elsif not battler.guarding?

@spriteset.battler(battler).pose = base_pose

@spriteset.battler(battler).setmove(battler.screen_x, battler.screen_y, battler.screen_z)

end

 

# Finish Up Skill and Item Use

case battler.current_action.kind

when 1

# Flag system that skill was used

$casted = false

$casting = false

@spriteset.battler(battler).skill_used = 0

when 2

# Flag system that item was used

@spriteset.battler(battler).item_used = 0

end

 

# Battle_Charge value for BattleCry script

$battle_charge = true

 

# Done

@moved[battler] = false

@rtab ? cbs_update_phase4_step3(battler) : cbs_update_phase4_step3

end

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

# * Offset Calculation

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

def offset_value(battler = @active_battler)

offst = @spriteset.battler(battler).battler_offset

offst += $rush_offset

if $sv_mirror == 1

offset = (battler.is_a?(Game_Actor) ? -(offst) : offst)

else

offset = (battler.is_a?(Game_Actor) ? offst : -(offst))

end

return offset

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)

critical = (@rtab ? target.critical[battler] : target.critical)

if damage.is_a?(Numeric) and damage > 0

@spriteset.battler(target).pose = $p2

if critical == true

@spriteset.battler(target).pose = $poses_critical if $poses_critical != nil

end

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?

$victory = true

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

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

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

# the Scene_Battle class.

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

 

class Spriteset_Battle

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

# * Change Enemy Viewport

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

alias cbs_initialize initialize

def initialize

cbs_initialize

if @real_zoom != nil

$rtab_detected = true

end

@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

end

end

 

 

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

# ** Arrow_Base

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

# This sprite is used as an arrow cursor for the battle screen. This class

# is used as a superclass for the Arrow_Enemy and Arrow_Actor classes.

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

 

class Arrow_Base < Sprite

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

# * Reposition Arrows

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

alias cbs_initialize initialize

def initialize(viewport)

cbs_initialize(viewport)

self.ox = 14

self.oy = 10

end

end

 

War Vegetables

Pagina del Progetto: War Vegetables - Progetti MV - Rpg²S Forum (rpg2s.net)

Pagina Instagram: https://www.instagram.com/warvegetables/?hl=it

YouTube: https://www.youtube.com/channel/UCIVnrwNtklrKGwHLS9pDwkQ

http://www.rpg2s.net/cover_contest/icons/cc_5.png

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Non so la dico così al volo, magari funziona...se usi cambia grafica di battaglia e metti una grafica vuota? :D

^ ^

(\_/)
(^ ^) <----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

  • 0
Ok, ti è consentito sfottermi perchè non ci ho pensato prima... che idiota XD

War Vegetables

Pagina del Progetto: War Vegetables - Progetti MV - Rpg²S Forum (rpg2s.net)

Pagina Instagram: https://www.instagram.com/warvegetables/?hl=it

YouTube: https://www.youtube.com/channel/UCIVnrwNtklrKGwHLS9pDwkQ

http://www.rpg2s.net/cover_contest/icons/cc_5.png

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...