Jump to content
Rpg²S Forum

espert

Utenti
  • Posts

    124
  • Joined

  • Last visited

Posts posted by espert

  1. Guarda, io quelle risorse le ho tutte (comprate su steam nel periodo natalizio che erano scontate di molto). Se vuoi, ti passo lo script per le 8 direzioni che era incluso nel pacco.

     

    A me piacciono molto, l'unico problema è per i tileset: sono pochi e non ci puoi fare moltissimo. Se il gioco lo basi su una sola città visitabile più qualche dungeon, allora va più che bene, altrimenti è difficile riuscire a rendere tutto il più vario possibile.

     

    Però ammetto che le animazioni non sono un granché con quella grafica, ma almeno con esse, puoi rendere meglio giochi basati su trame più dark, dato che lo stile puccioso delle RTP di RPGMaker te lo snaturano troppo il dark theme.

  2. x Guardian:

     

    1) Sì è la mappa con teletrasporto. Ora le città le si vedono in rosso lampeggiante (ovviamente in screen non si nota l'animazione), ma quando vengono sbloccate, si colorano di blu e ci si può teletrasportare tramite un'apposita funzione che vi spiegherò più avanti.

     

    2) Sì, rispecchiano la loro posizione. Diciamo che ogni continente è stato pensato come una trasposizione della realtà, per quanto riguarda cultura e altro. Galonde, ad esempio, sarebbe una sorta di Spagna, mentre Valumen è una specie di Inghilterra bretone. Kisuba sarebbe una piccola regione Giapponese in stile feudale, separata da Mizumya (che si trova dall'altra parte del mare), poichè sono quegli abitanti che hanno preferito spostarsi più lontano per via delle guerre, formando poi un continente loro in quel piccolo spazio su mappa.

     

     

    x Cris:

     

    Grazie. Ma come dice anche Buddy, è più ripreso da D&D/Pathfinder che da Final Fantasy. I 17 personaggi poi sono in via di "scrittura", poichè nonostante avessi trovato le immagini, ad un tratto, mi sono reso conto che c'era qualcosa che non andava. Chiamatemi pazzo, ma mi dava enormemente fastidio non avere personaggi di colore nè nel party nè tra gli npc. Perciò ho contattato una mia amica che sa disegnare e le ho chiesto se le andava di disegnarmi i mezzi busti e i faceset dei chara. Per i charasets, invece, dovrò vedere come fare, perchè non sono in grado di farli e dovrò vedere se trovo qualche anima pia che potrà realizzarmeli. Altrimenti, almeno per questa volta, li farò poco somiglianti alla loro controparte disegnata, utilizzando quei programmi che ci sono in giro per la costruzione di chara personalizzati. Ma almeno sarà un inizio.

     

     

    x Buddy:

     

    Ottima correzione :D

  3. Ciao Holy,

     

    Scusa se ti disturbo, ma avrei un problema...

     

    Praticamente, nel mio progetto, c'è uno script di moghunter (Animated Title A (v2.2)) che non mi fa partire il tuo script del logo, facendo comparire solo il suo di logo.

     

    Ti copio incollo lo script, così magari mi sai dire se c'è qualcosa da modificare:

     

    #==============================================================================
    # +++ MOG - Animated Title A (v2.2) +++
    #==============================================================================
    # By Moghunter
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Tela de titulo animado, com logo, imagens aleatórias e outros efeitos visuais.
    #==============================================================================

    #==============================================================================
    # IMAGENS NECESSÁRIAS
    #==============================================================================
    # Serão necessários as seguintes imagens na pasta Graphics/Titles2/
    #
    # Cursor.png
    # Commmand_Name.png (image filename = name of command)
    # Particle.png (Opcional)
    # Logo.jpg (Opcional)
    # Animated.png (Opcional)
    #==============================================================================

    #==============================================================================
    # NOTA 1 - Para definir a imagem de texto basta selecionar no banco de dados
    # a imagem do titulo numero 2 (Segunda camada)
    #==============================================================================

    #==============================================================================
    # NOTA 2 - O nome da imagem de comando é iguál ao nome do comando definido
    # no banco de dados do Rpg Maker.
    #==============================================================================


    #==============================================================================
    # ● Histórico (Version History)
    #==============================================================================
    # v 2.2 - Possibilidade de colocar valores de movemento negativo nas partículas.
    # v 2.1 - Correção do Bug quando a quantidade de imagens aleatórias é definida
    # com a quantidade menor que 1.
    # v 2.0 - Adição do Sprite Animado. (Opcional)
    # - Adição de cores aleatórias nas partículas.
    # - Adição do multiplas camadas de imagens. (Opcional)
    # - Adição do efeito Wave no texto do titulo.
    # - Opção de definir a velocidade de movimento das partículas.
    # - Opção de ativar ou não o tremor na seleção de comando.
    #
    # v 1.2 - Melhoria no sistema de dispose de imagens.
    #
    # v 1.1 - Opção de pular o logo ao apertar alguma tecla.
    # - Adição de comandos em pictures.
    # - Adição de cursor de comando.
    #==============================================================================

    module MOG_SCENE_TITLE_A

    #--------------------------------------------------------------------------
    # ▼ LOGO ▼
    #--------------------------------------------------------------------------
    # Apresenta um Logo ao começar a tela de titulo.
    # Será necessário ter a imagem LOGO.jpg (png) na pasta Graphics/Title2
    #--------------------------------------------------------------------------
    # Ativar Logo
    LOGO = false
    # Duração do logo.
    LOGO_DURATION = 2 #(Sec)

    #--------------------------------------------------------------------------
    # ▼ RANDOM BACKGROUND ▼
    #--------------------------------------------------------------------------
    #Definição das pictures.
    #--------------------------------------------------------------------------
    RANDOM_PICTURES = [
    "Title1"
    #"Title4","Title5","Title6","Title7"
    ]
    #Tempo de duração para ativar a troca de imagens.
    RANDOM_PICTURES_DURATION = 10#(sec)
    #Seleção aleatória.
    RAMDOM_SELECTION = true
    #Velocidade de Scrolling. (Speed X , Speed Y)
    RANDOM_PICTURES_SCROLL_SPEED = [0,0]

    #--------------------------------------------------------------------------
    # ▼ MULTIPLE LAYERS ▼
    #--------------------------------------------------------------------------
    # Definição de multiplas camadas. * (não há limíte na quantidade de camadas
    # usadas)
    #--------------------------------------------------------------------------
    # MULTIPLE_LAYERS = [ ["A",B,C,D], ["A",B,C,D], ["A",B,C D], ["A",B,C,D ], ....]
    #
    # A - Nome da imagem.
    # B - Velocidade de scroll na horizontal.
    # C - Velocidade de scroll na vertical.
    # D - Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
    #
    MULTIPLE_LAYERS = [
    ["Layer1",1,0,1],
    ["Layer2",3,0,1],
    ["Layer3",0,0,0]
    # ["Layer4",0,0,0],
    # ["Layer5",0,0,0],
    # ["Layer6",0,0,0]
    ]

    #--------------------------------------------------------------------------
    # ▼ PARTICLES ▼
    #--------------------------------------------------------------------------
    # Adiciona partículas animadas na tela do titulo.
    # Será necessário ter a imagem PARTICLE.png na pasta Graphics/Title2
    #--------------------------------------------------------------------------
    # Ativar Partículas.
    PARTICLE = true
    # Ativar Cores Aleatórias.
    PARTICLE_RANDOM_COLOR = true
    # Definição do tipo de blend. (0,1,2)
    PARTICLE_BLEND_TYPE = 1
    #Definição do limite de velocidade das partículas.
    PARTICLE_MOVEMENT_RANGE_X = 3
    PARTICLE_MOVEMENT_RANGE_Y = 3
    PARTICLE_ANGLE_RANGE = 3

    #--------------------------------------------------------------------------
    # ▼ WAVE TITLE ▼
    #--------------------------------------------------------------------------
    # Ativa o efeito WAVE no texto do titulo, o Texto do titulo é definido
    # na camada do titulo 2, que pode ser definido através do banco de dados
    #--------------------------------------------------------------------------
    #Ativar o efeito do titulo com efeito WAVE.
    TITLE_WAVE = true
    #Configuração do efeito WAVE
    #
    # TITLE_WAVE_CONFIG = [ AMP, LENGTH , SPEED]
    #
    TITLE_WAVE_CONFIG = [6 , 232 , 360]

    #--------------------------------------------------------------------------
    # ▼ ANIMATED_SPRITE ▼ (Opcional)
    #--------------------------------------------------------------------------
    # Adiciona um sprite animado no titulo.
    # A quantidade de frames é proporcional a largura dividido pela altura
    # da imagem, ou seja, não há limite de quantidade de frames e nem de
    # tamanho da imagem.
    # Será necessário ter a imagem ANIMATED.png (Jpg) na pasta Graphics/Title2
    #--------------------------------------------------------------------------
    # Ativar Sprite animado.
    ANIMATED_SPRITE = false
    # Posição do Sprite animado.
    ANIMATED_SPRITE_POSITION = [130,150]
    # Velocidade da animação
    ANIMATED_SPRITE_SPEED = 10
    # Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
    ANIMATED_SPRITE_BLEND_TYPE = 1
    # Definição do zoom,
    ANIMATED_SPRITE_ZOOM = 1.5


    #--------------------------------------------------------------------------
    # ▼ COMMANDS / SELECTION ▼
    #--------------------------------------------------------------------------
    # Configuração extras da tela de titulo.
    #--------------------------------------------------------------------------
    # Posição do comando.
    COMMANDS_POS = [220 , 280]
    # Ativar o efeito de tremor ao selecionar o comando.
    COMMAND_SHAKE = true
    # Definição da posição do cursor.(Para ajustes)
    CURSOR_POS = [-42,-7]
    # Ativar flash ao mover o comando.
    CURSOR_FLASH_SELECTION = true
    # Definição da posição do flash.
    CURSOR_FLASH_SLECTION_POS = [-180,0]
    # Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
    CURSOR_FLASH_SLECTION_BLEND_TYPE = 1

    end

    #==============================================================================
    # ■ Window TitleCommand
    #==============================================================================
    class Window_TitleCommand < Window_Command
    attr_reader :list
    end

    #==============================================================================
    # ■ Particle Title
    #==============================================================================
    class Particle_Title < Sprite

    include MOG_SCENE_TITLE_A

    #--------------------------------------------------------------------------
    # ● Initialize
    #--------------------------------------------------------------------------
    def initialize(viewport = nil)
    super(viewport)
    self.bitmap = Cache.title2("Particle")
    self.tone.set(rand(255),rand(255), rand(255), 255) if PARTICLE_RANDOM_COLOR
    self.blend_type = PARTICLE_BLEND_TYPE
    @cw = self.bitmap.width
    @ch = self.bitmap.height
    @nx = PARTICLE_MOVEMENT_RANGE_X
    @ny = PARTICLE_MOVEMENT_RANGE_Y
    reset_setting
    end

    #--------------------------------------------------------------------------
    # ● Reset Setting
    #--------------------------------------------------------------------------
    def reset_setting
    zoom = (50 + rand(100)) / 100.1
    self.zoom_x = zoom
    self.zoom_y = zoom
    self.x = (rand(576) -32)
    self.y = rand(448 + @ch)
    self.opacity = 0
    self.angle = rand(360)
    nx2 = rand(@nx).abs
    nx2 = 1 if (@nx != 0 and nx2 < 1)
    @speed_x = @nx > 0 ? nx2 : @nx < 0 ? -nx2 : 0
    ny2 = rand(@ny).abs
    ny2 = 1 if (@ny != 0 and ny2 < 1)
    @speed_y = @ny > 0 ? ny2 : @ny < 0 ? -ny2 : 0
    @speed_a = [[rand(PARTICLE_ANGLE_RANGE), PARTICLE_ANGLE_RANGE].min, 0].max
    end

    #--------------------------------------------------------------------------
    # ● Dispose
    #--------------------------------------------------------------------------
    def dispose
    super
    self.bitmap.dispose
    end

    #--------------------------------------------------------------------------
    # ● Update
    #--------------------------------------------------------------------------
    def update
    super
    self.x += @speed_x
    self.y -= @speed_y
    self.angle += @speed_a
    self.opacity += 5
    reset_setting if can_reset_setting?
    end

    #--------------------------------------------------------------------------
    # ● Can Reset Setting
    #--------------------------------------------------------------------------
    def can_reset_setting?
    return true if (self.x < -48 or self.x > 592)
    return true if (self.y < -48 or self.y > 464)
    return false
    end
    end

    #==============================================================================
    # ■ Multiple Layers Title
    #==============================================================================
    class Multiple_Layers_Title

    #--------------------------------------------------------------------------
    # ● Initialize
    #--------------------------------------------------------------------------
    def initialize(name = "", scroll_x = 0, scroll_y = 0, blend = 0, index = 0)
    @layer = Plane.new
    @layer.bitmap = Cache.title1(name.to_s) rescue nil
    @layer.bitmap = Bitmap.new(32,32) if @layer.bitmap == nil
    @layer.z = 10 + index
    @layer.opacity = 0
    @layer.blend_type = blend
    @scroll_speed = [scroll_x, scroll_y]
    end

    #--------------------------------------------------------------------------
    # ● Dispose
    #--------------------------------------------------------------------------
    def dispose
    @layer.bitmap.dispose
    @layer.bitmap = nil
    @layer.dispose
    end

    #--------------------------------------------------------------------------
    # ● Update
    #--------------------------------------------------------------------------
    def update
    @layer.opacity += 2
    @layer.ox += @scroll_speed[0]
    @layer.oy += @scroll_speed[1]
    end

    end

    #==============================================================================
    # ■ Scene Title
    #==============================================================================
    class Scene_Title < Scene_Base
    include MOG_SCENE_TITLE_A

    #--------------------------------------------------------------------------
    # ● Start
    #--------------------------------------------------------------------------
    def start
    super
    RPG::BGM.fade(2000)
    @logo_active = LOGO
    SceneManager.clear
    @phase = 1
    @phase_time = -1
    dispose_title_sprites
    create_logo if @logo_active
    create_command_window
    create_commands
    create_background
    create_light
    create_cursor
    create_animated_object
    create_flash_select
    create_multiple_layers
    play_title_music unless @logo_active
    end

    #--------------------------------------------------------------------------
    # ● Create Multiple Layers
    #--------------------------------------------------------------------------
    def create_flash_select
    return if !CURSOR_FLASH_SELECTION
    @flash_select = Sprite.new
    @flash_select.bitmap = Cache.title2("Cursor2")
    @flash_select.z = 99
    @flash_select.opacity = 0
    @flash_select.blend_type = CURSOR_FLASH_SLECTION_BLEND_TYPE
    end

    #--------------------------------------------------------------------------
    # ● Create Multiple Layers
    #--------------------------------------------------------------------------
    def create_multiple_layers
    @m_layers = []
    index = 0
    for i in MULTIPLE_LAYERS
    @m_layers.push(Multiple_Layers_Title.new(i[0],i[1],i[2],i[3],index))
    index += 1
    end
    end

    #--------------------------------------------------------------------------
    # ● Create_Logo
    #--------------------------------------------------------------------------
    def create_animated_object
    return if !ANIMATED_SPRITE
    @object_index = 0
    @object_animation_speed = 0
    @object = Sprite.new
    @object.z = 98
    @object.opacity = 0
    @object.blend_type = ANIMATED_SPRITE_BLEND_TYPE
    @object.zoom_x = ANIMATED_SPRITE_ZOOM
    @object.zoom_y = ANIMATED_SPRITE_ZOOM
    @object_image = Cache.title2("Animated")
    @object_frame_max = @object_image.width / @object_image.height
    @object_width = @object_image.width / @object_frame_max
    @object.bitmap = Bitmap.new(@object_width,@object_image.height)
    @object.x = ANIMATED_SPRITE_POSITION[0]
    @object.y = ANIMATED_SPRITE_POSITION[1]
    make_object_bitmap
    end

    #--------------------------------------------------------------------------
    # ● Create_Logo
    #--------------------------------------------------------------------------
    def create_cursor
    @cursor = Sprite.new
    @cursor.bitmap = Cache.title2("Cursor")
    @cursor.opacity = 0
    @cursor.z = 130
    @cursor_position = [0,0]
    @mx = [0,0,0]
    end

    #--------------------------------------------------------------------------
    # ● Create_Logo
    #--------------------------------------------------------------------------
    def create_logo
    @phase = 0
    @logo = Sprite.new
    @logo.bitmap = Cache.title2("Logo")
    @logo.opacity = 0
    @logo_duration = 180 + (LOGO_DURATION * 60)
    @logo.z = 200
    end

    #--------------------------------------------------------------------------
    # ● Create Commands
    #--------------------------------------------------------------------------
    def create_commands
    @command_window.visible = false
    @commands_index_old = -1
    @commands = []
    @commands_shake_duration = 0
    index = 0
    for com in @command_window.list
    sprite = Sprite.new
    sprite.bitmap = Cache.title2(com[:name].to_s) rescue nil
    if sprite.bitmap == nil
    sprite.bitmap = Bitmap.new(200,32)
    sprite.bitmap.font.size = 24
    sprite.bitmap.font.bold = true
    sprite.bitmap.font.italic = true
    sprite.bitmap.draw_text(0, 0, 200, 32, com[:name].to_s,1)
    end
    sprite.x = COMMANDS_POS[0] - 100 - (index * 20)
    sprite.y = index * sprite.bitmap.height + COMMANDS_POS[1]
    sprite.z = 100 + index
    sprite.opacity = 0
    index += 1
    @commands.push(sprite)
    end
    @command_max = index
    end

    #--------------------------------------------------------------------------
    # ● create_background
    #--------------------------------------------------------------------------
    def create_background
    @rand_title_duration = 120
    @old_back_index = 0
    @sprite1 = Plane.new
    @sprite1.opacity = 0
    @sprite1.z = 1
    if RAMDOM_SELECTION
    execute_random_picture(false)
    else
    execute_random_picture(true)
    end
    @sprite2 = Sprite.new
    @sprite2.bitmap = Cache.title2($data_system.title2_name)
    @sprite2.z = 140
    @sprite2.opacity = 0
    if TITLE_WAVE
    @sprite2.wave_amp = TITLE_WAVE_CONFIG[0]
    @sprite2.wave_length = TITLE_WAVE_CONFIG[1]
    @sprite2.wave_speed = TITLE_WAVE_CONFIG[2]
    end
    end

    #--------------------------------------------------------------------------
    # ● Create Light
    #--------------------------------------------------------------------------
    def create_light
    return unless PARTICLE
    @viewport_light = Viewport.new(-32, -32, 600, 480)
    @viewport_light.z = 50
    @light_bitmap =[]
    for i in 0...20
    @light_bitmap.push(Particle_Title.new(@viewport_light))
    end
    end

    #--------------------------------------------------------------------------
    # ● dispose Background1
    #--------------------------------------------------------------------------
    def dispose_background1
    @sprite1.bitmap.dispose
    @sprite1.bitmap = nil
    @sprite1.dispose
    @sprite1 = nil
    end

    #--------------------------------------------------------------------------
    # ● Dispose Background2
    #--------------------------------------------------------------------------
    def dispose_background2
    if @sprite2.bitmap != nil
    @sprite2.bitmap.dispose
    @sprite2.bitmap = nil
    @sprite2.dispose
    @sprite2 = nil
    end
    end

    #--------------------------------------------------------------------------
    # ● Dispose Light
    #--------------------------------------------------------------------------
    def dispose_light
    return unless PARTICLE
    if @light_bitmap != nil
    for i in @light_bitmap
    i.dispose
    end
    @light_bitmap = nil
    end
    @viewport_light.dispose
    end

    #--------------------------------------------------------------------------
    # ● Dispose Logo
    #--------------------------------------------------------------------------
    def dispose_logo
    return unless @logo_active
    @logo.bitmap.dispose
    @logo.dispose
    end

    #--------------------------------------------------------------------------
    # ● Dispose Multiple Layers
    #--------------------------------------------------------------------------
    def dispose_multiple_layers
    return if @m_layers == nil
    @m_layers.each {|layer| layer.dispose }
    end

    #--------------------------------------------------------------------------
    # ● Terminate
    #--------------------------------------------------------------------------
    def terminate
    super
    dispose_title_sprites
    end

    #--------------------------------------------------------------------------
    # ● Dispose Title Sprites
    #--------------------------------------------------------------------------
    def dispose_title_sprites
    return if @cursor == nil
    dispose_background1
    dispose_background2
    dispose_light
    dispose_logo
    dispose_multiple_layers
    @cursor.bitmap.dispose
    @cursor.dispose
    @cursor = nil
    if @flash_select != nil
    @flash_select.bitmap.dispose
    @flash_select.dispose
    end
    for com in @commands
    com.bitmap.dispose
    com.dispose
    end
    if ANIMATED_SPRITE
    @object.bitmap.dispose
    @object.dispose
    @object_image.dispose
    end
    end

    #--------------------------------------------------------------------------
    # ● Update
    #--------------------------------------------------------------------------
    def update
    super
    update_logo
    update_initial_animation
    update_command
    update_background
    update_light
    update_object_animation
    update_multiple_layers
    end

    #--------------------------------------------------------------------------
    # ● Update Multiple Layers
    #--------------------------------------------------------------------------
    def update_multiple_layers
    return if @m_layers == nil
    @m_layers.each {|layer| layer.update }
    end

    #--------------------------------------------------------------------------
    # ● Make Object bitmap
    #--------------------------------------------------------------------------
    def make_object_bitmap
    @object.bitmap.clear
    src_rect_back = Rect.new(@object_width * @object_index, 0,@object_width,@object_image.height)
    @object.bitmap.blt(0,0, @object_image, src_rect_back)
    end

    #--------------------------------------------------------------------------
    # ● Update Object Animation
    #--------------------------------------------------------------------------
    def update_object_animation
    return if !ANIMATED_SPRITE
    @object.opacity += 2
    @object_animation_speed += 1
    if @object_animation_speed > ANIMATED_SPRITE_SPEED
    @object_animation_speed = 0
    @object_index += 1
    @object_index = 0 if @object_index >= @object_frame_max
    make_object_bitmap
    end
    end

    #--------------------------------------------------------------------------
    # ● Update Cursor Position
    #--------------------------------------------------------------------------
    def update_cursor_position
    @cursor.opacity += 5
    execute_animation_s
    execute_cursor_move(0,@cursor.x,@cursor_position[0] + @mx[1])
    execute_cursor_move(1,@cursor.y,@cursor_position[1])
    end

    #--------------------------------------------------------------------------
    # ● Execute Animation S
    #--------------------------------------------------------------------------
    def execute_animation_s
    @mx[2] += 1
    return if @mx[2] < 4
    @mx[2] = 0
    @mx[0] += 1
    case @mx[0]
    when 1..7; @mx[1] += 1
    when 8..14; @mx[1] -= 1
    else
    @mx[0] = 0
    @mx[1] = 0
    end
    end

    #--------------------------------------------------------------------------
    # ● Execute Cursor Move
    #--------------------------------------------------------------------------
    def execute_cursor_move(type,cp,np)
    sp = 5 + ((cp - np).abs / 5)
    if cp > np
    cp -= sp
    cp = np if cp < np
    elsif cp < np
    cp += sp
    cp = np if cp > np
    end
    @cursor.x = cp if type == 0
    @cursor.y = cp if type == 1
    end

    #--------------------------------------------------------------------------
    # ● Update Logo
    #--------------------------------------------------------------------------
    def update_logo
    return if @phase != 0
    loop do
    break if @logo_duration == 0
    execute_logo
    Graphics.update
    Input.update
    end
    play_title_music
    end

    #--------------------------------------------------------------------------
    # ● Execute Logo
    #--------------------------------------------------------------------------
    def execute_logo
    if @logo_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B))
    @logo_duration = 120
    end
    @logo_duration -= 1
    if @logo_duration > 120
    @logo.opacity += 5
    else
    @logo.opacity -= 5
    end
    if @logo.opacity <= 0
    @logo_duration = 0
    @phase = 1
    end
    end

    #--------------------------------------------------------------------------
    # ● Update Background
    #--------------------------------------------------------------------------
    def update_background
    @sprite1.ox += RANDOM_PICTURES_SCROLL_SPEED[0]
    @sprite1.oy += RANDOM_PICTURES_SCROLL_SPEED[1]
    @sprite2.opacity += 2
    @sprite2.update
    return if RANDOM_PICTURES.size < 1
    @rand_title_duration -= 1
    if @rand_title_duration <= 0
    @sprite1.opacity -= 5 unless RANDOM_PICTURES.size < 2
    else
    @sprite1.opacity += 5
    end
    return if @sprite1.opacity != 0
    execute_random_picture
    end

    #--------------------------------------------------------------------------
    # ● Execute Random Picture
    #--------------------------------------------------------------------------
    def execute_random_picture(initial = false)
    @rand_title_duration = [[60 * RANDOM_PICTURES_DURATION, 9999].min, 60].max
    if @sprite1.bitmap != nil
    @sprite1.bitmap.dispose
    @sprite1.bitmap = nil
    end
    if RAMDOM_SELECTION
    rand_pic = rand(RANDOM_PICTURES.size)
    if rand_pic == @old_back_index
    rand_pic += 1
    rand_pic = 0 if rand_pic >= RANDOM_PICTURES.size
    end
    @old_back_index = rand_pic
    else
    @old_back_index += 1 unless initial
    @old_back_index = 0 if @old_back_index >= RANDOM_PICTURES.size
    end
    pic = RANDOM_PICTURES[@old_back_index]
    @sprite1.bitmap = Cache.title1(pic) rescue nil
    @sprite1.bitmap = Cache.title1("") if @sprite1.bitmap == nil
    end

    #--------------------------------------------------------------------------
    # ● Update Light
    #--------------------------------------------------------------------------
    def update_light
    return unless PARTICLE
    if @light_bitmap != nil
    for i in @light_bitmap
    i.update
    end
    end
    end

    #--------------------------------------------------------------------------
    # ● Update Initial Animation
    #--------------------------------------------------------------------------
    def update_initial_animation
    return if @phase != 1
    @phase_time -= 1 if @phase_time > 0
    if @phase_time == 0
    @phase = 2
    @phase_time = 30
    end
    for i in @commands
    index = 0
    if i.x < COMMANDS_POS[0]
    i.x += 5 + (2 * index)
    i.opacity += 10
    if i.x >= COMMANDS_POS[0]
    i.x = COMMANDS_POS[0]
    i.opacity = 255
    if @phase_time < 15 / 2
    @phase_time = 15
    end
    end
    end
    index += 1
    end
    end

    #--------------------------------------------------------------------------
    # ● Update Command
    #--------------------------------------------------------------------------
    def update_command
    return if @phase != 2
    update_command_slide
    update_cursor_position
    update_flash_select
    end

    #--------------------------------------------------------------------------
    # ● Update Command Slide
    #--------------------------------------------------------------------------
    def update_command_slide
    if @commands_index_old != @command_window.index
    @commands_index_old = @command_window.index
    @commands_shake_duration = 30
    if @flash_select != nil
    @flash_select.opacity = 255
    end
    end
    return if @commands_shake_duration == 0
    @commands_shake_duration -= 1 if @commands_shake_duration > 0
    @commands_shake_duration = 0 if !COMMAND_SHAKE
    for i in @commands
    if (i.z - 100) == @command_window.index
    i.opacity += 10
    @cursor_position = [COMMANDS_POS[0] + CURSOR_POS[0],i.y + CURSOR_POS[1]]
    i.x = COMMANDS_POS[0] + rand(@commands_shake_duration)
    else
    i.opacity -= 7 if i.opacity > 100
    i.x = COMMANDS_POS[0]
    end
    end
    end

    #--------------------------------------------------------------------------
    # ● Update Flash Select
    #--------------------------------------------------------------------------
    def update_flash_select
    return if !CURSOR_FLASH_SELECTION
    @flash_select.opacity -= 8
    @flash_select.x = @cursor_position[0] + CURSOR_FLASH_SLECTION_POS[0]
    @flash_select.y = @cursor_position[1] + CURSOR_FLASH_SLECTION_POS[1]
    end

    end

    $mog_rgss3_animated_title_a = true

     

  4. Grazie Guardian!

     

    I continenti sono abbastanza grandi, ma non tutti. Alcuni hanno un buon numero di città/villaggi, mentre altri sono molto piccoli. In gioco, le storie si baseranno su diversi continenti. Nel primo capitolo, andremo ad esplorare Valumen e Kisuba. Più profondamente il primo che il secondo. Quindi poi, in game, vedremo solo la parte di Yluja dove vengono mostrati questi due continenti confinanti quasi tra loro. Ma sarà interessante parlare con i vari npc sulle mappe, perchè potrebbero tralasciare qualcosa su ciò che si vedrà nei prossimi capitoli.

     

    Non sarà possibile entrare in quelle gilde, ma sicuramente ci saranno quest che avranno a che fare con loro. Che si vada contro o a favore di queste, lo si vedrà in game.

     

    Per le news grafiche non vedo l'ora anche io, perchè almeno potrò aggiornare il primo post inserendo tutte le modifiche fatte negli ultimi due mesi.

  5. #Update#

     

    Buonsalve, gente!

     

    Come sapete ormai sono tornato a lavorare attivamente su questo progetto. L'altra volta vi ho detto come stavo ricreando il sistema delle classi e quanti personaggi reclutabili ci saranno.

     

    Questa volta invece, vi aggiorno su quello a cui ci ho buttato 4/5 ore di lavorazione l'altra sera: il Mondo (ovvero Yluja).

    Yluja non è altro che il nome stesso del pianeta, ovvero quello che noi chiamiamo Terra. Già dal titolo, si capisce che avremo a che fare con le varie avventure di Yluja, ma quello che non ho mai detto prima (credo) è che non gireremo tutto il mondo già in questo gioco. La mia idea infatti è basata sul creare una saga (potrebbe essere una trilogia quanto una saga da 6 episodi), con episodi che si svolgono o simultaneamente ad altri avvenimenti o a distanza di un determinato lasso di tempo.

     

    Ovviamente, per poter fare questo, ho dovuto iniziare con il creare il mondo intero, quindi tutta Yluja. Lavorare a questo mondo, significa aver creato diversi continenti con diverse popolazioni, culture e religioni. Scrivere la storia che vi verrà narrata in gioco tramite libri e manufatti, inventare festività e giorni importanti per ogni luogo, gli Dei a cui fanno riferimento le varie religioni, gli scrittori delle opere, i rituali e le gilde e i gruppi che si possono incontrare o di cui sentirete parlare.

     

    Perciò vado ad elencarvi ora alcune cose messe già su penna...

     

    Continenti (10)

    • Galonde
    • Sirastir
    • Thonyamar
    • Valumen
    • Karne
    • Edhelest
    • Brasea
    • Caenay
    • Mizumya
    • Kisuba

     

     

    Questi sono i 10 continenti che danno forma e limiti del mondo di Yluja. Qui sono però escluse alcune isole che potrebbero essere visitate. Non tutte le isole saranno esplorabili, ma in una buona parte di esse, ci si andrà anche solo per svolgere una qualche quest o pezzo di storia.

     

    Quello che ora vado ad esporvi, sono le gilde e/o gruppi che saranno presenti nella saga:

     

    Gilde e Gruppi (15)

    • La Rosa Rossa (Assassini)
    • Gli Scudi Cremisi (Avventurieri)
    • I Segugi di Swaford (Assassini)
    • Il Concilio d'Argento (Gruppo Segreto)
    • Gli Eroi di Ferro (Truppe di soldati di Biziram, in Karne)
    • Le Spine di Vertou (Spie)
    • I Viandanti di Bellorca (Spie)
    • La Legione di Craham (Guardiani)
    • I Martelli Corvini (Guerrieri)
    • Le Spade di Atell (Guerrieri)
    • Il Lupo Bianco (Schiavisti)
    • I Cavalieri di Braywick (Ordine Cavaliere)
    • La Viverna d'Oro (Ribelli)
    • I Crociati (Ordine Cavaliere)
    • La Legione dello Scettro (Banditi)

     

    Questi sono i maggiori gruppi importanti della saga. Ovviamente potrebbero essercene altri, ma non così importanti. Potreste ritrovarveli davanti in un qualsiasi momento. Ho omesso di proposito determinati dettagli su questi gruppi, dettagli scritti affianco ai loro nomi, per non spoilerarvi qualcosa.

     

    Questa è invece la lista di alcune guerre accadute durante il periodo pre-game, ovvero che si sono andate svolgendosi nel passato di questo mondo:

     

    Battaglie e Guerre (7)

    • L'Assedio di Noki
    • La Campagna del Divino
    • La Guerra delle Cicatrici
    • La Battaglia di Videklif
    • La Marcia del Serpente
    • Il Regno del Caos
    • La Crociata del Vuoto

     

    Tutte queste guerre si sono svolte presso diversi continenti, a volte sono state combattute da più continenti messi insieme, a seconda di quale minaccia affrontassero. Coloro che diedero i nomi a tali battaglie, furono i sopravvissuti ad esse. Quindi coloro che ancora oggi (forse) rammentano le atrocità accadute in quegli anni bui.

     

    Per ora, vi lascio con queste informazioni. Spero che vi attraggano in qualche modo.

     

    In questi giorni sto anche lavorando alla grafica del game. Sto modificando vari file affinchè venga tutto amalgamato alla grafica di gioco. Quindi inserendo elementi particolari ogni qual volta venga richiamata una funzione del gioco che attinge a qualche tipo di immagine.

     

    Spero di potervi mostrare qualcosa quanto prima, che siano semplici screen di dialogo o qualche mappa.

     

    A presto!

  6. Mi sono guardato tutto il topic e ho capito che questo gioco merita :D

     

    Buona fortuna per lo sviluppo!

     

    P.S. Secondo me dovresti caricare i diversi screen che hai fatto ultimamente anche nel primo post di apertura del topic. Credimi: sono di grande effetto e non ne vale la pena nasconderli tra le pagine del topic.

  7. Ineffetti sì, a parte che speravo di intravedere qualcosa su mappa sempre da quei due screen, ma avete utilizzato una windowskin con poca trasparenza.. maledetti XD

     

    Però anche io noto lo screen delle statistiche un pò vuoto. E' una scelta aver nascosto le altre caratteristiche di quello script o è voluto proprio così?

  8. Guarda, anche io ho dei ninja nel mio progetto, ma mi sono basato molto sulla classe presente in Pathfinder per vedere bene cosa potergli far fare.

     

    Le varie cose che posso suggerirti sono:

     

    - Tecniche con cui avvelenano i nemici

    - Tecniche che permettono di svanire per un breve periodo e poi magari attaccano, provocando colpi critici (come fosse un attacco alle spalle)

    - Lancio di oggetti (pugnali, shuriken, ...)

    - Attacco con una catena (sai, stile Scorpion di Mortal Kombat)

    - Tecnica delle ombre (praticamente una tecnica che immobilizza i nemici, nell'immaginazione ci sarebbe sto ninja che lancia i suoi shuriken sull'ombra del nemico e lo immobilizza come per magia)

    - Una tecnica in cui fanno più attacchi, come se si muovesse talmente velocemente da colpire più volte il nemico

     

    Queste sono solo alcune. Ti basti pensare che i Ninja sono abili, veloci e letali, quindi tenendo in considerazione queste cose, dovrebbero venirti in mente anche altri tipi di abilità da mettergli

  9. Ho finalmente letto tutto.

     

    La trama sembra interessante, perchè mi pare di capire che sarà un gioco abbastanza investigativo (me gusta!).

    Per quel che ho capito del gameplay, pare quasi semplice, con poche aggiunte. Ma se la trama lo richiede, non vedo per quale motivo aggiungere tante altre cose che poi magari non c'entra nulla con la storia.

     

    Praticamente hai ripreso il tuo vecchio progetto e lo stai "modernizzando", ottimo. Mi ricorda qualcuno (io).

     

    Buona fortuna con il tuo game ;)

  10. Ho iniziato la demo proprio stasera....

     

    Minchia oh! E' fighissimo il gioco!

     

    Mi sono già sbellicato dalle risate più volte durante i primi dialoghi e nei messaggi che comparivano durante alcuni combattimenti. Il sistema è fantastico e mi piace molto il lavoro che ci hai dedicato.

     

    Sti cavoli del mapping e dei personaggi RTP... non ci ho fatto nemmeno caso durante la prima ora di gioco.

     

    Fantastico, davvero!

  11. Sì sì, ma infatti ci sono, come detto prima, 4 buff/debuff + 4 attacchi speciali. Ovviamente, alcune delle classi che non si basano molto sugli attacchi (vedi il cerusico) ha più roba come cure e buff, poichè il suo utilizzo è dovuto proprio a tale scopo e non a far danni ai nemici.

     

    Forse porterò il totale delle loro skill a 10 (5 buff/debuff + 5 attacchi), poichè penso che almeno per quanto riguarda il Cavaliere e il Combattente, ci sia bisogno di più attacchi che mai.

  12. #Update#

     

    Allora, ieri sera mi sono messo al lavoro sulla "configurazione" delle classi. Guardando bene alle classi di Pathfinder, ho notato che, in un certo qualmodo, potevo riassumerle in gruppi, ovvero creare una classe unica che racchiudesse un determinato numero di specializzazioni. Eccovi spiegato come ho agito:

     

    - Barbaro, Guerriero, Monaco = Combattente

    - Bardo, Ladro, Ninja = Ladro

    - Cavaliere, Paladino, Samurai = Cavaliere

    - Druido, Chierico, Alchimista = Cerusico

    - Mago, Stregone, Magus = Mistico

    - Ranger, Pistolero = Avventuriero

    - Negromante = Negromante

    - Inquisitore = Inquisitore

     

    In questo modo, diventa quasi più semplice dare una classe ad un pg, sul quale poi peserebbero però le conseguenze della razza. Tra le razze, ci sono ovviamente Umani e Elfi. Non so ancora se aggiungere i Nani, ma sto pensando anche ad altri tipi di razze che siano meno conosciute o addirittura inventate da me (ma comunque prese di ispirazione da quelle già create in altri giochi).

     

    Le classi, come potete vedere, sono 8. Ma i personaggi totali recrutabili saranno 17. Attenzione però: perchè sono sì 17 pg in tutto, ma ne potrete reclutare "solo" 16. Ci sarà infatti un momento del gioco in cui dovrete scegliere tra due personaggi. Ognuno con le sue peculiari abilità ma della stessa classe. Sarete voi a scegliere chi dei due.

     

    Inoltre, sulle classi citate prima, avevo in mente di dare loro un massimo di 8 Skill da utilizzare: 4 power-up + 4 attacchi, con alcuni casi in cui si presentano o una maggioranza di power-up o una maggioranza di attachi. Nel caso del Mistico, ad esempio, avremo solo attacchi, in quanto ho pensato a questa classe come un mago che usa tutti gli elementi a disposizione per danneggiare i nemici. Gli incantesimi dovrebbero essere i seguenti (salvo cambiamenti futuri): Fiamma -> Inferno, Tuono -> Tempesta, Iceberg -> Gelo, Ventaglio -> Tornado, Bolla -> Inondazione, Pietra -> Terremoto, Luce -> Santuario, Buio -> Oscurità.

     

    Per le altre classi, ci sono diversi buff e debuff da poter usare, che in ogni caso, presentano alterazioni di status differenti dalle altre, in maniera tale da diversificare le strategie di battaglia (questo spiega anche il perchè dovrebbe essere concesso al giocatore di cambiare il party in qualsiasi momento, non solo dal castello/campo/rifugio).

     

    Che ne pensate?

  13. Ri-buon salve,

     

    E' da parecchio che non mi facevo sentire.

    A causa della vita privata, il lavoro, la ragazza, SOPRATTUTTO Dragon Age et similia... mi sono un tantino allontanato dal mio progetto. Ma non ho mai mollato ed anzi, ho continuato in qualche modo ad "aggiornarlo" e migliorarlo lì dove potevo.

     

    Per ora posso solo dirvi che mi sono creato (già da qualche tempo) un blog apposito per i miei progetti. Il link è nella mia firma e trovate già qualche update in merito al progetto su di esso.

    Sono tornato poichè questa è l'unica comunità davvero bella e italiana che ci sia sul making. Ho sempre visto progetti di un certo spessore e qualitativi all'interno di questo forum, per non parlare dell'utenza sempre pronta a dare consigli utili ad ogni nuovo "maker" che si presentava.

     

    Ne approfitto soprattutto per dirvi che il mio game non è morto, come giustamente avrete pensato. Ma anzi è in una fase in cui sto rilavorando la storia e sto vedendo cosa fare con i personaggi, in quanto li sto riscrivendo e tentando di migliorarli anche sotto l'aspetto visivo.

     

    Ultimamente poi, stavo anche riguardando il progetto con alcuni miei amici con cui gioco spesso a Pathfinder (un "gdr da tavolo", per chi non lo conoscesse), poichè alcuni di loro fanno da tempo anche i master in quel gioco e hanno quindi abbastanza esperienza per darmi una mano su mostri, quest, caratterizzazione dei personaggi e creazione degli scenari.

    Con loro sto appunto discutendo sulla possibilità di utilizzare le classi di Pathfinder (non tutte, ovviamente) da inserire nel progetto, portando il party a presentare un roster di diversi pg, uno per ogni classe. Quindi dando al player la possibilità di sbizzarrirsi su diversi tipi di formazione da usare nei combattimenti.

    Ma man mano che leggevo i miei manuali del gioco e guardavo alle abilità e magie delle varie classi, mi rendevo conto che non era facile riassumere con poche skills le classi del mago, stregone, druido, guerriero arcano e compagnia bella... Per cui stiamo vedendo come poter fare una cosa simile, facendo sì che ci siano un tot di skills per ogni classe, facendo risultare abbastanza "magie" sia per i maghi e stregoni, sia per i guerrieri e ladri. Perchè l'infinito abisso di cose che possono fare le classi magiche in confronto a quelle più classiche (come appunto un guerriero o un barbaro), fanno risultare quasi inutili le classi basate sulla sola forza fisica.

     

    E' anche vero che potrei semplicemente ricreare delle classi a mia invenzione, che ne riassumano più o meno tutti i talenti, ma equilibrandoli in maniera da farli risultare tutti utili e forti.

     

    Poi c'è il fatto che, volendo collegare alcuni personaggi tra loro, ci vorrebbero un grafico e un pixellatore... ma molto spesso, questi ultimi, hanno già da fare con altri progetti e capita che preferiscano farsi pagare per un lavoro simile. Per cui mi era venuta l'idea, nel caso, di utilizzare Patreon per racimolare i soldi con cui avrei poi pagato questa gente... ma poi mi è sorta la domanda: perchè dovrei far pagare la gente per un progetto che, molto probabilmente, potrebbe non piacere a causa del fatto che non sono, ovviamente, così espero nello sviluppare un videogame, soprattutto con RPG Maker?

    Inoltre, cosa dovrei garantire a chi paga, avendo visto cosa è successo ad altri che hanno fatto lo stesso con Patreon e altri siti simili?

     

    Sono tante cose che sono nate negli ultimi mesi. Tante piccole cose atte però solo al miglioramento del prodotto.

    Questo è un progetto che, ripeto, sono più di 5 anni che porto avanti e mi darebbe non poco fastidio mandarlo a quel paese così, dopo gli anni passato a rivisitarlo ogni volta, specie in quei momenti in cui dovetti passare il gioco da RPG Maker XP al VX ed infine al VX Ace (sul quale rimpiango solo che non si possano utilizzare quei mega tileset dell'XP).

     

    Per cui mi scuso ancora per la lunghissima assenza e avverto già da ora che, nel caso dovessi assentarmi di nuovo, bisogna sempre considerare il fatto che questo progetto non verrà abbandonato per nessun caso (eccetto la mia morte, che si spera avvenga un pò più in là).

     

    Grazie comunque del sostegno di tutti coloro che già conoscevano il progetto e di coloro che, forse, lo conosceranno dopo questo piccolo update

  14. Edit:

     

    Volevo informarvi che ho già trovato il suddetto script per VX Ace. Un ragazzo si era già impegnato per fare questo porting dalla vecchia alla nuova versione.

     

    Eccovi il link: http://rmrk.net/index.php/topic%2c48152.0.html

     

    Mi scuso per avervi "importunato", perchè bastava cercare meglio -.-' Vi suggerisco di dare un occhiata al blog dell'autore, perchè ha fatto tanti altri script, di cui alcuni molto interessanti.

     

    Inoltre, penso che gli amministratori, potrebbero mettere entrambi gli script nelle liste già esistenti sul forum, poichè sono davvero molto utili, per chi, come me, non gli piace creare giochi con una moltitudine di armi, quando si può tranquillamente livellare quelle già esistenti.

  15. Salve a tutti,

     

    Forse qualcuno si ricorderà di me per Chronicles of Yluja o Light into the Night (che sto ancora finendo... entrambi)... comunque sia, sono tornato operativo e, finalmente, se così possiamo dire, ho ripreso alla grande lo sviluppo di entrambi i game, avendo trovato tutto ciò che mi serviva o che volevo inserire.

    Purtroppo però, con il sistema delle armi, di cui parlavo nel topic del progetto (http://www.rpg2s.net/forum/index.php/topic/16332-chronicles-of-yluja-progetto/), ho trovato uno script che è esattamente quello che cercavo di fare, dato che riprende proprio il sistema del fabbro di Suikoden 2.

    Il problema è che è per la versione VX normale, non per l'Ace, e volevo sapere se qualche anima pia, poteva cercare di modificarlo affinchè funzionasse con Ace.

     

    E' più una supplica, che una richiesta :(

     

    Eccovi il link dello script: http://forums.rpgmakerweb.com/index.php?/topic/13752-smithing-simply-upgrade-your-weapon/

     

    Rispondetemi il prima possibile, vi prego!

  16. @Cosmo: XD vabbè dai, a volte esagerano anche negli hentai con le forme delle protagoniste (tipo quelle che hanno seni che arrivano fin sotto le ginocchia)

     

    @Enom: ti ringrazio per i due post che hai scritto. La mia fortuna è che a breve incontrerò molti ragazzi che fanno scuola di fumetto e potrei chiedere loro se sono interessati in tale opera. Spero siano maggiorenni, perchè non vorrei iniziare qualche minorenne al porno giapponese XD

×
×
  • Create New...