RPGVX.net

  RPG-Maker VX => VX Skripte [Fertiger Code] => Thema gestartet von: Onkel Hell am April 09, 2008, 13:34:11

Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 09, 2008, 13:34:11
Beschreibung
ich hab mir mal für meine zwecke ein kleines questlogbuch geschrieben , is jetz nich sonderlich aufwendig aber erfüllt gut seinen zweck denk ich ma

Last Update : v1.3a - 03.06.09
changelog
-----------------------------------------------------------------------------------
v1.3
-----------------------------------------------------------------------------------
bilder-bug bei verschlüsselten projekten gefixed
-----------------------------------------------------------------------------------
v1.2
-----------------------------------------------------------------------------------
quest-status wurde hinzufügt
es kann jetz optional ein quest status mit angegeben werden
dieser quest status kann mit $questlog.getQuestState abgefragt werden
wird kein status mit angegeben wird er automatisch auf leer gesetzt
-----------------------------------------------------------------------------------
v1.12
-----------------------------------------------------------------------------------
speicherbug und questmap bug gefixed
-----------------------------------------------------------------------------------
v1.0
-----------------------------------------------------------------------------------
ein kleiner versionssprung, also nicht wundern, will damit nur zeigen
dass das script keineswegs beta status oder so etwas hat
besserer schreib iterator
der fehler bei den umlauten wurde behoben und nun ist es auch möglich
bilder zu den quests anzeigen zu lassen,
wie das geht steht in der FAQ
-----------------------------------------------------------------------------------
v0.1.1
-----------------------------------------------------------------------------------
kleiner bugfix und man kann jetz die schriftgröße des quest fensters
über SIZE_VAR einstellen
-----------------------------------------------------------------------------------
v0.1
-----------------------------------------------------------------------------------
erster public release

Screenshots
(http://img137.imageshack.us/img137/6527/questlog1lb8.png)
(http://img177.imageshack.us/img177/807/questlog2sb2.png)

Anleitung
Wie immer gibts nich viel zu erklären
#==============================================================================
# F.A.Q.
#==============================================================================
# Der Globale Questlogname ist $questlog
# Um das Questlog vom Menu zu öffnen einfach $scene = Scene_Questlog.new ausführen
# Um das Questlog von einem Event zu öffnen $scene = Scene_Questlog.new(false) ausführen
#
# Um eine Quest zu erstellen kann man dieses Template benutzen :
# $questlog.addQuest("Unique ID","Quest Titel","Quest Beschreibung")
#
# Um eine Questbeschreibung zu updaten kann man dieses Template benutzen :
# $questlog.updateQuest("unique ID","Quest Description")
#
# Um eine Quest zu den abgeschlossenen Quests zu schieben kann man dieses Template benutzen :
# $questlog.completeQuest("Unique ID")
#
# Um eine Quest aus den aktiven Quests zu löschen kann man dieses Template benutzen :
# $questlog.deleteQuest("Unique ID")
#
# Du kannst den aktuell Quest-Status abfragen mit diesem Template :
# $questlog.getQuestState("Unique ID")
# Das kann eventuell nützlich sein in einem Conditional Branch damit ein Event
# nur bei einem bestimmten Quest-Status auslöst
#
# Wenn ihr eine Questkarte hinzufügen wollt, erstellt einen order namens
# Questmaps in eurem Graphics Verzeichnis. Der Name der Questkarte muss
# dem Questnamen im Spiel entsprechen. Seit auch sicher dass das richtige
# Format in der MAP_FORMAT gewählt wurde.
# Die Questkarten sollten eine gräße vom 265*200 pixel haben.
# z.B. : Wenn du eine Quest names QuestXYZ hast muss das bild im Questmaps
# Verzeichnis QuestXYZ.png heißen wenn png das format ist
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menü name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Schriftgröße
MAP_FORMAT = "png"                      # Quest-Map format/endung

Script v1.3a
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.3a - 04.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------ 
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        $activelog[i][3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        return $activelog[i][3]
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------ 
  def kill_questwindows
    @quest_window.dispose
  end 
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end     
    end
  end
#------------------------------------------------------------------------------ 
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------ 
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------ 
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------ 
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------ 
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------   
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------   
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if Cache.questmaps(@data[id][1]).is_a?(Bitmap)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if Cache.questmaps(@data[id][1]).is_a?(Bitmap)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
     
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)   
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#============================================================================== 
  def self.questmaps(filename)
    begin
      load_bitmap("Graphics/Questmaps/", filename)
    rescue
      return nil
    end
  end
 
end

Script v1.2
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.2 - 02.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------ 
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        $activelog[i][3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        return $activelog[i][3]
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------ 
  def kill_questwindows
    @quest_window.dispose
  end 
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end     
    end
  end
#------------------------------------------------------------------------------ 
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------ 
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------ 
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------ 
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------ 
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------   
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------   
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)   
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#============================================================================== 
  def self.questmaps(filename)
    load_bitmap("Graphics/Questmaps/", filename)
  end
 
end
Script v1.12
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.12 - 26.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================

#------------------------------------------------------------------------------ 
  def addQuest(id,header,description)
    $activelog << [id,header,description]
  end
#------------------------------------------------------------------------------ 
  def updateQuest(id,description)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        break
      end
    end
  end
#------------------------------------------------------------------------------ 
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------ 
  def kill_questwindows
    @quest_window.dispose
  end 
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end     
    end
  end
#------------------------------------------------------------------------------ 
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------ 
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------ 
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------ 
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------ 
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------   
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------   
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)   
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#============================================================================== 
  def self.questmaps(filename)
    load_bitmap("Graphics/Questmaps/", filename)
  end
 
end

Beispiel um das Questlog zum Menü zu adden
Scene_Menu von Evil95
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = "Questlog"
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 4
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end
Titel: hellMinors Simple Questlog
Beitrag von: Silvanus am April 09, 2008, 14:04:54
Hab schon eins gesucht =)
Mal schauen ob iche s verwenden werde ;)
BIG THX!
Titel: hellMinors Simple Questlog
Beitrag von: Dainreth am April 09, 2008, 14:30:51
Na das sieht doch schon richtig nett aus hM, schlicht, aber erfüllt seinen Zweck.
Ist es auch möglich, eine Anzeige von Pictures reinzubringen, die möglicherweise als Hilfestellung für einen Quest dienen?
Titel: hellMinors Simple Questlog
Beitrag von: eugene222 am April 09, 2008, 15:18:33
wow, ich glaub, dass ich es benutzen werde, echt cool.
Titel: hellMinors Simple Questlog
Beitrag von: Angelos am April 09, 2008, 15:19:40
Das sieht echt cool aus, werde es mal ausprobieren und wens mir gefällt werde es das wohl auch benutzen :)

Nice Work  excl.gif\" style=\"vertical-align:middle\" emoid=\":excl:\" border=\"0\" alt=\"excl.gif\" /]
Titel: hellMinors Simple Questlog
Beitrag von: Herendil am April 09, 2008, 15:26:00
sehr schön endlich hab ich ne verwendung für das über flüßige 'status' im menu hoffendlich klappt das mit den überschreiben

edit: hat geklappt! ich freue mich so! danke hM

edit vom edit: ich habe das verbesserte menu also wo man exp und so auf der hauptseite sieht.
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hans am April 09, 2008, 16:42:24
Herendil, könntest du mir vielleicht erklären wie ich das "Status" Menü überschreiben kann? Wäre echt nett von dir, bin nämlich ein Vollblut-Noob in Sachen Scripts!  :lol:
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 09, 2008, 16:57:58
könnt noch den code adden um das direkt ins menü zu pappen bzw ein tut schreiben wie man custom menu commands setzt wenns paar brauchen

@dainreth : wie meinst du das genau mit den pictures? zb ne landkarte wo gezeigt wird wo man hin muss? theoretisch schon, könnt ich bissl umbauen dann könnt ich noch ein kleines window fürn pic adden
Titel: hellMinors Simple Questlog
Beitrag von: ERZENGEL am April 09, 2008, 17:03:45
Er meint es wohl so:
(http://img19.imageshack.us/img19/1485/questlog6nk.png)
Jedoch wenn du damit anfängst es einzubauen, will jeder ein Feature (z.B. die Textbefehle \v[n] benützen in der Beschreibung oder Icons wie auf dem Bild vor dem Titel der Quest) und dann ist es  ja nicht mehr simpel? Heißt jetzt aber nicht, dass ich was dagegen habe, würde mich sogar sehr darüber freuen :)
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hans am April 09, 2008, 17:08:04
Also ich wäre dir auf jedenfall sehr dankbar wenn du den code adden bzw. Tuts schreiben würdest! :)
Titel: hellMinors Simple Questlog
Beitrag von: Angelos am April 09, 2008, 17:18:52
Habn problemm...

Script "Quest menü" line 243: NoMethodError occurred.
undefined method size for nil:NilClass

sagte ich das ich RGSS noob bin ^^
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 09, 2008, 17:48:03
hast du vllt irgendwas drin was an der scene_title rumbaut?
Titel: hellMinors Simple Questlog
Beitrag von: Angelos am April 09, 2008, 17:52:22
Jup thx, das war das problemm, funktioniert einwandfrei :)
Habs jetzt rausgenommen wollte ich eh früher oder später
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 09, 2008, 17:55:44
man kann schon am scene_title rumbauen , ich initialisier nur zusätzlich zu den variablen im spiel halt noch 3 für das questlog , die wurden dann halt nich initialisiert und deshalb kannte der den befehl net, sollte aber eigentlich mit dem meisten kompaktibel sein da ich nur ein alias gesetzt hab

btw : oben findet man jetz den code wo man das im menü direkt hinzufügen kann
Titel: hellMinors Simple Questlog
Beitrag von: Dainreth am April 09, 2008, 18:07:12
Zitat von: hellMinor
@dainreth : wie meinst du das genau mit den pictures? zb ne landkarte wo gezeigt wird wo man hin muss? theoretisch schon, könnt ich bissl umbauen dann könnt ich noch ein kleines window fürn pic adden

Jop, genau sowas meine ich. Im Questlog von Cäsar (siehe EE Post) ist zwar ein Bild drinnen, aber irgendwie hat es mir nie gefallen, dass sich dieses im Beschreibungsfenster befindet. Das Bildfenster müsste auch nicht allzu groß sein..nur so eine Idee, falls du vielleicht mal Zeit hast :)
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 09, 2008, 18:24:48
ich könnt nochn optionales picwindow einbauen wenn ich das fenster wo die quests stehen auf 5 anzeigbare quests, also mehr als 5 und man muss scrollen , kürze , dann hab ich noch platz für mehr,
hm mal schauen
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hans am April 09, 2008, 18:46:07
Ich will ja nicht nerven, aber ich habe jetzt das Script, welches das Questmenü im "normalen" Menü anzeigen soll, eingefügt doch bei mir ist immer noch alles wie beim alten, also sprich, der Menüpunkt "Status" ist immer noch vorhanden! Was mache ich nur falsch?!?!?!?!? sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /]
Titel: hellMinors Simple Questlog
Beitrag von: ERZENGEL am April 09, 2008, 19:00:16
Also der Menüpunkt "Status" bleibt erhalten. Jedoch wird vor ihn ein neuer Punkt "Questlog" angezeigt, wenn du das Skript in Materials bzw. unter den ganzen Scenes und über Main eingefügt hast und auch kein anderes Menüskript verwendest.
Titel: hellMinors Simple Questlog
Beitrag von: woratana am April 10, 2008, 01:13:22
Nice work :)
I like the way you use to draw text, in def update_msg(str)

I've some question from it though, what is this means by?
Zitat
(i, i-i+1)

I means, if i-i, it's equal 0. So i-i+1 will always equal 1.
I think it's better to use just 1 instead of i-i :)

However, I'm not sure about the slice syntax. So maybe I'm wrong :P
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 10, 2008, 01:27:03
no youre right,
well, i dont realy know why i wrote this but just 1 will do the same
i got a realy hard time with this slice thing, the first method i made which sliced my string into pieces deleted the whole string in my questarray instead of the string ,
i dont know why cause in this method ill never used that variable, so i was happy that the second one worked so fine and since there are no real windows which can keep up multiple lines this was the only method i found out
Titel: hellMinors Simple Questlog
Beitrag von: woratana am April 10, 2008, 06:08:01
I see :)thanks for the answer.

Nice script btw.
Titel: hellMinors Simple Questlog
Beitrag von: GangXtaBoii am April 10, 2008, 13:22:20
Eine Frage habe ich noch, wie kann ich das linke Fenster (Name des Quests) kleiner machen um damit die Questbeschreibung größer anzeigen zu können? In welcher Zeile muss ich da was ändern?
Titel: hellMinors Simple Questlog
Beitrag von: Angelos am April 10, 2008, 13:31:24
AUch eine frage die ähnlich ist ^^
In wecher zeile muss ich die Größe der schrift ändern für das rechte Fenster ?

Beitrag Nr.100 :)
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 10, 2008, 14:42:33
@boii : kleiner machst du das quest_window links in zeile 133 und zeile 138
die größe des rechten fenster is in 242

@angelos : das mit der schriftgröße hab ich eingebaut aber noch nich hoch geladen , kannst dann direkt über eine variable die oben steht die schriftgröße einstellen , musst nur kurz noch gedulden bis ich den rest drin hab den ich einbauen wollte
Titel: hellMinors Simple Questlog
Beitrag von: Asobi am April 10, 2008, 17:51:05
Bei mir kommt eine Fehlermeldung bei Zeile 53 wenn ich folgendes mache:

Quest "1" annehmen
Quest "2" annehmen
Quest "1" abgeben

also immer wenn ich mehrere quest hab und ein der ersten abgeben will!!
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 10, 2008, 21:17:39
der fehler tritt auf wenn quest 1 oder 2 abgeben will , warum der auftritt weiss ich grad nich, wenn ich die werte ausgebe sind die richtig, hab aber trotzdem ne lösung , sollte funktionieren und die schleifen optimieren
ich lads gleich hoch , also die v.1.1

edit : is oben , man kann jetz auch die schriftgröße ändern
Titel: hellMinors Simple Questlog
Beitrag von: Asobi am April 11, 2008, 09:56:33
Ok funktioniert alles danke  happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Titel: hellMinors Simple Questlog
Beitrag von: Copyman am April 12, 2008, 15:06:45
hi,

erstmal großes Lob, endlich ma nen Quest Log was auf anhieb geht:D

jetzt kommt aber ne Frage bzw. ne Anregung:

Wenn ich in den Namen des Quests ü,ä,ö,ß etc. benutzte geht das
wenn ich allerdings in die Beschreibung eines Quests ü,ä,ö,ß etc. benutzen will geht das nich.

weißt du woran das liegt? bzw. hast du ne möglichkeit wie man das ändern kann das es auch da angezeigt wird?
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 14, 2008, 07:46:54
ein kleiner versionssprung, also nicht wundern, will damit nur zeigen
dass das script keineswegs beta status oder so etwas hat

der fehler bei den umlauten wurde behoben und nun ist es auch möglich
bilder zu den quests anzeigen zu lassen,

dazu braucht ihr nur einen order namens questmaps in graphics erstellen
und ein bild das so heist wie die quest im spiel dort hinein zu tun
das bild wird dann automatisch angezeigt
Titel: hellMinors Simple Questlog
Beitrag von: Angelos am April 14, 2008, 09:21:50
Cool vorallem das mit dem Bilder einfügen. Werde es mir heute nachmittag mal testen ^^
Titel: hellMinors Simple Questlog
Beitrag von: Dainreth am April 14, 2008, 11:43:44
Schön, dass die neue Bildfunktion eingebaut ist, gefällt mir sehr gut! Auch schön, dass du's geschafft hast, dass in 'nem eigenen Fenster anzuzeigen, herzlichen Dank!
Titel: hellMinors Simple Questlog
Beitrag von: Mclovin am April 24, 2008, 18:45:44
Absolut genial! Das ist wohl das Script, welches ich am dringendsten benötigte! Und das tolle Extra mit den Pics  toppt das ganze noch! Vielen vielen Dank! Du bist mein Hel(l)d! xD

LG, Mclovin
Titel: hellMinors Simple Questlog
Beitrag von: Evil95 am April 24, 2008, 22:58:33
voll geiles script. werde ich 100%ig nutzen aba wie kann ich machen, dass man das Questlog von der Map aus mit ner Taste zb: F5 öffnet? währe cool wenn vorher ne condition kommt, die überprüft ob man es aufrufen kann/darf.
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 26, 2008, 01:07:45
was soll das bringen ?
wenn man eine karte zu ner quest hat warum sollte man sie generell nich anzeigen? versteh jetz nich ganz was das bringen soll
Titel: hellMinors Simple Questlog
Beitrag von: Schator am April 26, 2008, 08:42:19
was genau muss ich machen, damit ich im menü den questlog anwählen kann?
Titel: hellMinors Simple Questlog
Beitrag von: Evil95 am April 26, 2008, 11:05:44
is egal. ich habs hinbekommen wie ichs wollte :D.
Titel: hellMinors Simple Questlog
Beitrag von: Dustinthewind91 am April 26, 2008, 21:25:31
Hi,

echt super script ^^
Nun komme ich mal zu meinem Problem. Wen man das Game speichert und dann den spielstand läd dann ist das questbook leer. Und das stört mich doch ein wenig. Wäre echt Prima wen es möglich wäre das Questbook mit abzuspeichern.
Problem 2: Das Questpic verschwindet meist mit 2-4 sek verzögerung oder gar nicht, weiß jetzt nicht ob das nur bei mir so ist.

Falls jemand die selben probleme hat oder eben nicht kann er ja mal antworten ^^

Gruß,
Dustinthewind91.
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 26, 2008, 22:23:28
danke für die info dust
beide bugs hab ich mit version 1.12 gefixed
Titel: hellMinors Simple Questlog
Beitrag von: Dustinthewind91 am April 27, 2008, 13:03:39
Hi,

das ist Super !
Du machst ne menge super Scripts was mich echt begeistert.
Zwar haben manche noch einige fehler doch die behebst du ja auch sehr schnell.
Respekt und Großes Lob.

Gruß,
Fresh Dustin
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 27, 2008, 18:50:38
danke :)
das problem is meistens das man die eigenen fehler selbst nicht sieht, ich teste zwar immer aber ich hab irgendwo schon gesagt ich sollte meine scripte wohl mal beta testen lassen^^
Titel: hellMinors Simple Questlog
Beitrag von: Dustinthewind91 am April 27, 2008, 20:14:53
Hi,

die eigenen fehler zu finden ist immer schwer da andere leute auch ganz andere sachen damit anstellen ^^
zu dem betatestern: ja das wäre vlt. net schlecht ^^
Ich würde das sogar gerne tun, ich hab oft zeit und könnte dann ein bissl rumexperimentieren.
Falls du Intresse hast kannste ja einfach neue scripts per pm schicken und ich probier dann ein bissl rum.

Gruß,
Dustinthewind91
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 30, 2008, 02:35:19
so kleine umfrage^^
ich bau grad so eine art status mit ein,
dann könnt ich per event abfragen ob ein quest einen bestimmten status hat

nun wollt ich fragen ob ihr lieber nen integer als status haben wollt oder lieber nen string,
der vorteil des integers is das ihr bei updatequest den status nicht angeben müsst sondern intern dann direkt erhöht werden kann , zb , queststatus beginnt immer bei 0, dann macht ihr updatequest , ändert aber nur die questbeschreibung, der questatus würde automatisch auf 1 springen weil geupdatet habt,
ihr braucht dann eure alten events auch nicht ändern da sie immernoch funktionieren würde

bei nem string müsstet ihr denn status immer mit angeben könnt dann aber sowas wie "wartend" oder "schlafend" reinbauen was wiederum bei ner abfrage leichter zu identifizieren ist als 1,2 oder 3
hier müsstet ihr eure events auch updaten weil ihr den status ja mit angeben müsst

also was darfs sein?
Titel: hellMinors Simple Questlog
Beitrag von: Razael am April 30, 2008, 03:24:35
Ich weiss jetzt gerade nicht was du mit (wartend) oder (schlafend) meinst kann sein weil es ja gerade spät ist ^^

Aber bevor ich entscheide will ich wissen für/gegen was ich mich entscheide ;)
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am April 30, 2008, 06:05:31
wartend bzw schlafend beschreibt einfach nur einen string , da kann auch mupfelgrumpf stehen,

das soll ja nen questatus beschreiben falls ne quest mehrere teile hat zb , die beschreibung kannste updaten und dann dazu noch den questatus, nehm ich strings muss ich se updaten , nehm ich nen integer , also ne zahl kann ichs auch automatisch um 1 hochsetzen für jedes update der beschreibung

wollt nur wisssen ob lieber eine zahl abgefragt wird im event oder ein string
Titel: hellMinors Simple Questlog
Beitrag von: Soulstormer am April 30, 2008, 16:30:24
Ich wäre für strings, erleichtert auch die Übersicht usw.
Titel: hellMinors Simple Questlog
Beitrag von: Talyana Meriweather Rahl am Mai 02, 2008, 14:07:46
Ich kapier das Script nicht ;_; bei mir will nix funzen xD'
kann mir jemand eine Demo machen oder eine Step4Step erklärung xD'

Wäre super lieb^^
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 02, 2008, 14:55:45
was genau funktioniert denn nich?
Titel: hellMinors Simple Questlog
Beitrag von: Talyana Meriweather Rahl am Mai 02, 2008, 16:52:48
Ich habs eingefügt aber weder der "Link" im Menü noch sonst ist was da, also es zeigt im Endeffekt null komma Josef an als hätte ich das Script nicht eingefügt xD'
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 02, 2008, 17:02:24
das script fügt sich selbst im menü auch garnich ein, dafür is das ja auch nich zuständig^^
bissl weiter drunter is ein script welches das questlog ans menü anfügt aber das steht da auch drüber
Titel: hellMinors Simple Questlog
Beitrag von: Talyana Meriweather Rahl am Mai 02, 2008, 17:24:15
Ja das weiss ich schon XD'
aber bei mir geht es trotzdem nicht ;_;'

Ich mach da irgendwas falsch weiss aber nich was XD
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 02, 2008, 17:30:38
in meinem game wo ich meine scripte teste hab ich das add questlog to menu, danach das simple questlog und da gehts einwandfrei
natürlich aber beide über main
Titel: hellMinors Simple Questlog
Beitrag von: Talyana Meriweather Rahl am Mai 02, 2008, 17:38:04
Hmm...

schade...

bei mir stimmt da irgendwas nicht, vllt nicht kompatibel mit den KCG scripten...

Naja ich suche mir eine andere Möglichkeit^^ trotzdem danke!
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 02, 2008, 17:48:30
hab jetz ne neue version v1.2 , diese version hat jetz auch den quest status , dieser kann mit $questlog.getQuestState einfach abgefragt werden zb in einem conditional branch bestimmte events nur bei einem bestimmten quest status etwas tun zu lassen wie zb verschiedene text messages rausgeben
danke an soulstormer für die idee

@tally : eigentlich sollte das einwandfrei funktionieren solang du keine error meldung kriegst
has du irgendein script welches dir das menü verändert?

Titel: hellMinors Simple Questlog
Beitrag von: Talyana Meriweather Rahl am Mai 02, 2008, 18:09:56
Hm nein, hab nur das Skill Script drinne, und dann bekomm ich ein Mnü Befehl dazu eben "Skills"
(unter "ende" >_> voll hässlich)

Aber schon ok^^ ~
So dringend brauch ich es nicht xD

Trotzdem danke ^-^
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 02, 2008, 18:11:54
ja genau dieses script ändert doch dann was am menü
das is der grund warum du es nicht siehst

gibt mir das script mal ebend dann editier ich dir das um,
wo willste questlog und wo skills hin haben?
Titel: hellMinors Simple Questlog
Beitrag von: Talyana Meriweather Rahl am Mai 02, 2008, 18:29:38
Ich hoffe das passt so^^

Menü:

Item
Skills
Technik
Ausrüstung
Status
Questlog
Speichern
Ende

Script:

[code]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/    ?           Equipment Skills System - KGC_EquipLearnSkill         ? VX ?
#_/    ?                     Last Update: 2008/02/10                          ?
#_/    ?                  Translation by Mr. Anonymous                        ?
#_/-----------------------------------------------------------------------------
#_/  This script allows you to assign skills that can be "learned" by equipping
#_/  designated equipment. Everytime the party defeats an enemy, they recieve
#_/  TP (Training Points) that go toward mastering a skill. Once a skill is
#_/  mastered (with the default setting of NEED_FULL_AP = true), that skill is
#_/  learned. This system is much like the one in Final Fantasy Tactics Advance.
#_/=============================================================================
#_/                       ? Instructions For Usage ?
#_/  To make use of these functions, you must insert the desired tag into the
#_/   "Notes" box located in the specified section of the database.
#_/ <learnskill> is for equipment, <needTP> is for Skills, and <TP> for enemies.
#_/  For example, you want the Club to supply the Dual Attack skill and be
#_/   mastered at 20 TP. You would locate the Club in the weapons tab of the
#_/   database and insert <learnskill 1>. Then, you'd locate Dual Attack in  
#_/   the Skills tab of the database and insert <needTP 20>. Simple, effective.
#_/
#_/  Key: n = Number
#_/       SkillID = The ID number of the desired skill in the skills database
#_/       Amount = The desired amount of TP.
#_/
#_/                        <learnskill SkillID>
#_/  Assigns the given skill to the designated equipment for the actor to use.
#_/
#_/                           <needTP Amount>
#_/  Assigns a specified amount of TP the actor must aquire in order to master
#_/   the skill.
#_/                             <TP Amount>
#_/  Assigns a specified amount of TP earned from defeating the enemy.
#_/
#_/
#_/                          ? Script Commands ?
#_/  These commands are used in "Script" function in the third page of event
#_/   commands under "Advanced".
#_/
#_/  * gain_actor_ap(ActorID, AP Amount, show)
#_/     Allows you to give an actor a specified amount of AP.
#_/     "Show" is a toggle. If set to true, if the skill is mastered, it will
#_/     display the "Skill Mastered" screen. (Ex. gain_actor_ap (1, 50, true))
#_/
#_/  * change_actor_ap(ActorID, SkillID, AP Amount)
#_/     Allows you to modify the amount of AP a specified skill has.
#_/      (Ex. change_actor_ap (1, 3, 100)
#_/  
#_/  * call_ap_viewer(index: ActorID)
#_/     This calls the AP Viewer screen. If you exclude (index:), the first
#_/      actor in the index is automatically called.
#_/     Note: To use this properly, Ex. call_ap_viewer(index: 2) would pull up  
#_/      the AP Viewer screen for the second actor.
#_/
#_/  [Further, please see "Equipment Exclusion" and "Skills Exclusion" located]
#_/  [near the bottom of the Customize block for more control.                ]
#_/
#_/=============================================================================
#_/ Installation: Install above KCG_SkillCPSystem, if you use that script.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

$data_system = load_data("Data/System.rvdata") if $data_system == nil

#==============================================================================#
#                           ? Customization ?                                  #
#==============================================================================#

module KGC
 module EquipLearnSkill
  # Note: To avoid confusion with the KCG_DistributeParameter script, I use TP
  #       (Training Point) as the default abbreviation. KGC uses AP.
  #                           ? AP Name ?
  #  This allows you to change the abbreviation of AP.
  VOCAB_AP     = "TP"
  #                      ? AP Default Value ?
  #  This allows you to change the default value of AP gained by an enemy when
  #   not manually specified using the <TP n> tag.
  DEFAULT_AP   = 1
  #                      ? Skill Use Mastery ?
  #  This toggle allows you to change whether a skill is usable when AP hasn't
  #   been maxed out.
  #  true = Skill cannot be used until the skill has been mastered.
  #  false = Skills are usable regardless of AP amount, however, when the item
  #          that provides that skill is unequipped, the skill is removed.
  NEED_FULL_AP = false

  #             ? AP Result Screen Aquisition Display ?
  #  The allows you to change the AP aquired message for battle results.
  #  %s : aquired AP amount
  VOCAB_RESULT_OBTAIN_AP         = "bekommt %s #{VOCAB_AP}!"
  # ? Display message when skill is mastered on results screen
  #   (beginning of message).
  #  %s : Actor Name
  VOCAB_RESULT_MASTER_SKILL      = "%s's"
  # ? Display message when skill mastered on results screen.
  #    (ending of message)
  #  %s : Name of mastered skill
  VOCAB_RESULT_MASTER_SKILL_NAME = "%s wurde erlernt!"

  #                         ? Command Menu ?
  # This toggle adds the "AP Viewer" (Training Skills) selection to the main
  #  command menu.
  USE_MENU_AP_VIEWER_COMMAND = true
  # ? Text of the Equip Skills selection on the main command window.
  # Could also be written: VOCAB_MENU_AP_VIEWER       = "#{VOCAB_AP} Skills"
  VOCAB_MENU_AP_VIEWER       = "Skills"

  #                       ? AP Viewer Screen ?
  #  Mastered AP skills column display.
  VOCAB_MASTER_SKILL      = " - MASTER - "
  #  This toggle shows/hides skills that have 0 AP.
  #   This also evidently affects the skill's usability, though untested.
  #  true = show
  #  false = Hide
  SHOW_ZERO_AP_SKILL      = false
  #  This toggle allows you to hide the name of a skill if the skill has 0 AP.
  #   true = mask the skill name
  #   false = unmask the skill name
  MASK_ZERO_AP_SKILL_NAME = true
  #  This allows you to change the text of a 0 AP masked skill.
  #  (When MASK_ZERO_AP_SKILL_NAME = true)
  ZERO_AP_NAME_MASK       = "Unmöglich"
  #  This toggle allows you to mask the text displayed in the "Help" (topmost)
  #   window of a skill that has 0 AP.
  #   true = mask the skill's help text
  #   false = display the text normally
  HIDE_ZERO_AP_SKILL_HELP = true
  #  This allows you to change the text displayed in the "Help" (topmost) window
  #   of a skill that has 0 AP. (When HIDE_ZERO_AP_SKILL_HELP = true)
  ZERO_AP_SKILL_HELP      = "Der Skill ist unmöglich."

  #                     ? Equipment Exclusion ?
  #  The following lines make it possible for a specified actor to not gain
  #   skills granted by certain Weapons and Armors.
  #  The subscript of the array (The [] brackets) cooresponds to the Actor ID.
  EXCLUDE_WEAPONS = []  # Weapons
  EXCLUDE_ARMORS  = []  # Armor
  #  Example:
  #   ActorID:1 WeaponID:50 and 70
  #   EXCLUDE_WEAPONS[1] = [50, 70]
  #  Ralph cannot aquire the skills given by the weapon of WeaponID 50 and 70.

  #                       ? Skills Exclusion ?
  #  The following line makes it possible for a specified actor to not gain
  #   certain skills provided by any equipment that may normally grant them.
  #  The subscript of the array (The [] brackets) cooresponds to the Actor ID.
  EXCLUDE_SKILLS = []
  #  Example:
  #   ActorID:1 SkillID:30
  #   EXCLUDE_SKILLS[1] = [30]
  #  Ralph cannot aquire the skill in SkillID 30 granted by any equipped goods.
  
  #               ? Call AP Viewer from the Skills Window ?
  #  This allows you to change what key/button is pressed on the skills window
  #   to shift to the AP Viewer window.
  #  When set to nil, this is disabled. ( CALL_EQUIPSKILLKEY = Input::nil )
  #  Note: Currently this only works with KGC_CategorizeSkill
  #  I'll revise this later so you may do so without that script.
  #  I also need to add a couple more methods to this anyhow.
   CALL_APVIEWERKEY = Input::Z
  #               ? Call Skills Window from the AP Viewer ?
  #  This allows you to change what key/button is pressed on the AP Viewer
  #   to shift to the skills window.
  #  When set to nil, this is disabled. ( CALL_SKILLSKEY = Input::nil )
   CALL_SKILLSKEY = Input::Y
 end
end

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
#  Unless you know what you're doing, it's best not to alter anything beyond  #
#  this point, as this only affects the tags used for "Notes" in database.    #
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
#  Whatever word(s) are after the separator ( | ) in the following lines are
#   what are used to determine what is searched for in the "Notes" section.

$imported = {} if $imported == nil
$imported["EquipLearnSkill"] = true

module KGC::EquipLearnSkill
  # Regular Expressions Defined
  module Regexp
    # Base Item Module
    module BaseItem
      # Learn Skill tag string
      LEARN_SKILL = /<(?:LEARN_SKILL|learnskill)[ ]*(\d+(?:[ ]*,[ ]*\d+)*)>/i
    end

    # Base Skill Module
    module Skill
      # Need AP tag string
      NEED_AP = /<(?:NEED_AP|needTP)[ ]*(\d+)>/i
    end

    # Base Enemy Module
    module Enemy
      # AP given tag string
      AP = /<TP[ ]*(\d+)>/i
    end
  end
end

#==============================================================================
# ? KGC::Commands
#==============================================================================

module KGC::Commands
  module_function
  #--------------------------------------------------------------------------
  # ? AP ???
  #     actor_id : ???? ID
  #     ap       : ?? AP
  #     show     : ?????????
  #--------------------------------------------------------------------------
  def gain_actor_ap(actor_id, ap, show = false)
    $game_actors[actor_id].gain_ap(ap, show)
  end
  #--------------------------------------------------------------------------
  # ? AP ???
  #     actor_id : ???? ID
  #     skill_id : ??? ID
  #     ap       : AP
  #--------------------------------------------------------------------------
  def change_actor_ap(actor_id, skill_id, ap)
    skill = $data_skills[skill_id]
    return if skill == nil
    $game_actors[actor_id].change_ap(skill, ap)
  end
  #--------------------------------------------------------------------------
  # ? AP ?????????
  #     actor_index : ??????????
  #--------------------------------------------------------------------------
  def call_ap_viewer(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :ap_viewer
    $game_temp.next_scene_actor_index = actor_index
  end
end

class Game_Interpreter
  include KGC::Commands
end

#==============================================================================
# ¦ Vocab
#==============================================================================

module Vocab
  # ?????????
  ObtainAP              = KGC::EquipLearnSkill::VOCAB_RESULT_OBTAIN_AP
  ResultFullAPSkill     = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL
  ResultFullAPSkillName = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL_NAME

  # AP
  def self.ap
    return KGC::EquipLearnSkill::VOCAB_AP
  end

  # ?????????
  def self.full_ap_skill
    return KGC::EquipLearnSkill::VOCAB_MASTER_SKILL
  end

  # AP ????
  def self.ap_viewer
    return KGC::EquipLearnSkill::VOCAB_MENU_AP_VIEWER
  end
end

#==============================================================================
# ¦ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ? ???????????????
  #--------------------------------------------------------------------------
  def create_equip_learn_skill_cache
    @__learn_skills = []

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipLearnSkill::Regexp::BaseItem::LEARN_SKILL  # ?????
        $1.scan(/\d+/).each { |num|
          skill_id = num.to_i
          # ????????????????
          @__learn_skills << skill_id if $data_skills[skill_id] != nil
        }
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ??????? ID ???
  #--------------------------------------------------------------------------
  def learn_skills
    create_equip_learn_skill_cache if @__learn_skills == nil
    return @__learn_skills
  end
end

#==============================================================================
# ¦ RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  @@__masked_name =
    KGC::EquipLearnSkill::ZERO_AP_NAME_MASK  # ????
  @@__expand_masked_name = false             # ???????????

  if @@__expand_masked_name != nil
    @@__expand_masked_name = (@@__masked_name.scan(/./).size == 1)
  end
  #--------------------------------------------------------------------------
  # ? ???????????????
  #--------------------------------------------------------------------------
  def create_equip_learn_skill_cache
    @__need_ap = 0

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipLearnSkill::Regexp::Skill::NEED_AP  # ?? AP
        @__need_ap = $1.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def masked_name
    if KGC::EquipLearnSkill::MASK_ZERO_AP_SKILL_NAME
      if @@__expand_masked_name
        # ???????????
        return @@__masked_name * self.name.scan(/./).size
      else
        return @@__masked_name
      end
    else
      return self.name
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????? AP
  #--------------------------------------------------------------------------
  def need_ap
    create_equip_learn_skill_cache if @__need_ap == nil
    return @__need_ap
  end
end

#==============================================================================
# ¦ RPG::Enemy
#==============================================================================

class RPG::Enemy
  #--------------------------------------------------------------------------
  # ? ???????????????
  #--------------------------------------------------------------------------
  def create_equip_learn_skill_cache
    @__ap = KGC::EquipLearnSkill::DEFAULT_AP

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipLearnSkill::Regexp::Enemy::AP  # ?? AP
        @__ap = $1.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ?? AP
  #--------------------------------------------------------------------------
  def ap
    create_equip_learn_skill_cache if @__ap == nil
    return @__ap
  end
end

#==============================================================================
# ¦ Game_Temp
#==============================================================================

unless $imported["CustomMenuCommand"]
class Game_Temp
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_accessor :next_scene_actor_index   # ????????????????
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias initialize_KGC_EquipLearnSkill initialize
  def initialize
    initialize_KGC_EquipLearnSkill

    @next_scene_actor_index = 0
  end
end
end

#==============================================================================
# ¦ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ? ??????
  #     actor_id : ???? ID
  #--------------------------------------------------------------------------
  alias setup_KGC_EquipLearnSkill setup
  def setup(actor_id)
    setup_KGC_EquipLearnSkill(actor_id)

    @skill_ap = []
  end
  #--------------------------------------------------------------------------
  # ? ?????? AP ??
  #     skill_id : ??? ID
  #--------------------------------------------------------------------------
  def skill_ap(skill_id)
    @skill_ap = [] if @skill_ap == nil
    return (@skill_ap[skill_id] != nil ? @skill_ap[skill_id] : 0)
  end
  #--------------------------------------------------------------------------
  # ? AP ??
  #     skill : ???
  #     ap    : ??? AP
  #--------------------------------------------------------------------------
  def change_ap(skill, ap)
    @skill_ap = [] if @skill_ap == nil
    @skill_ap[skill.id] = [[ap, skill.need_ap].min, 0].max
  end
  #--------------------------------------------------------------------------
  # ? ????????????
  #     new_skills : ???????????????
  #--------------------------------------------------------------------------
  def display_full_ap_skills(new_skills)
    $game_message.new_page
    text = sprintf(Vocab::ResultFullAPSkill, name)
    $game_message.texts.push(text)
    new_skills.each { |skill|
      text = sprintf(Vocab::ResultFullAPSkillName, skill.name)
      $game_message.texts.push(text)
    }
  end
  #--------------------------------------------------------------------------
  # ? AP ??
  #     ap   : AP ????
  #     show : ????????????
  #--------------------------------------------------------------------------
  def gain_ap(ap, show)
    last_full_ap_skills = full_ap_skills

    # ???????????????? AP ???
    equipment_skills(true).each { |skill|
      change_ap(skill, skill_ap(skill.id) + ap)
    }

    # ????????????
    if show && last_full_ap_skills != full_ap_skills
      display_full_ap_skills(full_ap_skills - last_full_ap_skills)
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????????????
  #--------------------------------------------------------------------------
  alias skills_KGC_EquipLearnSkill skills
  def skills
    result = skills_KGC_EquipLearnSkill

    # ???? AP ???????????
    additional_skills = equipment_skills | full_ap_skills
    return (result | additional_skills).sort! { |a, b| a.id <=> b.id }
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #     all : ?????????????
  #--------------------------------------------------------------------------
  def equipment_skills(all = false)
    result = []
    equips.compact.each { |item|
      next if exclude_learnable_equipment?(item)       # ????????

      item.learn_skills.each { |i|
        skill = $data_skills[i]
        next if exclude_equipment_skill?(skill)        # ?????????
        if !all && KGC::EquipLearnSkill::NEED_FULL_AP  # ??????
          next unless ap_full?(skill)                   # ???????
        end
        result << skill
      }
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #     item : ????
  #--------------------------------------------------------------------------
  def exclude_learnable_equipment?(item)
    case item
    when RPG::Weapon  # ??
      # ?????????????
      if KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id] != nil &&
          KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id].include?(item.id)
        return true
      end
    when RPG::Armor   # ??
      # ?????????????
      if KGC::EquipLearnSkill::EXCLUDE_ARMORS[id] != nil &&
          KGC::EquipLearnSkill::EXCLUDE_ARMORS[id].include?(item.id)
        return true
      end
    else              # ?????
      return true
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ? ???????????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def exclude_equipment_skill?(skill)
    # ????????????
    if KGC::EquipLearnSkill::EXCLUDE_SKILLS[id] != nil &&
        KGC::EquipLearnSkill::EXCLUDE_SKILLS[id].include?(skill.id)
      return true
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ? AP ???????????
  #--------------------------------------------------------------------------
  def full_ap_skills
    result = []
    (1...$data_skills.size).each { |i|
      skill = $data_skills[i]
      result << skill if ap_full?(skill) && !exclude_equipment_skill?(skill)
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ? AP ???????????
  #--------------------------------------------------------------------------
  def can_gain_ap_skills
    result = []
    equips.compact.each { |item|
      next if exclude_learnable_equipment?(item)  # ????????

      item.learn_skills.each { |i|
        skill = $data_skills[i]
        next if exclude_equipment_skill?(skill)   # ?????????
        result << skill
      }
    }
    return (result - full_ap_skills)              # ???????????
  end
  #--------------------------------------------------------------------------
  # ? AP ??????
  #     skill : ???
  #--------------------------------------------------------------------------
  def ap_full?(skill)
    return false if skill == nil                  # ?????????
    return false if skill.need_ap == 0            # ?? AP ? 0
    return false if @skills.include?(skill.id)    # ????

    return (skill_ap(skill.id) >= skill.need_ap)
  end
  #--------------------------------------------------------------------------
  # ? ??????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    return super
  end
end

#==============================================================================
# ¦ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ? AP ???
  #--------------------------------------------------------------------------
  def ap
    return enemy.ap
  end
end

#==============================================================================
# ¦ Game_Troop
#==============================================================================

class Game_Troop < Game_Unit
  #--------------------------------------------------------------------------
  # ? AP ?????
  #--------------------------------------------------------------------------
  def ap_total
    ap = 0
    for enemy in dead_members
      ap += enemy.ap unless enemy.hidden
    end
    return ap
  end
end

#==============================================================================
# ¦ Window_Command
#==============================================================================

class Window_Command < Window_Selectable
  unless method_defined?(:add_command)
  #--------------------------------------------------------------------------
  # ? ???????
  #    ?????????
  #--------------------------------------------------------------------------
  def add_command(command)
    @commands << command
    @item_max = @commands.size
    item_index = @item_max - 1
    refresh_command
    draw_item(item_index)
    return item_index
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #--------------------------------------------------------------------------
  def refresh_command
    buf = self.contents.clone
    self.height = [self.height, row_max * WLH + 32].max
    create_contents
    self.contents.blt(0, 0, buf, buf.rect)
    buf.dispose
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def insert_command(index, command)
    @commands.insert(index, command)
    @item_max = @commands.size
    refresh_command
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def remove_command(command)
    @commands.delete(command)
    @item_max = @commands.size
    refresh
  end
  end
end

#==============================================================================
# ? Window_APViewer
#------------------------------------------------------------------------------
#  AP ?????????????????????
#==============================================================================

class Window_APViewer < Window_Selectable
  #--------------------------------------------------------------------------
  # ? ?????????
  #     x      : ?????? X ??
  #     y      : ?????? Y ??
  #     width  : ???????
  #     height : ????????
  #     actor  : ????
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor)
    super(x, y, width, height)
    @actor = actor
    @can_gain_ap_skills = []
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    @can_gain_ap_skills = @actor.can_gain_ap_skills
    equipment_skills = @actor.equipment_skills(true)

    (1...$data_skills.size).each { |i|
      skill = $data_skills[i]
      next if skill.need_ap == 0
      unless KGC::EquipLearnSkill::SHOW_ZERO_AP_SKILL
        # AP ? 0 ???????????????????
        if @actor.skill_ap(skill.id) == 0 && !equipment_skills.include?(skill)
          next
        end
      end
      @data.push(skill)
    }
    @item_max = @data.size
    create_contents
    @item_max.times { |i| draw_item(i) }
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #     index : ????
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      draw_item_name(skill, rect.x, rect.y, enable?(skill))
      if @actor.ap_full?(skill) || @actor.skill_learn?(skill)
        # ????
        text = Vocab.full_ap_skill
      else
        # AP ???
        text = sprintf("%s %4d/%4d",
          Vocab.ap, @actor.skill_ap(skill.id), skill.need_ap)
      end
      # AP ???
      self.contents.font.color = normal_color
      self.contents.draw_text(rect, text, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def enable?(skill)
    return true if @actor.skill_learn?(skill)           # ????
    return true if @actor.ap_full?(skill)               # ????
    return true if @can_gain_ap_skills.include?(skill)  # AP ????

    return false
  end
  #--------------------------------------------------------------------------
  # ? ??????????????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def no_mask?(skill)
    return true if @actor.skill_learn?(skill)           # ????
    return true if @actor.skill_ap(skill.id) > 0        # AP ? 1 ??
    return true if @can_gain_ap_skills.include?(skill)  # AP ????

    return false
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #     item    : ???? (????????????)
  #     x       : ??? X ??
  #     y       : ??? Y ??
  #     enabled : ??????false ?????????
  #--------------------------------------------------------------------------
  def draw_item_name(item, x, y, enabled = true)
    draw_icon(item.icon_index, x, y, enabled)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x + 24, y, 172, WLH,
      no_mask?(item) ? item.name : item.masked_name)
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active

    if Input.repeat?(Input::RIGHT)
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      cursor_pageup
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_help
    if KGC::EquipLearnSkill::HIDE_ZERO_AP_SKILL_HELP && !no_mask?(skill)
      @help_window.set_text(KGC::EquipLearnSkill::ZERO_AP_SKILL_HELP)
    else
      @help_window.set_text(skill == nil ? "" : skill.description)
    end
  end
end

#==============================================================================
# ¦ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_scene_change_KGC_EquipLearnSkill update_scene_change
  def update_scene_change
    return if $game_player.moving?    # ??????????

    if $game_temp.next_scene == :ap_viewer
      call_ap_viewer
      return
    end

    update_scene_change_KGC_EquipLearnSkill
  end
  #--------------------------------------------------------------------------
  # ? AP ??????????
  #--------------------------------------------------------------------------
  def call_ap_viewer
    $game_temp.next_scene = nil
    $scene = Scene_APViewer.new($game_temp.next_scene_actor_index,
      0, Scene_APViewer::HOST_MAP)
  end
end

#==============================================================================
# ¦ Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  if KGC::EquipLearnSkill::USE_MENU_AP_VIEWER_COMMAND
  #--------------------------------------------------------------------------
  # ? ????????????
  #--------------------------------------------------------------------------
  alias create_command_window_KGC_EquipLearnSkill create_command_window
  def create_command_window
    create_command_window_KGC_EquipLearnSkill

    return if $imported["CustomMenuCommand"]

    @__command_ap_viewer_index = @command_window.add_command(Vocab.ap_viewer)
    if @command_window.oy > 0
      @command_window.oy -= Window_Base::WLH
    end
    @command_window.index = @menu_index
  end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_command_selection_KGC_EquipLearnSkill update_command_selection
  def update_command_selection
    call_ap_viewer_flag = false
    if Input.trigger?(Input::C)
      case @command_window.index
      when @__command_ap_viewer_index  # AP ????
        call_ap_viewer_flag = true
      end
    end

    # AP ???????
    if call_ap_viewer_flag
      if $game_party.members.size == 0
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      start_actor_selection
      return
    end

    update_command_selection_KGC_EquipLearnSkill
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_actor_selection_KGC_EquipLearnSkill update_actor_selection
  def update_actor_selection
    if Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when @__command_ap_viewer_index  # AP ????
        $scene = Scene_APViewer.new(@status_window.index,
          @__command_ap_viewer_index, Scene_APViewer::HOST_MENU)
        return
      end
    end

    update_actor_selection_KGC_EquipLearnSkill
  end
end

#==============================================================================
# ? Scene_APViewer
#------------------------------------------------------------------------------
#   AP ????????????????
#==============================================================================

class Scene_APViewer < Scene_Base
  HOST_MENU   = 0
  HOST_MAP    = 1
  #-----------------------------------------------
Titel: hellMinors Simple Questlog
Beitrag von: Soulstormer am Mai 02, 2008, 18:31:22
wie wäre es mit einem Eventbefehl der die Aktiven Quests öffnet? Und am besten auch noch auf die neue Quest zeigt. :P
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 02, 2008, 18:55:26
boah typisch KGC nur kraut und rüben ,jetz weiss ic hwieder warum ich kgc net mag
also wenn beide laufen sollen kannste das kgc dingen unter meinen beiden machen, dann haste zumindest schonma beide im menü

@soulstorm : was meinst du damit?
Titel: hellMinors Simple Questlog
Beitrag von: Soulstormer am Mai 04, 2008, 18:51:42
$scene = Scene_Questlog.new(false)

Damit öffnet man doch den Questlog, ich möchte aber z.B. Aktive und Abgeschlossene Quests anzeigen lassen, am besten noch eine bestimmte Quest. (Eben die Quest die ich gerade bekomme oder abschließe.)

mit (true) passiert im übrigen das gleiche wie mit false oder ganz ohne^^
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 04, 2008, 19:05:19
achso , also sobald man per event irgendwie add, update oder complete macht soll ein fenster kommen mit entsprechender quest und der aktion oder sowas

das true und false dient nur zur bestimmung der scene aus der man kommt
Titel: hellMinors Simple Questlog
Beitrag von: Soulstormer am Mai 04, 2008, 20:26:28
Zitat von: hellMinor
achso , also sobald man per event irgendwie add, update oder complete macht soll ein fenster kommen mit entsprechender quest und der aktion oder sowas

das true und false dient nur zur bestimmung der scene aus der man kommt
Jo genau so, allerdings sollte das an und abschaltbar sein, in dem call.
Eigentlich reicht ein Call Script welches die jeweiligen Fenster aufruft schon.
$scene = Scene_Questlog.new(false) = normales fenster
$scene = Scene_Questlog.new(false).active = Aktive Quests Fenster
$scene = Scene_Questlog.new(false).complete = Abgeschlossene Quests Fenster
Titel: hellMinors Simple Questlog
Beitrag von: FaG am Mai 07, 2008, 19:53:55

Also, entweder bin ich zu blöd oder kA ^^

folgendes Problem:

Habe den Code eingefügt
Habe im Szene-menü alles so erändert wie auf der ersten Seite beschrieben


Jetzt habe ich folgendes Problem:

Der Beenden Button ist völlig verschwunden
Der STatus Knopf funktioniert nicht mehr. Man klickt auf Status dann kann man den chara auswählen und dann passiert nichts mehr.
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 08, 2008, 15:02:21
kann nich sagen was du da falsch editiert hast da ichs net sehe^^

auf der ersten seite is noch ein zweites script was eine einbindung des questlogs ins menü zeigt
die änderungen die ich vorgenommen hatte , hatte ich mit |||||| markiert
Titel: hellMinors Simple Questlog
Beitrag von: naibaf91 am Mai 08, 2008, 15:08:52
Hallo Leute habe ein bisschen Rumgegetüftel und dann habe ich bemerkt das im Skript ein bisschen was durcheinander war... Habe das gerade hingebogen.
Also der Skript muss so aussehen, sonst geht das nicht richtig.

Das ist einmal das Scene Menu was man ersetzen muss:
#==============================================================================
# ¦ Scene_Menu
#------------------------------------------------------------------------------
#  ??????????????????
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # ? ?????????
  #     menu_index : ?????????????
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # ? ????????????
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = QUESTLOGNAME
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # ??????? 0 ????
      @command_window.draw_item(0, false)     # ????????
      @command_window.draw_item(1, false)     # ???????
      @command_window.draw_item(2, false)     # ??????
      @command_window.draw_item(3, false)     # ?????????
      @command_window.draw_item(4, false)     # Disable status
    end
    if $game_system.save_disabled             # ????????
      @command_window.draw_item(5, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # ????
        $scene = Scene_Item.new
      when 1,2  # Skill, equipment, QUESTLOGNAME
        start_actor_selection
      when 4      # ???
        $scene = Scene_File.new(true, false, false)
      when 5      # ?????
        $scene = Scene_End.new
      when 3                                                      
        $scene = Scene_Questlog.new                              
      end
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # ???
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # ??
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # ?????
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end



Und hier der Questlog Skript den man ersetzen muss:
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.2 - 02.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Aktive Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Fertige Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------  
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        $activelog[i][3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        return $activelog[i][3]
        break
      end
    end
  end
  
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
  
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
    
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
    
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
    
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------  
  def kill_questwindows
    @quest_window.dispose
  end  
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end      
    end
  end
#------------------------------------------------------------------------------  
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
  
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
  
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------  
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------  
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------  
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------  
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------  
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
  
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
    
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
    
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------    
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
    end
  end
  
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)    
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
  
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#==============================================================================  
  def self.questmaps(filename)
    load_bitmap("Graphics/Questmaps/", filename)
  end
  
end
Titel: hellMinors Simple Questlog
Beitrag von: FaG am Mai 08, 2008, 15:14:22
Zitat von: naibaf91
Hallo Leute habe ein bisschen Rumgegetüftel und dann habe ich bemerkt das im Skript ein bisschen was durcheinander war... Habe das gerade hingebogen.
Also der Skript muss so aussehen, sonst geht das nicht richtig.

Das ist einmal das Scene Menu was man ändern musste:
#==============================================================================
# ¦ Scene_Menu
#------------------------------------------------------------------------------
#  ??????????????????
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # ? ?????????
  #     menu_index : ?????????????
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # ? ????????????
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = QUESTLOGNAME
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # ??????? 0 ????
      @command_window.draw_item(0, false)     # ????????
      @command_window.draw_item(1, false)     # ???????
      @command_window.draw_item(2, false)     # ??????
      @command_window.draw_item(3, false)     # ?????????
      @command_window.draw_item(4, false)     # Disable status
    end
    if $game_system.save_disabled             # ????????
      @command_window.draw_item(5, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # ????
        $scene = Scene_Item.new
      when 1,2  # Skill, equipment, QUESTLOGNAME
        start_actor_selection
      when 4      # ???
        $scene = Scene_File.new(true, false, false)
      when 5      # ?????
        $scene = Scene_End.new
      when 3                                                      
        $scene = Scene_Questlog.new                              
      end
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # ???
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # ??
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # ?????
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end

So und hier der andere Skript:
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.2 - 02.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Aktive Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Fertige Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------  
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[0] == id
        $activelog[2] = description
        $activelog[3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[0] == id
        $completedlog << $activelog
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[0] == id
        return $activelog[3]
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------  
  def kill_questwindows
    @quest_window.dispose
  end  
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end      
    end
  end
#------------------------------------------------------------------------------  
  def update_quest_selection
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------  
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------  
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------  
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------  
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------  
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog)
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog)
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------    
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)    
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#==============================================================================  
  def self.questmaps(filename)
    load_bitmap("Graphics/Questmaps/", filename)
  end
 
end

So beide datein einfach einfügen!


Wäre schön wenn du die stellen mal markieren könntest bzw. kurz erläutern.

UNd die SKripte sind ja gar ned ordentlich strukuriert Oo alles linksbündig
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Mai 08, 2008, 15:47:13
was für änderungen ? das questlog script is das selbe und das scnene menu beinhaltet viel zu viel dinge die nich geändert wurden, dh kann man die rausstreichen , bei der scene_menu hab ich nur die änderungen in 30sek vorgenommen die man brauchte damits ins menü passt
Titel: hellMinors Simple Questlog
Beitrag von: naibaf91 am Mai 10, 2008, 11:13:28
Ja nur weil bei ein paar Leuten und auch bei mir ein Fehler auftrat, dass beenden weg war und speichern irgend was anderes war. Ich habe das jetzt ein bisschen umgebaut und so geht das bei mir und auch bei anderen Leuten.
Ansonsten ist der Skript Richtig geil den du da gebaut hast.
Titel: hellMinors Simple Questlog
Beitrag von: Agito Ace am Mai 11, 2008, 10:28:18
Danke für deinen Skript^^. Es passt perfekt in mein Game rein und bietet abwechslung happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /] .
Ich werde jetzt mal die Quests (bei mir: Aufträge) einfügen^^.

Bis dann!
Titel: hellMinors Simple Questlog
Beitrag von: Lyeaux am Mai 11, 2008, 23:30:28
Schönes und einfaches Questlog. Gefällt mir und ich habe es auch schon in mein Projekt eingebaut. :)
Titel: hellMinors Simple Questlog
Beitrag von: SatansRightHand am Juni 13, 2008, 15:14:23
ich habe es auch in mein game aufgenommen, bis mir etwas aufgefallen ist.
Die Quest bei mir ist:
Töte alle menschen
du hast 0 von 14 Menschen getötet

das problem ist, dass man die menschen in beliebeiger reihenfolge töten, und somit das updatequest unbrauchbar ist...
könntest du das vielleicht so ändern, dass man da auch variablen einfügen kann?
achja und ausserdem ist bei mir der quest name etwas länger, und deshalb ist bei einem der wörter ein viereck vor, dass da nich weggeht...
Titel: hellMinors Simple Questlog
Beitrag von: Kenshin am Juni 13, 2008, 15:56:33
bei mir gehts net  sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /]
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Juni 13, 2008, 15:57:06
also variablen kann man eignetlich da rein schreiben o_O habs grad nochma getestet und da gings

zudem kasten, der sollte eigentlich nichts mit nem langem namen zu tun haben aber woher der jetz genau kommt kann ich grad nich sagen, hast du den japanischen maker?
Titel: hellMinors Simple Questlog
Beitrag von: War-Raptor am Juni 13, 2008, 16:01:35
Zitat von: hellMinor
also variablen kann man eignetlich da rein schreiben o_O habs grad nochma getestet und da gings

zudem kasten, der sollte eigentlich nichts mit nem langem namen zu tun haben aber woher der jetz genau kommt kann ich grad nich sagen, hast du den japanischen maker?

Ich habe den Englischen Maker. Wenn ich ein event mache und dann ein scriptschnippsel aufrufe, dann kommen automatisch zeilenumbrüche in das script bei der darstellung. wenn die zeilenumbrüche im titel oder der beschreibung einer quest stehen, dann werden diese später als quadrat dargestellt.

beim namen einer quest ist es egal, dann denkt man sich halt einen kürzeren aus ^^ Nur bei der Beschreibung könnte das etwas störend sein.

Ich probier noch ein bisschen rum und versuche ein screen zu posten wenn ich dran denke XD

Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Juni 13, 2008, 16:51:36
@kenshin : was geht bei dir nich?

@raptor : also diese zeilenümbruche wegen dem kleinen script fenster kann man umgehen
$questlog.addQuest("2","Quest 2",
"Beispiel Questbeschreibung
von Quest 2 - Variable 1= "+
$game_variables[1].to_s+"
ich bin auch eine Quest")
das müsste 3 zeilen ergeben und halt den inhalt der variable 1

du kanns strings mit + verketten
Titel: hellMinors Simple Questlog
Beitrag von: SatansRightHand am Juni 13, 2008, 16:59:05
wo muss ich diesen texblock den du gerade gepostet hast einfügen?
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Juni 13, 2008, 17:02:57
den kannst einfach in ein event mit call script packen
Titel: hellMinors Simple Questlog
Beitrag von: SatansRightHand am Juni 13, 2008, 17:05:34
achso ok^^
wo habt ihr eigentlich ruby gelernt?
ich will das auch können^^
ic kann nur die programmiersprace von meine TI-Voyage 200 taschenrechner^^
Titel: hellMinors Simple Questlog
Beitrag von: War-Raptor am Juni 13, 2008, 17:11:47
Zitat von: hellMinor
@kenshin : was geht bei dir nich?

@raptor : also diese zeilenümbruche wegen dem kleinen script fenster kann man umgehen
$questlog.addQuest("2","Quest 2",
"Beispiel Questbeschreibung
von Quest 2 - Variable 1= "+
$game_variables[1].to_s+"
ich bin auch eine Quest")
das müsste 3 zeilen ergeben und halt den inhalt der variable 1

du kanns strings mit + verketten
ah danke ^^

stimmt eigentlich XD daran hätt ich denken können.

Aber danke ^^ das hilft auf jeden Fall weiter happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Titel: hellMinors Simple Questlog
Beitrag von: Kenshin am Juni 13, 2008, 17:17:37
Zitat von: hellMinor
@kenshin : was geht bei dir nich?

@raptor : also diese zeilenümbruche wegen dem kleinen script fenster kann man umgehen
$questlog.addQuest("2","Quest 2",
"Beispiel Questbeschreibung
von Quest 2 - Variable 1= "+
$game_variables[1].to_s+"
ich bin auch eine Quest")
das müsste 3 zeilen ergeben und halt den inhalt der variable 1

du kanns strings mit + verketten

krieg immer Erro....sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /] und wenn kein Error dann habe ich das menu net für die Quests sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /] unso weida...-.-
Titel: hellMinors Simple Questlog
Beitrag von: War-Raptor am Juni 13, 2008, 17:21:52
Zitat von: Kenshin
krieg immer Erro....sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /] und wenn kein Error dann habe ich das menu net für die Quests sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /] unso weida...-.-

Welche Errormeldung kriegst du denn?

Hast du denn schon die Modifiation gemacht damit das Questmenü aufgelistet wird im Menü? Wenn nicht, da gibts hier irgendwo eine Anleitung XD

Hast du andere Skripts  laufen die evt das questlog beeinflussen könnten?
Titel: hellMinors Simple Questlog
Beitrag von: Kenshin am Juni 14, 2008, 10:36:55
Zitat von: War-Raptor
krieg immer Erro....sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /] und wenn kein Error dann habe ich das menu net für die Quests sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /] unso weida...-.-

Welche Errormeldung kriegst du denn?

Hast du denn schon die Modifiation gemacht damit das Questmenü aufgelistet wird im Menü? Wenn nicht, da gibts hier irgendwo eine Anleitung XD

Hast du andere Skripts  laufen die evt das questlog beeinflussen könnten?
habe das Level Up Window Skript^^
Titel: hellMinors Simple Questlog
Beitrag von: Redeemer am Juni 25, 2008, 13:17:38
Hi,

könnte jemand mal das komplette ohne fehler funktionierende script nun
mal posten bei so vielen beiträgen verliert man die übersicht leicht ich blick
hier nämlich nichtmehr durch. sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /]

Also das Questlog script welches funst please... happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Titel: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Juni 25, 2008, 14:33:06
wie wärs mit seite 1
Titel: hellMinors Simple Questlog
Beitrag von: Redeemer am Juni 25, 2008, 16:29:02
Zitat von: hellMinor
wie wärs mit seite 1

Ja sorry habs jetz hin bekommen.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Prince am Juli 25, 2008, 14:10:11
könnte bitte jemand eine Demo machen. Ich bin einfach zu blöd das Skript zu verwenden.
MfG
Titel: Re: hellMinors Simple Questlog
Beitrag von: psychokill am Juli 26, 2008, 16:43:18
Ich auch^^

Zumindest weis ich nicht wie ich das Script in mein Menu reinbekomme.
Die Anwendung erscheint mir simpel und logisch :)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Prince am Juli 26, 2008, 17:07:26
Ich hab das erscheinen per Common Event und einem Tagebuch gemacht ^^. Ich schaffs aber irgendwie nicht Quests reinzutun. Wäre wirklich super wenn es einfach ne Demo mit dÉrklärungen gebe.
MfG
Titel: Re: hellMinors Simple Questlog
Beitrag von: Afenishakur am Juli 30, 2008, 04:13:14
Hab mich nun endlich mal mein schon weit vorangeschrittenes Projekt mit dem Script zu belegen, was nicht leicht war, was allerdings nicht am Script lag, sondern eher daran, das ich alle Questgeber suchen musste und die jenigen wo sie endeten, dauerte eine Weile, aber es hat sich gelohnt.
Hab bisher keine Probleme mit dem Script und bin auch erstaunt das es so leicht funktioniert =).

@ Prince: Wenn du eine Quest einfügen willst, dann gehst du bei den Eventcommands auf Seite 3, ganz unten Links steht Script einfügen.
da packst du dann das: $questlog.addQuest("Unique ID","Quest Titel","Quest Beschreibung")   herein.

z.B. $questlog.addQuest("1","Such eine Million Kräuter","Sammel im WoW Universum 1 Million sinnlose Kräuter")

das erste was in anführungszeichen steht ist die Quest ID, das e2 der Titel der Quest und das e3 die Beschreibung.

Wenn du eine Quest als abgeschlossen haben willst dann machst du einfach:

z.B. $questlog.completeQuest("1")

So wird die Quest mit der ID 1 in den abgeschlossenen Bereich geschoben, ist nun aber auch noch in dem "Aktiven Quests" Bereich enthalten, wenn du da die Quest raushaben willst dann gibst du:

z.B. $questlog.deleteQuest("1")         

ein, damit ist dann die Quest aus dem "Aktiven Quests" Bereich verschwunden. Die letzten beiden DInge kannst du in einem Script Call Event ausführen

so z.B.  $questlog.completeQuest("1")
            $questlog.deleteQuest("1")

Ich hoffe ich konnte dir helfen.

MfG Afeni
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 22, 2008, 19:51:32
Okay.
Ich gehöre zu der ganz dummen Spezies Mensch.^^

Ich habe jetzt eine geschlagene Stunde immer und immer wieder alle Kommentare in diesen
5 Seiten Forum durchgelesen um mein Problem zu lösen.

Die Eintragung des Scriptes ins Menü.
Du schriebst einmal, dass es weiter unten stehen soll (wo weiter unten?) und das es da drüber seteht (was steht da drüber?)
Tut mir leid das ich nerve und eine Frage stelle, welche Programmiersprachen-Menschen schon lange
als gelöst betrachten. Aber ich rall das nicht ^^

Ich erbitte gaaanz dringend Hilfe weil ein Questlog ist einfach mal was super wichtiges
für mein Game...

Ich danke ^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Evil95 am August 22, 2008, 21:10:23
Sk!p füge dieses script über Main ABER UNTER dem Questlog ein:
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = "Questlog"
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 4
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end

so sollte es bei dir unter Scripts aussehen:
Zitat
...
Simple_Questlog
Scene_Menu_by_Evil95

? Main Process
Main
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am August 22, 2008, 21:26:55
und wenn evil jetz noch die unnötigen sachen rausstreichen tust passts^^
also du konntest das script zum menü einfügen nicht finden weils net da is,
das war ursprünglich ganz unten im ersten post aber bei der foren umstellung is am thread wohl was verloren gegangen

Titel: Re: hellMinors Simple Questlog
Beitrag von: Evil95 am August 22, 2008, 21:33:21
so hellMinor...ick hoffe es entspricht jetzt deinen vorstellungen^^
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = "Questlog"
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 4
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end
PS: das in meinem vorherigen Post, habe ich ebenfalls durch dieses ersetzt^^...is also egal ob ihr dieses hier oder das da ohen nehmt xD
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am August 22, 2008, 21:45:20
habs zum ersten post dazu editiert
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 22, 2008, 21:50:47
Danke hell du hast mein Selbstvertrauen wieder gestärkt-
Etwas was nicht da ist nicht zu finden ist nicht SO eine Schande xD

Alles klar ich danke euch beiden. Dann kann ich meine Simulation
endlich vorrantreiben.

Ich bedanke und verabschiede mich.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Evil95 am August 22, 2008, 23:36:59
@Sk!p: Püh ick werd nich ma namentlich erwähnt... :'(

Edit: @hellMinor: wieso hast du Zeile 2 meines Scripts geändert? xD Dort steht quasi die Credits drin...das kann man nicht einfach entfernen^^
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am August 22, 2008, 23:50:04
hä was? ich hab das einfach aus deiner spoilerbox kopiert
das haste wahrscheinlich nachträglich reineditiert
Titel: Re: hellMinors Simple Questlog
Beitrag von: Kisuke Urahara am August 23, 2008, 10:08:19
Hey,

Großes THX.Das kann ich gut gebrauchen! Simple aber einfach cool!

mfg Ryuuzaki
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 23, 2008, 10:16:58
@Sk!p: Püh ick werd nich ma namentlich erwähnt... :'(

Ich sagte doch 'Danke euch beiden' ^^

Das mit dem 'Es war nie da' kam von Hell und das meinte ich mit aufbauend.
Aber wenn du etwas für dein Selbstwertgefühl tun möchtest bitte:

Einen besonderen Dank an Evil. Immerhin kam von diesem Helfer der erste Antwort-Post zu meiner Frage.
Und diesem Post verdanke ich, dass meine Dummheit besiegt wurde und ich nun endlich
das Questlog von Hell benutzen kann.  <So xD

Ich nerve nur ungern nochmal (Ja ich weiß ich bin nervig und dazu stehe ich)

Ich hab mir in den Skript FAQ durchgelesen wie man ein Bild in ins Questfenster einfügt.
Ich hab brav unter den Graphics einen Ordner namens Questmaps erstelt und ein Bild mit dem Namen 'Mantel' im Format 265x200 px eingefügt.
(Der Quest dieht zum Test und man soll einfach in sein Haus und seinen Mantel aus einer Truhe holen)

Der Quest an sich funktioniert einwandfrei. Er wird per Autorun erteilt, ins Logbuch eingetragen, man geht ins Haus, nimmt ihn aus der Truhe,
die Beschreibung wird auf 'Mantel gefunden' geupdatet und in die Completed Quests überschrieben.
Nur das Problem ist das Bild wird nicht angezeigt. Ich hatte schon den verdacht das der Questname auch die ID sein könnte, aber da die ID
und der Questname ein und das selbe sind, nämlich einfach 'Mantel' müsste das eine wie das andere ja auf das Bild mit dem gleichen
Namen zugreifen. Aber es passiert einfach nichts.

Mache ich irgendwas falsch?
(Im Skript ist das png-Format voreingestellt, und ich habe nichts verändert und das Bild auch als .Png gespeichert)

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Evil95 am August 23, 2008, 20:17:27
danke Sk!p...fühl mich gleich viel besser :)

zu deiner frage:
wenn die Quest Mantel heißt, dann muss:
das bild im Ordner "Graphics/Questmaps" sein. schau mal nach ob der ordnername korrekt geschrieben is und ob es wirklich ne png datei ist.

@hellMinor: ja das kann sein^^ aber egal. dank dir, dass du es "repariert" hast :)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 24, 2008, 13:07:52
Alles Korrekt.
Der Ordner heißt 'Questmaps', die Datei 'Mantel.png'.

Ich hab versucht die Datei groß und klein zu schreiben. Ich habe versucht den
Ordnernamen groß und klein zu schreiben aber irgendwie will das
Skript nicht auf das Bild zugreifen. Ich verstehe das nicht.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Kisuke Urahara am August 24, 2008, 13:40:04
@Sk!p: Also bei läuft das eigendlich. Ich hab auch erst gedacht, die Maps gehen nicht, aber das lag daran dass ich sie übersehen hab. Wenn das nicht bei dir der Fall ist, kann ich dir nicht weiter helfen. Sry.

Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 24, 2008, 13:43:06
Wie kann man denn ne 265x200 px Map im Questlog übersehen`? xD

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Evil95 am August 24, 2008, 15:15:40
lade dein game einfach ma hoch..und dann gucke ick ma wo der fehler is. :)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 24, 2008, 15:45:37
Gib mal bitte ne Seite wo ich das Hochladen kann.
HAb mich nie um Dateien gekümmert. Lade eigentlich nur Bilder Hoch.^^

EDIT:
Okay ich hab hier noch ein paar Sachen festgestellt dir mir sehr spanisch sind.
Besagter 'Questmaps' Ordner in 'Graphics' besteht und ist leer. Sagt mir das supertolle (shice)Vista
zumindest.

Wenn ich allerdins mit verschiedenen Grafikprogrammen diesen Ordner als Speicherziel
angebe, erscheinen darin Bilder, welche ich gespeichert habe. Also die Testbilder für die Quests.
Aber im Ordner ansich scheinen sie nicht zu sein.
Langsam frage ich mich was mit dem Blöden Pc hier los ist x.x*

Naja egal auf jeden Fall sind die Bilder, auf die vom Skript aus zugegriffen werden soll nachträglich
vom Desktop in besagten Ordner verschoben (Dann wird es darin auch angezeigt, nicht jedoch die darin gespeicherten)

PhotoFiltre und GIMP finden in dem Ordner Dateien. Vista nicht, genau so wie das Skript.
Ich habe nachgesehn, der Ordner ist weder schreibgeschützt, noch sind die Dateien darin versteckt oder ausgeblendet.
Und Paint lässt mich darin erst gar nicht speichern, ich bräuchte die Zustimmung des Admins (Also von mir)

Was zur Hälle stimmt da nicht? =(

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: ERZENGEL am August 25, 2008, 03:41:23
Wenn die UAC dich frägt, dann ist dein Ordner an einer Stelle, an der er woanders besser aufgehoben ist. Verschieb den Projektordner auf 'n Desktop, Eigene Dateien, ... und probier's dann noch mal aus.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 25, 2008, 09:21:44
Okay Ich hab den Fehler gefunden.
Meine Fresse bin ich hohl... x.x

Der Questmaps Ordner war die Ganze Zeit im Graphics Ordner des RTP's und nicht in dem
Des Projektes. Wenn Dummheit n Fahrrad antreiben würde müsste ich Bergauf echt bremsen... ne ne ne

Okay das Bild ist jetzt im Questmaps-Ordner Unter Graphics im Projekte-Verzwichnisses des Games.
Und wird Trotzdem nicht angezeit :'( was soll der Mist denn.

Jedenfall macht der Ordner jetzt keine Faxen mehr...

EDIT:
Hab mir das komplitte Skript nochmal eingefügt. Irgendwo war da n dummer Fehler drinn.
Es läuft. Ich bin Glücklich. Es ist toll. Danke für all eure Hilfe x)
Es ist immer schön wenn man auf verständnissvolle Leute troifft, auch wenn man total dämliche
Sachen macht ^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Kisuke Urahara am August 25, 2008, 13:53:32
@Sk!p Das mit dem Übersehen war so, das der Hintergrund nun dunkel ist und ich zum Test, wo die Questmap angezeigt wird nur mal ne schwarze Map gemacht hab, hat sie sich kaum vom Hintergrund abgehoben, deshalb hab ich sie übersehen. Super das du den Fehler doch noch gefunden hast!

mfg Ryuuzaki
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 25, 2008, 21:39:24
Ach so okay das ist natürlich ne Möglichkeite
n Bild zu übersehen ^^

Alles klar so ich werde mich dann munter ans Questen begeben...

Sk!p
Titel: Ein Fehler
Beitrag von: Kisuke Urahara am August 31, 2008, 19:28:32
Kann es sein, dass wenn man das speichern verbietet man doch noch speichern kann aber nicht mehr auf die Quests zugreifen kann? Sollte nochmal untersucht werden!

mfg Ryuuzaki
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am August 31, 2008, 20:38:09
Naja ich meine der Questlog wird ja als Eintrag ins Menü gepackt. das berücksichtigt natürlich dass der eintrag
'Speichern' da ist.

Wenne den jetzt rausnimmst, oder verbietest, dann fehlt ein Eintrag und alles wird verschoben.. entweder nach oben oder unten
oder der Questlog wird einfach anstelle des Speicherpunktes genommen...
Ich glaube nicht, dass man daran was ändern kann.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Kisuke Urahara am September 03, 2008, 08:34:50
Doch kann man, habs hinbekommen. Man muss nur eingeben, welche Schaltfläche verbietet werden soll, normalerweise die Nummer 4 oder so, man muss das blos um eins erhöhen.

mfg Ryuuzaki
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 03, 2008, 15:07:53
Autsch <.< VERBOTEN!

Ja Okay gut das du es 'hinbekommt' hast oO xD

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Vega am September 04, 2008, 22:45:52
Hi ich muss erstmal vorweg loswerden wie genial dieses Questlog ist. Dafür ein riesen dickes danke schön an hellMinor.
Nun hab ich aber leider auch ein problem und zwar will ich ne quest mit ne variable laufen lassen. Soll son typisches sammel quest werden.
Dieser Code hier steht ja bereits hier im Thread:
$questlog.addQuest("2","Quest 2",
"Beispiel Questbeschreibung
von Quest 2 - Variable 1= "+
$game_variables[1].to_s+"
ich bin auch eine Quest")
Dazu ne Frage die variables[1] wird wohl die abgefragte Variable sein oder? Habe bei mir jetzt einfach mal ne Variable erställt mit namen Kräuter. Ist die #0010...
der quest code sieht bei mir so aus:
$questlog.addQuest("2","Kräuter",
"Ich soll Kräuter für die
Wache am Eingang des
Schreins sammeln!
"+ $game_variables[10].to_s+"/10 gefunden")

Im questlog steht die quest jetzt mit 0/10
Wenn ich jetzt so nen Kraut aufhebe (ist nen Item) müsste im Questlog 1/10 stehen... aber wie muss die Variable dazu ausehen?
Bin für jede Hilfe dankbar

greetz Vega

PS: Sry bin nicht so der "Held" mit variablen^^
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 05, 2008, 04:48:06
Hey Ho ... Vorweg ich bin eig ein N00b was Variablen angeht
Aber wenn du die Variable nicht erhöhst wenn du ein
Item einsammelst kann der Questlog das doch nicht wissen oder?^^

Also eig nur die Questvariable +1 setzen.. und das für jedes Krat was
du so findest.

Wenn irgendjemand der mehr davon versteht jetzt diesen Beitrag sieht und merkt
das ich gequirlte Kacke labere, bitte macht mich drauf
aufmerksam xD

EDIT: Ich habe ebenfalls noch ein kleines Problem. Wenn der Questnahme aus zwei Worten besteht, erscheint vor
dem 2. Wort dieser komische quadratische Kasten. Kann man das irgendwie beheben? Weil mit diesem Kasten kann
man niemals ne Questmap dazu erstellen weil der ja kA was definiert.
Und ausserdem sieht es nicht schön aus ^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Vega am September 05, 2008, 10:13:22
Also Skip erstmal danke für die antwort. Nun es ist so eingestellt das wenn ich das item finde die questvariable also die 0010:Kräuter +1 bekommt setze ich halt beim event mit rein... wenn ich nun nen event mache das mir ein npc 10gold gibt wenn ich ihm nen kraut gebe funktioniert das auch (per bedingung wenn kräuter 0 hat gehts net^^ wird halt abgefragt =<1) nur im questlog ändert sich leider garnichts...
Zu deinem Problem:
Das habe ich auch das ist wenn der questname im scriptfenster in die 2.te zeile übergeht... wäre schön wenn da auch einer helfen könnte^^

Vega
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 05, 2008, 15:23:24
Ich werde HellMonor mal eine Pm schreiben zu deinem Problem.
Würde das nämlich auch gern wissen.

Weißt du wie ich das mit dem Zeitenumbruch beheben kann?
Den kompletten Questnamen einfach in eine seperate Zeile schreiben?
Das sollte doch dann eigentlich funktionieren wenn es das ist was du sagst.

Irgendwo in diesem Threat stand auch mal die Frage im raum, ob er in sein
Skript jetzt Strings oder Integer einbauen soll um genau dein Problem zu
lösen und das Questfenster zu updaten.
Allerdings glaube ich, dass das Ergebnis dieser Frage nie öffentlich gepostet wurde.
So weiß ich dann natürlich auch nicht wie man das jetzt genau machen soll.

Naja ich schreibe dann ma die Pm weil Hell grad irgendwie nichts
mehr von sich sehen lässt in seinem Skript Threat^^


Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Vega am September 05, 2008, 18:10:24
Wenn du den kompletten Questnamen in ne seperate Zeile schreibst ändert das in der hinsicht nur das dieses viereck dann vorm questnamen steht^^
Das du wegen dem anderen Problem Hell anschreibst ist ne gute idee^^


Vega
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 05, 2008, 18:12:26
Hm... Ja okay das war jetzt eigentlich nicht Ziel des Ganzen.

Ich wollte das das ding GANZ verschwindet und nicht, dass es sich verschiebt.
Weil so oder so sieht es dumm aus und ich kann meine Questmap zu
diesen Quests machen, weil das Quadrat etwas beschreibt was ich nicht kenne,
und dementsprechend nicht in den Namen der Questmap setzen kann...

Doffe sache alles hier irgendwie =/
Hell Pls Help!^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Gimlykiller am September 05, 2008, 22:51:06
Ich würde gern auch son Questbuch haben problem bin noch ein nooop der erst seitna
woche hirmit abeitet sich aber besser damit auskennt als er dachte
das heist ioch weis nicht wie das funkt skrip erstellen un son zeug.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Vega am September 06, 2008, 01:19:42
@ Gimlykiller das ist recht einfach... du öffnest den RPG Maker VX ... dann klickst du auf das blatt mit dem stift^^ dort im Skript editor scrollste rechts nach ganz unten... Über Main Process
machste nen feld fertig mit namen Questlog dort fügste folgenden code ein...
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.2 - 02.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------ 
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        $activelog[i][3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        return $activelog[i][3]
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------ 
  def kill_questwindows
    @quest_window.dispose
  end 
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end     
    end
  end
#------------------------------------------------------------------------------ 
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------ 
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------ 
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------ 
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------ 
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------   
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------   
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if File.exist?("Graphics/Questmaps/"+@data[id][1]+"."+MAP_FORMAT)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)   
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#============================================================================== 
  def self.questmaps(filename)
    load_bitmap("Graphics/Questmaps/", filename)
  end
 
end
da drüber machste dann net feld mit namen Questlog Menü Eintrag und fügst folgenden code ein
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = "Questlog"
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 4
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end

Hoffe doch ich konnte dir helfen^^
Titel: Re: hellMinors Simple Questlog
Beitrag von: Gimlykiller am September 06, 2008, 01:48:06
Das funkt nicht wenn ich im Menü dan auf Questlog gehe kommt
nur schwarzer bildschir un nichts funkt mehr richtig kann
dan nur noch denn test beänden
Titel: Re: hellMinors Simple Questlog
Beitrag von: Gimlykiller am September 06, 2008, 01:59:09
Un man müste mir dan auch mal rklären wie man überhaupt Quest dan dia einfügt
Titel: Re: hellMinors Simple Questlog
Beitrag von: Vega am September 06, 2008, 02:34:44
Also bei mir funzt es und ich habs genau so gemacht... zum thema quest einfügen.... angenommen npc 1 (nen dorfbewohner) will das du zu npc2 (dem dorfbauern Gehst...)gehst... dann machste nen event für npc 1... erstmal damit er überhaupt da ist... dann gehste in dem event teil rechts doppelklick und dort auf  auf seite 3... Da dann Script ausführen...
Da schreibste nun folgendes zum quest eintragen rein
$questlog.addQuest("Unique ID","Quest Titel","Quest Beschreibung")
Wobei das du Unique ID durch z.B. 1 ersetzt Quest Titel ersetzt du durch den Namen wie deine Quest heißen soll und Questbeschreibung durch eben die beschreibung dazu hier mal ein kleines bsp. für oben genannte quest...
$questlog.addQuest("1","Der Dorfbauer","Ich soll zu Bauer Meier gehen.")
Das Meier kann natürlich durch nen anderen Namen ersetzt werden...

Als 2.tes erstellste nen event für den Bauern oder auch NPC 2... dort wieder zum scripteditor und folgendes einfügen
Wenn die Quest da enden soll:
$questlog.completeQuest("Unique ID")
oder wie in unserem Beispiel:
$questlog.completeQuest("1")
Wenn die Quesst da nur geupdatet werden soll weil z.B. der Bauer sagt du sollst die Rüben auf seinem Feld ernten dann so:
$questlog.updateQuest("unique ID","Quest Description")
oder wie in unserem Beispiel:
$questlog.updateQuest("1","Der Bauer will das ich für ihn seine Rüben ernte.")

Hoffe ich konnte dir damit weiterhelfen... und wegen deinem problem... mach mal den scripteditor auf und mach per druck taste auf deiner tastatur nen screenshot... diesen in paint einfügen als .jpg speichern und auf nen imagehoster wie z.B. http://www.imagebanana.com/ (http://www.imagebanana.com/) hochladen und den link dazu hier rein... wenn du willst kannste mich auch per icq adden dann gucken wir mal zusammen ob wir das net hinkriegen^^

greetz Vega
Titel: Re: hellMinors Simple Questlog
Beitrag von: Gimlykiller am September 06, 2008, 10:39:57
Funkt nicht kommt immer ne fehler meldung wenn ich zum opa gehe der das sagt ich soll zur schule gehen
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 06, 2008, 15:21:13
So Jungs.. ma ganz nebenbei...

Doppeltposts bite bleiben lassen sonst bekommt man Stress mit den Mod's hier ^^
Zum zweiten, wenne grad erst mit dem Maker angefangen hast würde ich mich nicht direwkt in die Skript Sektion stürzen.
Fang an erst mal richtig zu mappen... Lerne mit Variablen, Switches CE's und ätlichem umzugehn.

Ohne Grundlagen wirste das nie so hinbekommen. Man kann dir jetzt viel erklären wie du was richtig machen kannst
aber wenn du keine Ahnung hast was du jetzt genau machst weil du die Grundlagen nicht verstehst
dann bringt das auch nichts.
Ich würde dir erst mal ein paar Tut's vorschlagen, welche du hier auf der Seite findest.
Oder mal einen blick in das FE-Book zu werfen.

Damit hast du schon direkt einige Fragen beantwortet und müsstest nicht wegen jeder Kleiningkweit
Hilfe erbitten, weil du dann selbst eine Lösung für die meisten Sachen entwickeln kannst.

So nun zu deiner Anfrage, weil du warscheinlich eh nicht auf meinen Rat hören wirst und das Questlog Skript so
oder so in dein Game ballern wirst.

1) Skript von der ersten Seite kopieren und unter ''Matierials'' Einfügen.
2) Das Menü-Skript (ebenfalls auf der ersten Seite) ebenfalls unter Materials unter dem QuestLog einfügen

Nun sollte der Eintrag Questlogs in deinem Menü erscheinen. In verschiedenen Reihen des Skriptes kannst du
die englischen Bezeichnungen eindeutschen oder so umschreiben, wie du sie brauchst.

3) In der Skript-internen FAQ steht, wie du ein Quest erstellst. Da kannst du eigentlich nur den Schritten folgen.
Aber dar ich nicht weißt, wie gut du des englischen mächtig bist gebe ich dir eine klei9ne Zusammenfassung.

-----------------------------------------------------------------------------------------------------------

1) Du erstellst ein Event auf der Karte, von wo aus der Quest gestartet werden soll
2) Im Eventfenster startest du ein neues Event - 3. Seite - Ganz unten - Skript einfügen.
3) Nun gibst du einen Befehl ein, welcher vom Skript ausgeführt werden soll.

> Eine Quest beschreiben und ausführen:
$questlog.addQuest("ID der Quest", "Name der Quest", "Beschreibung der Quest")
>Beispiel:
$questlog.addQuest("1", "Geschenke", "Suche Eine Rose, welche du als Geschenk überreichen kannst")

Die Anführungszeichen sind extrem wichtig, und auch die Kommastzung, sonst erkennt das Skript die Definition nicht an.

>Eine Quest Updaten:
$questlog.updateQuest("ID der Quest", "Update")
>Beispiel:
$questlog.updateQuest("1", "Jetzt brauchst du noch eine Tulpe")

Updates sind dazu geeignet, die Beschreibung einer Quest neu anzupassen oder zu zeigen das sie nun erledigt ist.

>Eine Quest Beenden:
$questlog.completeQuest("ID der Quest")

Dieser Befehl verschiebt die Quest in die ''Completed Quests''

>Eine Quest Löschen:
$questlog.deleteQuest("ID der Quest")

Dieser Befehl löscht die Quest komplett aus dem Questlog.

So ich hoffe, dass du mit dieser Erklärung etwas anfangen kannst. Beiw eiteren Fragen einfach ma in die Skript interne FAQ schaun.
Steht eigentlich auch alles drinn. Hell hat sich schon Mühe gemacht sein Skript verständlich zu machen.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Gimlykiller am September 07, 2008, 11:00:48
Klapt jetzt doch ich hab nur das Questlog falsh eingefükt
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am September 08, 2008, 15:56:33
nein^^
sowas kommt schonmal vor nach ner flasche scotch und ner nachricht ich soll in den thread gucken
also was is hier los^^


@hM: Hab mir mal erlaubt deinen Beitrag zu löschen, da du mir nichts abgegeben hast =)
Außerdem wäre es bei solchen Beiträgen angebracht auf Moderator informieren (oder es selbst machen) zu klicken und nicht einen Beitrag zu verfassen, oder Jungs?

~EE
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 08, 2008, 22:52:16
Keiner weiß wie du so auf Moderatoren Rufe reagierst, wenn du ne Flasche Scotsch intus hast^^
Das wollen wir auch gar nicht so im Detail wissen.
Mich hat das was gesucked, weil irgendwie das We mehrere unter 'Scotsch' durch das Forum gewandelt sind ^^

Aber naha Alk beiseite. Die pm war meine. Und ging um gesagte Probleme weiter oben und es
wäre nett, wenn du eine kleinigkeit dazu sagen könntest^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am September 09, 2008, 00:52:04
keine ahnung warum der die quest nich wirlich updated wenn ne variable drin is
wenn man direkt nen updatequest macht mit der gleichen questbeschreibung wie mein erstellen wird der text geupdated
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 09, 2008, 09:29:06
Also Eine Variable erstellen mit dem Namen des Quests.
Dann das Quest Updaten und die Variable +1 setzen?

Sry ich habe GAR keine Ahung von Variablen xD
kA wie ich solche Grundlagen übersprungen habe ^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am September 09, 2008, 13:12:57
na
nachdem die variable erhöht würde machste einfach direkt ein updateQuest
mit der gleichen beschreibung, dann wird die variable auch neu reingeschrieben

$questlog.addQuest("2","Quest 2",
"Beispiel Questbeschreibung
von Quest 2 - "+$game_variables[1].to_s)

dann wird irgendwann die variable 1 verändert,
und dann kann man direkt update machen

$questlog.updateQuest("2",
"Beispiel Questbeschreibung
von Quest 2 - "+$game_variables[1].to_s")

die questbeschreibung is genau die selbe wie beim erstellen aber die variable wird neu eingelesen
Titel: Re: hellMinors Simple Questlog
Beitrag von: Vega am September 09, 2008, 17:27:39
Super thx funktioniert einwandfrei^^
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am September 09, 2008, 22:55:55
Ah wunderbar jetzt kann ich endlich nen Quest machen, in dem die Blumen nicht
inna bestimmten Reihenfolge gesammelt werden müssen, damit das funzt xD

Oder auch nicht. Erstens mal ist da ein " zu viel. der macht andauernd nen Error wenn man es testhalber so einfügt ^^
Dann blicke ich jetzt gar nicht mehr durch.
Ich dachte da steht jetzt 0/10 oder sowas aber das will er bei mir irgendwie nicht.
Auch das mit den Variablen hochsätzen läuft nit.
Ich bin ein Variablen N00b somebody pls help me =(

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: tobistyle am Oktober 24, 2008, 17:58:57
Zitat
Beispiel um das Questlog zum Menü zu adden
Scene_Menu von Evil95
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = "Questlog"
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 4
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end

wenn ihr diesen skript benutzt, wird wenn ihr das speichern deaktiviert, das questlog deaktiviert!
um das zu ändern müsst ihr folgendes verändern:

in zeile 13:
s5 = Vocab::save
zu
s7 = Vocab::save

in zeile 12:
s7 = "Questlog"
zu
s5 = "Questlog"

in zeile 48:
when 5      # Save
zu
when 4      # Save

in zeile 52:
when 4
zu
when 5

dann geht das auch wieder mit den speichern deaktivieren
ich hoffe das war hilfreich^^

edit: wer zu faul ist kann sich den skript auch gleich so ziehen
Skript ohne Speicherbug
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = Vocab::save
    s5 = "Questlog"
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 5
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end
Titel: Re: hellMinors Simple Questlog
Beitrag von: rayman am Oktober 26, 2008, 16:57:24
Ich habe da en problem, und zwar:
wenn ich den Namen eingebe, kommt bei dem zweiten Wort immer so ein Biereck.
Kann man das irgenwie wegmachen?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Keyru am Oktober 26, 2008, 19:28:49
Ich würde auch mal gerne wissen, ob man Variablen anzeigen lassen kann?

z.B.
Quest: Sammle 5 Wolfsleder

Und dann das im Questlog immer steht:
Wolfsleder: \v[0004]/5.

Ob es eine andere Lösung gibt oder ob das der Scriptersteller integrieren kann, weil so geht es im Moment leider nicht.
Titel: Re: hellMinors Simple Questlog
Beitrag von: tobistyle am Oktober 26, 2008, 19:46:05
Ich würde auch mal gerne wissen, ob man Variablen anzeigen lassen kann?

z.B.
Quest: Sammle 5 Wolfsleder

Und dann das im Questlog immer steht:
Wolfsleder: \v[0004]/5.

Ob es eine andere Lösung gibt oder ob das der Scriptersteller integrieren kann, weil so geht es im Moment leider nicht.

versuch mal mit so einem common event
ich hab nur bis 3 gemacht, aber egal
also, wenn der switch an ist, wird die variable überprüft. ist sie 1, wird die wolfsledersammeln quest geupdatet, sodass angezeigt wird, dass du schon 1 wolfsleder hast

[gelöscht weil älter als 180 Tage]
Titel: Re: hellMinors Simple Questlog
Beitrag von: Keyru am Oktober 27, 2008, 15:10:55
versuch mal mit so einem common event
ich hab nur bis 3 gemacht, aber egal
also, wenn der switch an ist, wird die variable überprüft. ist sie 1, wird die wolfsledersammeln quest geupdatet, sodass angezeigt wird, dass du schon 1 wolfsleder hast

Danke :)
Werd ich so verwenden, vielen Dank :D
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 09, 2008, 15:19:35
Halo, ich habe Fehler mit dem Questlog.
Immer wenn ich ins Questlog reinkomme und dann auf Aktive Quests gehe kommt immer eine Fehlermeldung und das Game stürtzt ab. Das gleiche ist wenn ich ein neuen Quest erstelle, immer nach dem Gespräch beim NPC stürtzt das game ab. Kann mir einer helfen?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 09, 2008, 16:23:34
Kannst du mal den Eventcode Posten?
`Vllt machst du im Eingabe Skript etwas falsch?

Oder das eingefügte Skript hat einen Fehler.
Ging es vorher schon oder war dieser Fehler von Anfang
An vorhanden?

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 09, 2008, 18:45:21
Es ging früher mal, aber HellMinor hat ja was behoben mit den Quest pics und seitdem geht das nicht.
Wie gesagt es ist auch wenn ich ohne Quests auf active Quests gehe, dann kommt die meldung auch.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 09, 2008, 21:34:24
Schonmal einfach den Code neu eingefügt? Vllt hast du eine Zeile nicht
mitkopiert, oder du hast ein Zeichen vergessen.
Etwas in der Art. Das hatte ich bei meinem Ersten versuch auch.

Oder Das Skript zum Menü eintrag wurde durch die Änderung
mit der Verbesserung am Skript unwirksam oder Fehlerhaft...
Versuche es mal neu einzufügen (in einem Jungfreulichen Projekt)
und schau ob es geht.

Vllt hast du aber auch mit ein wenig glück noch eine ältere
Version des Skriptes auf dem Rechner, die du nehmenh könntest...

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Klex am November 19, 2008, 12:40:06
Hallo Leute,

Also mein Problem ist es, dass ich gerne in mein Spiel ein
Ruf - System einführen würde. Das heißt für so und soviel
Ruf bei der Fraktion passiert das und das. Ruf kann man
durch Monsterkloppen etc bekommen, ihr wisst was ich meine.

Da ich gerne das System als 3te Seite in das Questlog mit einbauen würde,
habe ich 2 Fragen.

1) wie mache ich eine 3te seite (glaube wurde schon weiter vorne mal beantwortet aber trotzdem)
2) Da ich alles mit Variablen mache (1mal Monsterkillen +1 Variable "Die Vergessenen")
    wollte ich fragen, wie ich die Variablenzahl im Questlog abfragen kann.
    Denn wenn ich einen Q erstelle
    $questlog.addQuest("8","Die Vergessenen","Euer Ruf beträgt \v[3]  ","Aktive")
    Wird im Q-log nicht die Variablenzahl abgefragt sondern es steht da "Euer Ruf beträgt [](Kasten) [3]"

Wäre nett, wenn mir da wer weiterhelfen könnte!

Grüße Klex
Titel: Re: hellMinors Simple Questlog
Beitrag von: Lanari am November 19, 2008, 12:45:20
WoW Lässt Grüßen.. ot..
Titel: Re: hellMinors Simple Questlog
Beitrag von: Klex am November 19, 2008, 12:48:36
Joa du hast es erfasst xD
Die Idee klau ich von wow aber ich finde
bei einem größeren Spiel (mein ziel sind 50 stunden playtime)
Ist so ein Rufsystem ne feine Sache :D
Titel: Re: hellMinors Simple Questlog
Beitrag von: Lanari am November 19, 2008, 13:01:56
Und es Streckt das Spiel Gerne mal um 2-10 stunden :D wenn mans bischne schwer macht^^
Titel: Re: hellMinors Simple Questlog
Beitrag von: Hanmac am November 19, 2008, 13:36:11
zeig mal dein ruf system

PS: du müsstest jedesmal den Text des Quest updaten wenn sich eine zahl ändert
automatisch geht das nicht
Titel: Re: hellMinors Simple Questlog
Beitrag von: Klex am November 19, 2008, 13:42:46
Ok genau das wollte ich eigendlich nur wissen.
Dass das nicht automatisch geht. Das System ist wie
ich schon Sagte eingendlich Simple

set Variable "Die Vergessenen" 0
für jedes Monster das du killst add Variable "Die Vergessenen" 1
Jede Quest die du erfüllst        add Variable "Die Vergessenen" 5

Wenn Variable "Die Vergessenen" = 12 dann kann man sich Schwert X, Y beim Händler der Vergessenen kaufen.
Und deswegen wollte ich einfach irgendwo irgendwas haben, wo der
momentane Ruf (der momentane wert der Variable "Die Vergessenen") angezeigt wird.
Wäre halt schön gewesen, wenn man das auf eine 3te Seite im Questlog quetschen könnte
mit einer Quest, die den Wert der Variable "Die Vergessenen" abfrägt und anzeigt!
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 21, 2008, 17:46:21
Schonmal einfach den Code neu eingefügt? Vllt hast du eine Zeile nicht
mitkopiert, oder du hast ein Zeichen vergessen.
Etwas in der Art. Das hatte ich bei meinem Ersten versuch auch.

Oder Das Skript zum Menü eintrag wurde durch die Änderung
mit der Verbesserung am Skript unwirksam oder Fehlerhaft...
Versuche es mal neu einzufügen (in einem Jungfreulichen Projekt)
und schau ob es geht.

Vllt hast du aber auch mit ein wenig glück noch eine ältere
Version des Skriptes auf dem Rechner, die du nehmenh könntest...

Sk!p

Ich hab das schon gemacht... es läuft einfach nicht. Auserdem hab ich das nicht im Menu sonder öffne das mit F5. Es klappt ja es zu öffnen, aber wenn ich dann auf Active Quests gehe stürtzt es ab.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 22, 2008, 12:45:30
Stürzt das ganze Spiel ab, oder bekommst du nur einen
Skript Error?
Naja ist ja eigentlich egal, wenn was am Autragsskripting falsch wäre, würde der
Fehler schon auftreten, wenn du den Quest in die Active's kopiert
bekommst.

Ich kann dir zum verrecken nicht sagen woran es liegt, hatte ja selbst einige
Probleme mit dem Skript, aber als ich es neu einfügte,waren
die Fehler behoben.
Vllt ma ne Pm an hM schicken und anfragen.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 22, 2008, 16:10:52
Naja danke Skip, der Fehler kommt auch, wenn ich mit der Person spreche die den Quest gibt. Aber ich schau mich nach nem anderem Skript um...

*edit*
Da steht noch nichtmal in welcher line oder so, nur: Syntax error while running Skript.
Mehr steht da nicht.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 22, 2008, 16:15:26
Hast du das mal probiert in einem neuen Projekt
das Skript einzufügen und zu versuchen ob das so funktioniert?
Wenn das geht, kollidiert es vllt mit irgendetwas in deinem
Spiel...

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am November 22, 2008, 16:29:20
Syntax error while running Script - weist auf nen fehler innem call script code
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 22, 2008, 16:38:14
Jo, hab ich gemerkt. Ich hab das Call-Skript also verbessert. Jetzt kommt fast die gleiche Fehlermeldung, die etwas von  addquest sagt. (Auch wieder ohne Zeile.) Im neuem Projekt klappt alles wunderbar.

*edit*
(http://img246.imageshack.us/img246/9066/16549283sl1.png) (http://imageshack.us)
(http://img246.imageshack.us/img246/16549283sl1.png/1/w800.png) (http://g.imageshack.us/img246/16549283sl1.png/1/)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 23, 2008, 10:19:43
Das sagt dir, dass du in in dem CallSkript, welcher den
Autrag erteilt und in die Running Quests haut einen Fehler gemacht hast.

Ein Zeichen was nicht erkannt wird, ein Zeichen was du vergessen hast.
Oder einfach eine Ressozurce genommen, mit der das Skript nichts
anfangen kann...

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 23, 2008, 10:50:56
Nein der Fehler kam daher, dass er den Befehl addQuest nicht kannte, wie man auf dem Pic sehen kann. Ich hab mir dann mal angeguckt, welches meiner Skripte alles auch auf Scene_title zugreift. Wie ich gesehen hab, war es MOG Title Miria. Also hab ich den Scenetitle Teil vom Questlog darein editiert. Es hat danach alles wunderbar geklappt. Aber ich hab nach einer besseren Lösung gesucht. Und dann hat mir Hellminor erklärt, wie ich das am besten Löse. Das ist ganz simpel:
Einfach das Questlog unter das Titelskript packen!
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 23, 2008, 16:16:02
LoL
Ah alles klar. Auch nicht schlecht ^^
Warum schwer wenns auch einfach gehen kann.
Naja wenns denn jetzt klappt. Dann Herzlichen Glückwunsch.
Dann kannste ja endlich damit weiter machen mit dem du mal
vor einiger Zeit angefangen hast ^^

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am November 30, 2008, 11:38:49
Ich bin noch ein sagen wir blutiger N00b beim RPGVX daher kommt hier eine sehr dumme Frage:
Mit welcher Taste öffnet man den Skript?

MFG,
Twonky
Titel: Re: hellMinors Simple Questlog
Beitrag von: Klex am November 30, 2008, 12:17:11
Du musst ihn in dein Menü einfügen.

Zitat
Beispiel um das Questlog zum Menü zu adden
Scene_Menu von Evil95
#==============================================================================
# ** Scene_Menu_for_Simple_Questlog_by_Evil95
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s7 = "Questlog"
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    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)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      when 4
        $scene = Scene_Questlog.new
      end
    end
  end
end
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Questlog < Scene_Base
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    else
      $scene = Scene_Map.new
    end
  end
end

Wenn du das richtig gemacht hast kannst du ihn einfach vom Menü aus öffnen

Grüße Klex
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 30, 2008, 12:29:48
Oder du machst ein Commonevent, in dem du die Bedingung: Taste X gedrückt machst(X ist irgenteine Taste). Dann musse ins Common Event das Skript mit nem Befehl aufrufen. Ich mach mal kurz ein Screen.

R= W(Auf der Tastatur)
L= Q(Auf der Tastatur)

*edit*
(http://img167.imageshack.us/img167/8544/questup7.png) (http://imageshack.us)
(http://img167.imageshack.us/img167/questup7.png/1/w800.png) (http://g.imageshack.us/img167/questup7.png/1/)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am November 30, 2008, 12:53:02
Okay das habe ich jetzt...
folgendes Problem:

Jetzt kommt immer eine Meldung und das Spiel hört von selbst auf!
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 30, 2008, 12:58:14
Was den für ne Fehlermeldung?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 30, 2008, 13:08:24
Ich lege dir ans Herz den Threat vorher schon einmal
auf diesen Fehler abzusuchen.
Ja ich weiß das ist nervig aber mittlerweile haben wir
fast semtliche Fehlermeldungen die es geben 'kann' durch
und mittlerweilse steht auch zu jeder dieser Meldungen eine
Lösung parat.

sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am November 30, 2008, 13:09:25
Wenn ich dann Q drücke (Das ist die Taste die ich eingestellt habe)
kommt dann immer diese Meldung:

NameErrot occurred while running script.

unitialized constant Game_Interpreter::Scene_Questlog

und danach schließt sich das Spiel

Trotzdem cooles Questsystem wenn´s funktionieren würde bei mir^^

MFG,
Twonky
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am November 30, 2008, 13:26:07
Das ist löblich, und auf diesem Weg füge ich
noch hinzu, dass du bitte keine Doppelposts machst.

Es soll da n Admin geben (habe ich gehört) der darauf,
sehr gereizt reagiert. Zurecht.
Gott erschuf die 'Edit' Funktion.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am November 30, 2008, 13:52:39
OK,
ich habe mir jetzt mal alles durchgelesen und keinen Beitrag gefunden der ansatzweise auf meinem zustimmt...
also,
wer mir helfen kann schickt mir bitte eine PM oder schreibt hier ins Forum.

Ich bedanke mich für jede (brauchbare) Antwort

Danke im Vorraus ;-)

MFG,
Twonky
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am November 30, 2008, 15:45:43
Genau dieser Fehler kam bei mir mal. Was hast du alles sonst noch für Skripts? Wo hast du das eingefügt?
Bei mir lag es an einem Titel Skript.
Titel: Re: hellMinors Simple Questlog
Beitrag von: endeffect am Dezember 01, 2008, 23:25:03
Hey ist es möglich als Spieler die Quests zu löschen? wenn man die zb nicht mehr machen will? falls nicht das wäre super super n1 wenn das wer adden könnte ...



greetz end
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am Dezember 02, 2008, 04:46:42
1. Da es den Befehl gibt einen Qest zu löschen und man ihn
    auch irgendwann löschen muss kann man das natürlich tun.
    Wie und auf welche Weise, ist nicht vorgeschrieben.

2. Irgendwer addet das? Das Script ist von hellMinor.
    Wenn er an ihm keine Änderung vornimmt tut es keiner.

Sk!p

punkt 3 war unnötig ~ hell
Titel: Re: hellMinors Simple Questlog
Beitrag von: endeffect am Dezember 02, 2008, 08:45:55
1. mir ist klar das man das quest mit einem befehl löschen kann aber nur mit id und nur wenn ich das irgendwo reingemacht hab aber der spieler selbst kann nicht quests löschen


2.Könnt auch jemand anders nen menü eintrag schicken womit löschen möglich ist..



greetz end

punkt 3 war unnötig ~ hell
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Dezember 02, 2008, 11:11:29
@twonky : gib mal den eventcode , könnte sein das du ein $ vergessen hast

@effect : ich frag mich grad welchen sinn es hat eine quest vom spieler löschen zu lassen o_O wenn man eine quest nich machen will macht man sie einfach nich O_o
Titel: Re: hellMinors Simple Questlog
Beitrag von: endeffect am Dezember 02, 2008, 12:20:39
Naja kommt drauf an wieviel quests in einem spiel vorkommen wenns 100 + sind beendet man sicher nicht alle quests.. und dann hat man irgendwann einen überfüllten questlog
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am Dezember 02, 2008, 16:04:25
Ich habe es jetzt ich habe v.1.12 jetzt gemacht jetzt funktioniert es juhu^^

Okay jetzt kommt hier eine ganz doofe Frage:

Wie kann man Quests damit erstellen?

D.N.S
Bitte nutze die Edditier Funktion und vermeide Doppelposts.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am Dezember 02, 2008, 16:05:07
Ich sage es dir nicht noch einmal Twonky.
Wenn du nicht aufhörst hier die Doppelposts aneinander
zu reihen wirst du gemeldet!

@ hM
Es hat wohl eher so den Effekt, das man eine Quest abbrechen kann, wenn man
keine Lust mehr hat sie fortzusetzen oder zu Ende zu führen, weil sie
mittlerweile vllt überflüssig ist.
Mich speziell würde es nerven das ganze spiel lang ne abgebrochene Quest
die ich nicht machen will im Log rumhöngen zu haben ;)

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: endeffect am Dezember 02, 2008, 16:35:06
genau so meine ich wie skip es gesagt hat.



greetz end
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Dezember 02, 2008, 18:01:08
ich muss das ganze ding ma neu machen wenn ich zeit hab
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am Dezember 03, 2008, 16:31:19
Wie kann man denn jetzt neue Quests machen????
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am Dezember 03, 2008, 17:09:56
Wer lesen kann ist klar im Vorteil.
Im Skript steht eine FAQ, und die ist nicht da weil sie schön aussieht.

Lese sie und du wirst die Antwort auf deine Frage finden...

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: shichi_aoi am Dezember 12, 2008, 19:19:10
Wenn ich ein Quest adde stürzt das Spiel an der Stelle ab, "syntaxerror while running script"...
habs auch mal in einem jungfräulichen, neuen Projekt versucht, aber da kommt das gleiche.
Bin ich denn blöde?
Habs auch mit verschiedenen Kommasetzungen versucht, einmal so wie's direkt im Script steht, und dann einmal so, wie's hier irgendwo im Thread stand... nüschte...
Hilfe, Hilfe.
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am Dezember 12, 2008, 19:31:32
Wie hast du das geaddet? Zeig mal bitte ein Screen.
Hast du irgentwelche anderen Skripts?
Hast du das über Main eingefügt unter den Standartskripts?
Hast du für jeden Quest auch ein Bild gemacht?

mfg. eugene
Titel: Re: hellMinors Simple Questlog
Beitrag von: shichi_aoi am Dezember 12, 2008, 20:00:05
Ich hab hier mal ein Sample: http://rapidshare.com/files/172776996/Questlogtest.zip.html (http://rapidshare.com/files/172776996/Questlogtest.zip.html)

Das komische ist, wenn ich den Callscript kopiere und einfüge, klappt es. Aber sobald ich die Beschreibung ändere, kommt der Error .__. Name und ID kann ich ändern, nur Beschreibung nicht.

Wie gesagt, jungfräuliches Testspiel ohne andere Scripts. Und Bilder für Quests hab ich nicht gemacht, aber müsste auch ohne klappen, weil tut es ja so lange ich nicht die Beschreibung ändere :D
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am Dezember 12, 2008, 20:07:30
Hab den Fehler gefunden. Nach $questlog.addQuest muss direkt die Klammer kommen, ohne Leerzeichen.

mfg. eugene
Titel: Re: hellMinors Simple Questlog
Beitrag von: shichi_aoi am Dezember 12, 2008, 20:09:23
Eh, wie kommt da denn ein Leerzeichen hin, wenn ichs so kopiert habe, wie es im Script steht? Macht der das automatisch, wenn man das nochmal editiert? Vielen Dank ^^
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am Dezember 12, 2008, 20:10:15
Ich hab echt keine Ahnung, aber es scheint jetzt zu klappen. Da bin ich froh.

mfg. eugene
Titel: Re: hellMinors Simple Questlog
Beitrag von: frostwolf_13 am Dezember 28, 2008, 13:32:02
wo muss ich den skript einbauen (bei main villeicht), und wie kann ich questsaktivieren, also das jemand die quests gibt?
Titel: Re: hellMinors Simple Questlog
Beitrag von: eugene222 am Dezember 28, 2008, 16:40:22
Du fügst das Skript über Main ein, so wie jedes andere Skript.

Zitat
# Um eine Quest zu erstellen kann man dieses Template benutzen :
# $questlog.addQuest("Unique ID","Quest Titel","Quest Beschreibung")


Das setzt du in das Event rein.
Also. du wählst unter Eventbefehl Skript aus und schreibst das rein:

$questlog.addQuest("Unique ID","Quest Titel","Quest Beschreibung")

Unique ID ist die ID des Quests
Quest Titel ist der Titel
Quest Beschreibung ist die Beschreibung des Quests

mfg. eugene
Titel: Re: hellMinors Simple Questlog
Beitrag von: Gilgamesch am Januar 01, 2009, 14:52:33
Mal eine ganz blöde Frage: Wie bekomme ich es hin, dass nach Leerzeichen in den Questnamen kein eckiges Kästchen (als Schriftzeichen) erscheint?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Emelie Rose am Januar 11, 2009, 17:01:38
kann jemand vill. noch ein html reader energi einbauen? damit man z.b. bilder und icons so wie auf dem Bild einfügen kann.

(http://img455.imageshack.us/img455/3807/questlogv22hl.png)

ps eine script vorlage hätte ich was das html betrifft nur ist das für den xp und somit ungeeignet. ich weiss auch nicht wie umbauen geschweige denn nachher in den queslog reinstellen.
http://www.rpg-studio.de/forum/index.php?page=Attachment&attachmentID=2882&h=7616a44fdc7b07e2a8e2d8046750d229482560a0 (http://www.rpg-studio.de/forum/index.php?page=Attachment&attachmentID=2882&h=7616a44fdc7b07e2a8e2d8046750d229482560a0)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Sk!p am Januar 11, 2009, 17:13:19
Bilder sind doch schon im Script integriert.
Die FAQ ist dein Freund.

Sk!p
Titel: Re: hellMinors Simple Questlog
Beitrag von: Emelie Rose am Januar 11, 2009, 17:26:17
ich weiss aber ich möchte es nicht unten links sondern ober der Questbeschreibung. Weiss nicht wie ändern im script.
und ausserdem möchte ich icons im titel anzeigen lassen
Titel: Re: hellMinors Simple Questlog
Beitrag von: Goldenboss am Februar 08, 2009, 15:13:45
Hi,

habe das Script eingebaut. Klappt soweit sehr gut.

Dankeschön.

Gruß, Markus.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Goldenboss am Februar 15, 2009, 18:12:45
Hi

hätte nun eine Frage.

Ich habe folgende Quest gescriptet:


$questlog.addQuest("1","Der verlorene Ring","Der
Ehering von meinem
Vater ist irgendwo
im Haus verloren
gegangen. Ich habe
mich bereit erklärt,
ihn zu suchen.","0")

Wie kann ich nun praktisch dafür sorgen, dass ein anderes Event den Status "0" ausliest und dann (wenn dem so ist), die Quest updatet. Mit Bedingungen? Wenn ja, wie soll die aussehen.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Februar 18, 2009, 17:48:39
conditional branch , seite 4 -> script
$questlog.getQuestState("Unique ID") == 0

Titel: Re: hellMinors Simple Questlog
Beitrag von: Goldenboss am Februar 18, 2009, 18:08:17
Dankesehr für die Antwort. ;)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Emelie Rose am Februar 21, 2009, 18:17:44
gibt es eigendlich jetzt ne erweiterung zu diesem Questlog?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Juni 03, 2009, 21:19:18
bugfix für das bilder fehler is jetz drinne
Titel: Re: hellMinors Simple Questlog
Beitrag von: Cloud Crescent am Juni 04, 2009, 13:43:47
Ich habe einen Fehler gefunden und zwar wird bei Version 1.3 die Questbeschreibung nicht mehr angezeigt. Bei Version 1.2 funktioniert es, kann aber auch nur bei mir so sein.

Habe den Fehler gefunden.
Hoffe es stört Onkel Hell nicht das ich in seinem Quelltext Rumeditiere:
In Zeile 309 unter if defined?(@data[id][2])
muss @quest_helper.write_text(@data[id][2]) stehen.
Danach hat es bei mir super funktioniert.

Titel: Re: hellMinors Simple Questlog
Beitrag von: Onkel Hell am Juni 04, 2009, 15:00:15
fixed
Titel: Re: hellMinors Simple Questlog
Beitrag von: Cloud Crescent am Juni 04, 2009, 15:06:09
War ich zu spät.

Übrigens Super Script!
Titel: Re: hellMinors Simple Questlog
Beitrag von: CJW8 am Juli 01, 2009, 14:52:52
Hallo

Ich bin neu hier und habe mal ein Frage.

ZUerst, ich habe das was ich wissen will schon als Frage gefunden aber irgendwie keine Antwort darauf.

Folgendes.

Ich habe ein Quest erstellt, es wird angenommen und in die Questliste erstellt. Das Klappt schonmal sehr gut.

Nun findet der Held das gesucht und will die Quest abgeben, dann kommt folgender Fehler.
(http://rapidshare.com/files/250673124/001.JPG)

Wenn ich dann reinschauen in den Skript springt er gleich an die Stelle und da steht dann:    actor = $game_actors[@parameters[1]]

Nun weiß ich nicht weiter.

Ich hoffe man kann mir eine Antwort geben, die auch dumme verstehen denn ich bin in solchen sachen eigendlich ein Noob.

Vielen dank im Vorraus.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Ðeity am Juli 01, 2009, 16:23:26
Zitat
Nun findet der Held das gesucht und will die Quest abgeben, dann kommt folgender Fehler.
Ich weis nicht, ob ich der Einzige bin aber ich werde aus dem Satz nicht schlau. Vielleicht kannst du es genauer erklären und den Befehl den du benutzt posten. So könnte die wesentlich besser geholfen werden.
MfG
Deity
Titel: Re: hellMinors Simple Questlog
Beitrag von: RaZZoR am Juli 01, 2009, 16:39:25
Ich glaube er meint: "Nun findet der Held das Gesuchte und will die Quest abgeben, aber dann kommt folgender Fehler!"

Also normal solltest du bei dem gewünschten Questgeber (Npc) einfach den Befehl $questlog.completeQuest("Unique ID") (Unique ID = ID deines Quests) eingeben und das Quest sollte unter "Complete Quests" aufgeführt werden. Belohnung der Quest kannst du ja dann im Event einfach einstellen.
Was anderes kann ich mir unter deinem Problem nicht vorstellen.

MfG RaZZoR
Titel: Re: hellMinors Simple Questlog
Beitrag von: Franky am September 26, 2009, 14:23:39
Fehlermeldung:

Script 'Quest-Log' line 351: EOFError occured - End of File reached
(da wo der Pfeil ist)

#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)    
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
  
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
-> $activelog           = Marshal.load(file)
    $completedlog         = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end


Was muss getan werden, damit es läuft?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Hanmac am September 30, 2009, 11:16:43
@Vorposter: hast du versucht etwas zu laden, was du nicht mit dem qeust gespeichert hast?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Franky am September 30, 2009, 14:14:37
Noch mal von Anfang an:
-Ich habe das Script in mein Projekt eingefügt
Wenn ich das Questlog aufrufen will (Menü) soll ich ja diesen Befehl nutzen:
$scene = Scene_Questlog.new
Der muss in Common Events? Oder wo hin muss das?

-Ich habe noch keine Quests geaddet, da ja so wie so noch nichts funktioniert.
Aber wenn ich eine Quest adden will, muss ich ja folgenden Befehl in das Event mit der Quest schreiben:
$questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
Genaus so wie es da steht, nur eben anstatt Unique ID => Name des Events und Quest Title usw... ist ja klar.

Das heisst: Ich habe bis jetzt nur das Script eingefügt, sonst noch gar nichts.

So, das waren erst mal die 2 Fragen.

Zum Schluss noch:
Der Fehler den ich hier reingeschrieben habe:
Liegt es daran, dass ich noch keine Quests eingefügt habe für das Questlog?
Oder, dass ich den Aufruf-Befehl an die falsche Stelle geschrieben habe?
Oder etwas ganz anderes?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Colonios am September 30, 2009, 15:11:34
Du musst diesen Befehl zum "Questlogrufen" auch in einem Event per "Call Script..." auf dem dritten reiter eingeben.
Du kannst es also über eine Parallele abfrage machen und eine Taste bestimmen, die man drücken muss um das Questlog zu rufen, du kannst auch in jedem raum ein event setzten, das man anlabern kann um das questlog zu rufen (sehr unschön) oder du kannst ein CE machen, dass dann durch ein Item aktiviert wird.

MfG
Titel: Re: hellMinors Simple Questlog
Beitrag von: Franky am September 30, 2009, 16:38:32
Du musst diesen Befehl zum "Questlogrufen" auch in einem Event per "Call Script..." auf dem dritten reiter eingeben.
Du kannst es also über eine Parallele abfrage machen und eine Taste bestimmen, die man drücken muss um das Questlog zu rufen, du kannst auch in jedem raum ein event setzten, das man anlabern kann um das questlog zu rufen (sehr unschön) oder du kannst ein CE machen, dass dann durch ein Item aktiviert wird.

MfG

Ok, danke ich probier es nochmal.
Hoffentlich kommt die Fehlermeldung nicht mehr.

Post zusammen gefügt: September 30, 2009, 17:12:58
Der Fehler kommt nicht mehr, weil ich zu erst einen neuen Spielstand machen musste... Naja, wie auch immer.

Habe es hinbekommen, dass das Questlog durch ein Item aufgerufen wird.
Aber, wie das mit einem Tastenbefehl geht, habe ich nicht ganz verstanden, bzw. ob/wie man eine Extra-Auswahlfunktion im Menü einbauen kann.
Titel: Re: hellMinors Simple Questlog
Beitrag von: timas am November 03, 2009, 12:44:00
Aähm ich hab mit dem Questlog auch ein Problem:
Ich hab in mein Graphik´s ordner einen neuen Ordner namens Questmaps erstellt und mein Bild (256*200 pixel) dort rein getann es heißt auch wie mein Quest und trotzdem zeigt mir mein Questlog das Bild nicht an! Was kann ich da machen?
und noch ne Frage : Wie kann ich den Quest log deutsch machen? so das da Abgeschlossene Quest´s Steht und nich completQuest´s

entschuldigung wegen dem offtopic aber ich wusste nich wo ich das hin schreiben sollte
und ein neues Thema wollte ich nicht eröffnene

mfg
Tima
Titel: Re: hellMinors Simple Questlog
Beitrag von: Domin0e am November 03, 2009, 13:23:03
Zeile 44-46 ist für dich interssant, da du dort die Begriffe ändern kannst.
Was allerdings dein Problem mit den Bildern angeht kann ich dir leider nicht helfen.. :(


Gruß,
Domin0e
Titel: Re: hellMinors Simple Questlog
Beitrag von: Franky am November 03, 2009, 16:40:50
Aähm ich hab mit dem Questlog auch ein Problem:
Ich hab in mein Graphik´s ordner einen neuen Ordner namens Questmaps erstellt und mein Bild (256*200 pixel) dort rein getann es heißt auch wie mein Quest und trotzdem zeigt mir mein Questlog das Bild nicht an! Was kann ich da machen?
und noch ne Frage : Wie kann ich den Quest log deutsch machen? so das da Abgeschlossene Quest´s Steht und nich completQuest´s

entschuldigung wegen dem offtopic aber ich wusste nich wo ich das hin schreiben sollte
und ein neues Thema wollte ich nicht eröffnene

mfg
Tima


Bei den Bildern musst du darauf achten, dass der Name im Questmaps-Ordner nur der Name der Quest ist!

Z.B.: Heisst die Quest "Hilfe" => im Ordner heisst es dann auch "Hilfe" (ohne.png), dann muss es gehen!
Hatte das Problem auch xD.
Titel: Re: hellMinors Simple Questlog
Beitrag von: timas am November 03, 2009, 19:01:40
Geht Trotzdem nicht . das hab ich alles schon probiert ...
Titel: Re: hellMinors Simple Questlog
Beitrag von: Franky am November 04, 2009, 18:26:42
Geht Trotzdem nicht . das hab ich alles schon probiert ...
Ist das Format im Skript png? Keine Ahnung, was da sonst schief laufen könnte.
Titel: Problem beim starten
Beitrag von: DominikWW am März 26, 2010, 22:56:39
Habe ein Problem. Hab den Script eingefügt  aber es kommt immer diese Fehlermeldung beim Starten des Spiels:

Script  'Quest' line 369: SyntaxError occurred.

Kann mich bitte jemand helfen?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Kvote am März 27, 2010, 02:03:22
Also zuallererstmal sehen deine Beiträge eher nach Post-Hunting aus als nach echten Fragen, dann ist es nicht einfach zu sagen was für ein Problem du hast, aber du scheinst dich mit Skripten nicht wirklich auszukennen, und bevor du wie wild jetzt überall rumpostest schreibe deine Fragen ins Technikforum unter SKRIPTE da haben wir einen Bereich der extra für Fragen zu Skripten ist :)
Am besten machst du screens von deinen Fehlermeldungen und postest sie mit dann können wir dir eher helfen!

Kvote
Titel: Re: hellMinors Simple Questlog
Beitrag von: DominikWW am März 27, 2010, 15:33:34
Sry bin hier neu im Forum und kenn mich hier noch nicht so gut aus

Aber  danke für deine Antwort.

Dumme Frage aber wie setz man hier eig. ein Bild rein? >.<

Titel: Re: hellMinors Simple Questlog
Beitrag von: _D3nn!§_ am März 27, 2010, 16:48:02
Wenn deine Meldung kommt drückst du "Druck", fügst das in paint ein und lädst das bild bei einen Host hoch (z.b. : http://www.pic-upload.de/ (http://www.pic-upload.de/) ) und dann zeigst du das mit (http://) !

Post zusammen gefügt: März 27, 2010, 16:48:57
Wenn deine Meldung kommt drückst du "Druck", fügst das in paint ein und lädst das bild bei einen Host hoch (z.b. : [url]http://www.pic-upload.de/[/url] ([url]http://www.pic-upload.de/[/url]) ) und dann zeigst du das mit (http://) !
(Oder du knipst das Skriptteil eben ab !)
Titel: Re: hellMinors Simple Questlog
Beitrag von: DominikWW am März 27, 2010, 17:01:26
Ok danke D3nn!

Also diese Fehlermeldung kommt dann immer:

http://www.pic-upload.de/view-5088817/Unbenannt.jpg.html (http://www.pic-upload.de/view-5088817/Unbenannt.jpg.html)
Titel: Re: hellMinors Simple Questlog
Beitrag von: _D3nn!§_ am März 27, 2010, 17:20:54
Schick mal am besten den Skript (der bei dir wohl 'Quest' heißt!)
Und du hast mich etwas falsch beschrieben xD
Titel: Re: hellMinors Simple Questlog
Beitrag von: DominikWW am März 27, 2010, 19:48:15
Das ist der Questlog Script 1.3a
Titel: Re: hellMinors Simple Questlog
Beitrag von: _D3nn!§_ am März 27, 2010, 20:22:17
Den ganzen bitte nicht nur den Namen
Titel: Re: hellMinors Simple Questlog
Beitrag von: DominikWW am März 28, 2010, 15:40:18
Hier ist der Script:
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.3a - 04.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------ 
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        $activelog[i][3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        return $activelog[i][3]
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------ 
  def kill_questwindows
    @quest_window.dispose
  end 
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end     
    end
  end
#------------------------------------------------------------------------------ 
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------ 
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------ 
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------ 
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------ 
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------   
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------   
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if Cache.questmaps(@data[id][1]).is_a?(Bitmap)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if Cache.questmaps(@data[id][1]).is_a?(Bitmap)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
     
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)   
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#============================================================================== 
  def self.questmaps(filename)
    begin
      load_bitmap("Graphics/Questmaps/", filename)
    rescue
      return nil
    end
  end
end
Titel: Re: hellMinors Simple Questlog
Beitrag von: Ðeity am März 28, 2010, 16:13:03
Ich klär mal auf.
Hell hat ausversehen beim Kopieren des Scripts ein end zuviel erwischt. Am Ende des Script war also eine Leerzeile und ein "end" zuviel, mit dem das Script nichts anfangen konte.
Mir ist das gestern Nahct aufgefallen als bei Kvote der selbe Fehler erschienen ist, also habe ich es in Hells Beitrag editiert.
Heute hast du aber in deinem letzten Beitrag wahrscheinlich nicht das Script aus deinem Editor genommen, sondern das von der ersten Seite welche von mir gestern nach editiert wurde. ^^
Nimm genau das Script was auf der ersten Seite ist oder das was du heute gepostet hast und der Fehler wird nicht mehr auftreten.

MfG
Deity
Titel: Re: hellMinors Simple Questlog
Beitrag von: DominikWW am März 28, 2010, 19:01:45
Ah danke jetzt funtzt =)
Kann ich aber irgenwie einstellen dass das Questlog im Menü angezeigt wird?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Ðeity am März 28, 2010, 19:10:56
Ebenfalls auf der 1. Seite nachzulesen. Weiter im 1. Post von Hell ist eine Möglichkeit gegeben.

MfG
Deity
Titel: Re: hellMinors Simple Questlog
Beitrag von: DominikWW am März 28, 2010, 21:06:15
Ah danke habs übersehen
Titel: Re: hellMinors Simple Questlog
Beitrag von: Galadriela am Juni 20, 2010, 10:54:00
öhmmmm, ich wollte einen extra ordner für die bilder erstellen, aber wie geht das? im materialmanager kann man keinen extra ordner erstellen
Titel: Re: hellMinors Simple Questlog
Beitrag von: Master Chain am Juni 20, 2010, 11:28:10
Hmm dort sollst du es auch net mach sondern im Projekt Ordner
(http://imagesload.net/img/Grafik1.png)
Titel: Re: hellMinors Simple Questlog
Beitrag von: Galadriela am Juni 20, 2010, 11:35:43
oooohhhhhh lach, na auf die idee muß man erst mal kommen ;DDDD danke danke
Titel: Re: hellMinors Simple Questlog
Beitrag von: Pokejhm am August 21, 2010, 01:14:01
Wieso geht das Script bei mir nicht? Ich habe das Genommen, wo eigentlich das mit dem "end" gefixxt wurde. Es geht aber immer noch nicht.
Mit einem "end" hinzu oder weg.
Hier mein Code, den ich von vorne genommen habe:
#==============================================================================
#  Simple Quest-Log
#
#  Version : 1.3a - 04.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script for a Quest-Log
#
#==============================================================================
#==============================================================================
# F.A.Q.
#==============================================================================
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)
#
# To add a quest make a new call script with this Template :
# $questlog.addQuest("Unique ID","Quest Title","Quest Description","State")
#
# To update a Quest description make a new call script with this Template :
# $questlog.updateQuest("unique ID","Quest Description","State")
#
# To move a Quest to Completed Quests make new call script with this Template :
# $questlog.completeQuest("Unique ID")
#
# To delete a Quest from the Active-Questlog make a call script with this
# Template :
# $questlog.deleteQuest("Unique ID")
#
# You can get the current state of a Quest with this Template :
# $questlog.getQuestState("Unique ID")
# This may be useful in a conditional branch if you want to react with a
# special Quest-State
#
# If u want to add a Questmap, create a folder named Questmaps in your
# Graphics folder. The name of the Questmap must be the same as the Quest
# in the Game. Be sure that you set the correct MAP_FORMAT.
# A Quest-Map should have a size of 265*200 px !
# I.E. : If your Quest is named QuestYXZ , the picture in the Questmap folder
# has to be QuestYXZ.png if your map is a .png
#==============================================================================
# Setup
#==============================================================================
QUESTLOGNAME = "Questlog"               # Questlog Menu name
QUEST_MENU_ITEM_1 = "Active Quests"     # Active Quest name
QUEST_MENU_ITEM_2 = "Completed Quests"  # Completed Quest name
SIZE_VAR = 20                           # Character Size
MAP_FORMAT = "png"                      # Quest-Map Ending
#==============================================================================
class Questlog
#==============================================================================
  def addQuest(id,header,description,state = "")
    $activelog << [id,header,description,state]
  end
#------------------------------------------------------------------------------ 
  def updateQuest(id,description,state = "")
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog[i][2] = description
        $activelog[i][3] = state
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def completeQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $completedlog << $activelog[i]
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def deleteQuest(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        $activelog.delete_at(i)
        break
      end
    end
  end
#------------------------------------------------------------------------------
  def getQuestState(id)
    for i in 0..$activelog.size-1
      if $activelog[i][0] == id
        return $activelog[i][3]
        break
      end
    end
  end
 
end
#==============================================================================
class Scene_Questlog < Scene_Base
#==============================================================================
  def initialize(from_menu = true)
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @help_window.set_text(QUESTLOGNAME,1)
   
    s1 = QUEST_MENU_ITEM_1
    s2 = QUEST_MENU_ITEM_2
   
    @select_window = Window_Command.new(544,[s1,s2],2,1)
    @select_window.y = 55
    @select_window.active = true
   
  end
#------------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @select_window.dispose
  end
#------------------------------------------------------------------------------ 
  def kill_questwindows
    @quest_window.dispose
  end 
#------------------------------------------------------------------------------
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new
    else
      $scene = Scene_Map.new
    end
  end
#------------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    if @select_window.active
      @select_window.update
      update_select_selection
    elsif @quest_window.active
      @quest_window.update
      update_quest_selection
    end
  end
#------------------------------------------------------------------------------
  def update_select_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @select_window.index
      when 0
        $oldlog = false
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      when 1
        $oldlog = true
        @quest_window = Window_Quest.new(0,110,272,(24*11)+42)
        @select_window.active = false
        @quest_window.active = true
      end     
    end
  end
#------------------------------------------------------------------------------ 
  def update_quest_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      kill_questwindows
      @select_window.active = true
    end
  end

end
#==============================================================================
class Scene_Title < Scene_Base
#==============================================================================
  alias create_game_objects_additions create_game_objects
  def create_game_objects
    create_game_objects_additions
    $questlog = Questlog.new
    $activelog = Array.new
    $completedlog = Array.new
  end
 
end
#==============================================================================
class Window_Help < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
  end
 
end
#==============================================================================
class Window_Description < Window_Base
#==============================================================================
  def initialize(x = 0,y = 0, width = 544, height = WLH+32)
    super(x, y, width, height)
    @text = nil
    @contents_x = 0
    @contents_y = 0
    @line_count = 0             # Line count drawn up until now
    update
  end
#------------------------------------------------------------------------------ 
  def new_line
    @contents_x = 0
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end
#------------------------------------------------------------------------------ 
  def finish_message
    @text = nil
    @line_count = 0
    @contents_x = 0
    @contents_y = 0
  end
#------------------------------------------------------------------------------ 
  def write_text(str)
    if str != nil || str != ""
      create_contents
      update_msg(str)
    end
  end
#------------------------------------------------------------------------------ 
  def update_msg(str)
    str.each_line{|str2|iterator(str2)}
    finish_message
  end
#------------------------------------------------------------------------------   
  def iterator(str2)
    contents.font.size = SIZE_VAR
    contents.draw_text(@contents_x, @contents_y, str2.size*40, WLH, str2.delete("\n"))
    c_width = contents.text_size(str2).width
    @contents_x += c_width
    new_line
  end
 
end
#==============================================================================
class Window_Quest < Window_Selectable
#==============================================================================
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 1
    self.index = 0
   
    @quest_helper = Window_Description.new(271,110,273,(24*11)+42)
   
    refresh
  end
#------------------------------------------------------------------------------
  def refresh
    @data = []
    if !$oldlog
      for i in (0..$activelog.size-1)
        @data.push($activelog[i])
      end
    else
      for i in (0..$completedlog.size-1)
        @data.push($completedlog[i])
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
#------------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index][1]
    if item != nil
      rect.width -= 4
      self.contents.draw_text(rect.x, rect.y, 172, WLH, item)
    end
  end
#------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_description(@index)
    update_selection
  end
#------------------------------------------------------------------------------
  def update_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @quest_helper.dispose
      if @quest_map != nil
        @quest_map_bitmap.bitmap.dispose
        @quest_map_bitmap.dispose
        @quest_map.dispose
        @quest_map_viewport.dispose
        @quest_map = nil
      end
    end
  end
#------------------------------------------------------------------------------   
  def update_description(id)
    if defined?(@data[id][2])
      @quest_helper.write_text(@data[id][2])
      if @quest_map == nil
        if Cache.questmaps(@data[id][1]).is_a?(Bitmap)
          self.height /= 3
          @quest_map = Window_Description.new(0,210,272,(24*7)+38)
          @quest_map_bitmap = Sprite.new
          @quest_map_viewport = Viewport.new(3,213,268,(24*7)+35)
          @quest_map_bitmap.viewport = @quest_map_viewport
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
          @quest_map_bitmap.viewport.z = 150
        end
      else
        if Cache.questmaps(@data[id][1]).is_a?(Bitmap)
          @quest_map_bitmap.bitmap = Cache.questmaps(@data[id][1])
        else
          self.height *= 3
          @quest_map_bitmap.bitmap.dispose
          @quest_map_bitmap.dispose
          @quest_map.dispose
          @quest_map_viewport.dispose
          @quest_map = nil
        end
      end
     
    end
  end
 
end
#==============================================================================
class Scene_File < Scene_Base
#==============================================================================
  alias write_save_data_adds write_save_data
  def write_save_data(file)
    write_save_data_adds(file)   
    Marshal.dump($activelog,           file)
    Marshal.dump($completedlog,        file)
    Marshal.dump($questlog,            file)
  end
 
  alias read_save_data_adds read_save_data
  def read_save_data(file)
    read_save_data_adds(file)
    $activelog           = Marshal.load(file)
    $completedlog        = Marshal.load(file)
    $questlog            = Marshal.load(file)
  end
end
#==============================================================================
module Cache
#============================================================================== 
  def self.questmaps(filename)
    begin
      load_bitmap("Graphics/Questmaps/", filename)
    rescue
      return nil
    end
  end
 
end
Titel: Re: hellMinors Simple Questlog
Beitrag von: Domin0e am August 21, 2010, 09:03:11
Fehlermeldung wäre hilfreich~
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am August 23, 2010, 14:59:24
Ich habe ein Problem mit dem Questlog Script.
Ich weiß das die Frage schonmal gestellt wurde, aber ich habe es irgendwie nicht verstanden.

Wie kann ich das Questmenü aufrufen?
Tut mir Leid, aber ich kenne mich nicht aus :(
Titel: Re: hellMinors Simple Questlog
Beitrag von: Domin0e am August 23, 2010, 15:09:22
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)

Wenn du den Questlog per Event aufrufst musst du bei den Event Commands auf Seite 3 unter Advanced "Script..." benutzen.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am August 23, 2010, 15:25:48
# The Global Questlog-Name is $questlog
# To open the Questlog from the menu just do $scene = Scene_Questlog.new
# To open the Questlog from an event $scene = Scene_Questlog.new(false)

Wenn du den Questlog per Event aufrufst musst du bei den Event Commands auf Seite 3 unter Advanced "Script..." benutzen.

Bei Common Events oder wo?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Domin0e am August 23, 2010, 16:42:43
Wenn du den Questlog über ein Item aufrufst dann in den Common Events, ja. Ansonsten in dem Event, welches den Questlog aufruft.
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am August 23, 2010, 17:50:38
Nein, ich will das man jetzt Q drückt und dann das Questfenster erscheint.
Geht das nicht?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Ðeity am August 23, 2010, 18:17:34
Doch dafür musst du ein Common Event mit parallelem Prozess haben.
Dort machst du eine Abfrage, ob die Taste Q(L) gerückt wurde und wenn dies der Fall ist, führst du den Call Script aus.
Ein Waitbefehl könnte vor unnötigen Aufwand schützen.

MfG
Deity
Titel: Re: hellMinors Simple Questlog
Beitrag von: Zak am August 24, 2010, 08:46:40
Frisst das aber nicht an der Leistung des Spiels? Wäre es per Script nicht besser, wenn es schon eingebaut wäre?
Titel: Re: hellMinors Simple Questlog
Beitrag von: Twonky am August 24, 2010, 18:10:11
Doch dafür musst du ein Common Event mit parallelem Prozess haben.
Dort machst du eine Abfrage, ob die Taste Q(L) gerückt wurde und wenn dies der Fall ist, führst du den Call Script aus.
Ein Waitbefehl könnte vor unnötigen Aufwand schützen.

MfG
Deity

Was muss den da für ein Switch hin?

EDIT: Vielen Dank nun funktioniert es endlich :D
Titel: Re: hellMinors Simple Questlog
Beitrag von: Deses am September 13, 2010, 17:47:19
Hey Leute... Ich habe ein kleines großes Problem mit dem Questlog, will ich es per button starten klappt alles soweit, will ich allerdings das Questlog ins Menü einbauen gehts nicht.
So stell ich es beispielsweise über Speichern und geh ins Game und geh aufs Questlog öffnet sich die Save Scene ... bei den anderen ist es das selbst =/
Das einzige das funktionierte ist an 1. Stelle ..
Habe auch bereits die vorgschlagene Lösung von Seite 1 probiert- da erhalte ich sobald ich ins Menü will direkt einen schwarzen Bildschirm und das wars ^^

Hoffe ihr könnt mir helfen :D

EDIT: hat sich erledigt -.- war zu blöd :D
Titel: Re: hellMinors Simple Questlog
Beitrag von: Anykey am Dezember 01, 2010, 15:49:15
Leute vieleicht  könnt ihr mir helfen  bei simpel qeuslog wenn ich eine beschrebung schreibe also ändere läuft der script net alles wunder paar titel und so aber ändere ich die bschreibung bums script läuft nicht
SimplePortal 2.3.3 © 2008-2010, SimplePortal