Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Nazwa teleportu
Autor Wiadomość
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pon 31 Sty, 2011 11:23
Nazwa teleportu
~ Nazwa teleportu [VX] ~

Krótki opis
Skrypt powstały niegdyś na zamówienie jednego z użytkowników forum. Wyświetla nazwę mapy, na którą prowadzi teleport w zdarzeniu. Innymi słowy, gdy w zdarzeniu umieścimy komendę 'Transfer Player', pojawi się okienko z informacją, gdzie prowadzi dany teleport. Techniczne skrypt pobiera po prostu nazwę docelowej mapy.
Może się komuś przyda :-P

Uwaga!
Zalecane dokładne testy. By nazwa teleportu się wyświetliła w nazwie zdarzenia należy umieścić tag '[TEL]'


Autor skryptu
Ayene [yurika@o2.pl]

Kompatybilność
Tylko VX

Skrypt
Spoiler:

Kod:
# ------------------------------------------------------------
# Nazwa Teleportu
# by Ayene
# 23.04.2010 ver. 1.1
# www.ultimateam.pl
# ------------------------------------------------------------
# Skrypt wyświetla nazwę mapy, na którą prowadzi teleport w zdarzeniu.
# ------------------------------------------------------------
# Instalacja: Umieść skrypt nad Main.
# ------------------------------------------------------------

module Ayene
# Umieść tag w nazwie zdarzenia, by wyświetlić nazwę mapy, na którą
# prowadzi teleport.
  TAG_TELEPORTU = '[TEL]'
 
# Wybierz przezroczystość okna:
# true (okno przezroczyste) / false (okno widoczne)
  PRZEZROCZYSTOŚĆ_OKNA = false

# Tekst wyświetlany przed nazwą lokacji
  TEKST_PRZED_NAZWĄ = 'Cel: '
end

class Scene_Map < Scene_Base
  alias ayene_scmap_start start
  alias ayene_scmap_terminate terminate
  alias ayene_scmap_update update
  alias ayene_scmap_update_basic update_basic
  alias ayene_telname_scmap_updtranplayer update_transfer_player
 
  def start   
    ayene_scmap_start
    @teleport_window = Window_Teleport.new
    @time = 0   
    @telname = nil
    @teleport_window.visible = false       
  end
   
  def terminate
    ayene_scmap_terminate
    teleport_close
    @teleport_window.dispose
  end
 
  def update_basic
    ayene_scmap_update_basic
    @teleport_window.visible = false
    @telname = nil
  end
 
  def update
    ayene_scmap_update
    @teleport_window.update   
    @telname != nil ? @time += 1 : @time = 0   
    if $game_temp.teleport_refresh 
      @time = 0
      @telname = $game_temp.teleport_name
      @teleport_window.refresh
      @teleport_window.visible = true
      $game_temp.teleport_refresh = false
    end
    case @time
    when 1...50
      @teleport_window.contents_opacity += 10       
      @teleport_window.opacity += 10 if !Ayene::PRZEZROCZYSTOŚĆ_OKNA
    when 150...200
      @teleport_window.contents_opacity -= 10
      @teleport_window.opacity -= 10 if !Ayene::PRZEZROCZYSTOŚĆ_OKNA
    when 200
      teleport_close
    end
  end
 
  def update_transfer_player
    return unless $game_player.transfer?
    ayene_telname_scmap_updtranplayer
    teleport_close   
  end
 
  def teleport_close
    @telname = nil
    @teleport_window.contents_opacity = 0
    @teleport_window.opacity = 0
    @teleport_window.visible = false   
    $game_temp.teleport_refresh = false
    @time = 0
  end 
end

class Window_Teleport < Window_Base
  def initialize
    super(284, 0, 260, WLH + 32)
    self.opacity = 0
    self.contents_opacity = 0
  end   
  def refresh
    self.contents.clear
    self.contents.font.shadow = true
    text = Ayene::TEKST_PRZED_NAZWĄ + $game_temp.teleport_name.to_s
    if Ayene::PRZEZROCZYSTOŚĆ_OKNA
      x, y = 4, 0
      self.contents.font.color = Color.new(0, 0, 0)
      self.contents.draw_text(x+1, y+1, self.width - 40, WLH, text, 2)
      self.contents.draw_text(x+1, y-1, self.width - 40, WLH, text, 2)
      self.contents.draw_text(x-1, y-1, self.width - 40, WLH, text, 2)
      self.contents.draw_text(x-1, y+1, self.width - 40, WLH, text, 2)
      self.contents.font.color = Color.new(255, 255, 255)
      self.contents.draw_text(x, y, self.width - 40, WLH, text, 2)
    else
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, 0)
    end   
  end
end

class Game_Temp
  attr_accessor :teleport_name
  attr_accessor :teleport_refresh   
  alias ayene_gatemp_ini initialize
  def initialize   
    ayene_gatemp_ini
    @teleport_name = nil
    @teleport_refresh = false
  end
end

class Game_Player < Game_Character
  def check_teleport_touch(x, y)
    return false if $game_map.interpreter.running?
    result = false
    for event in $game_map.events_xy(x, y)
      for i in 0...event.list.size
        if event.event.name.include?(Ayene::TAG_TELEPORTU) and event.list[i].code == 201
          teleport_name = event.list[i].parameters[1]
          map_name = load_data("Data/MapInfos.rvdata")
          $game_temp.teleport_name = map_name[teleport_name].name               
          $game_temp.teleport_refresh = true   
          result = true
        end
      end
    end
    return result
  end
end

class Game_Event < Game_Character
  attr_reader :event
end

class Game_Character
  alias ayene_gachar_move_down move_down
  def move_down(turn_ok = true)
    ayene_gachar_move_down(turn_ok)
    check_teleport_touch(@x, @y+1)     
  end
  alias ayene_gachar_move_left move_left
  def move_left(turn_ok = true)
    ayene_gachar_move_left(turn_ok)
    check_teleport_touch(@x-1, @y)
  end
  alias ayene_gachar_move_right move_right
  def move_right(turn_ok = true)
    ayene_gachar_move_right(turn_ok)
    check_teleport_touch(@x+1, @y)
  end
  alias ayene_gachar_move_up move_up
  def move_up(turn_ok = true)
    ayene_gachar_move_up
    check_teleport_touch(@x, @y-1)     
  end
end


Demo
niepotrzebne

Screenshot
Spoiler:


Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.

Piszcie w razie problemów.
________________________


 
 
 
Drawestien 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 01 Gru 2010
Posty: 127
Wysłany: Wto 01 Lut, 2011 14:14
Hmm...Ciekawe,Ciekawe...
Rozumiem że okienko się pojawia(4-5s) znika i tp na danom mapę?
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Wto 01 Lut, 2011 14:33
Po dotknięciu zdarzenia z teleportem wyświetla się okienko. Tak żeby gracz wiedział, gdzie prowadzą drzwi, przejście itp. Dopiero po wciśnięciu enter (dlatego zalecane Trigger - Action Button) odegra się to, co jest w zdarzeniu...
________________________


 
 
 
damian1920 



Dołączył: 09 Kwi 2012
Posty: 2
Wysłany: Wto 10 Kwi, 2012 21:26
mi błąd wyskakuje jak się teleportuje :-(
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Wto 10 Kwi, 2012 21:31
Jakiej treści jest ten błąd i kiedy się pojawia?
________________________


 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene