Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Cris_93

RPGMAKER VX ACE The Renegade

Recommended Posts

kjd17ymvyzxhr7tfg.jpg

 

by Cris_93

 

 

INTRODUZIONE

Ho giocato per un lungo periodo di tempo a World of warcraft ( per chi non lo conoscesse, è un MMORPG ) e sono rimasto totalmente affascinato da quel mondo fantastico e unico partorito dalla Blizzard . Essendo io una persona molto creativa ( adoro inventare e fantasticare praticamente su ogni cosa) avevo creato, con l'aiuto di un mio amico che giocava assieme a me, una storia sui nostri personaggi di gioco ( in tutto erano sei, tre creati da me e i restanti dal mio amico). Questo progetto, quindi, è totalmente ispirato a questa storia creata tempo fà e di conseguenza al mondo di WoW . 

 
TRAMA

 

 

(questo di seguito è un intro , gli avvenimenti che si vivranno in game sono successivi a questi)

 

La sete di potere è il punto debole di ogni essere umano, una malattia che squarcia i loro cuori, annebbia le loro menti, rende ciechi i loro occhi e ciò che rimane è solo oscurità ed egoismo. Questo è ciò che avvenne a Ildyan, che tradì il suo stesso popolo per poter ottenere un potere tanto oscuro quanto potente.Esso fece un patto con il demone Kilintor: se avesse maledetto il cristallo dell'eternità, un artefatto che donava al regno di Quel'Thalas un'estate eterna e l'immortalità ai suoi abitanti, Kilintor stesso lo avrebbe scelto come nuovo Re dei Demoni, conferendogli un potere mai visto prima.Ildyan fece ciò che gli fu chiesto, maledì il cristallo e questo portò il regno nel degrado assoluto, le foglie degli alberi da verdi smeraldo divennero nere come la cenere e i loro abitanti perserò tutta la loro magia e l'immortalità . Un uomo però, fermò tutto questo. Lor'theyron  riuscì a risollevare il morale della popolazione e insieme riuscirono, unendo la poca magia rimasta dentro di loro, a ripurificare il cristallo e a scacciare il malvagio demone dal loro amato Regno, non riuscendo però a ristabilirlo completamente. Infatti l'arterfatto, seppur ripurificato, perse gran parte del suo potere e di conseguenza i cittadini dovettero rinunciare alla loro immortalità e il regno alla sua eterna estate. Da quel momento di Ildyan non si seppe più nulla...

 

 
PERSONAGGI PRINCIPALI 

 
64fjpthqh9qff9ffg.jpg  ??? (23 anni)
 
Il passato del protagonista è avvolto nell'oscurità più totale. Venne ritrovato ancora in tenera età da Gregoria e suo figlio Maycon in mezzo al bosco e da allora entrò a far parte della famiglia stringendo un forte legame con Lusio, il marito di Gregoria, che fu per lui un grande maestro ..

 
 
900k3xpeljpgt80fg.jpg RAMENK (24 anni)
 
Ramnek  è il figlio  del comandante dell'ordine dei guardiani Roland . Quest'ultimo  Lo allenò personalmente nell'arte della battaglia e si accorse ben presto dell'innata potenza del ragazzo, non che del suo caratterino arrogante e testardo . Nessuno ancora si è accorto che questo suo comportamento è come una corazza in cui si cela in realtà una persona molto sola ed infelice ... 
 
 
abv0detw83djcwmfg.jpg  ALISYA (22 anni)
 
Alisya  è una delle maghe giovani più talentuose dell'ordine dei Maghi di Faora, e una buona amica di Devys . Nata in una famiglia benestante, capì fin da subito che la magia era il suo destino, infatti entrò nell'ordine a soli 13 anni, diventando in breve tempo una delle più brave fra i suoi coetanei. Questo perchè, oltre ad essere una bellissima ragazza, è allo stesso tempo una persona molto determinata e il suo unico difetto si può attribuire al suo essere molto vanesia e un tantino acida ...
 
 
rxtmemvetb0gjekfg.jpg  KANDRIS (19 anni)
 
Kandris  è orfana di madre e padre e si guadagna da vivere rubando . Scappò dall'orfanotrofio a soli 8 anni e da quel momento iniziò la sua carriera di ladruncola, diventando col tempo sempre più brava nell'arte del borseggio. La sua vita cambierà totalmente dopo l'incontro con Alisya, che diventerà ben presto la sua più grande amica e la porterà a capire il vero significato della vita ...

 


ALTRI PERSONAGGI 

jgh5ngzz91y7dnkfg.jpg  Maycon (23 anni) udceismjvshjekqfg.jpg Gregoria (30 anni) ilr82bja58skmgifg.jpg  Lusio (35 anni)

(WIP)

 

 

 GAMEPLAY

 

 

 

SISTEMA DI BATTAGLIA :

 

4j2rur422c6f2s7fg.jpg
 
La battaglia graficamente si presenterà così , semplice e pulita grazie alla combinazione dell'ace engine e il battle symphony. I personaggi in battaglia saranno quattro, ma sarà presente una formazione strategica che in base al posizionamento dei personaggi si potranno ottenere dei bonus come in questo caso :
 
5l5dz2eddd0ipd8fg.jpg

 

Non saranno presenti le classi, ogni personaggi avrà comunque delle caratteristiche uniche, che si aumenteranno sia con il level up e sia tramite uno sviluppo manuale dei parametri dei personaggi, ovvero, ad ogni level up, si otterrano 5 PP ( Punti parametro) che potranno essere distribuiti sui parametri dei personaggi :

 

g29l27n02jnt7ujfg.jpg

 

I parametri saranno quelli di default ( Scusatemi xD dallo screen si può notare che ho rinominato la dif.magica in dif.fisica xD) . 

Le abilità invece saranno ottenute dai talismani. Questi potranno essere incastonati ad armi e armatura ( gli slot dei talismani variano da equip ad equip, per un massimo di 5 slot) e doneranno, finche si terrano equipaggiati, abilità o altri bonus ( Non è come FF9, le abilità sono legate ai talismani, e non potranno essere apprese):

 

op2y78e3060htnxfg.jpg

 

In questo caso la spada corta ha solo uno slot, ma altri equip potranno raggiungere un massimo di 5 slot. Una cosa che ha me piace molto, è la possibilità di poter mettere diversi talismani anche ad armi uguali, quindi se si posseggono 3 spade corte(che hanno lo stesso ID) vengono gestite come se fossere 3 armi distinte :D :

 

zi3b5x1r1m11v9hfg.jpg

 

 

CREDITI 
Saranno tutti esplicitamente scritti nel gioco e ringrazio con tutto il cuore queste persone che condividono la loro bravura sul web ! 


                                                                            
SCREEN/VIDEO

9lnxs0oq4b1adonfg.jpg




 

STAY TUNED !

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

World of Warcraft.... cavolo, anni fa amministravo un "shard" (un modo elegante per dire server pezzotto XD) di WoW... con l'obbligo di fare gioco di ruolo e interpretare quindi i propri personaggi, in base a trame specifiche create appositamente da me e il resto dello staff.

 

Oh beh... ormai sono anni che non ci ho più a che fare.

 

Comunque... beh, chi mi conosce lo sa, la grafica di un gioco per me è l'aspetto meno importante... se un gioco è bello è bello anche senza grafica... ma visto che fai un gioco su wow, io fossi in te avrei puntato su un aspetto grafico più su quello stile... non dico di riprodurre la grafica di wow, è virtualmente impossibile, con rpg maker... ma magari crearti uno stile personalizzato che ricordi anche alla lontana quello di warcraft, invece delle solite risorse standard.

 

Mi interessa la cosa della formazione in battaglia, può avere risvolti interessanti per quanto riguarda la strategia in combattimento, e soprattutto è uno script che ancora non ho visto usare da nessuno, quindi un punto a favore del bs, per l'originalità :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Sono contento che il gioco vi incuriosisca :D Sinceramente non vedrei bene lo stile di WoW su un gioco 2d del genere e non essendo un grafico, ho optato per le risorse RTP, in modo da poter iniziare quanto prima la storia e il gioco vero e proprio :P

 

In realtà inizialmente ci stavo provando, attraverso il metodo del parallax mapping, utilizzando texture e oggetti 3d di WoW :

 

http://oi58.tinypic.com/33ayuc0.jpg

 

Questa era una mappa di prova fatta interamente con gimp, ma alla fine sono tornato indietro perchè era veramente lungo come lavoro .. xD 

 

 

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

 

http://oi58.tinypic.com/33ayuc0.jpg

 

Questa era una mappa di prova fatta interamente con gimp, ma alla fine sono tornato indietro perchè era veramente lungo come lavoro .. xD 

 

beh dai non è mica male... con un po' di lavoro, potrebbe venir fuori qualcosa di veramente originale. però, si... capisco che ci vorrà il quadruplo del tempo per finire una sola mappa...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Gu, sembra interessante come progetto, anche se immagino (e so) che ci vorrà tanto per mostrare una demo, considerando che fai le mappe in Overlay... Ma aspetterò!

 

P.S. Senti sembrerà una cretinata ma... Com'è possibile che Gregoria abbia un figlio di 23 anni quando lei ne ha solo 30? L'ha fatto a 7 anni...? °^°

Fossi in te sistemerei un pochino la cosa... (è un semplice consiglio xD) asd

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Nel gioco si inzia che sia Maycon che il protagonista hanno praticamente 3-4 anni e lei a quell'epoca ha 30 anni.. xD Ho scritto la sua età diinizio gioco praticamente :P Gregoria ha circa 49 anni dopo :) , si fà un balzo di 19 anni :P

 

Il parallax lo usavo all'inizio, ora sto utilizzando i tileset :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il Mapping è buono, ma secondo me, dovresti aggiungere un pò di dettagli al terreno, anche un pò alle abitazioni, ad esempio mettici un caminetto :).

 

Per il resto ottimo lavoro ;)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Carino, veramente carino! Ti "fregherò" qualche ideuzza  :zizi:

 

Vedendo l'immagine di te che stai vicino all'acqua mi è venuta voglia di darti un consiglio  :bhoasd:

 

Qualche giorno fa ho trovato un plugin del riflesso, che si può inserire anche su altre superfici, non solo sull'acqua :)

 

 

 

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

# ** TDS Sprite Reflection
#    Ver: 1.4
#------------------------------------------------------------------------------
#  * Description:
#  This script creates the effect of reflection on certain map tiles.
#------------------------------------------------------------------------------
#  * Features: 
#  Set reflection tiles based on terrain.
#  Set Y offset of reflection based on terrain tag on the tile notes.
#  Set individual Y offset for character or events.
#------------------------------------------------------------------------------
#  * Instructions:
#  For events to have a reflection their name must include this, "[Reflect]".
#  (It's not case sensitive.)
#
#  To turn on/off the reflection on an event or player use this on a script
#  call:
#
#  turn_on_reflection(id)
#  turn_off_reflection(id)
#  
#  id = ID of Event to turn effect ON/OFF. For the player use 0 and for the
#       followers use negative ID's (-1, -2, -3)
#
#  Example:
#
#  turn_off_reflection(0)
#
#  That would make the players reflection invisible.
#
#  turn_off_reflection(-1)
#
#  That would turn off the first followers reflection.
#
#  To set the terrain ID's that are reflective find this constant
#  "REFLECTION_TERRAIN_TAGS" below the Setting Constants and set the ID's
#
#  Example:
#  
#  REFLECTION_TERRAIN_TAGS = [terrain_id, terrain_id, ...]
#  REFLECTION_TERRAIN_TAGS = [1, 2]
#
#  To enable or disable the water wave effect of reflections find this constant
#  "REFLECTION_WAVE_EFFECT" and set the value to true or false.
#
#  To set the individual offset based on terrain tag, go to the tileset editor
#  and add this on it's notes.
#
#  S_REFLECT_OFFSET:
#  terrain_tag: y_offset
#  terrain_tag: y_offset
#  terrain_tag: y_offset
#  E_REFLECT_OFFSET:
#
#  terrain_tag: = Terrain Tag (1, 2, 3, 4, 5, 6, 7)
#  y_offset: Y value offset of the reflection while on this terrain tag.
#
#  Example:
#
#  S_REFLECT_OFFSET:
#  1: 9
#  2: 14
#  E_REFLECT_OFFSET:
#------------------------------------------------------------------------------
#  * Notes:
#  This script is meant to be used mostly with the default sprites and square 
#  water tiles. If people need more complex clipping and X offset I will add
#  them in a later version.
#------------------------------------------------------------------------------
#  * Special Thanks:
#  Many thanks to Cozziekuns for his help witht the clipping method.
#------------------------------------------------------------------------------
# * Not Knowing English or understanding these terms will not excuse you in any
#   way from the consequenses.
#==============================================================================
# * Import to Global Hash *
#==============================================================================
($imported ||= {})[:TDS_Sprite_Reflection] = true
 
#------------------------------------------------------------------------------
# * Settings Constants
#------------------------------------------------------------------------------
# Reflection Terrain Tag ID's
REFLECTION_TERRAIN_TAGS = [1, 2]
# Reflection Water Wave Effect
REFLECTION_WAVE_EFFECT = true
 
 
#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles maps. It includes scrolling and passage determination
# functions. The instance of this class is referenced by $game_map.
#==============================================================================
 
class Game_Map
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :reflect_terrain_offsets         # Map Reflection Y Offset Hash
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------  
  alias tds_sprite_reflection_game_map_setup                   setup
  alias tds_sprite_reflection_game_map_change_tileset          change_tileset 
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  def setup(*args)
    # Run Original Method
    tds_sprite_reflection_game_map_setup(*args)
    # Setup Terrain Reflect Offset Values
    setup_terrain_reflect_offset
  end
  #--------------------------------------------------------------------------
  # * Setup Reflect Terrain Offset Values
  #--------------------------------------------------------------------------
  def setup_terrain_reflect_offset    
    # Make Reflect Terrain Offsets Hash
    @reflect_terrain_offsets = {}
    # Set Default Terrain Offset Value
    @reflect_terrain_offsets.default = 0    
    # Get Tileset Terrain Offset Text
    tileset.note[/s_REFLECT_OFFSET:(.*)E_REFLECT_OFFSET:/m] ; offsets = $1
    # Return if offsets list text is nil
    return if offsets.nil?
    # Scan Battleback Text for region names information
    offsets.scan(/(?'terrain_tag'[0-9]+): (?'offset'[0-9]+)/) {|t|
      # Get Match Information
      m = Regexp.last_match
      # Set Region Name
      @reflect_terrain_offsets[m[:terrain_tag].to_i] = m[:offset].to_i
    } 
  end
  #--------------------------------------------------------------------------
  # * Change Tileset
  #--------------------------------------------------------------------------
  def change_tileset(*args)  
    # Run Original Method
    tds_sprite_reflection_game_map_change_tileset(*args)
    # Setup Terrain Reflect Offset
    setup_terrain_reflect_offset    
  end
  #--------------------------------------------------------------------------
  # * Get Terrain Reflection Offset Value
  #--------------------------------------------------------------------------
  def terrain_reflection_offset(terrain_tag) ; @reflect_terrain_offsets[terrain_tag] end
  #--------------------------------------------------------------------------
  # * Determine if Reflection happens at position
  #--------------------------------------------------------------------------
  def reflection_at?(x, y) ; REFLECTION_TERRAIN_TAGS.include?(terrain_tag(x, y)) end
end
 
 
#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  An interpreter for executing event commands. This class is used within the
#  Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
 
class Game_Interpreter
  #--------------------------------------------------------------------------
  # * Turn On/Off Character Reflection
  #   id : event id (0 and negative for player and followers)
  #--------------------------------------------------------------------------
  def turn_on_reflection(id) ; change_reflection_state(id, true) end  
  def turn_off_reflection(id) ; change_reflection_state(id, false) end
  #--------------------------------------------------------------------------
  # * Change Reflection State
  #   id    : event id (0 and negative for player and followers)
  #   state : True/False
  #--------------------------------------------------------------------------
  def change_reflection_state(id, state)
    # If ID is less than 1
    if id < 1
      if id == 0
        # Set Reflection State for Player
        $game_player.reflection_active = state 
      else
        # Set Reflection State for Followers
        $game_player.followers[id.abs].reflection_active = state        
      end
    else
      # Set Event Reflection State
      $game_map.events[id].reflection_active = state
    end
  end
end
 
 
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
 
class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------  
  alias tds_sprite_reflection_spriteset_map_initialize          initialize
  alias tds_sprite_reflection_spriteset_map_dispose             dispose
  alias tds_sprite_reflection_spriteset_map_update              update
  alias tds_sprite_reflection_spriteset_map_refresh_characters  refresh_characters
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    # Create Character Reflection Sprites
    create_character_reflections    
    # Run Original Method
    tds_sprite_reflection_spriteset_map_initialize    
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    # Run Original Method
    tds_sprite_reflection_spriteset_map_dispose
    # Dispose of Reflection Sprites
    dispose_reflection_sprites  
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose_reflection_sprites  
    # Dispose of Reflection Sprites
    @reflection_sprites.each {|s| s.dispose}
    # Clear Reflection Sprites Array
    @reflection_sprites.clear
  end
  #--------------------------------------------------------------------------
  # * Refresh Characters
  #--------------------------------------------------------------------------
  def refresh_characters
    # Run Original Method
    tds_sprite_reflection_spriteset_map_refresh_characters
    # Dispose of Reflection Sprites
    dispose_reflection_sprites  
    # Create Character Reflection Sprites
    create_character_reflections
  end  
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Run Original Method
    tds_sprite_reflection_spriteset_map_update
    # Update Character Reflections
    update_character_reflections
  end
  #--------------------------------------------------------------------------
  # * Create Character Reflection Sprites
  #--------------------------------------------------------------------------
  def create_character_reflections
    # Make Reflection Sprites Array
    @reflection_sprites = []
    # Go Through Game Map Events
    $game_map.events.values.each do |event|
      # If Event has Reflection
      if event.has_reflection?
        # Add Reflection Sprite to Array
        @reflection_sprites << Sprite_Character_Reflection.new(@viewport1, event)
      end
    end
    # Go Through Follower Sprites
    $game_player.followers.reverse_each do |follower|
      # Add Reflection Sprite to Array      
      @reflection_sprites << Sprite_Character_Reflection.new(@viewport1, follower)
    end
    # Add Player Reflection Sprite to Array      
    @reflection_sprites << Sprite_Character_Reflection.new(@viewport1, $game_player)
  end
  #--------------------------------------------------------------------------
  # * Update Character Reflection Sprites
  #--------------------------------------------------------------------------
  def update_character_reflections
    # Update Reflection Sprites
    @reflection_sprites.each {|s| s.update}
  end
end
 
 
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
#  A character class with mainly movement route and other such processing added.
#  It is used as a super class of Game_Player, Game_Follower, GameVehicle,
#  and Game_Event.
#==============================================================================
 
class Game_Character < Game_CharacterBase
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :reflection_active               # Reflection Active Flag
  attr_accessor :reflection_y_offset             # Reflection Y Offset value
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------  
  alias tds_sprite_reflection_game_character_init_public_members init_public_members    
  #--------------------------------------------------------------------------
  # * Initialize Public Member Variables
  #--------------------------------------------------------------------------
  def init_public_members
    # Set Reflection Active Flag
    @reflection_active = true
    # Set Reflection Y Offset Value
    @reflection_y_offset = 0
    # Run Original Method
    tds_sprite_reflection_game_character_init_public_members
  end
  #--------------------------------------------------------------------------
  # * Determine if Character has a reflection
  #--------------------------------------------------------------------------
  def has_reflection?
    # If Self is an Game_Event Character
    if self.is_a?(Game_Event)
      # Return true if Event Name Includes the Reflect Flag
      return true if /\[REFLECT\]/i =~ @event.name
    end
    # Return false by default
    return false
  end
  #--------------------------------------------------------------------------
  # * Get Reflection Offset Value
  #--------------------------------------------------------------------------
  def reflection_offset(x = @x, y = @y + 1)
    # Return Character Reflection Offset with Character Offset    
    $game_map.terrain_reflection_offset($game_map.terrain_tag(x, y)) + @reflection_y_offset
  end
  #--------------------------------------------------------------------------
  # * Determine if Character reflection is visible
  #--------------------------------------------------------------------------
  def reflection_visible?(x = @x, y = @y + 1)
    return false if !@reflection_active
    return false if @transparent
    return false if !$game_map.reflection_at?(x, y)
    return true
  end
end
 
 
#==============================================================================
# ** Sprite_Character_Reflection
#------------------------------------------------------------------------------
#  This sprite is used to display character reflection. It observes an instance
#  of the Game_Character class and automatically changes sprite state.
#==============================================================================
 
class Sprite_Character_Reflection < Sprite_Character
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport  : Viewport
  #     character : Game_Character
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
    super(viewport, character)
    # Character Ojbect
    @character = character
    # Reflection Sprite Settings
    self.mirror = true ; self.angle = 180 ; self.opacity = 160    
    # Set Self Wave Amp if Reflection Wave Effect is true
    self.wave_amp = 1 if REFLECTION_WAVE_EFFECT
    # Set Reflection Visibility Flag
    @visible = @character.reflection_visible?
    # Clipping Effect Flag
    @clipping = false
    # Update
    update
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose ; super end ; def update_balloon ; end ; def setup_new_effect ; end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update ; super end
  #--------------------------------------------------------------------------
  # * Update Transfer Origin Rectangle
  #--------------------------------------------------------------------------
  def update_src_rect
    # If Enter Clipping should be applied
    if enter_clipping?
      if @tile_id == 0
        # Character Index
        index = @character.character_index
        # Character Pattern
        pattern = @character.pattern < 3 ? @character.pattern : 1
        sx = (index % 4 * 3 + pattern) * @cw
        sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch        
        # X Coordinate Distance
        x_dist = (@character.x - @character.real_x).abs
        # Y Coordinate Distance
        y_dist = (@character.y - @character.real_y).abs        
        
        # If Character Y Position is more than Real Y (Entering Down)
        if @character.y > @character.real_y
          # Set Source Rect
          self.src_rect.set(sx, sy, @cw, @ch - (y_dist * @ch))          
          # Set OX Value
          self.oy = (y_dist * @ch)
        end
        
        # If Character X Position is less than Real X (Entering to LEFT)
        if @character.x < @character.real_x          
          self.src_rect.set(sx, sy, @cw - (@cw * x_dist), @ch)
          # Set OX Value
          self.ox = (@cw - (x_dist * @cw)) / 2
        end
        # If Character X Position is more than Real X (Entering to RIGHT)
        if @character.x > @character.real_x
          self.src_rect.set(sx + (x_dist * @cw), sy, @cw - (x_dist * @cw), @ch)
          # Set OX Value
          self.ox = (x_dist * @cw) / 2                  
        end        
      end
      # Set Visibility to true
      self.visible = true            
      # Set Reflection X Coordinate Position
      self.x = @character.screen_x + (@cw / 2 - self.ox) * (@character.real_x < @character.x ? 1 : -1)      
      # Set Reflection Y Coordinate Position
      self.y = @character.screen_y + @character.reflection_offset  + (@ch - self.oy) * (@character.real_y < @character.y ? 1 : -1)
      # Set Clipping Flag to true
      @clipping = true      
      return
    end
    
    # If Exit Clipping should be applied
    if exit_clipping?      
      if @tile_id == 0
        index = @character.character_index
        pattern = @character.pattern < 3 ? @character.pattern : 1
        sx = (index % 4 * 3 + pattern) * @cw
        sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch        
        # X Coordinate Distance
        x_dist = (@character.x - @character.real_x).abs
        # Y Coordinate Distance
        y_dist = (@character.y - @character.real_y).abs
                
        # If Character Y Position is less than Real Y (Exiting UP)
        if @character.y < @character.real_y
          # Set Source Rect
          self.src_rect.set(sx, sy, @cw, y_dist * @ch)          
          # Set OX Value
          self.oy = (y_dist * @ch)
          # Get Y offset for terrain
          y_offset = @character.reflection_offset(@character.x, @character.y + 2)
          # Set Reflection X Coordinate Position
          self.y = @character.screen_y + y_offset + (@ch - self.oy) * (@character.real_y < @character.y ? -1 : 1)
        end
        
        # If Character X Position is less than Real X (Exiting LEFT)
        if @character.x < @character.real_x
          # Set Source Rect          
          self.src_rect.set(sx + @cw - x_dist * @cw, sy, x_dist * @cw, @ch)
          # Get Y offset for terrain
          y_offset = @character.reflection_offset(@character.x + 1, @character.y + 2)          
          # Set Reflection Y Coordinate Position
          self.y = @character.screen_y + y_offset         
        end
 
        # If Character X Position is more than Real X (Exiting RIGHT)        
        if @character.x > @character.real_x
          # Set Source Rect          
          self.src_rect.set(sx, sy, x_dist * @cw, @ch) 
          # Get Y offset for terrain
          y_offset = @character.reflection_offset(@character.x - 1, @character.y + 2)          
          # Set Reflection Y Coordinate Position
          self.y = @character.screen_y + y_offset                   
        end
        
        # Set OX Value
        self.ox = (x_dist * @cw) / 2        
        # Set Reflection X Coordinate Position
        self.x = @character.screen_x + (@cw / 2 - self.ox) * (@character.real_x < @character.x ? -1 : 1)        
        # Set Clipping Flag to true
        @clipping = true        
      end
      return
    end    
 
    # If Clipping
    if @clipping
      # Set Visibility
      self.visible = @visible = true if [email protected]? and @character.reflection_visible?
      self.visible = @visible = false if [email protected]? and [email protected]_visible?
      # Set Clipping flag to false
      @clipping = false
      # Reset OX and OY Values
      self.ox = @cw / 2 ; self.oy = @ch      
    end    
    super
  end
  #--------------------------------------------------------------------------
  # * Determine if enter clipping should be applied
  #--------------------------------------------------------------------------
  def enter_clipping?
    return false if [email protected]?
    return false if @visible    
    # Horizontal Clipping (Left/Right)
    if @character.x != @character.real_x
      return false if @character.reflection_visible?(@character.x + (@character.x > @character.real_x ? -1 : 1))      
    end
    return false if [email protected]_visible?
    return true
  end
  #--------------------------------------------------------------------------
  # * Determine if exit clipping should be applied
  #--------------------------------------------------------------------------
  def exit_clipping?
    return false if [email protected]?
    return false if !@visible
    # Horizontal Clipping (Left/Right)
    if @character.x != @character.real_x
      return false if [email protected]_visible?(@character.x + (@character.x > @character.real_x ? -1 : 1))      
    end    
    return false if @character.reflection_visible?
    return true
  end  
  #--------------------------------------------------------------------------
  # * Update Position
  #--------------------------------------------------------------------------
  def update_position    
    # Return if Clipping Sprite
    return if @clipping
    self.x = @character.screen_x
    self.y = @character.screen_y + @character.reflection_offset
    self.z = @character.screen_z + 1
  end
  #--------------------------------------------------------------------------
  # * Update Other
  #--------------------------------------------------------------------------
  def update_other    
    self.blend_type = @character.blend_type
    self.visible = @character.reflection_visible? if !@clipping    
    return
  end
end
 

 

 

 

 

Buona fortuna :) E facci sapere se e quando uscirà la demo :) 

 

P.s Non ricordo dove l'ho preso, se trovo metto i crediti!!

 

Edit: Crediti --> http://forums.rpgmakerweb.com/index.php?/topic/172-sprite-reflection/

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

A meno che tu non sia un abile scripter, ti suggerisco di non utilizzare uno script simile.

 

Tralasciando che è del tutto inutile una feature del genere (sempre se riesci a renderla utile in fatto di gameplay), il riflesso sull'acqua non è proprio realistico. Se noti bene il riflesso del chara non si trova esattamente sull'acqua ma letteralmente ai suoi piedi, e il chara dovrebbe riflettersi sull'acqua e non sul ponte, dato che (ma dai) non può riflettere. Quindi dovresti modificare lo script spostando il riflesso del chara, e ritieniti fortunato se per spostare il riflesso del chara devi cambiare soltanto due coordinate. Ma poi devi tenere conto che il riflesso del chara uscirà posizionato male in altre fonti di rifrazione, come ad esempio in uno specchio. E se poi riesci a spostare il riflesso del chara e quindi riesci a posizionarlo bene sull'acqua, sembrerà sempre innaturale, perchè nel riflesso non ci sarà una base su cui il chara sta camminando, e quindi sembrerà che il chara stia fluttuando in aria.

 

Insomma è un casino gestire script del genere

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
 

A meno che tu non sia un abile scripter, ti suggerisco di non utilizzare uno script simile.

 

Tralasciando che è del tutto inutile una feature del genere (sempre se riesci a renderla utile in fatto di gameplay), il riflesso sull'acqua non è proprio realistico. Se noti bene il riflesso del chara non si trova esattamente sull'acqua ma letteralmente ai suoi piedi, e il chara dovrebbe riflettersi sull'acqua e non sul ponte, dato che (ma dai) non può riflettere. Quindi dovresti modificare lo script spostando il riflesso del chara, e ritieniti fortunato se per spostare il riflesso del chara devi cambiare soltanto due coordinate. Ma poi devi tenere conto che il riflesso del chara uscirà posizionato male in altre fonti di rifrazione, come ad esempio in uno specchio. E se poi riesci a spostare il riflesso del chara e quindi riesci a posizionarlo bene sull'acqua, sembrerà sempre innaturale, perchè nel riflesso non ci sarà una base su cui il chara sta camminando, e quindi sembrerà che il chara stia fluttuando in aria.

 

Insomma è un casino gestire script del genere

 

Calmo, prendi un respiro e rifletti.

 

 

 

 e ritieniti fortunato se per spostare il riflesso del chara devi cambiare soltanto due coordinate.
 

E' esattamente cosi ^^ Basta cambiare la coordinata Y ^^ 

 

 

 

 

 Ma poi devi tenere conto che il riflesso del chara uscirà posizionato male in altre fonti di rifrazione, come ad esempio in uno specchio  
 

Si può personalizzare per ogni superficie, basta cambiare dal database, su "Terrain" ( O qualcosa di simile ) il numeretto che va da 0 a 7 ( Di default ce ne sono già due, 1 e 2, quindi 2 tipi di superficie ) E poi ne bastano due, uno per l'acqua e uno per gli, eventuali, specchi...Poi se vuoi ghiaccio e altro modifichi ^^ 

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ciao a tutti! Volevo scusarmi se sono scomparso e non ho aggiornato praticamente nulla, ma ho avuto la malsana idea di iscrivermi all'università, professioni sanitarie :P e ho il test d'ingresso il 3 settembre (giorno del mio compleanno oltretutto t.t) e quindi ho allentato parecchio la presa sul mio progetto e sul making in generale ..

 

Vorrei però dire che ho in mente di rilasciare una piccola demo dalla durata di una 35-40 minuti in modo da ricevere dei pareri più elaborati visto che proverete direttamente il gioco, sempre se ci sarà ancora qualcuno interessato XD Spero di si ! Ciao, corro a studiare D: 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ragazzi mi sono dimenticato di aggiornare il post sull'uscita della demo XD è disponibile già da un pochino, dura circa 1 oretta, aspetto commenti ! :D 

 

Download ed istruzioni : http://therenegade.altervista.org/download.html

 

Update1 : http://therenegade.altervista.org/update-.html

 

Grazie a chiunque proverà il gioco! :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

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

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da kaine
      Questa patch modifica il modo in cui le tavolozze delle immagini vengono caricate e calcolate e scambia la modalità di visualizzazione all'interno della finestra di gioco e a schermo intero da 16 a 32 bit. Tutti i file grafici devono ancora avere colori indicizzati a 8bit! Ma con questa patch verranno visualizzati come previsto senza ulteriori perdite di qualità.


      Se si utilizza RPG2000 1.07, è sufficiente attivare la funzione schermo 32bit dello strumento DestinyPatcherV2 e successivamente applicare la patch 32bit-Fix di DestinyV2.
       
      Tool e versioni supportate:
      Rpgmaker 2000: v1.61-v1.62
      Rpgmaker 2003: v1.08
       
      Autore: Bugmenot,KotatsuAkira
       
      Link Download:
      (2003 v1.08)
      https://www.mediafire.com/file/x5lm6ukulc0v6q9/32bit%28fix%29.rar/file
      (2000 v1.61-v1.62)
      https://www.mediafire.com/file/r3u2uark1gub7e3/RPGMakerPatch_Screen32.7z/file
       
       
      Se avete l'ultima versione di dynrpg mettete la patch direttamente nella cartella dynpatches. Altrimenti dovete applicarla tramite lunar ips che trovate qui:
      http://www.mediafire.com/?5jf9r44itbm7674
      
    • Da kaine
      Questa patch cambia la larghezza di tutto il testo renderizzato sullo schermo di gioco da 6 a 8 (i caratteri larghi e EXFONT passano da 12 a 16, il mezzo spazio da 3 a 4) pixel, mentre l'altezza rimane 12. Per utilizzarlo correttamente, potrebbe essere necessario sostituire i font utilizzati dal motore e inserire nell'EXE una nuova immagine EXFONT con una larghezza di 208 anziché 156 pixel.

      Per il momento, non utilizzare questa funzione in combinazione con EXtraFONT. In particolare, applicatela solo se sapete perfettamente cosa state facendo, poiché dovrete regolare manualmente la definizione della larghezza ridimensionata automaticamente di EXFONT al momento del caricamento da 288 a 384 pixel.
       
      Tool e versioni supportate:
      Rpgmaker 2000: v1.07-v1.10-v1.50-v1.51-v1.52-v1.60-v1.61-v1.62
      Rpgmaker 2003: v1.00-v1.03-v1.05-v1.08-v1.09-v1.12
       
      Autore: KotatsuAkira
       
      Link Download:
      https://www.mediafire.com/file/tl9kkcf78b7twqw/RPGMakerPatch_TextWidthEight.7z/file
       
      Se avete l'ultima versione di dynrpg mettete la patch direttamente nella cartella dynpatches. Altrimenti dovete applicarla tramite lunar ips che trovate qui:
      http://www.mediafire.com/?5jf9r44itbm7674
    • Da kaine
      Visualizza il menu invertito come in FF6.
      Personaggi a sinistra ed opzioni a destra.
       
      Tool e versioni supportate:
      Rpgmaker 2000: v1.07-v1.10-v1.50-v1.51-v1.52-v1.60-v1.61-v1.62
      Rpgmaker 2003: v1.00-v1.03-v1.05-v1.08-v1.09-v1.12
       
      Autore: Cherry,KotatsuAkira(porting)
       
      Link Download:
      (2003 v1.08)
      http://www.mediafire.com/file/o6o847gr08adqcb/RPG_RT_menureversed.rar
      (2000 v1.62)
      https://www.mediafire.com/file/osqjc0i4mi72ll4/RPGMakerPatch_MenuReversed.7z/file
      (2000 v1.07-v1.10-v1.50-v1.51/v1.52-v1.60-v1.61-v1.62 - 2003 v1.00-v1.03-v1.05-v1.08-v1.09->v1.12 (Maniac Patch up to mp210414 only) )
      https://www.mediafire.com/file/bfk056czh2xvczj/RPGMakerPatch_MenuReversed.7z/file
       
       
      Se avete l'ultima versione di dynrpg mettete la patch direttamente nella cartella dynpatches. Altrimenti dovete applicarla tramite lunar ips che trovate qui:
      http://www.mediafire.com/?5jf9r44itbm7674
    • Da Waldorf
      2D Áperdam
       
       
       
       

       
       
       
       
       
      Ecco qui, finalmente, la demo del mio primissimo progetto "Serio" ufficiale!
       
       
       
       
       
      Trama:
       
       
      La storia si svolge all'interno di un liceo, la scuola Áperdam, ed ha come centro focale la classe Seconda D.
       
       
      Questi ragazzi devono all'improvviso capire cosa fare di fronte allo strano comportamento dei professori, che li attaccano utilizzando strane tecniche prese dalle loro materie.
       
       
      Allo stesso tempo altri fatti strani si aggiungono, che spinge questi studenti ad indagare sull'accaduto, ma cercando lo stesso di seguire la loro routine scolastica.
       
       
       
       
       
      Gameplay:
       
       
      Come ogni RPG il gameplay è composto da 2 momenti:
       
       
       
       
       
      -Battaglia: Le battaglie, grazie ad un preciso utilizzo degli script di battaglia MOG, sono molto più dinamiche. Varie mosse infatti permettono l'esecuzione di particolari combo per poter eseguire un'altra mossa che complementa quella precedente. Inoltre altre mosse richiedono specifici tasti per essere lanciate. (vedi trailer)
       
       
       
       
       
      -Esplorazione: Una scuola, una sua succursale ed un intero giardino da esplorare, oltre a due bei dungeon da espugnare. Che volete di più?
       
       
      Gli incontri randomici dei mostri, in particolare, avvengono in seguito all'apparizione di un nemico su mappa, che va prontamente schivato con la pressione di una certa freccia direzionale.
       
       
       
       
       
      Difficoltà:
       
       
      La difficoltà nelle battaglie è autoregolata a seconda della vostra bravura nelle combo e nella tattica.
       
       
       
       
       
      Il punteggio va da 1 a 100 ed aumenta:
       
       
      -In seguito ad una combo corretta
       
       
      -Con la sconfitta di un boss
       
       
       
       
       
      Diminuisce:
       
       
      -Subendo gravi danni
       
       
      -Facendo svenire un compagno
       
       
      -Fuggendo
       
       
       
       
       
      Il tema scolastico:
       
       
      Il tema scolastico è rispecchiato su alcuni fattori del gameplay:
       
       
      -Per imparare tecniche, è necessario studiare dal menù, spendendo punti studio.
       
       
      -il KO qui è sostituito dalla bocciatura, l'avvelenamento dalla "Assenza di appunti"
       
       
      -Tutte le tecniche di battaglia provengono dalle materie scolastiche
       
       
      -Il salvataggio si esegue appoggiando il registro di classe su un tavolo
       
       
      -La modalità ricercA, per ritrovare, ehm... oggetti smarriti.
       
       
       
       
       
      Personaggi:
       
       
       
       
       
       
       
       
       
       
       
       
      Trailer:
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Download:
       
       
       
       
       
      https://rpgwaldorf.altervista.org/2d-aperdam-demo/
       
       
      Nota: richiede RTP
       
       
         
×