RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
"Simple" Quest log screen

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 86
Now i get error on line 70, i change the line to what i think is correct
And i get an error on line 35
so if u don't want to change it anymore it's ok, then i will just use an other quest script

***
Rep:
Level 89
I am yourself!
I'll investigate it. But for a moment, i've fixed the thingy on line 35, I just forgot to put -1 on it.
Symphony of Alderra : Memoirs of Life

Storyline : 200% (Overimaginatives)
Scripting : 100% (At last...)
Eventing  : 100%
Mapping   : 0.125%

**
Rep:
Level 86
Alright, I've been testing the demo provided, and trying to add a second quest of my own to it. However, I can't seem to make two quests at once.  They interfer with eachother, for example, if I select them both at once before working on either, the quest log will show me the last one I picked and be stuck on that one. However, if say... I start one, finish it, then start the next one, it says all my objectives have been met, when they haven't yet. 

I think I know where I'm going wrong, but not how to fix it.... in this line here

$names[0] = "Testing 2"

(my second quest name... origonal I know)

I think, since the first quest is

$names[0] = "Test"

I would need to change the 0 to a 1, however when I do that, I get an error when I go to open up the quest page. 

Then, I thought, all the things (Description, and Objective also) the 0 would have to be a 1, to indicate its for a different quest than, test, and so on..... but, even changing them all to 1 it isn't working.... I still get the error.

I had just copied the other quest, and changed all the switches and variables to quest 2. So, I can do the quest, but it doesn't show it that way in the quest log.  I'm not really sure what I have to do, to be able to have two quests at the same time, and have them both (or more than 2) show on the quest log. 

"Keep smiling, it makes people wonder what you're up to."

OK, so what's the speed of dark?
What happens if you get scared half to death twice?

Since there's a duck-billed platapus, is there just a plain platapus? If so... what does that look like?

***
Rep:
Level 89
I am yourself!
Check this out! It's free from bug (while I test it...).
And I added function to bypass subquest, but I didn't test it yet. Wanna be the first tester?

Code: [Select]
#==============================================================================
# Quest Log
#------------------------------------------------------------------------------
# ** Version 2.0c
# ** Original by Sthrattoff
#==============================================================================
# Description:
# This script add feature called "Quest Log".
# It's a quest-reminder feature that lets you to recall everything you need to
# be done.

# Instructions:
# Put this script above main.
# Read every instruction carefully.
# Please report any bug you encounter.

# How to Use:
# For adding details, follow this example:
# $game_system.quest_name.push (contents)
# etc. Do it for all details.

# Credits:
# See the header + Enterbrain.
#==============================================================================

# Supplement for Game_System
class Game_System
 
  attr_accessor :quest_name           # Quest's title
  attr_accessor :quest_length         # Quest's tasks
  attr_accessor :quest_description    # Quest's description
  attr_accessor :quest_objectives     # Quest's objectives
  attr_accessor :quest_marker         # Quest's marker variable
 
  alias old_initialize initialize
  def initialize
    old_initialize
    @quest_name = []
    @quest_length = []
    @quest_description = []
    @quest_objectives = []
    @quest_marker = []
  end
 
end

# Supplement for Scene_Map
class Scene_Map
 
  alias old_update update
  def update
    $game_system.quest_sort
    quest_size = $game_system.quest_name.size
    for i in 0..quest_size
      if $game_variables[$game_system.quest_marker[i].to_i].to_i >= $game_system.quest_length[i].to_i
        $game_system.quest_name.delete_at i
        $game_system.quest_length.delete_at i
        $game_system.quest_description.delete_at i
        $game_system.quest_objectives.delete_at i
        $game_system.quest_marker.delete_at i
        quest_size -= 1
      end
    end
    old_update
  end
 
end

# The window for Scene_Quest
class Window_Quest < Window_Base
 
  def initialize(id)
    super(0, 0, 480, 480)
    self.contents = Bitmap.new
    refresh
    @id = id
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 480, 32, $game_system.quest_name[@id].to_s, 1)
    self.contents.draw_text(0, 32, 480, 32, "Description")
    self.contents.draw_text(0, 192, 480, 32, "Objectives")
    self.contents.font.color = disabled_color
    size = $game_variables[$game_system.quest_marker[@id].to_i]
    for i in 0..size - 1
      self.contents.draw_text(0, 224 + i * 32, 480, 32, $game_system.quest_objectives[@id][i].to_s)
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 224 + size * 32, 480, 32, $game_system.quest_objectives[@id][size].to_s)
    self.contents.font.color = normal_color
    # Deskripsi dan segala methodnya...
  end
 
end

# Quest menu main view
class Scene_Quest
 
  def main
    @command = Window_Command.new(160, $game_system.quest_name)
    @command.x = 480   
    @quest = Window_Quest.new(@id)   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @command.dispose
    @quest.dispose
  end
 
  def update
    @command.update
    @quest.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)  # You may edit this line
      return
    end
    @id = @command.index
    return
  end
 
end

# NEW! Quest override functions
class Game_System
 
  def quest_sort
    edge = $game_system.quest_name.size
    for i in 0..edge
      for j in 0..edge
        if $game_system.quest_name[i].to_s < $game_system.quest_name[j].to_s
          # Store value at temporary variables
          $game_system.quest_name.push $game_system.quest_name[i]
          $game_system.quest_length.push $game_system.quest_length[i]
          $game_system.quest_description.push $game_system.quest_description[i]
          $game_system.quest_objectives.push $game_system.quest_objectives[i]
          $game_system.quest_marker.push $game_system.quest_marker[i]
          # Replace i-index values with j-index values
          $game_system.quest_name[i] = $game_system.quest_name[j]
          $game_system.quest_length[i] = $game_system.quest_length[j]
          $game_system.quest_description[i] = $game_system.quest_description[j]
          $game_system.quest_objectives[i] = $game_system.quest_objectives[j]
          $game_system.quest_marker[i] = $game_system.quest_marker[j]
          # Replace j-index values with temporary variable-stored values
          $game_system.quest_name[j] = $game_system.quest_name[edge + 1]
          $game_system.quest_length[j] = $game_system.quest_length[edge + 1]
          $game_system.quest_description[j] = $game_system.quest_description[edge + 1]
          $game_system.quest_objectives[j] = $game_system.quest_objectives[edge + 1]
          $game_system.quest_marker[j] = $game_system.quest_marker[edge + 1]
          # Clean up temporary variables
          $game_system.quest_name.pop
          $game_system.quest_length.pop
          $game_system.quest_description.pop
          $game_system.quest_objectives.pop
          $game_system.quest_marker.pop
        end
      end
    end
  end
 
  #----------------------------------------------------------------------------
  # bypass_subquest
  #
  # quest_name     : quest name that have subquest to be passed
  # subquest_index : index of subquest that have to be passed
  #----------------------------------------------------------------------------
  def bypass_subquest(quest_name, subquest_index)
    quest_index = $game_system.quest_name.index(quest_name)
    $game_system.quest_objectives[quest_index].delete_at subquest_index
  end
 
end
Symphony of Alderra : Memoirs of Life

Storyline : 200% (Overimaginatives)
Scripting : 100% (At last...)
Eventing  : 100%
Mapping   : 0.125%

*
Rep: +0/-0Level 85
Quote
i am using version 2.3 and im getting an error 


--------------------------------------------------------------------------------
Script 'Window_Command' line 18:RGSSError occurred.
Failed to create bitmap

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

self.contents = Bitmap.new(width - 32, @item_max * 32)

can someone tell me what is wrong?

I've been getting that same error, has anyone found a fix for it yet?  I tried replacing $scene = Scene_Menu.new(2) with $scene = Scene_Map.new, but it didn't work :(...  I'm also using BlizzABS, does anyone know if there's a compatability issue?  Sorry, I'm an experienced programmer, but not experienced with Ruby :(.....

***
Rep:
Level 89
I am yourself!
Sorry for my absence...

How to bypass a subquest:
Use Call Script on any map, type this:
Code: [Select]
$game_system.bypass_subquest(quest_name, subquest_index)

How does it works?
-> It will search the quest name.
-> Then it will delete the subquest. Index begin from 0. So if you want to bypass subquest 5, type 4.
« Last Edit: August 25, 2008, 10:23:04 AM by Sthrattoff »
Symphony of Alderra : Memoirs of Life

Storyline : 200% (Overimaginatives)
Scripting : 100% (At last...)
Eventing  : 100%
Mapping   : 0.125%

**
Rep: +0/-0Level 83
I hope that you can answer me, but Im using the script in my game. Everything works fine, but when I want to save or load something I get this error:

Script "Window_SaveFile" line 28: EOFError occured.

End of file reached

The line is:     
@characters = Marshal.load(file)

I dont get this error when I dont use this script.
So please help me.

***
Rep:
Level 89
I am yourself!
Alright, v2.3 users, time to re-copy paste that script. I've fixed the bugs.
Symphony of Alderra : Memoirs of Life

Storyline : 200% (Overimaginatives)
Scripting : 100% (At last...)
Eventing  : 100%
Mapping   : 0.125%

****
Rep:
Level 83
can you give me a few exsamples of how you would add a mission?
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


***
Rep:
Level 89
I am yourself!
you know how to use call script event command? use that, for code, use template provided on the script header...
Symphony of Alderra : Memoirs of Life

Storyline : 200% (Overimaginatives)
Scripting : 100% (At last...)
Eventing  : 100%
Mapping   : 0.125%

****
Rep:
Level 83
ok thanks, yea  i no how to do that i was edgey at first but i know a lil more about scripting now, im actualy concidering on replacing the script im using to do such a thing with yours... :-\
that is if i can figure it out.... lol perhaps you could compile a demo? DUR im stupid lol
ok heres what im doing....

copy your code above main, named Quest log
use and event and "script..." add this to that event in order i want?

 $names.push "Name"
 $types.push "Type"
 $description.push (["line1", "line2", ..., "Line5"])
 $objectives.push (["onjective1", ..., "objective12"])
 $var_ID.push ID_NUMBER

so...

$names.push "Save World"
$types.push  "what types are there?"
$description.push (["save world by destroying", "mr santa's castle!"])
$objectives.push (["retrive a rubber band", "travel across the dessert"])
$var_ID.push 5  <--- thats a varible i would set it too in that way?

is any of that right?
and then if i wanna make it complete i would use an event to change varible 5
to the value 12 ?

and do these show up in order of activated or in order of the varible number IE
"first to show up is the lowest varible value"
« Last Edit: December 03, 2009, 04:44:16 AM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com