Vai al contenuto


Toggle Chat RM - Chat Apri la Chat in un popup

E' severamente vietato richiedere supporto su RPG Maker in chat!
@  Pech93 : (24 May 2012 - 01:55 PM) ho aggiunto delle composizioni originali!!! Chi le vuole ascoltare e dare qualche commento costruttivo?
@  MihaChan : (23 May 2012 - 09:19 PM) a parte i denti -che stanno decidendo di darmi noia in questi giorni-, tutto okay~
@  Melosx : (23 May 2012 - 09:18 PM) bene ^.^ ... Tu??
@  MihaChan : (23 May 2012 - 09:17 PM) come va? xD
@  MihaChan : (23 May 2012 - 09:16 PM) okay
@  MihaChan : (23 May 2012 - 09:16 PM) ah
@  Melosx : (23 May 2012 - 09:14 PM) ciao miha... ai dont spic inglisc
@  MihaChan : (23 May 2012 - 09:12 PM) how'sa goin'?
@  MihaChan : (23 May 2012 - 09:12 PM) ciao Mel!
@  Melosx : (23 May 2012 - 09:07 PM) ciao
@  MihaChan : (23 May 2012 - 09:06 PM) salve D:
@  Pech93 : (23 May 2012 - 08:05 PM) MIk?
@  Melosx : (23 May 2012 - 07:51 PM) VIENI SU MSN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@  Melosx : (23 May 2012 - 07:51 PM) MIIIIIIIIIIIIIIIIIIIKKKKKKKKKKKK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@  Melosx : (23 May 2012 - 07:46 PM) *iù
@  Melosx : (23 May 2012 - 07:38 PM) iu spin mi rai rau bebi rai rau laic a record bebi rau rau rau rau
@  Melosx : (23 May 2012 - 07:37 PM) lalalallalallalallallllllllllalalalallaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!
@  Melosx : (23 May 2012 - 07:37 PM) lalalalala
@  Melosx : (23 May 2012 - 07:37 PM) naoinvaoèvpodlnvvrovnovnondpppppppppmvdgdvjomvmvpe
@  Melosx : (23 May 2012 - 07:36 PM) che coa che robaé

Problema barra a picture


  • Discussione bloccata Questa discussione e' bloccata
7 risposte a questa discussione

#1 OFFLINE   mysimscars

mysimscars

    Neofita

  • Utenti RM
  • 9 Messaggi:

Inviato 08 May 2011 - 03:05 PM

Ciao a tutti con rpg maker xp sto creando un simulatore di vita...però ho un problema...
Ho disegnato con paint la barra di energia con dieci tacchette...da quella tutta piena a quella con una sola tacchetta...poi ho creato un evento evento comune (processo parallelo con switch:Barra Energia) assegnando variabile a picture, cioè:

Variabile [Energia]=10
IF: Variabile [Bisogno]==10
Mostra figura 1: Bisogno energia MAX
END
Aspetta 40 frames
Variabile [Energia]=9
IF: Variabile [Bisogno]==9
Mostra figura 1:Bisogno energia -1
END
Aspetta 40 frames
Variabile [Energia]=8
IF: Variabile [Bisogno]==8
Mostra figura 1: Bisogno energia -2
END

e così per tutte le altre fino ad arrivare:

Variabile [Energia]=1
IF: Variabile [Bisogno]==1
Mostra Figura -9
END

Poi ho messo nella mappa principale: Nuovo evento, processo parallelo, switch Barra energia on

Adesso ho un problema...cioè la barra funziona, infatti ogni due secondi cala di una tacca (ho messo 40 frames solo per provare) però se cambio mappa mentre è in funzione (ad esempio la barra è su tacca 5) la barra ritorna piena...e poi scende normalmente... :sigh:

Adesso la mia domanda è come faccio a cambiare mappa (ad esempio partendo dalla città ed entrando in casa) senza che però essa ricominci da capo?

Grazie mille in anticipo :ciau:

#2 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 10 May 2011 - 12:53 AM

Prova a ragionarci su un secondo... La variabile ENERGIA la devi inizializzare a 10 con un inizio automatico che verrà poi disattivato da uno switch UNA ed UNA SOLA volta, altrimenti verrà impostata a 10 ogniqualvolta il processo parallelo viene avviato (cambio di mappa). Dovrai poi gestire la barra ed il decremento della variabile ENERGIA in due processi paralleli diversi. Uno di questi controllerà il valore della variabile e mostrerà la picture corrispondente, mentre l'altro decrementerà la variabile di uno ogni TOT frames. Spero di esserti stato d'aiuto!
Podi raggiunti
Spoiler

#3 OFFLINE   mysimscars

mysimscars

    Neofita

  • Utenti RM
  • 9 Messaggi:

Inviato 10 May 2011 - 01:32 PM

napco, dice:

Prova a ragionarci su un secondo... La variabile ENERGIA la devi inizializzare a 10 con un inizio automatico che verrà poi disattivato da uno switch UNA ed UNA SOLA volta, altrimenti verrà impostata a 10 ogniqualvolta il processo parallelo viene avviato (cambio di mappa). Dovrai poi gestire la barra ed il decremento della variabile ENERGIA in due processi paralleli diversi. Uno di questi controllerà il valore della variabile e mostrerà la picture corrispondente, mentre l'altro decrementerà la variabile di uno ogni TOT frames. Spero di esserti stato d'aiuto!
Ciao grazie per avermi risposto...allora io adesso ho fatto cosi..
-Ho creato un evento su mappa (Città) in processo parallelo e ho messo:
IF: Variabile [Energia] == 10
Mostra Figura: Energia MAX
Fino ad arrivare a Variabile Energia == 1
Mostra Figura: Energia -9

-Poi ho creato un'altro evento su mappa (Città) in processo parallelo e ho messo:
Variabile: Energia= 10
Fino a Variabile Energia= 1

-Ho creato infine un altro evento su mappa (Città) con inizio automatico e ho messo:
Variabile Energia= 10
Switch Locale A=ON
e ho aperto una seconda pag e impostato a fianco Switch Locale A= ON


Il problema adesso è che la barra funziona come prima...se cambio mappa si blocca...e se poi ritorno a quella di prima (Città) si riempe e si svuota normalmente...cos'ho sbagliato?? :sigh:

Grazie mille in anticipo... :ciau:

#4 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 10 May 2011 - 06:58 PM

Devi modificare il secondo evento e trasformarlo in:

Variabile [ENERGIA] -= 1
Aspetta X frames

Podi raggiunti
Spoiler

#5 OFFLINE   mysimscars

mysimscars

    Neofita

  • Utenti RM
  • 9 Messaggi:

Inviato 10 May 2011 - 08:47 PM

napco, dice:

Devi modificare il secondo evento e trasformarlo in:

Variabile [ENERGIA] -= 1
Aspetta X frames
Scusa ma come faccio ad impostare la variabile con il segno " -="?
Cioè a me vengono fuori questi segni:
=
+
-
*
/
Mod

Come faccio??

PS:grazie per la disponibilità

#6 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 10 May 2011 - 10:48 PM

mettici il "-", che equivale a: prendi la variabile scelta e sottraici il valore selezionato...
Podi raggiunti
Spoiler

#7 OFFLINE   mysimscars

mysimscars

    Neofita

  • Utenti RM
  • 9 Messaggi:

Inviato 11 May 2011 - 02:59 PM

napco, dice:

mettici il "-", che equivale a: prendi la variabile scelta e sottraici il valore selezionato...
Ok ho fatto e FUNZIONA tutto perfettamente! Grazie davvero! :sorr3:
Vorrei sapere un'altra cosa senza aprire un'altro topic...
Volevo usare i veicoli e quindi ho messo questo script:
#------------------------------------------------------------------------------
# *Traduzido por: Diogo Pegasus
#
#
#------------------------------------------------------------------------------
#  Histórico da Versão:
# Version 1.1: 16 de dezembro de 2009
# - Corrigido problemas de compatibilidade com XAS
# Version 1.0: 14 de dezembro de 2009
# - inicial
#------------------------------------------------------------------------------
#  Descriçao:
#     Este Scripst adiciona vehículos no RPG Maker XP.
#------------------------------------------------------------------------------
#  Recursos:
#    - Velocidade do veículo Configurável
#    - Gráfico do veículo Configurável
#    - Fácil de configurar e usar e extremamente amigável
#   
#------------------------------------------------------------------------------
#    Instruções de uso:
#      Crie um evento no mapa onde você deseja que seja o veículo . Defina o
#      Evento gráfico para o gráfico que deseja que o veículo seja. Nome do evento
#      Como se segue:
#         v_land = veículo terrestre , você pode viajar nos mesmos lugares que você faz
#                    A pé, mas a uma velocidade diferente
#         v_raft = veículo aquático, você pode viajar em águas rasas
#         v_ship = veículo aquático, você pode viajar em águas rasas e profundas
#         v_airship = veículo aéreo, você pode viajar sobre qualquer coisa
#------------------------------------------------------------------------------
#  Instruçoes de instalaçao:
#     coloque este scripst em cima de main
#==============================================================================

#==============================================================================
# ** Configuraçoes do vehículo
#------------------------------------------------------------------------------
#  Este módulo contém os dados de configuração para os veículos.
#------------------------------------------------------------------------------
#  Comece a área editável.
#==============================================================================
module Vehicle_Config
  # Isto é onde você configura a velocidade do veículo.
  # Mais rápido eles se movem, então quando você está em pé.

  # Este valor determina a velocidade do veículo terrestre
  # Default: 1
  LAND_VEHICLE_SPEED = 1

  # Este valor determina a velocidade do veículo aquático(raft)
  # Default: 0
  RAFT_SPEED = 0

  # Este valor determina a velocidade do veículo aquático(ship)
  # Default: 1
  SHIP_SPEED = 1

  # Este valor determina a velocidade do veículo aéreo
  # Default: 2
  AIRSHIP_SPEED = 2
end
#==============================================================================
#  Fim da area Editável.
#------------------------------------------------------------------------------
#  Atenção! Não edite além deste ponto a menos que você saiba o que está fazendo!
#==============================================================================

#==============================================================================
# ** Veículo
#------------------------------------------------------------------------------
#  Esta classe realiza o processamento do veículo.
#==============================================================================

class Vehicle
  #--------------------------------------------------------------------------
  # * Incluir modulo
  #--------------------------------------------------------------------------
  include Vehicle_Config
  #--------------------------------------------------------------------------
  # * Inicializaçao do objeto
  #--------------------------------------------------------------------------
  def initialize(event, type)
    # Velocidade de diferentes veícuilos
    @speeds = [LAND_VEHICLE_SPEED, RAFT_SPEED, SHIP_SPEED, AIRSHIP_SPEED]
    @player_speed = $game_player.get_speed
    # o evento do jogo
    @event = event
    @type = type
    @wait = 0
    @vehicle_entering = true
    @in_vehicle = false
    # Armazenar o nome do gráficos dos actors
    actor = $game_actors[1]
    @character_graphic = @graphic = actor.character_name
  end
  #--------------------------------------------------------------------------
  # * Mudar gráfico do actor
  #     graphic_name : graphic file name
  #--------------------------------------------------------------------------
  def change_actor_graphic(graphic_name)
    # Defina o nome do gráfico do Player para graphic_name
    actor = $game_actors[1]
    actor.set_graphic(graphic_name, actor.character_hue, actor.battler_name,
                      actor.battler_hue)
    # Actualizar os gráficos do player
    $game_player.refresh
  end
  #--------------------------------------------------------------------------
  # * Mover
  #--------------------------------------------------------------------------
  def move
    # Faz o jogador se mover através de todos os tiles
    $game_player.through = true
    # Mover o jogador para  frente
    $game_player.move_forward
    # Não permitir a entrada do jogador quando entrar no veículo
    $game_system.map_interpreter.switch_vehicle(true)
    # Faz o jogador parar de se mover através de de todos os tiles
    $game_player.through = false if @type != 3
  end
  #--------------------------------------------------------------------------
  # * Pegando o  gráfico do veículo
  #--------------------------------------------------------------------------
  def get_vehicle_graphic
    # Move o player
    move
    # Definir o tempo de espera para atrasar a aguardar o ator se mover antes
    # mudando gráficos
    @wait = 20
    # Player está agora no veículo   
    @in_vehicle = true
    # Retorne o nome do gráfico do veículo
    return @event.character_name
  end
  def exit
    # Muda o gráfico do actor de volta ao que era
    change_actor_graphic(@character_graphic)
    # Unanimate do veículo
      $game_player.step_anime = false
    # Mover o jogador de fora do veículo
    move
    # Faz o jogador parar de se mover através de de todos os tiles
    $game_player.through = false
    # Já não está em um veículo
    @in_vehicle = false
    # Reexibir o evento veículo
    @event.recreate
    # Ajusta a velocidade do movimento
    $game_player.vehicle_speed(@player_speed)
    # Permitir que o jogador se mover novamente
    $game_system.map_interpreter.switch_vehicle(false)
    # Não interaje com outros eventos
    $game_player.in_vehicle = false
    # Defina o tipo do veículo
    $game_player.vehicle_type = -1
  end
  #--------------------------------------------------------------------------
  # * Dirigível Sair
  #     x : x-cordenar
  #     y : y-cordenar
  #--------------------------------------------------------------------------
  def exit_airship(x, y)
    $game_player.through = false
    for i in 1..4
      if $game_player.passable?(x, y, i * 2)
        case i
        when 1
          $game_player.turn_down
        when 2
          $game_player.turn_left
        when 3
          $game_player.turn_right
        when 4
          $game_player.turn_up
        end
        exit
        return true
      end
    end
    $game_player.through = true
    return false
  end
  #--------------------------------------------------------------------------
  #  * Dirigível Sair
  #     x : x-cordenar
  #     y : y-cordenar
  #     d : direçao (0,2,4,6,8)
  #         * 0 = Determina se todos sao impassáveis (ao pular)
  #--------------------------------------------------------------------------
  def exit_vehicle(x, y, d)
    if @type == 3
      return exit_airship(x, y)
    end
    if $game_player.can_pass?(x, y, d)
      exit
      return true
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    if @wait == 0
      if @vehicle_entering
        # Pega o gráfico do veículo
        @graphic = get_vehicle_graphic if !@in_vehicle
        # Se houver um atraso, não continue
        return if @wait != 0
        # Muda o gráfico dos actors para o gráfico do veículo
        change_actor_graphic(@graphic)
        # Anima o veículo
        $game_player.step_anime = true if @type != 0
        # Apaga o evento do veículo
        @event.erase
        # Adjust move speed
        $game_player.vehicle_speed(@player_speed + @speeds[@type])
        # Mais nenhuma alteração no veículo
        @vehicle_entering = false
        # Permite o jogador se mover de novo
        $game_system.map_interpreter.switch_vehicle(false)
        # Nao interaje com outros eventos
        $game_player.in_vehicle = true
        # Define o tipo de veículo
        $game_player.vehicle_type = @type
      end
      # Se em um veículo
      if @in_vehicle
        # Move o evento do veículo para a player cordenado
        @event.moveto($game_player.x, $game_player.y)
      end
    else
      @wait -= 1
    end
  end
  #--------------------------------------------------------------------------
  # * Dentro
  #--------------------------------------------------------------------------
  def inside
    return @in_vehicle && @wait == 0
  end
end

#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  Esta classe realiza processamento de ecrã de mapa.
#==============================================================================

class Scene_Map
  #--------------------------------------------------------------------------
  # * Main Processando
  #--------------------------------------------------------------------------
  alias af_veh_sm_main main
  def main
    @vehicle = nil
    af_veh_sm_main
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias af_veh_sm_update update
  def update
    # atualiza o objeto do veículo
    @vehicle.update if @vehicle != nil
    af_veh_sm_update
    # Pegue novas cordenadas
    d = $game_player.direction
    new_x = $game_player.x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = $game_player.y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # Se o butão C For Pressionado
    if Input.trigger?(Input::C)
      # Se dentro de um veículo
      if @vehicle != nil && @vehicle.inside
        # Se saiu do veículo
        if @vehicle.exit_vehicle($game_player.x, $game_player.y, d)
          # Remove o objeto do veículo
          @vehicle = nil
        end
      elsif is_vehicle?(new_x, new_y)
        # Entre no veículo
        enter_vehicle(new_x, new_y)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Pegue os eventos
  #     x : evento x-cordenar
  #     y : evento y-cordenar
  #--------------------------------------------------------------------------
  def get_event_keys(x, y)
    events = []
    for key in $game_map.events.keys
      # Se há um evento de frente do player
      if $game_map.events[key].x == x && $game_map.events[key].y == y
        # Adiciona evento para eventos
        ###events.push($game_map.events[key])###
        events.push(key)
      end
    end
    return events
  end
  #--------------------------------------------------------------------------
  # * È o nome do veículo?
  #    name : event name
  #--------------------------------------------------------------------------
  def is_vehicle_name?(name)
    # Nomes dos Veículos
    names = ["v_land", "v_raft", "v_ship", "v_airship"]
    for i in names
      # Se o nome é igual a um nome de veículos
      if i == name.downcase
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * È veículo?
  #     x : evento x-coordenar
  #     y : evento y-coordenar
  #--------------------------------------------------------------------------
  def is_vehicle?(x, y)
    for key in get_event_keys(x, y)
      # Se o nome de eventos é o nome de um veículo
      if is_vehicle_name?($game_map.map.events[key].name)
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Pegue o ID do veículo
  #     x : evento x-coordenar
  #     y : evento y-coordenar
  #--------------------------------------------------------------------------
  def get_vehicle_id(x, y)
    for key in get_event_keys(x, y)
      # Se o nome de eventos é o nome de um veículo
      if is_vehicle_name?($game_map.map.events[key].name)
        return $game_map.events[key].id
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Pegue o veículo
  #     x : evento x-coordenar
  #     y : evento y-coordenar
  #--------------------------------------------------------------------------
  def get_vehicle(x, y)
    # Obter o Id do veículo De frente do Player
    vehicle_id = get_vehicle_id(x, y)
    for key in $game_map.events.keys
      if $game_map.events[key].id == vehicle_id
        # Devolver o objeto de evento com o ID do evento correspondente
        return $game_map.events[key]
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Obter nome do veículo
  #     x : evento x-coordenar
  #     y : evento y-coordenar
  #--------------------------------------------------------------------------
  def get_vehicle_name(x, y)
    # Obter id do veículo de frente do Player
    vehicle_id = get_vehicle_id(x, y)
    for key in $game_map.map.events.keys
      if $game_map.map.events[key].id == vehicle_id
        # Retornar o nome do evento
        return $game_map.map.events[key].name
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Entre no veículo
  #     x : evento x-coordnar
  #     y : evento y-coordenar
  #--------------------------------------------------------------------------
  def enter_vehicle(x, y)
    # obter objeto do evento do veículo
    type = {"v_land" => 0, "v_raft" => 1, "v_ship" => 2, "v_airship" => 3}
    # Cria o objeto do veículo
    @vehicle = Vehicle.new(get_vehicle(x, y), type[get_vehicle_name(x, y)])
  end
end

#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
#  Esta classe lida com os personagens. É utilizado como uma superclasse para a
#  Game_Player e classes Game_Event.
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # * Definida através
  #     throught : new boolean throught value
  #--------------------------------------------------------------------------
  def through=(through)
    @through = through
  end
  #--------------------------------------------------------------------------
  # * Define a velocidade do veículo
  #     speed : speed increment
  #--------------------------------------------------------------------------
  def vehicle_speed(speed)
    @move_speed = [[1, speed].max, speed].min
  end
  #--------------------------------------------------------------------------
  # * Obter velocidade do veículo
  #--------------------------------------------------------------------------
  def get_speed
    return @move_speed
  end
end

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # * Público Instância Variáveis
  #--------------------------------------------------------------------------
  attr_accessor     :in_vehicle # In vehicle
  attr_accessor     :vehicle_type # In vehicle
  #--------------------------------------------------------------------------
  # * inicializaçao do Objeto
  #--------------------------------------------------------------------------
  alias af_veh_gp_init initialize
  def initialize
    @in_vehicle = false
    @vehicle_type = -1
    af_veh_gp_init
  end
  #--------------------------------------------------------------------------
  # * Define a animaçao do veículo
  #     step_anime : animation boolean
  #--------------------------------------------------------------------------
  def step_anime=(step_anime)
    @step_anime = step_anime
  end
  #--------------------------------------------------------------------------
  # * Razoável Determinantes
  #     x : x-coordenar
  #     y : y-coordenar
  #     d : direçao (0,2,4,6,8)
  #         * 0 = Determina se todas as direçoes sao impassáveis(ao pular)
  #--------------------------------------------------------------------------
  def passable?(x, y, d)
    # Obter novas cordenadas
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # Se a cordenada está fora do mapa
    unless $game_map.valid?(new_x, new_y)
      # Impassável
      return false
    end
    # Se o modo de depuração está ON e a tecla Ctrl for pressionada
    if $DEBUG and Input.press?(Input::CTRL)
      # Passável
      return true
    end
    # Se estiver em um veículo da água e sobre a água
    if $game_map.terrain_tag(new_x, new_y) == 1 && @vehicle_type == 1 ||
       @vehicle_type == 2 && ($game_map.terrain_tag(new_x, new_y) == 1 ||
       $game_map.terrain_tag(new_x, new_y) == 2)
      return true
    end
    super
  end
  #--------------------------------------------------------------------------
  # * Mesma posição inicial Determinante
  #--------------------------------------------------------------------------
  alias af_veh_gp_ceth check_event_trigger_here
  def check_event_trigger_here(triggers)
    unless @in_vehicle
      af_veh_gp_ceth(triggers)
    else
      return false
    end
  end
  #--------------------------------------------------------------------------
  # * Frente Envento Iniciando Determinante
  #--------------------------------------------------------------------------
  alias af_veh_gp_cett check_event_trigger_there
  def check_event_trigger_there(triggers)
    unless @in_vehicle
      af_veh_gp_cett(triggers)
    else
      return false
    end
  end
  #--------------------------------------------------------------------------
  # * Toque Evento Iniciando Determinante
  #--------------------------------------------------------------------------
  alias af_veh_gp_cettouch check_event_trigger_touch
  def check_event_trigger_touch(x, y)
    unless @in_vehicle
      af_veh_gp_cettouch(x, y)
    else
      return false
    end
  end
  #--------------------------------------------------------------------------
  # * Determine se é passável
  #     x : x-coordenar
  #     y : y-coordenar
  #     d : direçao (0,2,4,6,8)
  #         * 0 = Determina se todas as direçoes sao impassáveis(ao pular)
  #--------------------------------------------------------------------------
  def can_pass?(x, y, d)
    # Obter novas cordenadas
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # Se as cordenads estao fora do mapa
    unless $game_map.valid?(new_x, new_y)
      # Impassable
      return false
    end
    # Se o modo de depuração está ON e a tecla Ctrl for pressionada
    if $DEBUG and Input.press?(Input::CTRL)
      # Passável
      return true
    end
    # Se estiver em um veículo da água e sobre a água
    if $game_map.terrain_tag(new_x, new_y) == 1 && @vehicle_type == 1 ||
       @vehicle_type == 2 && ($game_map.terrain_tag(new_x, new_y) == 1 ||
       $game_map.terrain_tag(new_x, new_y) == 2)
      return true
    end
    # Ise through iestiver ON
    if @through
      # passável
      return true
    end
    # Se não for possível mover no tile mover em direção designada
    unless $game_map.passable?(new_x, new_y, 10 - d)
      # impassável
      return false
    end
    # Loop todos os eventos
    for event in $game_map.events.values
      # Se caso as coordenadas são consistentes com destino mover
      if event.x == new_x and event.y == new_y
        # Se through Estiver OFF
        unless event.through
          # Se self é  evento
          if self != $game_player
            # impassável
            return false
          end
          # Com self como jogador e parceira gráfico como personagem
          if event.character_name != ""
            # impassável
            return false
          end
        end
      end
    end
    # Se as coordenadas do player  são consistentes com destino mover
    if $game_player.x == new_x and $game_player.y == new_y
      # Se through estiver OFF
      unless $game_player.through
        # Se o seu próprio gráfico é o caracter
        if @character_name != ""
          # impassável
          return false
        end
      end
    end
    # passável
    return true
  end
end

#================================================= =============================
# ** Game_Event
#------------------------------------------------- -----------------------------
# Esta classe lida com eventos. Ele lida com as funções, incluindo a página de eventos
# Comutação via determinantes da condição, e executando eventos do processo paralelo.
# É usado dentro da classe Game_Map.
#================================================= =============================
class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # * Recriar
  #--------------------------------------------------------------------------
  def recreate
    @erased = false
    refresh
  end
end

#================================================= =============================
# ** Game_Map
#------------------------------------------------- -----------------------------
# Essa classe manipula o mapa. Ela inclui a determinação de rolagem e passável
# Funções. Consulte "$ game_map" para a instância da classe.
#================================================= =============================

class Game_Map
  #--------------------------------------------------------------------------
  # * publica a instancia de Variáveis
  #--------------------------------------------------------------------------
  attr_reader   :map
end

#================================================= =============================
# ** Intérprete
#------------------------------------------------- -----------------------------
# Este intérprete executa comandos de eventos. Essa classe é usada no
# Game_System classe e da classe Game_Event.
#================================================= =============================

class Interpreter
  #--------------------------------------------------------------------------
  # * inicializaçao do Objeto
  #--------------------------------------------------------------------------
  alias af_veh_int_init initialize
  def initialize(depth = 0, main = false)
    @switching_vehicle = false
    af_veh_int_init(depth, main)
  end
  #--------------------------------------------------------------------------
  # * Switch Veículo
  #--------------------------------------------------------------------------
  def switch_vehicle(value)
    @switching_vehicle = value
  end
  #--------------------------------------------------------------------------
  # * Determinar se Running
  #--------------------------------------------------------------------------
  def running?
    return @list != nil || @switching_vehicle
  end
end
Dopo averlo messo ho chiamato un evento v_land e ho messo come grafica l'auto. Nel gioco l'ho provato e ho visto che funzionava correttamente, cioè se lasciavo il veicolo in punto diverso dalla posizione iniziale dell'evento questo rimaneva. Poi però ho notato che se cambio mappa esso ritorna al punto iniziale... Ora come faccio a non far ritornare l'evento alla posizione iniziale con il cambio mappa?
Grazie in anticipo... :ciau:

#8 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 11 May 2011 - 07:34 PM

Per supporto/richieste script, usate l'apposita sezione.

Se questo argomento è stato risolto, chiudo.
Immagine inserita
Spoiler




1 utente(i) stanno leggendo questa discussione

0 utenti, 1 ospiti, 0 utenti anonimi