Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
System waypointów
Autor Wiadomość
Angius 

Nie wkurzać



Preferowany:
RPG Maker VX

Pomógł: 104 razy
Dołączył: 30 Paź 2010
Posty: 1276
Skąd: wROCK
Wysłany: Pon 27 Cze, 2011 02:22
System waypointów
~Waypoints VX~

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



Demo:
http://www.mediafire.com/...points%20VX.rar


Screen:
________________________
"Na trolla pewne są tylko dwie pewne metody, jedna samopowtarzalna i druga, wymagająca przeładowania ręcznego."


Ostatnio zmieniony przez Ayene Pią 28 Paź, 2011 10:53, w całości zmieniany 1 raz  
 
 
MrDawnok 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 22 Maj 2010
Posty: 217
Wysłany: Pon 27 Cze, 2011 08:09
Cały czas mam problem z linijką 44 a dokładnie z ID animacji teleportu
WTF?
________________________



http://www.forumgalonum.pun.pl/viewtopic.php?id=5

"Bliski przyjaciel, czy to nie właściwe określenie dla kogoś, kto już przestał być bliski?"
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pon 27 Cze, 2011 08:35
A masz dobrze skonfigurowaną animację teleportu?
Kod:
TELEPORT_ANIM = 41

Ustaw tam ID animacji z bazy danych ;-)
________________________


 
 
 
MrDawnok 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 22 Maj 2010
Posty: 217
Wysłany: Pon 27 Cze, 2011 09:37
Okazało się, że usunąłem dwie lokacje z way point i to dla tego!
Ale wielkie dzięki za pomoc Ayene.
________________________



http://www.forumgalonum.pun.pl/viewtopic.php?id=5

"Bliski przyjaciel, czy to nie właściwe określenie dla kogoś, kto już przestał być bliski?"
 
 
 
FilipsO 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomógł: 1 raz
Dołączył: 21 Maj 2010
Posty: 236
Skąd: z nikąd
Wysłany: Wto 12 Lip, 2011 20:04
Angius :
Ekstra skrypt. Użyję na 100%! Tylko jak dodać opcję teleportacji z waypoint w menu? Proszę o pomoc.
________________________
89% graczy uważa, że najważniejsza jest grafika.
Jeśli należysz do pozostałych 11% wklej to do swojego podpisu.

Moja Gra MMORPG Erathia:
 
 
Angius 

Nie wkurzać



Preferowany:
RPG Maker VX

Pomógł: 104 razy
Dołączył: 30 Paź 2010
Posty: 1276
Skąd: wROCK
Wysłany: Wto 12 Lip, 2011 20:09
Kod:
# 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."


 
 
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