Quest_log problem
Aktualny czas: 05-09-26, 23:56 Witaj! Przejdź do zakładki Logowanie lub Rejestracja

To była dobra przygoda. Dziękujemy!
Po wielu wspólnych latach Ultima Forum przechodzi w tryb archiwalny.
Zostawiamy je tutaj takim, jakie stworzyliśmy je razem,
z tysiącami postów, projektów, porad, skryptów i wspomnień.
Dziękujemy każdemu, kto był częścią Ultimy.


Wątek zamknięty 
[XP] Quest_log problem
Xovr Offline
*


Liczba postów: 17
Dołączył: 27-08-13

Pomógł: 0



Post: #1
pytajnik Quest_log problem

Gdy dodam quest i włącze dziennik wyświetla mi się błąd:
[Obrazek: file.php?id=1614]
Gdy żaden quest nie jest przyjęty wszystko działa poprawnie.

skrypt:
#===============================================================================​
# Thieffer's QuestLog
# version 1.0
# by Thieffer 09.05.2009
#===============================================================================​

#===============================================================================​
#  INSTRUKCJE
#===============================================================================​
# Aby włączyć dziennik zadań należy wywołać skrypt:
#   $scene = Scene_QuestLog.new
# Zadania powinny być wcześniej zdefiniowane wg wzoru:
#   $quest= ["nazwa", poziom, "grafika", "treść"]
# gdzie zamiast:
#   $quest --> możesz wpisać co zechcesz (nie będzie wyświetlane)
#   "nazwa" --> nazwa zadania (będzie wyświetlana)
#   poziom --> liczba od 1 do 5 (poziom trudności)
#   "grafika" --> nazwa pliku zawierającego obrazek o wymiarach 400px na 100px (obrazek przedstawiający scenkę z zadania)
#   "treść" --> treść zadania
# Konfiguracja:
#   $PICTURE_DIFFICULTY = true/false
#     (jeśli true, to poziom trudności będzie przedstawiony
#     za pomocą obrazków; jeśli false - za pomocą tekstu)
#     Obrazki muszą mieć nazwę: quest_difficulty1, quest_difficulty2 itd. (max 5) oraz rozmiary 125px na 48px.
#     Tekst możesz edytować w zmiennych $QD1, $QD2 itd.
#   $PICTURE_DESCRIPTION = true/false
#     (jeśli true, to w opisie zadania, pojawi się obrazek o wymiarach 400px na 100px;
#     jeśli false - brak obrazka)
#   $MAP_AS_BACKGROUND = true/false
#     (jeśli true, to w tle okienek widać mapę, na której jest bohater oraz podczas
#     wciśnięcia ESC pojawia nam się mapa; jeśli false - czarne tło oraz podczas
#     wciśnięcia ESC pojawia nam się Menu (opcjonalnie Scene_Menu.new))
# Obsługa:
#   Dodawanie zadania:
#     $game_party.add_quest($quest)
#     $quest --> to nazwa "robocza" zadania (ta, która nie jest wyświetlana)
#   Ukończenie zadania:
#     $game_party.complete_quest($quest)
#   Usunięcie zadania:
#     $game_party.remove_quest($quest)
#   Warunek - czy zadanie jest wykonane?
#     $game_party.is_quest_completed?($quest)
#===============================================================================​
# U W A G A ---> skrypt wymaga ATP(Advanced Text Paragrapher) V1.0 by Samo, The thief
#===============================================================================​

# START CONFIG
$QD1 = "Bardzo Łatwy"
$QD2 = "Łatwy"
$QD3 = "Średni"
$QD4 = "Trudny"
$QD5 = "Bardzo Trudny"
$PICTURE_DIFFICULTY = true
$PICTURE_DESCRIPTION = true
$MAP_AS_BACKGROUND = true
# END CONFIG

#===============================================================================​
# Game_Party
#===============================================================================​
class Game_Party
  alias :old_initialize :initialize
  def initialize
    old_initialize
    @quests = []
    @completed_quests = []
  end
#-----------------------------------------------------------------------
# Dodawanie zadania.
#-----------------------------------------------------------------------
  def add_quest(quest)
    @quests.push(quest) if not @quests.include?(quest)
  end
#-----------------------------------------------------------------------
# Ukończenie zadania.
#-----------------------------------------------------------------------
  def complete_quest(quest)
    if @quests.include?(quest) and not @completed_quests.include?(quest)
      @completed_quests.push(quest)
      @quests.delete(quest)
    end
  end
#-----------------------------------------------------------------------
# Usuwanie zadania.
#-----------------------------------------------------------------------
  def remove_quest(quest)
    @quests.delete(quest) if @quests.include?(quest)
  end
#-----------------------------------------------------------------------
# Warunek - czy zadanie jest ukończone?
#-----------------------------------------------------------------------
  def is_quest_completed?(quest)
    if @completed_quests.include?(quest)
      return true
    end
    return false
  end
#-----------------------------------------------------------------------
# Metoda zwraca nazwę zadania.
#-----------------------------------------------------------------------
  def quest_name(quest)
    return quest[0]
  end
#-----------------------------------------------------------------------
# Metoda zwraca poziom trudności zadania.
#-----------------------------------------------------------------------
  def quest_difficulty(quest)
    case quest[1]
    when 1
      $QD1
    when 2
      $QD2
    when 3
      $QD3
    when 4
      $QD4
    when 5
      $QD5
    end
  end
#-----------------------------------------------------------------------
# Metoda zwraca nazwę pliku z obrazkiem poziomu trudności zadania (125px na 48px).
#-----------------------------------------------------------------------
  def quest_picture_difficulty(quest)
    case quest[1]
    when 1
      "quest_difficulty1"
    when 2
      "quest_difficulty2"
    when 3
      "quest_difficulty3"
    when 4
      "quest_difficulty4"
    when 5
      "quest_difficulty5"
    end
  end
#-----------------------------------------------------------------------
# Metoda zwraca nazwę pliku z obrazkiem zadania (400px na 100px).
#-----------------------------------------------------------------------
  def quest_picture(quest)
    return quest[2]
  end
#-----------------------------------------------------------------------
# Metoda zwraca treść zadania.
#-----------------------------------------------------------------------
  def quest_description(quest)
    return quest[3]
  end
#-----------------------------------------------------------------------
# Metoda zwraca zadania do wykonania.
#-----------------------------------------------------------------------
  def quests
    return @quests
  end
#-----------------------------------------------------------------------
# Metoda zwraca zadania ukończone.
#-----------------------------------------------------------------------
  def completed_quests
    return @completed_quests
  end
#-----------------------------------------------------------------------
end

#===============================================================================​
# Window_QuestName
#===============================================================================​
class Window_QuestName < Window_Base
  def initialize(quest)
    super(20, 20, 450, 100)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z = 101
    self.back_opacity = 255
    @quest = quest
    refresh
  end
#-----------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = Color.new(244,197,43,255)
    self.contents.font.size = 23
    self.contents.draw_text(0,0,418,68,$game_party.quest_name(@quest),1)
  end
#-----------------------------------------------------------------------
end

#===============================================================================​
# Window_QuestDifficulty
#===============================================================================​
class Window_QuestDifficulty < Window_Base
  def initialize(quest)
    super(450, 30, 170, 80)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z = 100
    self.back_opacity = 230
    @quest = quest
    refresh
  end
#-----------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = Color.new(60,170,25,255)
    if $PICTURE_DIFFICULTY
      self.contents.blt(13, 0, RPG::Cache.picture($game_party.quest_picture_difficulty(@quest)), Rect.new(0, 0, 125, 48))
    else
      self.contents.draw_text(20,0,118,48,$game_party.quest_difficulty(@quest),1)​
    end
  end
#-----------------------------------------------------------------------
end

#===============================================================================​
# Window_QuestDescription
#===============================================================================​
class Window_QuestDescription < Window_Base
  def initialize(quest)
    super(40, 110, 580, 350)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z = 99
    self.back_opacity = 230
    @quest = quest
    refresh
  end
#-----------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.size = 18
    # wykorzystanie ATP
    paragraph = str_paragraph($game_party.quest_description(@quest),518)
    if $PICTURE_DESCRIPTION
      self.contents.blt(74,0, RPG::Cache.picture($game_party.quest_picture(@quest)), Rect.new(0,0,400,100))
      draw_paragraph(30,16,518,202, paragraph)
    else
      draw_paragraph(30,-116,518,318, paragraph)
    end
  end
#-----------------------------------------------------------------------
end

#===============================================================================​
# Scene_QuestLog
#===============================================================================​
class Scene_QuestLog
  def initialize
    @quests = $game_party.quests
    @completed_quests = $game_party.completed_quests
    @quests_names = []
    @completed_quests_names = []
    if @quests.size > 0
      for i in 0..(@quests.size-1)
        @quests_names.push @quests[i][0]
      end
    else
      @quests_names.push "Brak zadań"
    end
    if @completed_quests.size > 0
      for k in 0..(@completed_quests.size-1)
        @completed_quests_names.push @completed_quests[k][0]
      end
    else
      @completed_quests_names.push "Brak ukończonych zadań"
    end
  end
#-----------------------------------------------------------------------
  def main
    @command_window = Window_Command.new(210, ["Aktualne zadania", "Ukończone zadania"])
    @quests_command_window = Window_Command.new(220, @quests_names)
    @completed_quests_command_window = Window_Command.new(220, @completed_quests_names)
    @quests_command_window.active = false
    @quests_command_window.visible = false
    @completed_quests_command_window.active = false
    @completed_quests_command_window.visible = false
    @command_window.x = 640 - @command_window.width
    @command_window.y = 50
    @command_window.back_opacity = 190
    @quests_command_window.x = 640 - @quests_command_window.width
    @quests_command_window.y = 50
    @quests_command_window.height = 200
    @quests_command_window.back_opacity = 190
    @completed_quests_command_window.x = 640 - @completed_quests_command_window.width
    @completed_quests_command_window.y = 50
    @completed_quests_command_window.height = 200
    @completed_quests_command_window.back_opacity = 190
    if $MAP_AS_BACKGROUND
      @spriteset = Spriteset_Map.new
    end
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
    @quests_command_window.dispose
    @completed_quests_command_window.dispose
    if $MAP_AS_BACKGROUND
      @spriteset.dispose
    end
  end
#-----------------------------------------------------------------------
  def update
    @command_window.update
    @quests_command_window.update
    @completed_quests_command_window.update
    if $MAP_AS_BACKGROUND
      @spriteset.update
    end
    if @command_window.active
      update_command
      return
    end
    if @quests_command_window.active
      update_quests
      return
    end
    if @completed_quests_command_window.active
      update_completed_quests
      return
    end
    if @quests_mode
      if Input.trigger?(Input::B)
        $game_system.se_play($data_system.cancel_se)
        @quest_name_window.dispose
        @quest_difficulty_window.dispose
        @quest_description_window.dispose
        @quests_command_window.active = true
        @quests_command_window.visible = true
        @quests_command_window.index = @index
      end
      return
    end
    if @completed_quests_mode
      if Input.trigger?(Input::B)
        $game_system.se_play($data_system.cancel_se)
        @quest_name_window.dispose
        @quest_difficulty_window.dispose
        @quest_description_window.dispose
        @completed_quests_command_window.active = true
        @completed_quests_command_window.visible = true
        @completed_quests_command_window.index = @index
      end
      return
    end
  end
#-----------------------------------------------------------------------
  def update_command
    if Input.trigger?(Input::B)
      if $MAP_AS_BACKGROUND
        $game_system.se_play($data_system.cancel_se)
        $scene = Scene_Map.new
        return
      else
        $game_system.se_play($data_system.cancel_se)
        $scene = Scene_Menu.new(0)
      end
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @command_window.visible = false
        @quests_command_window.active = true
        @quests_command_window.visible = true
      when 1
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @command_window.visible = false
        @completed_quests_command_window.active = true
        @completed_quests_command_window.visible = true
      end
    end
  end
#-----------------------------------------------------------------------
  def update_quests
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
        @command_window.active = true
        @command_window.visible = true
        @quests_command_window.active = false
        @quests_command_window.visible = false
    end
    if Input.trigger?(Input::C)
      if @quests.size > 0
        $game_system.se_play($data_system.decision_se)
        @index = @quests_command_window.index
        quest = @quests[@index]
        @quest_name_window = Window_QuestName.new(quest)
        @quest_difficulty_window = Window_QuestDifficulty.new(quest)
        @quest_description_window = Window_QuestDescription.new(quest)
        @quests_command_window.active = false
        @quests_command_window.visible = false
        @quests_mode = true
      else
        $game_system.se_play($data_system.buzzer_se)
      end
    end
  end
#-----------------------------------------------------------------------
  def update_completed_quests
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
        @command_window.active = true
        @command_window.visible = true
        @completed_quests_command_window.active = false
        @completed_quests_command_window.visible = false
    end
    if Input.trigger?(Input::C)
      if @completed_quests.size > 0
        $game_system.se_play($data_system.decision_se)
        @index = @completed_quests_command_window.index
        quest = @completed_quests[@index]
        @quest_name_window = Window_QuestName.new(quest)
        @quest_difficulty_window = Window_QuestDifficulty.new(quest)
        @quest_description_window = Window_QuestDescription.new(quest)
        @completed_quests_command_window.active = false
        @completed_quests_command_window.visible = false
        @completed_quests_mode = true
      else
        $game_system.se_play($data_system.buzzer_se)
      end
    end
  end
#-----------------------------------------------------------------------
end
15-09-13 13:05
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Wątek zamknięty 


Wiadomości w tym wątku
Quest_log problem - Xovr - 15-09-13 13:05
RE: Quest_log problem - M4t3us2 - 15-09-13, 14:23
RE: Quest_log problem - Xovr - 15-09-13, 14:33
RE: Quest_log problem - M4t3us2 - 15-09-13, 14:41
RE: Quest_log problem - Xovr - 15-09-13, 14:51
RE: Quest_log problem - M4t3us2 - 15-09-13, 15:10
RE: Quest_log problem - Xovr - 15-09-13, 15:20
RE: Quest_log problem - M4t3us2 - 15-09-13, 15:58
RE: Quest_log problem - Xovr - 15-09-13, 16:04
RE: Quest_log problem - Ayene - 15-09-13, 19:08
RE: Quest_log problem - Xovr - 15-09-13, 20:23

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.