Partagez
Aller en bas
avatar
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 29
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Se téléporter à l'interrieur d'un vaisseau

le Jeu 25 Nov 2010 - 14:17
Salut! Et non je ne suis pas mort ^^.
Voici un script que j'ai fait vous permettant de rentrer à l'intérieur du vaisseau (le véhicule volant) lors de l'appuie de Echap.

Toutes les explications se trouvent dans le script.

Script:
Spoiler:
Code:

#==============================================================================
# **Teleport_In_Airship fait par Skillo
#------------------------------------------------------------------------------
#  Ce script vous permet de vous téléporter dans une map définie, aux coordonné définies lorsque
#  vous appuyez sur B (Echap par default) .
#==============================================================================
module AirShipTeleport
 
  # Pour fonctionner ce script nécessite un evenement commun à declenchement  automatique via
  # un interrupteur défini plus bas et contenant les commandes suivantes:
  #  |> Attendre : 1 Frames
  #  |> Afficher l'écran en fondu
  #  |> Opération : Interrupteur [ id de l'interrupteur défini plus pas] Désactivé
 
  # Deplus pour sortir du vaisseau, il faut faire un event  avec un appel de script contenant:
  # $game_map.exit_airship
  # et le joueur sera automatiquement téléporté à la map d'origine.
 
  # Ici sera définie l'id de la map faisant réference au vaisseau
  # Map_id = id de la map
  Map_id = 2
 
  # Ici sera définie la coordonnée X après la téléportation du joueur sur la map
  # faisant réference au vaisseau.
  # Map_x = Coordonnée X sur la map
  Map_x = 8
 
  # Ici sera définie la coordonnée Y après la téléportation du joueur sur la map
  # faisant réference au vaisseau.
  # Map_y = Coordonnée Y sur la map
  Map_y = 8
 
  # Ici sera définie la direction du joeur après la téléportation du joueur sur la map
  # faisant réference au vaisseau.
  # Map_direction =  2:bas, 4:gauche, 6:droite, 8:haut,
  Map_direction = 8
 
  # Ici sera définie l'id de l'interrupteur appelant l'evenement commun nécessaire au fonctionnement de ce script
  # Switch = id de l'interrupteur
  Switch = 1
end


#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
#  This class handles system-related data. Also manages vehicles and BGM, etc.
# The instance of this class is referenced by $game_system.
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :actor_map_id                   
  attr_accessor :actor_map_x           
  attr_accessor :actor_map_y
  attr_accessor :actor_map_direction
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias skillo_airship_initialize initialize
  def initialize
    skillo_airship_initialize
    @actor_map_id  = 0
    @actor_map_x  = 0
    @actor_map_y =0
    @actor_map_direction = 0
  end
end

 
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs the map screen processing.
#==============================================================================

class Scene_Map < Scene_Base

#--------------------------------------------------------------------------
  # * Determine if Menu is Called due to Cancel Button
  #--------------------------------------------------------------------------
  def update_call_menu
    if Input.trigger?(Input::B)
      if $game_player.in_airship? and !$game_temp.in_battle
        $game_map.go_in_airship
      else
        return if $game_map.interpreter.running?        # Event being executed?
        return if $game_system.menu_disabled            # Menu forbidden?
        $game_temp.menu_beep = true                    # Set SE play flag
        $game_temp.next_scene = "menu"
      end
    end
  end   
end


#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles maps. It includes scrolling and passage determination
# functions. The instance of this class is referenced by $game_map.
#==============================================================================

class Game_Map
 
  #--------------------------------------------------------------------------
  # * Go in Airship
  #--------------------------------------------------------------------------
  def go_in_airship
      screen.start_fadeout(1)
      screen.update
      $game_system.actor_map_id = @map_id
      $game_system.actor_map_x = $game_player.x
      $game_system.actor_map_y = $game_player.y
      $game_system.actor_map_direction = $game_player.direction
      map_id = AirShipTeleport::Map_id
      x = AirShipTeleport::Map_x
      y = AirShipTeleport::Map_y
      direction = AirShipTeleport::Map_direction
      $game_player.quick_get_off_airship 
      $game_player.reserve_transfer(map_id, x, y, direction)   
      $game_switches[1] = true
  end
 
  #--------------------------------------------------------------------------
  # * Exit Airship
  #--------------------------------------------------------------------------
  def  exit_airship
    screen.start_fadeout(1)
    $game_player.get_on_airship
    map_id =  $game_system.actor_map_id
    x =  $game_system.actor_map_x
    y =  $game_system.actor_map_y
    direction = $game_system.actor_map_direction
    $game_player.reserve_transfer(map_id, x, y, direction)   
    $game_switches[1] = true
  end
end


#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  This class handles maps. It includes event starting determinants and map
# scrolling functions. The instance of this class is referenced by $game_map.
#==============================================================================

class Game_Player < Game_Character
 
  #--------------------------------------------------------------------------
  # * Get Off Vehicle
  #    Assumes that the player is currently riding in a vehicle.
  #--------------------------------------------------------------------------
  def quick_get_off_airship                       
      front_x = $game_map.x_with_direction(@x, @direction)
      front_y = $game_map.y_with_direction(@y, @direction)
      $game_map.vehicles[@vehicle_type].get_off    # Get off processing
      @vehicle_getting_off = true                  # Start getting off operation
      @move_speed = 4                              # Return move speed
      @through = false                              # Passage OFF
      @walking_bgm.play                            # Restore walking BGM
      make_encounter_count                          # Initialize encounter
    end
   
  #--------------------------------------------------------------------------
  # * Board Airship
  #--------------------------------------------------------------------------
  def get_on_airship
    @vehicle_getting_on = true        # Start boarding operation
    @vehicle_type = 2                # Set vehicle type
    @through = true                  # Passage ON
    @walking_bgm = RPG::BGM::last    # Memorize walking BGM
    $game_map.airship.get_on          # Boarding processing
  end 
end

Screen: pas d'utilité

Demo: à venir si besoin

Voilà laissez vos coms study

Ps: pour tous ceux qui diront que c'est faisable facilement en évent, je m'en fiche j'avais envi.
avatar
Aurel190
Membre

Nombre de messages : 80
Age : 21
Localisation : devans mon pc XD
Distinction : aucune
Date d'inscription : 22/06/2010

Re: Se téléporter à l'interrieur d'un vaisseau

le Dim 28 Nov 2010 - 13:18
Moi je l'ai toute en évenement et je peux mettre la démo (dés que tu veux démaré le vaisseau tu es téléporté dans le cockpit et de la tu peux démaré le vaisseau ou le visité !)
avatar
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 29
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Re: Se téléporter à l'interrieur d'un vaisseau

le Dim 28 Nov 2010 - 13:43
Tu fais ce que tu veux mais au moins mon script n'as besoin que d'un petit évent commun de 3 lignes pour marcher.
avatar
Aurel190
Membre

Nombre de messages : 80
Age : 21
Localisation : devans mon pc XD
Distinction : aucune
Date d'inscription : 22/06/2010

Re: Se téléporter à l'interrieur d'un vaisseau

le Dim 28 Nov 2010 - 13:46
Je vais testé ton script il l'air quand meme chouette !
avatar
Kiwi
Membre

Nombre de messages : 5
Age : 23
Localisation : Dans le trou du cul du monde
Distinction : aucune
Date d'inscription : 17/11/2010

Re: Se téléporter à l'interrieur d'un vaisseau

le Lun 20 Déc 2010 - 23:53
Une démo s'il vous plait ^^
avatar
Maloume
Membre

Nombre de messages : 623
Age : 23
Localisation : Marseille mon con
Distinction : aucune
Date d'inscription : 28/05/2010

Re: Se téléporter à l'interrieur d'un vaisseau

le Mar 21 Déc 2010 - 9:26
C'est vrai qu'une démo serai bien mais le tout a l'air intéressant, mais je comprend pa bien l'utilité. Quelqu'un peut m'expliquer
Contenu sponsorisé

Re: Se téléporter à l'interrieur d'un vaisseau

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum