Jump to content
Rpg²S Forum

Alato

Utenti Speciali
  • Posts

    899
  • Joined

  • Last visited

Posts posted by Alato

  1. master.jimmy, posso capire la tua impazienza ma evidentemente se nessuno ti ha risposto vuol dire che non c'è disponibilità attualmente. La cosa non mi stupisce: la nostra non è una community incentrata sul disegno e la grafica in generale perciò i disegnatori non abbondano.

     

    Ti consiglio di provare in qualche forum più specializzato.

  2. Ma in teoria convertendo gli mp3 in ogg non si dovrebbe ottenere il compromesso migliore? (ovviamente parlando di rmxp)

     

    Non so quanta riduzione di dimensioni si guadagni ma in teoria gli ogg dovrebbero essere estremamente ridotti.

  3. Come deve essere postato uno script per rispettare l'R²S Standard?

    1. Deve seguire questo template: Link.
    2. Il titolo del topic deve essere il nome effettivo dello script, se presente, altrimenti deve rappresentare in modo sintetico il suo contenuto.
    3. Il sottotitolo del topic deve contenere solo e soltanto "by NomeAutore", nel caso di autore assente utilizzate tre punti di domanda ("???").
    4. Deve utilizzare una delle icone per i topic (attualmente non disponibili): CMS (Custom Menu System), BS (Battle System), SYSTEM (Modifiche al sistema di gioco), ALTRO (Tutto il resto).
    5. E' compito di chi posta lo script testarne il funzionamento e segnalare nell'apposita parte (presente nel template) eventuali bugs o conflitti con altri script noti; se non è funzionante ma volete comunque postarlo segnalatelo tramite l'icona per i topic Error (ancora non disponibile) e scrivendo subito sotto il titolo all'interno del topic un bel "ATTENZIONE: NON FUNZIONANTE" in rosso e grassetto.
    6. Se non viene aggiunto all'interno dell'elenco degli script nel giro di una settimana e non vi è stata segnalata la mancanza di uno dei punti precedenti da un moderatore, segnalare il topic a me oppure ad un altro moderatore.
    7. Deve contenere degli screenshots. (facoltativo)
    8. Deve avere una versione in file *.txt allegata. (facoltativo)

    Per ora non avendo ancora preparato le targhette segnaleremo i topic che rispettano lo standard tramite il cuoricino.

  4. Ragazzi dobbiamo discutere un attimo seriamente: non è possibile che dopo un anno e mezzo di vita ancora nessuno si degni di rispettare il regolamento di questa sezione.

     

    Nello specifico le persone che rispettano il template fornito nel topic pinnato "Regolamento" si contano sulle dita di una mano.

     

    Io ho cercato più volte, invano, di far rispettare questa piccola cosa che permetterebbe alla sezione di essere decisamente più ordinata e funzionale.

     

    Non avendo ottenuto un riscontro positivo da parte dell'utenza mi trovo costretto d'ora in poi a penalizzare chi non rispetterà questo regolamento.

     

    Mi spiace davvero arrivare a questo punto ma non essendoci collaborazione in qualche modo dobbiamo adeguarci: d'ora in poi per gli scripts postati senza utilizzare il template fornito, con titoli inadatti o con codici non precedentemente testati l'utente in questione verrà prima avvertito tramite post nel topic e pm. Successivamente se verranno postati altri script in maniera non adeguata si passerà all'aumento del tasso di avvertimento messo a disposizione dal forum (di cui noi teniamo piuttosto conto) ed eventuale sottrazione di Rens. Se la cosa continua sarò infine costretto a richiedere un ban temporaneo o qualcosa di più grave.

    Ripeto che mi spiace giungere a questo punto ma la situazione non è più tollerabile.

     

    Ora io nei mesi a venire cercherò di mettere a posto la sezione adeguando i vecchi scripts postati allo standard che abbiamo definito nel Regolamento. Parlo di mesi perché si tratta di 7 pagine di scripts e non ho tutto sto tempo a disposizione.

     

     

    Sarebbe gradita una certa collaborazione da parte degli utenti che hanno postato degli scripts in questa sezione e stanno leggendo questo topic (insomma che sono tuttora attivi).

    Che tipo di collaborazione?

    1) Postate qua dicendomi "Ok, mi metto al lavoro" o qualcosa di simile.

    2) Andate a leggere per bene il regolamento. Anche se l'avete già fatto, vi rinfrescate la memoria.

    3) Mi segnalate per MP gli script postati da voi (tutti) e a seguire mi mandate, sempre per mp, i topic riscritti seguendo il regolamento: fatto ciò provvederò io a sostituire la vecchia versione con la versione ben fatta e ad aggiungerli alla lista.

    4) D'ora in poi rispettate pedissequamente il regolamento della sezione, pena la fustigazione oltre alle cose già citate sopra.

     

     

     

    Grazie dell'attenzione.

     

    Ovviamente se ci sono opinioni/commenti/miglioramenti postate qua.

  5. Per parlare di World of Warcraft c'è il topic apposito, non andiamo OT dai. ^^

     

    Per quanto riguarda Warhammer Online: è da almeno due anni che rilasciano dichiarazioni come quella per tenere l'interesse alto. Io avrei dovuto partecipare alla beta del 2006 che era stata poi annullata per motivi ignoti, e già lì dicevano che il gioco sarebbe stato rilasciato poco dopo, nel natale mi pare.

  6. Caterpillar script alternativo che permette la visualizzazioni di soli 3 personaggi sulla mappa. Ancora da sviluppare bene ma è un estratto da un mio vecchio progetto più ampio quindi non è detto che ci lavorerò ancora sopra. I personaggi evitano la maggior parte degli ostacoli, ma volendo riuscite ad incastrarli abbastanza facilmente.

     

    Era il development kit di ff12.. lì i pg erano solo 3... :rovatfl:

    Comunque ad aggiungerne uno non ci vuole molto casomai nei prossimi giorni lo faccio se lo vedete necessario, il rombo mi pareva una cagata.

  7. Se consideriamo "il crack" l'unico emulatore che su ds non c'è è quello del Psx (sul ds ho emulatori per la maggior parte delle vecchie console Sega e per lo snes, anche se è emulata praticamente ogni console precedente alla psx), ed è l'unico motivo per cui preferisco la Psp. Io ho entrambe le console, e ti garantisco che le flashcard funzionano perfettamente e sono molto più comode da utilizzare: sono legali, non perdi la garanzia, non ho mai sentito parlare di un dump non funzionante.

    Parlando di soldi, tutto il pacchetto DS+Flash card+microsd2gb viene a costare in media 200 euro. Puoi scendere anche a 180 se prendi microsd di minor dimensione e flashcard più vecchie. Quanto costa la Psp? 170 euro. E ti puoi ingoiare lo scontrino che tanto la garanzia va giù per il tubo.

     

    Wiz, sul serio, ti stai soltanto rendendo ridicolo sparando le uniche motivazioni insensate che ci possono essere per fare un confronto Ds-PsP. Almeno avessi tirato fuori... che ne so.. il gps o la fotocamera, saresti stato un tamarr-gamer accettabile. :rovatfl:

     

    @Uwye: sì, quella l'ho messa perché mi pareva di aver letto qualcosa all'epoca sul fatto che l'umd avrebbe rivoluzionato tutto etc etc, solo che con l'esclusiva sony è finita come è finita. Lo tolgo comunque. :rovatfl:

     

    @per spezzare una lancia a favore delle flashcard: tralsciando le warezzonate io ora sto giocando al primo libro di Lone Wolf in lingua inglese fatto come homebrew decisamente bene. Garantito che rende quasi meglio di giocare col libro normale, c'è la musica, l'atmosfera giusta... non puoi fregare nei combattimenti.. xD

  8. New Caterpillar Script v0.9

    Descrizione


    Caterpillar script alternativo che permette la visualizzazioni di soli 3 personaggi sulla mappa. Ancora da sviluppare bene ma è un estratto da un mio vecchio progetto più ampio quindi non è detto che ci lavorerò ancora sopra. I personaggi evitano la maggior parte degli ostacoli, ma volendo riuscite ad incastrarli abbastanza facilmente.


    Autore


    Alato



    Allegati


    File *.txt in basso.
    Screen 1-2-3


    Istruzioni per l'uso

    Incollate il contenuto del file *.txt in una pagina sopra il main.

     

    #================================#
    # - New Caterpillar Script V0.9  #
    #--------------------------------#
    # By Alato ~ www.rpg2s.net       #
    #================================#
    
    
    class Game_Temp
      attr_accessor :party_change_flag
      attr_accessor :hp_change_flag
      
      alias temp_initialize initialize
      
      def initialize
        temp_initialize
        @party_change_flag = true
        @hp_change_flag = true
      end
    end
    
    class Game_Party
      
      # Modifiche per non fare crashare il gioco
      # quando non ci sono i compagni
      # (caterpillar script)
      
      #sostituiti totalmente add_actor e remove_actor
      
      #--------------------------------------------------------------------------
      # - Aggiunta Eroe
      #     actor_id : ID Eroe
      #--------------------------------------------------------------------------
      def add_actor(actor_id)
        # Acquisizione Eroe
        actor = $game_actors[actor_id]
        # Quando ci sono meno di 4 eroi e l'eroe non è già nel gruppo
        if @actors.size < 4 and not @actors.include?(actor)
          # Aggiungi Eroe
          @actors.push(actor)
          # Aggiornamento Giocatore
          $game_player.refresh
          # Parte aggiunta
          $game_temp.party_change_flag = true
          $game_second_player.refresh
          $game_third_player.refresh
        end
      end
      #--------------------------------------------------------------------------
      # - Rimozione Eroe
      #     actor_id : ID Eroe
      #--------------------------------------------------------------------------
      def remove_actor(actor_id)
        # Rimozione Eroe
        @actors.delete($game_actors[actor_id])
        # Aggiornamento Giocatore
        $game_player.refresh
        # Parte aggiunta
        $game_temp.party_change_flag = true
        $game_second_player.refresh
        $game_third_player.refresh
      end
      
    end
    
    class Game_Map_New
      #--------------------------------------------------------------------------
      # - Settaggio Mappa
      #     map_id : ID Mappa
      #--------------------------------------------------------------------------
      def setup(map_id)
        # Setta l'ID della mappa in @map_id
        @map_id = map_id
        # La mappa è presa dal file e settata in @map
        @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
        # Settaggio delle Variabili
        tileset = $data_tilesets[@map.tileset_id]
        @tileset_name = tileset.tileset_name
        @autotile_names = tileset.autotile_names
        @panorama_name = tileset.panorama_name
        @panorama_hue = tileset.panorama_hue
        @fog_name = tileset.fog_name
        @fog_hue = tileset.fog_hue
        @fog_opacity = tileset.fog_opacity
        @fog_blend_type = tileset.fog_blend_type
        @fog_zoom = tileset.fog_zoom
        @fog_sx = tileset.fog_sx
        @fog_sy = tileset.fog_sy
        @battleback_name = tileset.battleback_name
        @passages = tileset.passages
        @priorities = tileset.priorities
        @terrain_tags = tileset.terrain_tags
        # Inizializzazione Coordiante
        @display_x = 0
        @display_y = 0
        # Elimina la richiesta di aggiornamento
        @need_refresh = false
        # Settaggio dati degli eventi
        @events = {}
        enemies = []
        enem_events = []
        for i in @map.events.keys
          @events[i] = Game_Event.new(@map_id, @map.events[i])
          if @events[i].nemico?
            id_nemico = @events[i].name.to_i
            enemies.push(id_nemico)
            enem_events.push(i)
          end
        end
        unless enemies.empty?
          $game_troop.setup(enemies, enem_events)
        end
        # Settaggio dati degli eventi couni
        @common_events = {}
        for i in 1...$data_common_events.size
          @common_events[i] = Game_CommonEvent.new(i)
        end
        # Settaggio della nebbia
        @fog_ox = 0
        @fog_oy = 0
        @fog_tone = Tone.new(0, 0, 0, 0)
        @fog_tone_target = Tone.new(0, 0, 0, 0)
        @fog_tone_duration = 0
        @fog_opacity_duration = 0
        @fog_opacity_target = 0
        # Settaggio dello scroll
        @scroll_direction = 2
        @scroll_rest = 0
        @scroll_speed = 4
      end
      
    end
    
    ############################################
    ######## Aggiunte a Game_Character #########
    ############################################
    class Game_Character
      alias chara_initialize initialize
      
      def initialize
        chara_initialize
        @allerta = false
      end
      #--------------------------------------------------------------------------
      # - Aggiornamento
      #--------------------------------------------------------------------------
      def update
        if party_member?
          if in_chara_range?(1) == false
            @move_type = 5 # Movimento party
            if in_chara_range?(2) == true
              @move_speed = 4#3
            else
              @move_speed = 4
            end
          elsif $game_player.moving?
            @move_type = 6
          end
        end
        
        if jumping?
          update_jump
        elsif moving?
          update_move
        else
          update_stop
        end
        if @anime_count > 18 - @move_speed * 2
          if not @step_anime and @stop_count > 0
            @pattern = @original_pattern
          else
            @pattern = (@pattern + 1) % 4
          end
          @anime_count = 0
        end
        if @wait_count > 0
          @wait_count -= 1
          return
        end
        if @move_route_forcing
          move_type_custom
          return
        end
        if @starting or lock?
          return
        end
        if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
          case @move_type
          when 1 
            move_type_random
          when 2 
            move_type_toward_player
          when 3 
            move_type_custom
          when 5
            move_party_player
          when 6
            move_type_fermo
          end
        end
      end
      #--------------------------------------------------------------------------
      # - Riposiziona
      #--------------------------------------------------------------------------
      def riposiziona
        case rand(3)
        when 0
          r_x = $game_map.display_x + rand(21)*128 - 128*3
          r_y = $game_map.display_y - 128*3
        when 1
          r_x = $game_map.display_x + rand(21)*128 - 128*3
          r_y = $game_map.display_y + 2176 + 128*3
        when 2
          r_x = $game_map.display_x - 128*3
          r_y = $game_map.display_y + rand(16)*128 - 128*3
        when 3
          r_x = $game_map.display_x + 2816 + 128*3
          r_y = $game_map.display_y + rand(16)*128 - 128*3
        end
        x = r_x / 128
        y = r_y / 128
        if $game_map.passable?(x, y, 0)
          @real_x = r_x
          @real_y = r_y
          @x = x
          @y = y
        else
          riposiziona
        end
        r = rand(23) + 1
        if r < 10
          name = "10" + r.to_s + "-Civilian0" + r.to_s
        else
          name = "1" + r.to_s + "-Civilian" + r.to_s
        end
        @character_name = name
        #@move_speed = rand(2)+ 1
      end
      #--------------------------------------------------------------------------
      # - Movimenti Nuovi
      #--------------------------------------------------------------------------
    
      
      def move_type_fermo
        
      end
        
      
      def move_type_toward_player
        sx = @x - $game_player.x
        sy = @y - $game_player.y
        abs_sx = sx > 0 ? sx : -sx
        abs_sy = sy > 0 ? sy : -sy
        if sx + sy >= 20
          move_random
          return
        end
        case rand(6)
        when 0..3 
          move_toward_player
        when 4 
          move_toward_player#move_random
        when 5 
          move_toward_player#move_forward
        end
      end
      
      def move_party_player
        
        case @act
        when 1
          mdf = -1
        when 2
          mdf = 1
        end
    
        gp = $game_player
        
        mdf_x = (gp.direction == 6 ? 1 : gp.direction == 4 ? -1 : gp.direction == 2 ? mdf : gp.direction == 8 ? mdf : 0)
        mdf_y = (gp.direction == 2 ? 1 : gp.direction == 8 ? -1 : gp.direction == 6 ? mdf : gp.direction == 4 ? mdf : 0)
    
        
        sx = @x - $game_player.x + mdf_x
        sy = @y - $game_player.y + mdf_y
        
        if sx == 0 and sy == 0
          return
        end
        abs_sx = sx.abs
        abs_sy = sy.abs
        if abs_sx == abs_sy
          rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
        end
        if abs_sx > abs_sy
          sx > 0 ? move_left : move_right
          if not moving? and sy != 0
            sy > 0 ? move_up : move_down
          end
        else
          sy > 0 ? move_up : move_down
          if not moving? and sx != 0
            sx > 0 ? move_left : move_right
          end
        end
        
        if not moving?
          if not in_chara_range?(1)
            case @act
            when 1
              if abs_sx < abs_sy
                sx > 0 ? move_right : move_left
              else
                sy > 0 ? move_down : move_up
              end
            when 2
              if abs_sx < abs_sy
                sx > 0 ? move_left : move_right
              else
                sy > 0 ? move_up : move_down
              end
            end
          end
        end
        
      end
      
    end
      #--------------------------------------------------------------------------
      # - E' a (quadretti) distanza dall'eroe?
      #--------------------------------------------------------------------------
    def in_chara_range?(quadretti)
    screne_x = $game_player.real_x
    screne_x -= 128*(1+quadretti)
    screne_y = $game_player.real_y
    screne_y -= 128*(1+quadretti)
    screne_width = $game_player.real_x
    screne_width += 128*(1+quadretti)
    screne_height = $game_player.real_y
    screne_height += 128*(1+quadretti)
    return false if real_x <= screne_x
    return false if real_x >= screne_width
    return false if real_y <= screne_y
    return false if real_y >= screne_height
    return true
    end
    
    ############################################
    ######### Aggiunte a GAme_Event ############
    ############################################
    class Game_Event < Game_Character
      #
      # - Controlla se è un membro del party
      #
      def party_member?
        return false
      end
      
    end
    
    ############################################
    ######### Aggiunte a Game_Player ###########
    ############################################
    
    class Game_Player
    
      def party_member?
        return false
      end
      
      def nemico?
        return false
      end
      
      def check_event_trigger_here(triggers)
        result = false
        # Quando si sta eseguendo un evento
        if $game_system.map_interpreter.running?
          return result
        end
        # Loop degli eventi
        for event in $game_map.events.values
          # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Azione"
          if event.x == @x and event.y == @y and triggers.include?(event.trigger) and event.nemico? == false
            # Quando l'evento è eseguibile
            if not event.jumping? and event.over_trigger?
              event.start
              result = true
            end
          end
        end
        return result
      end
      #--------------------------------------------------------------------------
      # - Controllo esecuzione degli eventi
      #--------------------------------------------------------------------------
      def check_event_trigger_there(triggers)
        result = false
        # Quando si sta eseguendo un evento
        if $game_system.map_interpreter.running?
          return result
        end
        # Sono calcolate le coordinate del tile davanti all'eroe
        new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
        new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
        # Loop degli Eventi
        for event in $game_map.events.values
          # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Azione"
          if event.x == new_x and event.y == new_y and
             triggers.include?(event.trigger) and event.nemico? == false
            # Quando l'evento è eseguibile
            if not event.jumping? and not event.over_trigger?
              event.start
              result = true
            end
          end
        end
        # Quando non è rilevato nessun evento
        if result == false
          # Quando c'è un "incontra attraverso" nel title d'avanti
          if $game_map.counter?(new_x, new_y)
            # Calcola le coordinate di 2 tile davanti all'eroe
            new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
            new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
            # Loop degli Eventi
            for event in $game_map.events.values
              # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Azione"
              if event.x == new_x and event.y == new_y and
                 triggers.include?(event.trigger) and event.nemico? == false
                # Quando l'evento è eseguibile
                if not event.jumping? and not event.over_trigger?
                  event.start
                  result = true
                end
              end
            end
          end
        end
        return result
      end
    
      #--------------------------------------------------------------------------
      # - Aggiornamento
      #--------------------------------------------------------------------------
      def update
        # Memorizza l'ultimo movimento se ci si sta muovendo
        last_moving = moving?
        # Se ci si sta muovendo o si sta eseguendo un evento parallelo 
        # o c'è un muovi evento o c'è una finestra di messaggio
        unless moving? or $game_system.map_interpreter.running? or
               @move_route_forcing or $game_temp.message_window_showing
          # Quando è premuto un tasto muove l'eroe
          case Input.dir4
          when 2
            move_down
          when 4
            move_left
          when 6
            move_right
          when 8
            move_up
          end
        end
        # Le coordinate vengono memorizzate in variabili temporanee
        last_real_x = @real_x
        last_real_y = @real_y
        super
        # Quando l'eroe si muove verso giu ed è possibile muovere la mappa
        if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
          # Muovi la mappa
          $game_map.scroll_down(@real_y - last_real_y)
        end
        # Quando l'eroe si muove verso sinistra ed è possibile muovere la mappa
        if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
          # Muovi la mappa
          $game_map.scroll_left(last_real_x - @real_x)
        end
        # Quando l'eroe si muove verso destra ed è possibile muovere la mappa
        if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
          # Muovi la mappa
          $game_map.scroll_right(@real_x - last_real_x)
        end
        # Quando l'eroe si muove verso sù ed è possibile muovere la mappa
        if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
          # Muovi la mappa
          $game_map.scroll_up(last_real_y - @real_y)
        end
        # Quando non ci si sta muovendo
        unless moving?
          # Quando il movimento è appena finito
          if last_moving
            # Controllo eventi "Tocco con l'eroe" - "Collisione"
            result = check_event_trigger_here([1,2])
            # Se non ci sono eventi da eseguire
            if result == false
              # Se la modalità di debug è disattiva e non si sta premendo ctrl
              unless $DEBUG and Input.press?(Input::CTRL)
                # Conteggio incontri casuali
                if @encounter_count > 0
                  @encounter_count -= 1
                end
              end
            end
          end
          # Quando C è premuto
          if Input.trigger?(Input::C)
            # Controlla esecuzione eventi
            $game_temp.battle_menu_closed = check_event_trigger_here([0])
            $game_temp.battle_menu_closed = check_event_trigger_there([0,1,2])
          end
        end
        #
        if moving? and Input.trigger?(Input::C)
          $game_temp.battle_menu_closed = false
        end
      end
      
    end
    
    
    #==============================================================================
    # - Game_Event
    #------------------------------------------------------------------------------
    # E' la classe che gestisce gli eventi
    # E' usata in Game_Map
    #==============================================================================
    
    class Game_Party_Player < Game_Character
      #--------------------------------------------------------------------------
      # - Variabile
      #--------------------------------------------------------------------------
      attr_reader   :trigger                  # Condizione d'avvio
      attr_reader   :list                     # Lista dei comandi
      attr_reader   :starting                 # Se l'evento è in esecuzione
      #--------------------------------------------------------------------------
      # - Inizializzazione Oggetto
      #     map_id : ID Mappa
      #     event  : Evento (RPG::Event)
      #--------------------------------------------------------------------------
      def initialize(act)
        super()
        @act = act
        @erased = false
        @starting = false
        @through = false
        # Posizionamento
        #moveto(@event.x, @event.y)
        refresh
      end
    
      def party_member?
        return true
      end
      
      def nemico?
        return false
      end
      #--------------------------------------------------------------------------
      # - Settaggio di @starting
      #--------------------------------------------------------------------------
      def clear_starting
        @starting = false
      end
      #--------------------------------------------------------------------------
      # - Controllo Sovrapposizione
      #--------------------------------------------------------------------------
      def over_trigger?
        # Se l'eroe non esiste o non può eseguire eventi
        if @character_name != "" and not @through
          # Esecuzione impossibile
          return false
        end
        # Quando la posizione non è calpestabile
        unless $game_map.passable?(@x, @y, 0)
          # Esecuzione impossibile
          return false
        end
        # Esecuzione possibile
        return true
      end
      #--------------------------------------------------------------------------
      # - Qui c'era def start
      #--------------------------------------------------------------------------
    
      #--------------------------------------------------------------------------
      # - Eliminazione
      #--------------------------------------------------------------------------
      def erase
        @erased = true
        refresh
      end
      #--------------------------------------------------------------------------
      # - Aggiornamento
      #--------------------------------------------------------------------------
      def refresh
        if $game_party.actors.size <= @act
          # Vengono cancellati nome e tonalità
          @character_name = ""
          @character_hue = 0
          return
        end
        actor = $game_party.actors[@act]
        @character_name = actor.character_name
        @character_hue = actor.character_hue
        @opacity = 255
        @blend_type = 0
      end
      #--------------------------------------------------------------------------
      # - Controllo evento con collisione
      #--------------------------------------------------------------------------
      def check_event_trigger_touch(x, y)
        # Quando è già in esecuzione
        if $game_system.map_interpreter.running?
          return
        end
        # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Tocco con l'eroe"
        if @trigger == 2 and x == $game_player.x and y == $game_player.y
          # Quando l'evento è eseguibile
          if not jumping? and not over_trigger?
            start
          end
        end
      end
      #--------------------------------------------------------------------------
      # - Controllo evento con inizio automatico
      #--------------------------------------------------------------------------
      def check_event_trigger_auto
        # Quando le coordinate sono uguali
        if @trigger == 2 and @x == $game_player.x and @y == $game_player.y
          # Quando l'evento è eseguibile
          if not jumping? and over_trigger?
            start
          end
        end
        # Se la condizione è inizio automatico
        if @trigger == 3
          start
        end
      end
      #--------------------------------------------------------------------------
      # - Aggiornamento
      #--------------------------------------------------------------------------
      def update
        super
        # Controllo evento con inizio automatico
        check_event_trigger_auto
        # Quando c'è un processo parallelo da eseguire
        if @interpreter != nil
          # Quando l'interprete non è in esecuzone
          unless @interpreter.running?
            # Esecuzione di un evento
            @interpreter.setup(@list, @event.id)
          end
          # Aggiornamento Interprete
          @interpreter.update
        end
      end
    end
    
    
    class Spriteset_Map
      #--------------------------------------------------------------------------
      # - Inizializzazione Oggetto
      #--------------------------------------------------------------------------
      def initialize
        # Creazione Livelli
        @viewport1 = Viewport.new(0, 0, 640, 480)
        @viewport2 = Viewport.new(0, 0, 640, 480)
        @viewport3 = Viewport.new(0, 0, 640, 480)
        @viewport2.z = 200
        @viewport3.z = 5000
        # Creazione Titlemap
        @tilemap = Tilemap.new(@viewport1)
        @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
        for i in 0..6
          autotile_name = $game_map.autotile_names[i]
          @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
        end
        @tilemap.map_data = $game_map.data
        @tilemap.priorities = $game_map.priorities
        # Creazione Panorama
        @panorama = Plane.new(@viewport1)
        @panorama.z = -1000
        # Creazione Nebbia
        @fog = Plane.new(@viewport1)
        @fog.z = 3000
        # Creazione Chara
        @character_sprites = []
        for i in $game_map.events.keys.sort
          sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
          @character_sprites.push(sprite)
        end
        @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
        @character_sprites.push(Sprite_Character.new(@viewport1, $game_second_player))
        @character_sprites.push(Sprite_Character.new(@viewport1, $game_third_player))
        # Creazione effetti meteorologici
        @weather = RPG::Weather.new(@viewport1)
        # Creazione Pictures
        @picture_sprites = []
        for i in 1..50
          @picture_sprites.push(Sprite_Picture.new(@viewport2,
            $game_screen.pictures[i]))
        end
        # Creazione Sprite del timer
        @timer_sprite = Sprite_Timer.new
        # Aggiornamento frame
        update
      end
      
    end
    
    
    class Interpreter
      
      # Modifica al cambia grafica
      # per non far crashare il caterpillar script
      
      def command_322
        actor = $game_actors[@parameters[0]]
        if actor != nil
          actor.set_graphic(@parameters[1], @parameters[2],
            @parameters[3], @parameters[4])
        end
        $game_temp.party_change_flag = true
        $game_player.refresh
        # Parte aggiunta
        $game_second_player.refresh
        $game_third_player.refresh
        return true
      end
      
    end
    
    
    class Scene_Title
      
      def command_new_game
        # Suona SE azione
        $game_system.se_play($data_system.decision_se)
        # Ferma BGM
        Audio.bgm_stop
        # Resetta il contatore frame per il tempo di gioco
        Graphics.frame_count = 0
        # Creazione oggetti
        $game_temp          = Game_Temp.new
        $game_system        = Game_System.new
        $game_switches      = Game_Switches.new
        $game_variables     = Game_Variables.new
        $game_self_switches = Game_SelfSwitches.new
        $game_screen        = Game_Screen.new
        $game_actors        = Game_Actors.new
        $game_party         = Game_Party.new
        $game_troop         = Game_Troop.new
        $game_map           = Game_Map.new
        $game_player        = Game_Player.new
        $game_second_player = Game_Party_Player.new(1)
        $game_third_player  = Game_Party_Player.new(2)
        # Creazione Gruppo
        $game_party.setup_starting_members
        # Creazione Mappa
        $game_map.setup($data_system.start_map_id)
        # Trasferimento al punto d'inizio
        d_x = $data_system.start_x
        d_y = $data_system.start_y
        $game_player.moveto(d_x, d_y)
        $game_second_player.moveto(d_x + 1, d_y - 1)
        $game_third_player.moveto(d_x - 1, d_y - 1)
        # Aggiornamento Giocatore
        $game_player.refresh
        if $game_party.actors[1] != nil
          $game_second_player.refresh
        end
        if $game_party.actors[2] != nil
          $game_third_player.refresh
        end
        # Suona BGM e BGS automatici
        $game_map.autoplay
        # Aggiornamento Mappa
        $game_map.update
        # Cambia Scena
        $scene = Scene_Map.new
      end
    
    end
    
    
    # qua viene aggiunto il *.update degli altri due personaggi
    
    class Scene_Map
      #--------------------------------------------------------------------------
      # - Aggiornamento
      #--------------------------------------------------------------------------
      def update
        # Loop
        loop do
          # Aggiornamento mappa ed interprete
          $game_map.update
          $game_system.map_interpreter.update
          $game_player.update
          $game_second_player.update
          $game_third_player.update
          # Aggiornamento sistema e schermo 
          $game_system.update
          $game_screen.update
          # Quando il giocatore non deve essere trasportato esce dal loop
          unless $game_temp.player_transferring
            break
          end
          # Trasporta il giocatore
          transfer_player
          # Quando non c'è un fade esce dal loop
          if $game_temp.transition_processing
            break
          end
        end
        # Aggiornamento Chipset
        @spriteset.update
        # Aggiornamento finestra dei messaggi
        @message_window.update
        # Se c'è il gameover
        if $game_temp.gameover
          # Va alla scena del gameover
          $scene = Scene_Gameover.new
          return
        end
        # Se si deve tornare al title
        if $game_temp.to_title
          # Va alla scena del title
          $scene = Scene_Title.new
          return
        end
        # Quando c'è un fade
        if $game_temp.transition_processing
          # Elimina la variabile
          $game_temp.transition_processing = false
          # Fade
          if $game_temp.transition_name == ""
            Graphics.transition(20)
          else
            Graphics.transition(40, "Graphics/Transitions/" +
              $game_temp.transition_name)
          end
        end
        # Quando c'è un messaggio
        if $game_temp.message_window_showing
          return
        end
        # Quando il contatore degli incontri è 0 e ci sono gruppi di mostri in lista
        if $game_player.encounter_count == 0 and $game_map.encounter_list != []
          # Quando non c'è un evento o gli incontri non sono disabilitati
          unless $game_system.map_interpreter.running? or
                 $game_system.encounter_disabled
            # Scelta del gruppo di nemici
            n = rand($game_map.encounter_list.size)
            troop_id = $game_map.encounter_list[n]
            # Se il gruppo è valido
            if $data_troops[troop_id] != nil
              # Chiama la battaglia
              $game_temp.battle_calling = true
              $game_temp.battle_troop_id = troop_id
              $game_temp.battle_can_escape = true
              $game_temp.battle_can_lose = false
              $game_temp.battle_proc = nil
            end
          end
        end
        #Quando B è premuto
        if Input.trigger?(Input::B)
          # Quando non c'è un evento o il menu non è disabilitato
          unless $game_system.map_interpreter.running? or
                 $game_system.menu_disabled
            # Chiama menu
            $game_temp.menu_calling = true
            $game_temp.menu_beep = true
          end
        end
        # Quando è attivo il debug e si preme F9
        if $DEBUG and Input.press?(Input::F9)
          # Chiama il debug
          $game_temp.debug_calling = true
        end
        # Quando il giocatore non si è mosso
        unless $game_player.moving?
          # Controlla se c'è quancosa da chiamare
          if $game_temp.battle_calling
            call_battle
          elsif $game_temp.shop_calling
            call_shop
          elsif $game_temp.name_calling
            call_name
          elsif $game_temp.menu_calling
            call_menu
          elsif $game_temp.save_calling
            call_save
          elsif $game_temp.debug_calling
            call_debug
          end
        end
      end
    
    end
    
    
    # Qua viene aggiunto il *.moveto degli altri due personaggi
    
    class Scene_Map
      #--------------------------------------------------------------------------
      # - Trasporto
      #--------------------------------------------------------------------------
      def transfer_player
        # Elimina la variable
        $game_temp.player_transferring = false
        # Quando la mappa di destinazione è diversa da quella corrente
        if $game_map.map_id != $game_temp.player_new_map_id
          # Settaggio nuova mappa
          $game_map.setup($game_temp.player_new_map_id)
        end
        # Settaggio nuova posizione del giocatore
        $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
        $game_second_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
        $game_third_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
        # Settaggio della nuova direzione
        case $game_temp.player_new_direction
        when 2  # Giu
          $game_player.turn_down
        when 4  # Sinistra
          $game_player.turn_left
        when 6  # Destra
          $game_player.turn_right
        when 8  # Sù
          $game_player.turn_up
        end
        # Correzione posizione del giocatore
        $game_player.straighten
        # Aggiornamento Mappa
        $game_map.update
        # Creazione nuovo spriteset
        @spriteset.dispose
        @spriteset = Spriteset_Map.new
        # Quando c'è un fade
        if $game_temp.transition_processing
          # Elimina la variabile
          $game_temp.transition_processing = false
          # Fade
          Graphics.transition(20)
        end
        # Suona BGM e BGS automatici della mappa
        $game_map.autoplay
        # Resetta il frame
        Graphics.frame_reset
        # Aggiornamento Input
        Input.update
      end
    end
     

     

     

    NewCaterpillarScript.txt

  9. Per il ds ci stanno una quarantina di giochi tutti fatti dalla nintendo? Questa me la segno.

    Tanto per dare due numeri a caso secondo la lista "All games" di Gamespot ci sono 850 giochi per psp mentre per il ds sono..uhm.. 1640. Poco meno del doppio, considerando che presentazione alla stampa e rilascio delle due console praticamente coincidono. Perciò non diciamo fesserie, per la psp sono disponibili molti meno giochi. ((Dimenticavo, sul ds ci sono pure un paio di migliaia di giochi per il GBA, e non parlo di emulazione ma proprio di cartucce che si possono infilare nello slot-2))

     

    A me i giochi piacciono quando mi appassionano, quando mi lasciano a bocca aperta...

    questo accade quando la grafica è bella, quando il gioco è frenetico, quando la colonna sonora è spinta e ben studiata, e quando le emozioni di alcune scene ti prendono

     

    Queste son tutte cose presenti solo sulla PSP... non sul NDS...

    ROFL. Essì, il ragionamento fila. :Ok:

    Suppongo tu abbia provato tutti i giochi di entrambe le console per dire questo. :biggrin:

     

    Comunque è chiaro che hai provato davvero pochi giochi per poter dire cose del genere a casaccio: hai mai sentito la colonna sonora di Phoenix Wright? Oppure quella di Professor Layton? La teoria delle colonne sonore "strapucciose" non sta proprio in piedi, non capisco che motivazione possa essere...

    Poi pure quella dello stilo m'ha fatto scompisciare: in alcuni giochi è usato al 100% ed in altri no.. quindi? o_

    Per fortuna che è così, almeno non sei limitato a giochi con un solo tipo di controller ma hai a disposizione diverse opzioni: pokémon non l'hanno fatto con un utilizzo decente dello stilo, avrebbero potuto inventarsi qualcosa, ma Trauma Center è con lo stilo (e ben venga), la maggior parte dei platform sono senza utilizzo dello stilo, quindi?

    Il fattore "difficile da impostare" è totalmente inesistente, uno dei vantaggi dello stilo è proprio l'immediatezza d'uso che permette anche a bambini di pochi anni, o a persone di una certa età, di giocarci senza troppi fronzoli.

     

    Boh.. hai detto tutte affermazioni soggettive o false, penso pure che questa frase definisca perfettamente il tuo pensiero e quello di molti altri tamarr-gamer.

    ma a me piace il gioco con la grafica realistica e fica

    alla fine il succo di tutto casca sempre lì.

     

    Passo alla mia opinione cercando di essere il più possibile obiettivo: è chiaro che non si possa dire quale delle due sia meglio però si possono dare dei pro e contro per entrambe, imho è sempre la cosa migliore per evitare i soliti discorsi "ma xfc ha la grafica fica" "ma la yfj ha millemila giochi divertenti" "ma la wsz fa il caffè!" .. etc etc

     

    PSP:

    + E' potente, ottima grafica 2D e 3D, alta risoluzione dello schermo

    + Giochi di qualità e remake di giochi famosi

    + Lettore MP3, player per video MP4 e la possibilità di creare slideshow di immagini di default

    + La console è molto elegante e disponibile in varie colorazioni

    + Possibilità di connessione Wi-fi

    + Menu di sistema personalizzabile

    + Output video per giocare sul televisore di casa

    - Nulla di innovativo, come avere una psx con parco giochi ridotto

    - Non è la console portatile più venduta, quindi parco giochi meno ampio

     

    NDS:

    + Ottima grafica 2D

    + Giochi di qualità e remake di giochi famosi

    + E' la console portatile più venduta, quindi parco giochi molto ampio

    + Innovativo sistema Dual Screen ,Touch Screen e microfono, oltre al classico pad

    + Possibilità di utilizzare cartucce del GBA

    + La console (lite) è molto elegante e disponibile in varie colorazioni

    + Possibilità di connessione Wi-fi

    - Qualità grafica (soprattutto 3D),potenza e risoluzione non all'altezza della concorrenza

    - Non ha un media center di default

    - Non è molto personalizzabile di default

    - Moltissimi giochi pubblicizzati dalle nostre parti indirizzati a bambini

     

    Volevo differenziare tra "considerare taroccamenti" e "non considerare taroccamenti" ma mi sono stufato e ho tenuto solo la seconda.

     

    p.s. probabilmente mi son scordato qualcosa, casomai fischiate

×
×
  • Create New...