Jump to content
Rpg²S Forum
  • 0

Sportello aiuti veloci VX-Ace


Guardian of Irael
 Share

Question

Date le nuove features presenti nel VX-Ace è stato deciso di aprire uno sportello aiuti veloci anche per questo tool! ^ ^

Le regole sono le stesse:

 

postate qui le vostre domande così da non aprire diecimila topic uguali e riceverete entro breve la vostra risposta.

 

ISTRUZIONI

 

Le domande devono essere scritte in grassetto e in un colore visibile (possibilmente ROSSO) precedute da una "D" maiuscola

 

La risposta deve essere preceduta da una "R" maiuscola e NON in grassetto.

 

Esempio:

 

D: Come posso cambiare il nome all'eroe tramite evento?

 

R: prima pagina dei "comandi eventi", colonna a destra, secondo bottone partendo dal basso.

 

^ ^

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

Recommended Posts

  • 0

Capisco. In caso posta lo script che usi e quello che hai creato per l'unione, così chi è esperto di script se passa di qui saprà dirti di più in proposito.

^ ^

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

 

 

 

#------------------------------------------------------------------------------#
#  Galv's Animated Battlers
#------------------------------------------------------------------------------#
#  For: RPGMAKER VX ACE
#  Version 1.2
#------------------------------------------------------------------------------#
#  2014-01-17 - Version 1.2 - compatibility fix when using with Actor Duel Game
#  2013-05-06 - Version 1.1 - added move speed for melee attacks
#  2013-05-04 - Version 1.0 - release
#------------------------------------------------------------------------------#
#  Holder's animated battler spritesheets can be found here:
#  http://animatedbattlers.wordpress.com/
#------------------------------------------------------------------------------#
#  This is just another animated battler script that uses holder-style animated
#  battler sheets. There are better ones out there, this one is just my basic
#  implementation in an attempt to continue improving my scripting.
#
#  This script works in the default battle system but is optimised for use with
#  Yanfly's battle script. Not tested with other battle scripts. Put this script
#  below any battle scripts you try it with.
#------------------------------------------------------------------------------#
 
#------------------------------------------------------------------------------#
#  Note tag for ENEMIES and ACTORS
#------------------------------------------------------------------------------#
#
#  <battler: filename>    # filename is the animated spritesheet located in
#                         # /Graphics/Battlers/
#                         # Required for actors, optional for enemies.
#
#  <stationary_sub>       # will not re-position themselves in front of an ally
#                         # they are covering/substituting for.
#
#------------------------------------------------------------------------------#
 
#------------------------------------------------------------------------------#
#  Note tags for SKILLS, ITEMS and STATES
#------------------------------------------------------------------------------#
#
#  <pose: x>    # The skill, item or state will use x pose row.
#               # If a skill does not have this tag, it will use row 6.
#               # If an item does not have this tag, it will use row 5.
#               # If a state does not have this tag, it will use row 2. If a
#               # battler has multiple states, it uses the highest priority.
#
#------------------------------------------------------------------------------#
 
#------------------------------------------------------------------------------#
#  Note tag for SKILLS, ITEMS and ACTORS
#------------------------------------------------------------------------------#
#
#  <melee: x>  # Normal attacks for Actors, items being used or skills being
#              # used that have this tag will make the actor dash into close
#              # range before doing the action. x is the dash speed.
#              # 0 = instant.  1 is slow, higher numbers is faster
#
#------------------------------------------------------------------------------#
 
#------------------------------------------------------------------------------#
#  SCRIPT CALLS
#------------------------------------------------------------------------------#
#
#
#  change_battler(id,"filename")  # Changes actor's animated battler sheet.
#------------------------------------------------------------------------------#
#
#
#
#
#
#
# QUI PENSAVO DI INSERIRE QUALCOSA PER CREARE L'IMMAGINE DATA DALL'UNIONE 
# DEGLI SPRITE DEI PEZZI DI ARMATURA
#
#
#
#
#
#------------------------------------------------------------------------------#
 
($imported ||= {})["Galv_Animated_Battlers"] = true
module GALV_BAT
  
#-------------------------------------------------------------------------------
#
#  * SETTINGS
#
#-------------------------------------------------------------------------------
  
  COLS = 4             # How many columns your animated spritesheet uses
  ROWS = 14            # How many rows your animated spritesheet uses
  
  ENEMY_FLIP = true    # true = flip enemy battler image horizontally
  ACTOR_FLIP = false   # true = flip actor battler image horizonatally
  
  HP_CRISIS = 0.25     # Remaining hp before poor status pose (0.25 = 25%)
  
  ONE_ANIM = [3,4,5,6,7,11]  # Poses that will NOT keep repeating their frames
 
 
  XOFFSET = 80    # horizonatal distance from opponent when using <melee: x>
  YOFFSET = 0     # vertical distance from opponent when using <melee: x>
  
  SXOFFSET = 40   # horizontal distance from ally when substituting
  SYOFFSET = 0    # vertical distance from ally when substituting
  
#------------------------------------------------------------------------------#
  ACTOR_POSITIONS = [ # don't touch
#------------------------------------------------------------------------------#
#  Set x,y locations of your actors on the battle screen
#------------------------------------------------------------------------------#
 
    [400,280],   # Party member 1 [x,y]
    [430,260],   # Party member 2 [x,y]
    [450,283],   # Party member 3 [x,y]
    [500,260],   # Party member 4 [x,y]
 
#------------------------------------------------------------------------------#
  ] #don't touch
#------------------------------------------------------------------------------#
 
#-------------------------------------------------------------------------------
#  POSES USED FOR SPECIAL ACTIONS:
#-------------------------------------------------------------------------------
 
   COUNTER_ATTACK = 4       # Pose when counter attacking
   MAGIC_REFLECT  = 7       # Pose when reflecting magic 
   EVASION        = [9,8]   # Move back then move forward poses to evade.
 
#-------------------------------------------------------------------------------
#  POSE INFORMATION:
#------------------------------------------------------------------------------#
#  DEFAULT SPRITESHEET POSES (HOLDER SETUP)
#------------------------------------------------------------------------------#
#  ROW     POSE              
#
#   0      Idle
#   1      Guard
#   2      Poor Status
#   3      Get hit
#   4      Normal Attack
#   5      Use Item
#   6      Use Skill
#   7      Use Magic
#   8      Move toward
#   9      Move back
#   10     Victory
#   11     Battle Start
#   12     Dead
#   13     Spritesheet Info
#------------------------------------------------------------------------------#
 
#-------------------------------------------------------------------------------
#
#  * END SETTINGS
#
#-------------------------------------------------------------------------------
 
end
 
#------------------------------------------------------------------------------#
#  OVERWRITTEN METHODS
#------------------------------------------------------------------------------#
#  class Spriteset_Battle
#    - create_enemies
#    - create_actors
#    - update_actors
#------------------------------------------------------------------------------#
 
 
    #----------------------#
#---|   GAME_INTERPRETER   |----------------------------------------------------
    #----------------------#
 
class Game_Interpreter
  def change_battler(id,name )
    $game_actors[id].animated_battler = name
  end
end # Game_Interpreter
 
 
    #-------------------#
#---|   RPG::BASEITEM   |-------------------------------------------------------
    #-------------------#
 
class RPG::BaseItem
  def pose
    if @pose.nil?
      if @note =~ /<pose: (.*)>/i
        @pose = $1.to_i
      else
        @pose = nil
      end
    end
    @pose
  end
end # RPG::BaseItem
 
 
    #----------------------#
#---|   GAME_BATTLERBASE   |----------------------------------------------------
    #----------------------#
 
class Game_BattlerBase
  alias galv_animb_gbb_appear appear
  def appear
    return if SceneManager.scene_is?(Scene_Map)
    galv_animb_gbb_appear
  end
end # Game_BattlerBase
 
 
    #------------------#
#---|   GAME_BATTLER   |--------------------------------------------------------
    #------------------#
 
class Game_Battler < Game_BattlerBase
  attr_accessor :animated_battler
  attr_accessor :pose
  attr_accessor :freeze_pose
  attr_accessor :bactivated
  attr_accessor :move_target
  attr_accessor :orx
  attr_accessor :ory
  attr_accessor :reset_pose
  attr_accessor :move_speed
  
  def setup_animated_battler
    @pose = 0
    @move_speed = 0
    char = actor? ? actor : enemy
    @animated_battler = $1 if char.note =~ /<battler:[ ](.*)>/i
  end
  
  def do_pose(col)
    @reset_pose = true
    @pose = col
    @freeze_pose = true if GALV_BAT::ONE_ANIM.include?(@pose)
  end
  
  alias galv_animb_gbgbb_on_turn_end on_turn_end
  def on_turn_end
    galv_animb_gbgbb_on_turn_end
    set_idle_pose
  end
  
  alias galv_animb_gbgbb_on_action_end on_action_end
  def on_action_end
    galv_animb_gbgbb_on_action_end
    set_idle_pose
  end
  
  def set_idle_pose
    return if !@bactivated
    if death_state?
      do_pose(12)
    elsif guard?
      do_pose(1)
    elsif !@states.empty?
      do_pose(state_pose)
    elsif low_life?
      do_pose(2)
    else
      do_pose(0)
    end
    @freeze_pose = false unless GALV_BAT::ONE_ANIM.include?(@pose)
  end
  
  def low_life?
    @hp < (mhp * GALV_BAT::HP_CRISIS)
  end
  
  def state_pose
    prio = 0
    prio_state = 0
    @states.each { |sid|
      if $data_states[sid].priority > prio
        prio_state = sid
        prio = $data_states[sid].priority
      end
    }
    if prio_state <= 0 || !$data_states[prio_state].pose
      return 2
    else
      $data_states[prio_state].pose
    end
  end
 
  alias galv_animb_gbgbb_add_state add_state
  def add_state(state_id)
    galv_animb_gbgbb_add_state(state_id)
    set_idle_pose
  end
  
  alias galv_animb_gbgbb_remove_state remove_state
  def remove_state(state_id)
    dead = dead?
    galv_animb_gbgbb_remove_state(state_id)
    set_idle_pose if state_id != 1 && !dead? || dead
  end
  
  alias galv_animb_gbgbb_execute_damage execute_damage
  def execute_damage(user)
    perform_get_hit if @result.hp_damage > 0
    galv_animb_gbgbb_execute_damage(user)
    if !$imported["YEA-BattleEngine"]
      SceneManager.scene.wait(15)
      set_idle_pose
    end
  end
  
  def perform_get_hit
    if !dead? && !guard? && $game_party.in_battle && @animated_battler
      do_pose(3)
      @sprite_effect_type = :get_hit
    end
  end
  
  def perform_counter_attack
    if !dead? && $game_party.in_battle && @animated_battler
      do_pose(GALV_BAT::COUNTER_ATTACK)
      @sprite_effect_type = :counter_attack
    end
  end
  
  def perform_magic_reflect
    if !dead? && $game_party.in_battle && @animated_battler
      do_pose(GALV_BAT::MAGIC_REFLECT)
      @sprite_effect_type = :counter_attack
    end
  end
 
  def perform_victory
    if !dead? && @animated_battler
      do_pose(10)
    end
  end
 
  def perform_enter_battle
    @bactivated = true
    if !dead? && @animated_battler
      @pose = 11
      @sprite_effect_type = :enter_battle
    end
  end
  
  def perform_dash(dash_type,target)
    if !dead? && @animated_battler
      @move_target = target
      pose = dash_type == :dash_forward ? 8 : 9
      do_pose(pose)
      @sprite_effect_type = dash_type
    end
  end
  
  def perform_travel(dash_type,target,speed)
    @move_target = target
    @move_speed = speed
    do_pose(8)
    @sprite_effect_type = dash_type
  end
  
  def moving?
    @move_speed > 0
  end
  
  def perform_dodge
    if !dead? && @animated_battler
      do_pose(GALV_BAT::EVASION[0])
      @sprite_effect_type = :dodge
    end
  end
 
  alias galv_animb_gbgbb_on_battle_start on_battle_start
  def on_battle_start
    perform_enter_battle
    galv_animb_gbgbb_on_battle_start
  end
 
  def init_animated_battler(i)
    @sprite_effect_type = :appear
    @bactivated = false
    @pose = alive? ? 11 : 12
    if actor?
      @screen_x = GALV_BAT::ACTOR_POSITIONS[i][0]
      @orx = GALV_BAT::ACTOR_POSITIONS[i][0]
      @screen_y = GALV_BAT::ACTOR_POSITIONS[i][1]
      @ory = GALV_BAT::ACTOR_POSITIONS[i][1]
    else
      @orx = @screen_x
      @ory = @screen_y
    end
  end
  
  def reinit_battler(i)
    if actor?
      @screen_x = GALV_BAT::ACTOR_POSITIONS[i][0]
      @orx = GALV_BAT::ACTOR_POSITIONS[i][0]
      @screen_y = GALV_BAT::ACTOR_POSITIONS[i][1]
      @ory = GALV_BAT::ACTOR_POSITIONS[i][1]
    else
      @orx = @screen_x
      @ory = @screen_y
    end
    @bactivated = true
  end
  
  alias galv_animb_gbgbb_item_apply item_apply
  def item_apply(user, item)
    galv_animb_gbgbb_item_apply(user, item)
    if @result.evaded
      perform_dodge
    end
  end
end # Game_Battler < Game_BattlerBase
 
 
    #----------------#
#---|   GAME_ACTOR   |----------------------------------------------------------
    #----------------#
 
class Game_Actor < Game_Battler
  attr_accessor :screen_x
  attr_accessor :screen_y
  
  def screen_x; screen_x = @screen_x; end
  def screen_y; screen_y = @screen_y; end
  def screen_z; 100; end
  
  alias galv_animb_gagb_initialize initialize
  def initialize(actor_id)
    galv_animb_gagb_initialize(actor_id)
    setup_animated_battler
    @screen_x = 0
    @screen_y = 0
  end
  
  def sub_pose(target)
    if !dead? && @animated_battler
      return if $data_actors[@actor_id].note =~ /<stationary_sub>/i
      @screen_x = target.screen_x - GALV_BAT::SXOFFSET
      @screen_y = target.screen_y - GALV_BAT::SYOFFSET
      @sprite_effect_type = :substitute
    end
  end
  
  def return_to_position
    if !dead? && @animated_battler
      @screen_x = @orx
      @screen_y = @ory
    end
  end
end # Game_Actor < Game_Battler
 
 
    #----------------#
#---|   GAME_ENEMY   |----------------------------------------------------------
    #----------------#
 
class Game_Enemy < Game_Battler
  alias galv_animb_gegb_initialize initialize
  def initialize(index, enemy_id)
    galv_animb_gegb_initialize(index, enemy_id)
    setup_animated_battler
  end
  
  def sub_pose(target)
    if !dead? && @animated_battler
      return if $data_enemies[@enemy_id].note =~ /<stationary_sub>/i
      @screen_x = target.screen_x + GALV_BAT::SXOFFSET
      @screen_y = target.screen_y + GALV_BAT::SYOFFSET
      @sprite_effect_type = :substitute
    end
  end
  
  def return_to_position
    if !dead? && @animated_battler
      @screen_x = @orx
      @screen_y = @ory
    end
  end
end # Game_Enemy < Game_Battler
 
 
    #-------------------#
#---|   BATTLEMANAGER   |-------------------------------------------------------
    #-------------------#
 
module BattleManager
  class << self
    alias galv_animb_bm_process_victory process_victory
  end
  
  def self.process_victory
    $game_party.battle_members.each { |actor| actor.perform_victory }
    galv_animb_bm_process_victory
  end
end # BattleManager
 
 
    #------------------#
#---|   SCENE_BATTLE   |--------------------------------------------------------
    #------------------#
 
class Scene_Battle < Scene_Base
  alias galv_animb_sbsb_start start
  def start
    position_battlers
    galv_animb_sbsb_start
  end
 
  def position_actors
    $game_party.battle_members.each_with_index { |battler,i|
      battler.reinit_battler(i)
    }
    @spriteset.refresh_actors
  end
  
  def position_battlers
    galv_all_battle_members.each_with_index { |battler,i|
      battler.init_animated_battler(i)
    }
  end
  
  def galv_all_battle_members
    $game_party.battle_members + $game_troop.members
  end
  
  alias galv_animb_sbsb_show_animation show_animation
  def show_animation(targets, animation_id)
    @move_target = targets[0]
    check_dash
    set_pose
    galv_animb_sbsb_show_animation(targets, animation_id)
  end
  
  def check_dash
    move = move_to_target
    if move > 0
      @subject.perform_travel(:move_forward,@move_target,move)
      update_for_wait while @subject.moving?
    elsif move == 0
      @subject.perform_dash(:dash_forward,@move_target)
      wait(30)
    end
  end
  
  def move_to_target
    return -1 if no_action && !@moveitem
    @moveitem ||= @subject.current_action.item
    return $1.to_i if @moveitem.note =~ /<melee: (.*)>/i
    if @moveitem.is_a?(RPG::Skill) && @moveitem.id == 1
      char = @subject.actor? ? $data_actors[@subject.id] : 
        $data_enemies[@subject.enemy_id]
      return $1.to_i if char.note =~ /<melee: (.*)>/i
    end
    return -1
  end
  
  def no_action
    !@subject || !@subject.current_action || !@subject.current_action.item
  end
  
  alias galv_animb_sbsb_process_action_end process_action_end
  def process_action_end
    if @subject.screen_x != @subject.orx
      @subject.perform_dash(:dash_back,@subject)
      wait(25)
    end
    galv_animb_sbsb_process_action_end
    @moveitem = nil
  end
  
  alias galv_animb_sbsb_invoke_counter_attack invoke_counter_attack
  def invoke_counter_attack(target,item)
    target.perform_counter_attack
    galv_animb_sbsb_invoke_counter_attack(target,item)
  end
  
  alias galv_animb_sbsb_invoke_magic_reflection invoke_magic_reflection
  def invoke_magic_reflection(target, item)
    target.perform_magic_reflect
    galv_animb_sbsb_invoke_magic_reflection(target, item)
  end
    
  def set_pose
    return if no_action
    item = @subject.current_action.item
    if item.is_a?(RPG::Skill)
      case item.id
      when 2  # guard
        @subject.do_pose(1)
      when 1  # attack
        @subject.do_pose(4)
        wait(20) if $imported["YEA-BattleEngine"]
      else
        unique = item.pose ? item.pose : 6
        @subject.do_pose(unique)
      end
    elsif item.is_a?(RPG::Item)
      unique = item.pose ? item.pose : 5
      @subject.do_pose(unique)
      wait(30) if $imported["YEA-BattleEngine"]
    end
  end
end # Scene_Battle < Scene_Base
 
 
    #----------------------#
#---|   WINDOW_BATTLELOG   |----------------------------------------------------
    #----------------------#
 
class Window_BattleLog < Window_Selectable
  alias galv_animb_wblws_display_substitute display_substitute
  def display_substitute(substitute, target)
    substitute.sub_pose(target)
    galv_animb_wblws_display_substitute(substitute, target)
  end
end
 
 
    #----------------------#
#---|   SPRITESET_BATTLE   |----------------------------------------------------
    #----------------------#
 
class Spriteset_Battle
  #OVERWRITE
  def create_enemies
    @enemy_sprites = $game_troop.members.reverse.collect do |enemy|
      if enemy.animated_battler
        Sprite_AnimBattler.new(@viewport1, enemy)
      else
        Sprite_Battler.new(@viewport1, enemy)
      end
    end
  end
  
  # OVERWRITE
  def create_actors
    @actor_sprites = $game_party.battle_members.reverse.collect do |actor|
      Sprite_ActorBattler.new(@viewport1, actor)
    end
  end
  
  # OVERWRITE
  def update_actors
    need_update = false
    @actor_sprites.each_with_index do |sprite, i|
      sprite.battler = $game_party.battle_members[i]
      if sprite.battler
        sprite.update
      else
        need_update = true
      end
    end
    need_update = true if @actor_sprites.count < $game_party.battle_members.count
    if need_update
      SceneManager.scene.position_actors
    end
  end
  
  def refresh_actors
    dispose_actors
    create_actors
  end
end # Spriteset_Battle
 
 
    #--------------------#
#---|   SPRITE_BATTLER   |------------------------------------------------------
    #--------------------#
 
class Sprite_Battler < Sprite_Base
  alias galv_animb_spritebsb_update update
  def update
    if @battler && @battler.animated_battler && @galv_animb
      super
    else
      galv_animb_spritebsb_update
    end
  end
end # Sprite_Battler < Sprite_Base
 
 
    #------------------------#
#---|   SPRITE_ANIMBATTLER   |--------------------------------------------------
    #------------------------#
 
class Sprite_AnimBattler < Sprite_Battler
  def initialize(viewport, battler = nil)
    init_variables
    super(viewport,battler)
  end
 
  def init_variables
    @pattern = 0
    @speed_timer = 0
    @pose = 0
    @galv_animb = true
  end
 
  def update
    if @battler && @battler.animated_battler
      update_bitmap
      update_pose
      update_src_rect
      update_anim
      update_position
      setup_new_effect
      setup_new_animation
      update_effect
    end
    super
  end
 
  def update_bitmap
    new_bitmap = Cache.battler(@battler.animated_battler,
      @battler.battler_hue)
    if bitmap != new_bitmap
      self.bitmap = new_bitmap
      spritesheet_normal
      init_visibility
    end
  end
 
  def spritesheet_normal
    @cw = bitmap.width / GALV_BAT::COLS
    @ch = bitmap.height / GALV_BAT::ROWS
    self.ox = @cw / 2
    self.oy = @ch
    set_mirror
  end
 
  def set_mirror
    self.mirror = GALV_BAT::ENEMY_FLIP
  end
 
  def update_pose
    if @pose != @battler.pose
      @pattern = 0
      @pose = @battler.pose
    end
    if @battler.reset_pose
      @pose = 0
      @battler.reset_pose = false
    end
  end
 
  def update_src_rect
    if @pattern >= GALV_BAT::COLS
      @pattern = 0 unless freeze_pose?
    end
    sx = @pattern * @cw
    sy = @battler.pose * @ch
    self.src_rect.set(sx, sy, @cw, @ch)
  end
 
  def freeze_pose?
    @battler.freeze_pose && @pattern == GALV_BAT::COLS - 1
  end
 
  def update_anim
    return if !@battler.bactivated
    @speed_timer += 1
    if @speed_timer > 8
      @pattern += 1 unless freeze_pose?
      @speed_timer = 0
    end
  end
 
  def update_position
    self.x = @battler.screen_x
    self.y = @battler.screen_y
    self.z = @battler.screen_z
  end
 
  def start_effect(effect_type)
    @effect_type = effect_type
    case @effect_type
    when :counter_attack,:magic_reflect,:get_hit
      @effect_duration = 40
      @battler_visible = true
    when :enter_battle
      @effect_duration = 35
      @battler_visible = true
    when :dash_forward,:dash_back
      @effect_duration = 15
      @battler_visible = true
    when :move_forward
      @effect_duration = 500
      @move_duration = @effect_duration
      @battler_visible = true
    when :dodge
      @effect_duration = 20
      @battler_visible = true
    when :substitute
      @effect_duration = 20
      @battler_visible = true
    end
    super
  end
 
  def update_effect
    if @effect_duration > 0
      case @effect_type
      when :get_hit, :substitute
        update_generic_pose
      when :counter_attack,:magic_reflect
        update_counter
      when :enter_battle
        update_enter_battle
      when :dash_forward
        update_dash_forward
      when :move_forward
        update_move_forward
      when :dash_back
        update_dash_back
      when :dodge
        update_dodge
      end
    end
    super
  end
 
  def revert_to_normal
    return if do_revert?
    super
    spritesheet_normal
  end
  
  def do_revert?
    @effect_type == :whiten || @battler.dead?
  end
 
  def update_generic_pose
    if @effect_duration == 1
      @battler.return_to_position
      @battler.set_idle_pose
    end
  end
  
  def xoff; @battler.actor? ? GALV_BAT::XOFFSET : -GALV_BAT::XOFFSET; end
  def yoff; @battler.actor? ? GALV_BAT::YOFFSET : -GALV_BAT::YOFFSET; end
 
  def update_dash_forward
    if @battler.actor? && @battler.screen_x > Graphics.width / 2
      @battler.screen_x -= 3
    elsif @battler.enemy? && @battler.screen_x < Graphics.width / 2
      @battler.screen_x += 3
    end
    update_disappear
    if @effect_duration == 1
      @battler.screen_x = @battler.move_target.screen_x + xoff
      @battler.screen_y = @battler.move_target.screen_y + yoff
      start_effect(:appear)
    end
  end
  
  def update_dash_back
    if @battler.actor? && @battler.screen_x < Graphics.width / 2
      @battler.screen_x += 3
    elsif @battler.enemy? && @battler.screen_x > Graphics.width / 2
      @battler.screen_x -= 3
    end
    update_disappear
    if @effect_duration == 1
      @battler.screen_x = @battler.move_target.orx
      @battler.screen_y = @battler.move_target.ory
      start_effect(:appear)
    end
  end
  
  def update_move_forward
    if @battler.actor?
      @battler.screen_x -= x_difference(@battler,@battler.move_target)
    elsif @battler.enemy?
      @battler.screen_x += x_difference(@battler,@battler.move_target)
    end
    @battler.screen_y += y_difference(@battler,@battler.move_target)
  end
 
  def y_difference(bat,tar)
    yof = bat.actor? ? yoff : -yoff
    y_diff = bat.ory - (tar.screen_y + yof)
    x_diff = bat.orx - (tar.screen_x + xoff)
    y_move = y_diff.to_f / (x_diff.to_f / [@battler.move_speed,1].max).to_f
    return bat.actor? ? -y_move : y_move
  end
  
  def x_difference(bat,tar)
    if bat.actor? && bat.screen_x <= (tar.screen_x + xoff) ||
        bat.enemy? && bat.screen_x >= (tar.screen_x + xoff)
      @battler.move_speed = 0
      @effect_duration = 1
      return 0
    end
    return @battler.move_speed
  end
  
  def update_dodge
    if @effect_duration == 1
      @battler.screen_x = @battler.orx
      @battler.screen_y = @battler.ory
      @battler.set_idle_pose
    elsif @effect_duration >= 10
      @battler.actor? ? @battler.screen_x += 3 : @battler.screen_x -= 3
    else
      @battler.pose = GALV_BAT::EVASION[1]
      @battler.actor? ? @battler.screen_x -= 3 : @battler.screen_x += 3
    end
  end
 
  def update_enter_battle
    if @effect_duration == 1
      @battler.bactivated = true
      @battler.set_idle_pose
    end
  end
 
  def update_counter
    self.color.set(255, 255, 255, 0)
    self.color.alpha = 128 - (26 - @effect_duration) * 10
    @battler.set_idle_pose if @effect_duration == 1
  end
 
  def update_collapse; end
end # Sprite_AnimBattler < Sprite_Base
 
 
    #-------------------------#
#---|   SPRITE_ACTORBATTLER   |-------------------------------------------------
    #-------------------------#
 
class Sprite_ActorBattler < Sprite_AnimBattler
  def initialize(viewport, battler = nil)
    super(viewport,battler)
  end
  
  def dispose; super; end
  def update; super; end
 
  def set_mirror
    self.mirror = GALV_BAT::ACTOR_FLIP
  end
 
  def update_position
    self.x = @battler.screen_x
    self.y = @battler.screen_y
    self.z = @battler.screen_z
  end
  
  def init_visibility
    self.opacity = 255
  end
end # Sprite_ActorBattler < Sprite_AnimBattler
 
 
    #------------------------#
#---|   WINDOW_BATTLEENEMY   |--------------------------------------------------
    #------------------------#
 
class Window_BattleEnemy < Window_Selectable
  if $imported["YEA-BattleEngine"]
    def create_flags
      set_select_flag(:any)
      select(-1)
      return if $game_temp.battle_aid.nil?
      if $game_temp.battle_aid.need_selection?
        select(-1)
      elsif $game_temp.battle_aid.for_all?
        select(-1)
        set_select_flag(:all)
      elsif $game_temp.battle_aid.for_random?
        select(-1)
        set_select_flag(:random)
      end
    end
  end
end # Window_BattleEnemy < Window_Selectable

Edited by Holy87
non incollare lo script così.
Link to comment
Share on other sites

  • 0

Ricordati i tag SPOILER (per gli script lunghi) e CODE (per il codice).

Ricordati inoltre che è vietato doppiopostare nel giro di poco tempo. C'è il tasto Modifica del messaggio se vuoi aggiungere contenuto.

 

Il metodo per unire due immagini è blt delle bitmap (lo trovi documentato nella guida di RPG Maker), ma non credo tu sappia qualcosa di Ruby per utilizzarlo. Se vuoi impararlo, ben venga.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Ho cercato di informarmi meglio e tirato giù questo script

corpo = Bitmap.new("./Graphics/Battlers/corpo.png") 
copricapo_capelli = Bitmap.new("./Graphics/Battlers/copricapo_capelli.png")
 def blt(x, y, src_corpo, src_copricapo_capelli, opacity = 255)
end


Il problema è che non crea un file di immagine o se lo crea io non riesco a trovarlo da nessuna parte.

A me servirebbe proprio un file.

Edited by Killer Van
Link to comment
Share on other sites

  • 0

Stai sbagliando approccio.

Primo: le risorse non si caricano direttamente così, perché ogni volta che lo fai il gioco deve leggere dal disco. RPG Maker ha preparato un bel modulo Cache che fa in modo che un'immagine venga caricata una sola volta, e le volte successive la riprende dalla RAM.

Quindi,

corpo = Cache.battler('corpo',0)

Secondo, creando una bitmap questa non può essere visibile se non la associ ad un oggetto di tipo Sprite.

immagine = Sprite.new
immagine.bitmap = corpo

Leggi la mia guida o quella di RPG Maker per gli usi dell'oggetto Sprite.

RPG Maker non "crea file", sarebbe assurdo creare file per ogni immagine che viene mostrata nello schermo, perché l'accesso al disco è lento. Viene tutto conservato nella RAM.

Inoltre, senza librerie appropriate o procedimenti abbastanza elaborati, salvare una PNG sul disco è abbastanza complicato in Ruby.

 

Terzo, il metodo blt non si usa così. Se scrivi def blt stai dichiarando un metodo, non lo stai usando.

Il procedimento giusto sarebbe

corpo = Cache.battler('corpo', 0).clone # clono l'immagine, perché essendo memorizzata in Cache, modificherei direttamente questa
copricapo_capelli = Cache.battler('copricapo_capelli', 0)
corpo.blt(0, 0, copricapo_capelli, Rect.new(0, 0, corpo.width, corpo.height)) # l'opacità è facoltativa

quindi assegnerei la Bitmap corpo allo sprite del battler.

 

Se vuoi conoscere il Ruby, ti consiglio di leggere la mia guida.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

ok ma per assegnare lo sprite al personaggio devo dirgli il nome dello sprite, ho provato a scrivere corpo, e corpo.blt, ma corpo.blt non lo trova; e se scrivo corpo assegna al personaggio lo sprite che avevo all'inizio.

da quello che ho capito devo assegnarli la bitmap, ma come faccio?

Edited by Killer Van
Link to comment
Share on other sites

  • 0

ok ma per assegnare lo sprite al personaggio devo dirgli il nome dello sprite, ho provato a scrivere corpo, e corpo.blt, ma corpo.blt non lo trova; e se scrivo corpo assegna al personaggio lo sprite che avevo all'inizio.

da quello che ho capito devo assegnarli la bitmap, ma come faccio?

Il personaggio ha già uno Sprite.

Devi assegnare la Bitmap allo Sprite.

Tieni a mente la differenza: la Bitmap è una semplice immagine: ha solo i dati visivi. Lo Sprite è il suo contenitore: puoi assegnargli la posizione, la dimensione (zoom), l'opacità ed altre proprietà.

quando fai corpo.blt, stai copiando un rettangolo di una bitmap all'interno di un'altra bitmap.

Una volta fatto questo, devi dare corpo allo sprite.

Ho dato per scontato, che stiamo parlando di una procedura che stai eseguendo all'interno di un metodo e che sappia quale sia lo sprite del personaggio, perché essendo una variabile locale, viene immediatamente distrutta appena terminato il metodo.

 

Non ho visto il codice che vuoi eseguire, ma qualcosa che funziona dovrebbe essere qualcosa del genere:

 

 

class Sprite_Character < Sprite_Base
  def aggiorna_sprite
    corpo_base = Cache.battler('corpo', 0)
    corpo = corpo_base.clone
    cappello = Cache.battler('cappello', 0)
    rettangolo = Rect.new(0, 0, cappello.width, cappello.height) # tenendo in considerazione che combacino le immagini di corpo e cappello se sovrapposte
    corpo.blt(0, 0, cappello, rettangolo)
    self.bitmap = corpo
  end
end

 

Quindi, ovunque nel progetto cercherei di ottenere l'oggetto sprite dell'eroe, facendo

 

$game_map.character_sprites[0].aggiorna_sprite # 0 è l'eroe

se voglio cambiare direttamente il personaggio su mappa, tenendo conto che character_sprites è una variabile privata, e devo renderla accessibile inserendo

 

attr_reader :character_sprites

all'inizio della classe Spriteset_Map.

 

Come ho detto, ti consiglio di leggere la mia guida al Ruby altrimenti non capirai niente.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

 

Quindi, ovunque nel progetto cercherei di ottenere l'oggetto sprite dell'eroe, facendo

$game_map.character_sprites[0].aggiorna_sprite # 0 è l'eroe

ovunque in che senso?

ho letto la parte riguardante le bitmap della tua guida e mi sembra di aver capito, il problema e che non riesco a scrivere lo script.

Link to comment
Share on other sites

  • 0

ovunque in che senso?

ho letto la parte riguardante le bitmap della tua guida e mi sembra di aver capito, il problema e che non riesco a scrivere lo script.

 

Non puoi leggere "una parte" ed aver capito, senza prima imparare la sintassi dietro a tutt'altro.

Altrimenti, non avresti fatto la domanda "ovunque".

In che senso non riesci a scrivere lo script? Ti si è rotta la tastiera?

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

D: Spiego la situazione cosi da rendere meglio l'idea della mia domanda. Appena si entra in una mappa ci sono alcuni eventi impostati "sotto il personaggio" (e di grafica trasparenti), quando si verifica una certa situazione la grafica di questi eventi cambia e si muovono all'interno della mappa e dovrebbero, se toccano il pg, dare un gameover. La mia domanda è: c'è un modo per impostare l'evento (inizialmente invisibile) allo stesso livello del pg (oltre a quello dell'impostare nell'evento in basso a sinistra "stesso livello del pg") quando questo cambia la grafica e si muove? Di solito non avevo il passaggio di grafica da trasparente a visibile che desse gameover ma andavo direttamente con la grafica pronta nella mappa >.

AliceMisakisGames1.png

"When the sharpest words wanna cut me down

i'm gonna send a flood, gonna drown 'em out."

Link to comment
Share on other sites

  • 0

R: non ti conviene semplicemente mettere questi eventi in un punto della mappa non passabile, teletrasportarli dove ti serve e poi farli apparire senza doverli metter sotto l'eroe? ^ ^

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

Grazie mille Holy87.

Con il tuo aiuto e altre ricerche su internet, sono riuscito a mettere l'armatura al mio battler; e la mia immagine di profilo ne è la prova.

Ma per fare questo ho detto io allo script quali file utilizzare.

Vorrei creare un'altra parte di script che ottiene le informazioni riguardanti l'equipaggiamento dei personaggi e prenda da solo le immagini.

Ho cercato tanti comandi e ho trovato il comando equips nella guida di rpg maker ma da quello che ho capito serve per impostare l'equipaggiamento iniziale del personaggio e non per farti restituire il suo equipaggiamento attuale.

Come posso fare?

Grazie in anticipo

Link to comment
Share on other sites

  • 0
D: È possibile modificare o eliminare gli spazi vuoti che ci sono a sinistra e a destra della finestra dei messaggi? Quei 10 (circa) pixel da cui ha inizio e scompare il testo intendo.
Link to comment
Share on other sites

  • 0

D: È possibile modificare o eliminare gli spazi vuoti che ci sono a sinistra e a destra della finestra dei messaggi? Quei 10 (circa) pixel da cui ha inizio e scompare il testo intendo.

si chiama padding, e di default è di 12 pixel.

finestra.padding = 0

per togliere completamente lo spazio. Ma metti in conto che passerà sopra la cornice.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Ho un' altro problema, sempre legato al fatto che non riesco a dire allo script di unire determinate immagini, in base all'equipaggiamento ed al nome del personaggio.

Lo script che ho scritto è questo

body = Cache.zeck('corpo',0)
copricapo_capelli = Cache.zeck_copricapo('copricapo_capelli', 0)
body.blt(0, 0,  copricapo_capelli, Rect.new(0, 0, 384, 1344))

def update_bitmap
     body = Cache.zeck('corpo',0)
     copricapo_capelli = Cache.zeck_copricapo('copricapo_capelli', 0)
    if bitmap != body
      self.bitmap = body
      spritesheet_normal
      init_visibility
    end
  end

in Cache ho definito sia .zeck che .zeck_copricapo.

il problema è che così facendo tutti i battler sullo schermo hanno questo sprite, mentre io vorrei far si che a seconda del loro nome ed equipaggiamento avessero sprite diversi.

Come posso fare?

Edited by Killer Van
Link to comment
Share on other sites

  • 0

Ho un' altro problema, sempre legato al fatto che non riesco a dire allo script di unire determinate immagini, in base all'equipaggiamento ed al nome del personaggio.

Lo script che ho scritto è questo

body = Cache.zeck('corpo',0)
copricapo_capelli = Cache.zeck_copricapo('copricapo_capelli', 0)
body.blt(0, 0,  copricapo_capelli, Rect.new(0, 0, 384, 1344))

def update_bitmap
     body = Cache.zeck('corpo',0)
     copricapo_capelli = Cache.zeck_copricapo('copricapo_capelli', 0)
    if bitmap != body
      self.bitmap = body
      spritesheet_normal
      init_visibility
    end
  end

in Cache ho definito sia .zeck che .zeck_copricapo.

il problema è che così facendo tutti i battler sullo schermo hanno questo sprite, mentre io vorrei far si che a seconda del loro nome ed equipaggiamento avessero sprite diversi.

Come posso fare?

prima di tutto, creare un metodo dedicato per ogni eroe e per ogni equipaggiamento, non è una buona pratica.

Tra l'altro, la grafica del copricapo dovrebbe essere unica, quindi non vedo perché creare un metodo per il copricapo di zack. Io definirei un attributo aggiuntivo agli equipaggiamenti che indichi il file grafico, così da prenderlo direttamente da quello.

Poi, stiamo parlando del battler o del chara?

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Battler, infatti, ho notato che nelle scorse tue risposte avevi frainteso,

lo so che definire un metodo per ogni eroe e arma non è pratico, infatti devo cambiarlo.

Ho provato a dargli questo attributo nelle note ma non sono riuscito, adesso provo ancora e stasera ti faccio sapere

Sera: non sono riuscito, perchè io dovrei scrivere una cosa come:

 

def nome_eroe

end
def copricapo_equipaggiato

end
def busto_equipaggiato

end
def pantaloni_equipaggiati

end
def scarpe_equipaggiate

end
def spada_equipaggiata
end
body = Cache.Corpi(nome_eroe,0) 
copricapo = Cache.Corpicapi(copricapo_equipaggiato,0) 
busto = Cache.Busti(busto_equipaggiato,0) 
pantaloni = Cache.Pantaloni(pantaloni_equipaggiati,0) 
scarpe = Cache.Scarpe(scarpe_equipaggiate,0) 
spada = Cache.Spade(spada_equipaggiata,0) 
​#poi devo fare tutti e le sovrapposizioni
 

 

 

Questo dovrebbe valere per tutti gli eroi

come posso fare tutte le definizioni?

Edited by Killer Van
Link to comment
Share on other sites

  • 0

Battler, infatti, ho notato che nelle scorse tue risposte avevi frainteso,

lo so che definire un metodo per ogni eroe e arma non è pratico, infatti devo cambiarlo.

Ho provato a dargli questo attributo nelle note ma non sono riuscito, adesso provo ancora e stasera ti faccio sapere

Sera: non sono riuscito, perchè io dovrei scrivere una cosa come:

 

def nome_eroe

end
def copricapo_equipaggiato

end
def busto_equipaggiato

end
def pantaloni_equipaggiati

end
def scarpe_equipaggiate

end
def spada_equipaggiata
end
body = Cache.Corpi(nome_eroe,0) 
copricapo = Cache.Corpicapi(copricapo_equipaggiato,0) 
busto = Cache.Busti(busto_equipaggiato,0) 
pantaloni = Cache.Pantaloni(pantaloni_equipaggiati,0) 
scarpe = Cache.Scarpe(scarpe_equipaggiate,0) 
spada = Cache.Spade(spada_equipaggiata,0) 
​#poi devo fare tutti e le sovrapposizioni
 

 

Questo dovrebbe valere per tutti gli eroi

come posso fare tutte le definizioni?

 

Ancora non ci siamo.

Prima di tutto, bisogna definire il nome immagine come attributo nell'equipaggiamento (esempio su come impostare attributi, pagina 102 della guida, prima però devi imparare le espressioni regolari a pagina 28)

quindi

class RPG::EquipItem # vedi la guida di RPG Maker
    # restituisce la grafica di battaglia
    def battler_graphic
        @battler_graphic ||= get_battler_graphic
    end

    # ottiene il nome della grafica dalle note
    def get_battler_graphic
        self.note.split(/[\r\n]+/).each {|line|
            return line if line =~ /<grafica:[ ]*(.+)>/
        }
        "" # restituisce una stringa vuota se non c'è
    end
end
poi, per ottenere la bitmap(non so dove tu voglia metterla)

def generate_battler_bitmap(actor)
    base_bitmap = Cache.battler(actor.base_bitmap, 0) # è un esempio, base_bitmap dovrebbe avere la grafica dell'eroe nudo
    base_bitmap = base_bitmap.clone # ne faccio un clone per non sporcare la bitmap nella cache
    rect = Rect.new(0, 0, base_bitmap.width, base_bitmap.height)
    actor.equips.each {|equip| # per ogni equipaggiamento
        next if equip.nil? # passo al prossimo se l'equip non esiste
        if !equip.battler_graphic.empty? # se la stringa non è vuota
            base_bitmap.blt(0, 0, Cache.battler(equip.battler_graphic, 0), rect)
        end
    }
    base_bitmap # restituisco la bitmap elaborata
end
Si potrebbe anche aggiungere un ordinamento per decidere quali equip hanno la priorità.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

 

base_bitmap = Cache.battler(actor.base_bitmap, 0) # è un esempio, base_bitmap dovrebbe avere la grafica dell'eroe nudo

Io per ogni attore ho grafiche nude diverse ed equipaggiamenti diversi

es:

nudo gigi è diverso da nudo gigia.

spada di fuoco di gigi è diversa da spada di fuoco di gigia ecco perchè all'inizio le avevo divise in cartelle diverse.

Edited by Killer Van
Link to comment
Share on other sites

  • 0

Basta allora che fai in modo che venga restituita la grafica giusta secondo l'ID dell'eroe

class RPG::EquipItem # vedi la guida di RPG Maker
  # restituisce la grafica di battaglia
  def battler_graphic(actor_id)
    @battler_graphic ||= get_battler_graphic
    @battler_graphic[actor_id] ||= ''
  end

  # ottiene il nome della grafica dalle note
  def get_battler_graphic
    @battler_graphic = {}
    self.note.split(/[\r\n]+/).each {|line|
      @battler_graphic[$1.to_i] = $2 if line =~ /<grafica eroe (\d+):[ ]*(.+)>/
    }
    '' # restituisce una stringa vuota se non c'è
  end
end
quindi, modificando di conseguenza il metodo per restituire la bitmap a seconda dell'ID dell'eroe

def generate_battler_bitmap(actor)
  base_bitmap = Cache.battler(actor.base_bitmap, 0) # è un esempio, base_bitmap dovrebbe avere la grafica dell'eroe nudo
  base_bitmap = base_bitmap.clone # ne faccio un clone per non sporcare la bitmap nella cache
  rect = Rect.new(0, 0, base_bitmap.width, base_bitmap.height)
  actor.equips.each {|equip| # per ogni equipaggiamento
    next if equip.nil? # passo al prossimo se l'equip non esiste
      if !equip.battler_graphic(actor.id).empty? # se la stringa non è vuota
        base_bitmap.blt(0, 0, Cache.battler(equip.battler_graphic(actor.id), 0), rect)
      end
    }
  base_bitmap # restituisco la bitmap elaborata
end
nei tag dell'equip dovresti mettere per ogni eroe qualcosa tipo

 

manca solo il settaggio dell'attributo di grafica base (nudo) dell'eroe, ma penso che con questo tu abbia capito più o meno come agire.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

No non ho capito, poi ho provato ad assegnare a base_bitmap, che appunto mi dava errore, un file ma mi dava comunque errore su equips di:

Cache.battler(actor.base_bitmap, 0)

 

 

actor.equips.each {|equip| # per ogni equipaggiamento
Edited by Killer Van
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...