![]()

Autor: Ayene [ Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. ]

Kompatybilność:
RPG Maker VX

Krótki opis:
Skrypt powstały niegdyś na zamówienie jednego z użytkowników UltimaForum. 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.

Instrukcja:
By nazwa teleportu się wyświetliła, w nazwie zdarzenia należy umieścić tag '[TEL]'.

Skrypt:
# ------------------------------------------------------------
# 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

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