Opis:
Ten skrypt pozwala nam opleść cały świat gry siecią waypointów - portali. Te portale jednak opierają się na zasadzie aktywowania ich - najpierw musimy dotrzeć w jakieś miejsce pieszo, by potem móc się tam teleportować. Przypomina to system z Diablo, czy Sacreda.
Info:
Autor: Mundane
Tłumaczenie: Angius
Skrypt:
Spoiler:
Kod:
#===============================================================================
# * [VX] Waypoints VX
# Ver. 1.5
# By Mundane, mundane92@gmail.com
#-------------------------------------------------------------------------------
# Specjalne podziękowania dla:
# Yeyinde, za wspieranie mnie przy skrypcie
#
# Historia:
# 8/17/08 - Aktualizacja do Ver. 1.5, łatwiejsze dodawanie punktów
#-------------------------------------------------------------------------------
module WayVX
#====================================================
#====================================================
# KONFIGURACJA
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Ustawianie Waypointów
#-------------------------------------------------------------------------------
# Aby dodać waypoint użyj poniższego schematu:
# WAYPOINTS = [
# [C, S, M, X, Y, N],
# [C, S, M, X, Y, N]
# ]
# C: Numer komendy. Zacznij od 0 i idź w górę
# W: Numer switcha aktywującego waypoint.
# Ustaw '0' by był aktywny od początku
# M: ID mapy docelowej
# X: Koordynata X miejsca docelowego
# Y: Koordynata Y miejsca docelowego
# N: Nazwa waypointu
#-------------------------------------------------------------------------------
# Aby wywołać menu wyboru waypointów użyj komedy SKRYPT na
# trzeciej karcie zdarzenia i wpisz tam:
# $scene = Scene_Waypoints.new
#-------------------------------------------------------------------------------
WAYPOINTS = [
[0, 0, 1, 8, 6, "Garden"],
[1, 1, 2, 8, 6, "Plains"],
[2, 2, 3, 8, 6, "Tundra"]
]
#====================================================
# Opcje:
TELEPORT_SE = "/Audio/SE/Teleport" # Name of Teleport sound in Audio/SE/
TELEPORT_ANIM = 41 # ID of Teleport animation in the Database
WINDOW_RIGHT = false # Position window on right? False is left.
#====================================================
#====================================================
end
#-------------------------------KONIEC KONFIGURACJI-------------------------------------
#-------------------------------------------------------------------------------
# * Window_WaypointHelp
#-------------------------------------------------------------------------------
class Window_WaypointHelp < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# x : window X coordinate
# y : window Y coordinate
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 258, 60)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(4, 0, 250, 24, 'Select a Waypoint')
end
end
#==============================================================================
# ** Window_Waypoints
#------------------------------------------------------------------------------
# This window deals with Waypoint selection.
#==============================================================================
class Window_Waypoints < Window_Selectable
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :commands # command
#--------------------------------------------------------------------------
# * Object Initialization
# width : window width
# commands : command string array
# column_max : digit count (if 2 or more, horizontal selection)
# row_max : row count (0: match command count)
# spacing : blank space when items are arrange horizontally
#--------------------------------------------------------------------------
def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32)
if row_max == 0
row_max = (commands.size + column_max - 1) / column_max
end
super(0, 0, width, row_max * WLH + 32, spacing)
@commands = commands
@item_max = commands.size
@column_max = column_max
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
# enabled : enabled flag. When false, draw semi-transparently.
#--------------------------------------------------------------------------
def draw_item(index, enabled = true)
rect = item_rect(index)
rect.x += 4
rect.width -= 8
self.contents.clear_rect(rect)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(rect, @commands[index])
end
end
#===============================================================================
# ** Scene_Waypoints
#===============================================================================
class Scene_Waypoints < Scene_Base
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#-----------------------------------------------------------------------------
# * Start processing
#-----------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
if WayVX::WINDOW_RIGHT == true
@wayhelp_window = Window_WaypointHelp.new(286,0)
else
@wayhelp_window = Window_WaypointHelp.new(0,0)
end
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@wayhelp_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
@wayhelp_window.update
if @command_window.active
update_command_selection
end
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
# * Add your waypoints here!
#--------------------------------------------------------------------------
def create_command_window
commands = WayVX::WAYPOINTS.collect{|waypoint| waypoint[5]}
@command_window = Window_Waypoints.new(258, commands)
waypoint = WayVX::WAYPOINTS[@command_window.index]
@command_window.index = @menu_index
if WayVX::WINDOW_RIGHT == true
@command_window.x = 286
@command_window.y = 60
else
@command_window.y = 60
WayVX::WAYPOINTS.each do |waypoint|
if waypoint[1] > 0 && !$game_switches[waypoint[1]]
@command_window.draw_item(waypoint[0], false)
end
end
#-----------------------------------------------------------------------------
# * Update Command Selection
#-----------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
waypoint = WayVX::WAYPOINTS[@command_window.index]
if waypoint[1] > 0 && !$game_switches[waypoint[1]]
Sound.play_buzzer
return
else
Audio.se_play(WayVX::TELEPORT_SE)
$game_player.animation_id = WayVX::TELEPORT_ANIM
$game_map.setup(waypoint[2])
$game_player.moveto(waypoint[3], waypoint[4])
$game_player.refresh
$scene = Scene_Map.new
RPG::BGM.fade(120)
RPG::BGS.fade(120)
Graphics.fadeout(30)
Graphics.wait(40)
Graphics.frame_count = 0
RPG::BGM.stop
$game_map.autoplay
end
end
end
end
end
end
# Aby wywołać menu wyboru waypointów użyj komedy SKRYPT na
# trzeciej karcie zdarzenia i wpisz tam:
# $scene = Scene_Waypoints.new
To samo musisz wywołać w menu. A o tym, jak dodać nowe opcje jest z pewnością gdzieś na forum napisane, ja ci nie powiem, bo korzystam z RingMenu, gdzie dodanie opcji polega na dopisaniu jednej linijki
________________________
"Na trolla pewne są tylko dwie pewne metody, jedna samopowtarzalna i druga, wymagająca przeładowania ręcznego."
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