Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Super Simple Journal

Love, look at Tassadar's post up there ^  (Starts with "In Scene_Menu, replace...)

Skip Lambchop's "Window_Menu" & "Update Scene_Menu" steps, and do Tassadar's instead.

Then continue with the "Create Journal Entries" step.

Did you download Isopaha's demo?

Be Well
 
@Love:
Yes, I tried the script just earlier and it works fine with the SDK. I am using ver. 2.3, by the way.

Did you do the part Tassadar posted? If you did so, you should see a new command option added into your menu interface. The Journal display will be made accessible from there.

If not, you can try opening the journal directly by running a call script event with:

Code:
$scene = Scene_Journal.new

The demo posted here too has an example to that.
 
You give up too easy....  :)

I just tried it with the SDK2.3, and it works. 

However, since we modified Scene_Menu to add the journal, and the SDK also modifies
Scene_Menu, if the SDK is right above Window_Journal & Scene_Journal, the SDK menu wins.
So, we should just be able to move Scene_Menu below the SDK, so the bottom of your script editor should look like....

Scene_Debug
SDK
Scene_Menu
Window_Journal
Scene_Journal
Main

Give it a shot
 
This really works though there should be a option to check how many quests are completed as well as certain quests that trigger throughtout the story.
 
Yes, but that would reduce the Super Simpleness of it all... :)

Someone else mentioned that a second "Completed Quests" page would be cool.
And...  I'm planning on replacing the current Quest system I'm using with this one, so I'll take a stab at adding a "Right/Left Arrow" to switch "Current" & "Completed" views.

Some developers might also like to have a list of "Undiscovered" quests as well. That way if the player finished the game they can see if they missed anything.

Not sure what you mean by the second ER (Enhancement Request).
Each quest is triggered by setting a switch. You also use the same switch to test, in game, if that quest is active.

Be Well

[ EDIT ] I'm an idiot!  I didn't even notice in the "draw_item" method
Code:
      check = Bitmap.new("Graphics\\Pictures\\checkmark.png")
      self.contents.fill_rect(rect, Color.new(0,0,0,0))        
      if $game_switches[index + 200] == true
        self.contents.blt(0, @n, check, check.rect)
      else
        self.contents.draw_text(10, @n, 640, 32, "â—
 
Thanks,Brew! Thanks! Thanks! Thanks! But just one problem,it overlaps my menu also I've done everything right,I added everything,can you please please please please please please tell me how to solve this problem?
 
in Scene_Menu, "main" method, edit the 'y' values to match this...
Code:
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 256                           # changed
    # Make steps window
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 352                           # changed
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416                           # changed

Then, edit Window_Steps to look like:
Code:
#==============================================================================
# ** Window_Steps
#------------------------------------------------------------------------------
#  This window displays step count on the menu screen.
#==============================================================================

class Window_Steps < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)                                                   # changed
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 60, 32, "Steps")                       # changed
    self.contents.font.color = normal_color
    self.contents.draw_text(60, 0, 68, 32, $game_party.steps.to_s, 2)       # changed
  end
end
 
When I try to call it I get an error on that line after the line that looks like this: self.contents.draw_text(10, @n, 640, 32, "â—
 
Isn't there some way to make the window wider? I tried modifying  super(0, 32, 460, 330) in Window_Journal and changing the 460 value to like 550 and changing the 0 to something else, which does change the width, but then I can't change the x coordinate of the window for some reason, so I can't center it. No matter what I put in for x, it doe not change the x coordinate.
 
No worries, Love!  ;)

I'm predicting your next question will be, "How do I move the completed items to the end of the list?"  :)

I made a couple of modifications. (that being one of them.) As well as changing the 'for' loops & journal_height assignment so you don't have to update them. You only need to enter all your quests in the 'data' list, and it will figure out the size.
I also added an 'initialize' method to Scene_Journal to allow for a "callback" from the map or menu.  Change the menu call in Scene_Menu from:

$scene = Scene_Journal.new        # will return to map

to

$scene = Scene_Journal.new(1)    # will return to menu

Here are the modified scripts:
Code:
#==============================================================================
# ** Window_Journal
#------------------------------------------------------------------------------
#  This window displays a journal.
#  Original Script - Lambchop
#  Moved completed quests to end of list & green text - Brew
#  Modified 'for' loops & 'journal_height' so you only have to edit the
#  data array. - Brew
#==============================================================================

class Window_Journal < Window_Selectable
# ------------------------
def initialize
   super(0, 32, 460, 330) 
   @column_max = 1
   refresh
   self.index = 0 
### to change the windowskin for the journal
#   self.windowskin = RPG::Cache.windowskin("RMXP4life_Wood.png")
###
 end


#--------------------------------------------------------------------------
# * Draw the contents of the item window
#--------------------------------------------------------------------------
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end 
   
   # populate your journal with entries. Each entry must match its switch number!
   @data = [] 
   @data[1] = "Help Man"
   @data[2] = "Kill Chicken"
   @data[3] = "Make cow eat"
   @data[4] = "Sniff the Glove"
   @data[5] = "Jump off a bridge after your friends"
   @data[6] = "Item 6"
   @data[7] = "Item 7"
   @data[8] = "Item 8"
   @data[9] = "Item 9"
   @data[10] = "Item 10"
   @data[11] = "Item 11"
   @data[12] = "Item 12"
   @data[13] = "Item 13"
   
   num = @data.size
      
   # variables
   @journal_height = (num - 2)*32   # y height of entire journal
   @n = 0                     # y coord for each entry
   @item_max = 0              # max items to display
   
   # draw the bitmap. the text will appear on this bitmap
   self.contents = Bitmap.new(width - 32, height+@journal_height)
      
   
   for i in 1..(num - 1)
     if ($game_switches[i + 100] == true) and ($game_switches[i + 200] == false)
       draw_item(i)
       @item_max += 1
     end
   end         
   for i in 1..(num - 1)
     if ($game_switches[i + 200] == true)
       draw_item_complete(i)
       @item_max += 1
     end
   end         
  
 end
   
#--------------------------------------------------------------------------
# * Draw an individual item in the window
#     index : Index of the item to be drawn
#--------------------------------------------------------------------------

 def draw_item(index)
      item = @data[index]
      rect = Rect.new(10, @n, 640, 32)
      self.contents.fill_rect(rect, Color.new(0,0,0,0))        
      self.contents.font.color.set(256,256,128,256)
      self.contents.draw_text(10, @n, 640, 32, "â—
 
Bojjenclon, it's most likely the 'item' in the next line. Did you update the line that reads:

    for i in 1..5

You need to change the '5' to the number of items in your list.


Immune, change the line in Scene_Journal:

    @journal_window.x = 90

to

    @journal_window.x = 45


Be Well


Nope, it's not a double-post! I'm answering new questions, just a 'lag' issue."
 
Can you post your Window_Journal script?
And tell me which Switch you're starting with.

Use:

[ spoiler ][ code ]  (without the spaces)
paste script here
[ /code ][ /spoiler ]

Be Well
 
Well duh. But seriosly, yeah I set the switch to on and nothing happens. I tried later in my game as well with a different switch, still nothing

Can someone repost that icon for the completed stuff?
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top