Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- #Nombre de los mapas. Se refiere al nombre con el que se mostrará, no al propio
- #nombre del mapa. Es decir, puedes poner un nombre distinto al que hay.
- # Los nombres deben estar ordenados, de forma que cada uno coincida con su
- #descripciín, ID, etc.
- # Los nombres también deben ir precedidos por :
- MAP_NAMES=[:Pueblo_Soneto,:Ciudad_Augura,:C,:D]
- #==============================================================================
- #Descripciones de cada mapa, deben ir en el mismo orden que los nombres, para que
- #coincidan.
- MAP_DESCS=["AAAAAAAA","BBBBBBBBBBBB","CCCCCCCCCC"]
- #==============================================================================
- #IDs de los mapas. Nuevamente, deben coincidir en orden con las descripciones y
- #nombres. Estas deben ser las IDs del mapa al que se desea teletransportar (MAP001,
- #MAP002, etc)
- MAP_IDS=["MAP001","MAP002","MAP003"]
- #==============================================================================
- #Coordenada X del mapa a la que el jugador será teletransportado en dicho mapa
- #(Al igual que antes, el orden debe coincidir)
- MAP_X=[1,2,3]
- #==============================================================================
- #Coordenada Y del mapa a la que el jugador será teletransportado en dicho mapa
- #(Al igual que antes, el orden debe coincidir)
- MAP_Y=[1,2,3]
- #==============================================================================
- module Teleport
- attr_accessor :nombre
- attr_accessor :descripcion
- attr_accessor :imagen
- attr_accessor :maps_array
- def initialize
- @name=nombre
- @description=descripcion
- @imagen=imagen
- @select=0
- @exit=0
- @mapnames=MAP_NAMES
- @map_descs=MAP_DESCS
- @mapids=MAP_IDS
- @mapx=MAP_X
- @mapy=MAP_Y
- $maps_array=[]
- end
- def Kernel.pbNewTeleport(tp)
- $maps_array ||= []
- tp=tp.to_sym unless tp.is_a?(Symbol)
- $maps_array << tp
- end
- def pbTpUnlocked?(mapname)
- $maps_array.each{|x|
- return @mapnames[mapname]==x ? true : false
- }
- end
- def pbWarpToMap(map)
- @mapids=MAP_IDS
- mapid=@mapids[map]
- map=Game_Map.new
- map.setup(mapid)
- success=false
- x=@mapx[@select]
- y=@mapy[@select]
- 100.times do
- x=@mapx[@select]
- y=@mapy[@select]
- next if !map.passableStrict?(x,y,$game_player)
- blocked=false
- for event in map.events.values
- if event.x == x && event.y == y && !event.through
- blocked=true if self != $game_player || event.character_name != ""
- end
- end
- next if blocked
- pbTpSuccess
- success=true
- break
- if !success
- x=rand(map.width)
- y=rand(map.height)
- end
- return [mapid,x,y]
- end
- return nil
- end
- def pbTpSuccess
- pbFadeOutAndHide(sprites)
- pbDisposeSpriteHash(sprites)
- viewport.dispose
- if $scene.is_a?(Scene_Map)
- $game_temp.player_new_map_id=map[0]
- $game_temp.player_new_x=map[1]
- $game_temp.player_new_y=map[2]
- $game_temp.player_new_direction=2
- $scene.transfer_player
- $game_map.refresh
- else
- Kernel.pbCancelVehicles
- $MapFactory.setup(map[0])
- $game_player.moveto(map[1],map[2])
- $game_player.turn_down
- $game_map.update
- $game_map.autoplay
- $game_map.refresh
- end
- end
- end
- class Teleport_Scene
- include Teleport
- def initialize
- @mapnames=MAP_NAMES
- @map_descs=MAP_DESCS
- @select=0
- @extraselect=0
- @exit=false
- end
- def pbStartScene
- @exit=false
- pbSetViableDexes
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=9999
- @select=0
- @sprites={}
- pbSEPlay("BW2OpenMenu")
- @sprites["bg"]=IconSprite.new(0,0,@viewport)
- @sprites["bg"].setBitmap("Graphics/Pictures/TP/bg")
- @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- @sprites["overlay"].z=99999
- pbUpdate
- end
- def pbUpdate
- loop do
- @sprites["bg"].setBitmap("Graphics/Pictures/TP/bg2") if @select==0
- @sprites["bg"].setBitmap("Graphics/Pictures/TP/bg2") if @select==(@mapnames.length+@extraselect)
- overlay=@sprites["overlay"].bitmap
- baseColor=Color.new(255,255,255)
- shadowColor=Color.new(0,0,0)
- pbSetSystemFont(@sprites["overlay"].bitmap)
- textpos=[]
- if pbTpUnlocked?(@select)
- textpos.push([_INTL("{1}",@mapnames[@select].to_s),512,0,1,baseColor,shadowColor])
- textpos.push([_INTL("{1}",@map_descs[@select].to_s),200,0,1,baseColor,shadowColor])
- else
- textpos.push([_INTL("???",@mapnames[@select].to_s),512,0,1,baseColor,shadowColor])
- textpos.push([_INTL("???",@map_descs[@select].to_s),200,0,1,baseColor,shadowColor])
- end
- pbDrawTextPositions(overlay,textpos)
- Graphics.update
- Input.update
- if Input.trigger?(Input::B)
- pbEndScene
- end
- if Input.trigger?(Input::UP) && !(@select==0)
- overlay.clear
- @select -= 1
- pbSEPlay("Choose")
- end
- if Input.trigger?(Input::DOWN) && !(@select==(@mapnames.length+@extraselect))
- @select += 1
- pbSEPlay("Choose")
- overlay.clear
- end
- if Input.trigger?(Input::C) && pbTpUnlocked?(@select)
- pbFadeOutIn(99999)
- pbWarpToMap(@select)
- end
- break if @exit
- break if Input.trigger?(Input::B)
- Graphics.update
- end
- end
- def pbEndScene
- @exit=true
- pbSEPlay("menu")
- pbFadeOutAndHide(@sprites)
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- #@MenuPage=0
- #pbFadeOutAndHide(@sprites){pbUpdateSpriteHash(@sprites)}
- #@viewport.dispose
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement