Ergebnis 1 bis 5 von 5

Thema: Ein Luftschiff erstellen mit RMXP

  1. #1

    Ein Luftschiff erstellen mit RMXP

    Hallo Community,

    ich hätte mal eine Frage:
    Wie kann ich folgendes Szenario verwirklichen, man besteigt auf der Weltkarte ein Luftschiff. Mit diesem kann man dann herum fliegen (so wie in Final Fantasy z.B.) Man sollte natürlich auch wieder landen können. Und wenn möglich nicht z.B. auf dem Wasser oder auf Städten. Also, wie bewerkstellige ich das? Wäre dankbar über Hilfe.

  2. #2
    also wie man es einstellt, dass der Held über alles fliegen kann solltest du ja wissen? Set Move Route und dort irgendwo^
    Nun frägst du bei einem Druck auf enter ab, darf man landen? Wenn ja, landet man, wenn nein halt net. Das kannst du einfach machen, indem du nachfrägst, ist das Feld passierbar? Benutzmal die Sufu mit meinen Namen, dann erden alle Threads von mir aufgelistet. In einen von denen steckt die Antwort^^

  3. #3
    Oder du lädst dir einfach das Vehicle Script von hier (ist im Anhang) runter. Laut der Beschreibung kann man damit auch Luftschiffe erstellen.

  4. #4
    Oder du machst ein Event in dem als char graphic das luftschiff ist und tust es auf "action button" oder so und dan stellst du den player auf trough 1 schritt vor so das er im luftschiff steckt und dann party member ändern, den jetzigen "held" durch den held ersetzen der die Graphic des luftschiffes hat und dann die graphic des luftschiff events ändern auf nichts. Den player auf trough,always on top stellen und fertig o.o

    Und zum landen benötigt man auch nicht wirklich ein Script, ein common event sollte ausreichen nur hab ich ab da keine Ahnung mehr :I verwende lieber das vehicle script.

  5. #5
    Habs mal mit diesem Script ausprobiert doch der funktioniert nur in seinem Projekt und nicht wenn ich es in meiner Liste hinzufügen möchte.

    Anstatt das Vehicle zu betreten wird der Charakter zu einem (was ja fürs erste zwar richtig ist) doch dann wird auch noch eine andere Grafik gespeichert die man auf der Map erkennen kann. Man steigt wieder aus und man wird in eine andere Map tranferiert. Wenn das Luftschiff genutzt wird kann es keine Berge überqueren und zum Floß sag ich mal das es nur zum anschauen zu gebrauchen ist. Im großem und ganzem haben diese Vehicle auf der Map keine besondere Funktion auch wenn ich diese mit mehreren Funktionen ausstatte oder Tilesets der Nummerierung zuteilen möchte.

    Der Script ist dieser:
    Code:
    class Game_Character
      def passable?(x, y, d)
        
        # Get new coordinates
        new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
        new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
        
        # If coordinates are outside of map
        unless $game_map.valid?(new_x, new_y)
          return false
        end
        
        # If through is ON
        if @through
          return true
        end
            
        # If unable to leave first move tile in designated direction
        unless $game_map.passable?(x, y, d, self)
          return false
        end
        
        # If unable to enter move tile in designated direction
        unless $game_map.passable?(new_x, new_y, 10 - d)
          return false
        end
            
        #check terrain for vehicle
        check_terrain(new_x, new_y)    
          
        # Loop all events
        for event in $game_map.events.values
          # If event coordinates are consistent with move destination
          if event.x == new_x and event.y == new_y
            @state = true
            # If through is OFF
            unless event.through
              # If self is event
              if self != $game_player
                return false
              end
              # With self as the player and partner graphic as character
              if event.character_name != ""
                return false
              end
            end
          end
        end
        
        if @state == false
          return false
        end      
        
        # If player coordinates are consistent with move destination
        if $game_player.x == new_x and $game_player.y == new_y
          # If through is OFF
          unless $game_player.through
            # If your own graphic is the character
            if @character_name != ""
              return false
            end
          end
        end
          
        
        return true
        
      end
      
      #--------------------------------------------------------------------------
      # * Check the terrain for the vehicle
      #   @terrain (0=none, 1=river, 2=ocean, 3=air, 4=ground)
      #   @vehicle (0=foot, 1=canoe, 2=boat, 3=dragon)
      #   @state (true=passable tile, false=unpassable tile)
      #--------------------------------------------------------------------------
      def check_terrain(new_x, new_y)  
        @state = false
        @terrain = $game_map.terrain_tag(new_x, new_y)
        @vehicle = $game_variables[1]
        
        @state = true if @vehicle == 0 && @terrain == 4  #foot & ground
        @state = true if @vehicle == 1 && @terrain == 3  #canoe & river
        @state = true if @vehicle == 2 && @terrain == 2  #boat & ocean
        @state = true if @vehicle == 3                   #dragon
        @state = true if @terrain == 0
      end
    
    end
    
    class Game_Player < Game_Character
      
      alias in_vehicle_alias update
      #--------------------------------------------------------------------------
      # * Memorize actor graphic
      #--------------------------------------------------------------------------      
      def actor_memorize
        @actor_name = $game_actors[1].character_name
        @actor_hue = $game_actors[1].character_hue
        @battler_name = $game_actors[1].battler_name
        @battler_hue = $game_actors[1].battler_hue
        return true
      end
    
      #--------------------------------------------------------------------------
      # * Restore actor graphic
      #--------------------------------------------------------------------------      
      def actor_restore
        actor = $game_actors[1]
        actor.set_graphic(@actor_name.to_s, @actor_hue, @battler_name.to_s, @battler_hue)
        $game_player.refresh
        return true
      end    
      
      #--------------------------------------------------------------------------
      # * Enter a vehicle
      #--------------------------------------------------------------------------        
      def enter_vehicle(type)
        
        $game_system.menu_disabled = true
        $game_system.save_disabled = true    
        
        if type != "dragon"
          @through = true
          move_forward
          @through = false    
        end
        
        actor_memorize
        actor = $game_actors[1]    
        actor.set_graphic(type, @actor_hue, @battler_name.to_s, @battler_hue) 
        
        $game_switches[1] = false    #Canoe Off     
        $game_switches[2] = false    #Boat Off     
        $game_switches[3] = false    #Dragon Off         
        
        if type == "canoe"
          $game_variables[1] = 1       #set terrian
          $game_switches[1] = true    #Canoe On
          Audio.bgm_play("Audio/BGM/047-Positive05", 100, 100) #play canoe music
      
        elsif type == "boat"
          $game_variables[1] = 2       #set terrian
          $game_switches[2] = true    #Boat On      
          Audio.bgm_play("Audio/BGM/046-Positive04", 100, 100) #play ship music
          
        elsif type == "dragon"
          $game_variables[1] = 3       #set terrian
          $game_switches[3] = true    #Dragon On  
          Audio.bgm_play("Audio/BGM/045-Positive03", 100, 100) #play dragon music
          
        end
        
        $game_player.refresh
        $game_map.refresh
        
        return true
      end
    
      #--------------------------------------------------------------------------
      # * Enter a vehicle
      #--------------------------------------------------------------------------        
      def exit_vehicle
    
        $game_system.menu_disabled = false    
        $game_system.save_disabled = false
        
        if @terrain == 4
                
          if $game_switches[1] == true      #getting off canoe
            canoe = $game_map.events[1]     #get canoe event
            canoe.moveto(x, y)              #move to player's x, y coords
            $game_switches[1] = false       #Canoe Off   
            $game_variables[2] = x          #set canoe x coord
            $game_variables[3] = y          #set canoe y coord
            @through = true
            move_forward
            @through = false          
            
          elsif $game_switches[2] == true   #getting off boat
            boat = $game_map.events[2]      #get boat event
            boat.moveto(x, y)               #move to player's x, y coords        
            $game_switches[2] = false       #Boat Off    
            $game_variables[4] = x          #set boat x coord
            $game_variables[5] = y          #set boate y coord  
            @through = true
            move_forward
            @through = false                  
            
          elsif $game_switches[3] == true   #getting off dragon
            dragon = $game_map.events[3]    #get dragon event
            dragon.moveto(x, y)             #move to player's x, y coords        
            $game_switches[3] = false       #Dragon Off    
            $game_variables[6] = x          #set dragon x coord
            $game_variables[7] = y          #set dragon y coord 
          end
          
          # get off vehicle
          actor_restore
        
          # reset terrain
          $game_variables[1] = 0           
        
          # play walking music
          Audio.bgm_play("Audio/BGM/044-Positive02", 100, 100) #play music
          
          $game_player.refresh  
          $game_map.refresh    
        
        end
      
      end 
      
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        in_vehicle_alias
        # if not on ground terrain, check for boat exit
        if $game_variables[1] != 0
          if Input.trigger?(Input::C)
            exit_vehicle
          end   
        end
      end
     
    end
    Letzten Endes brachte es auch nichts sich darüber zu informieren da dies wohl ein besonderer Fall ist wie ich es in der Internetrecherche gemerkt habe.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •