• Announcements

    • RagingHobo

      Forum Upgraded!   07/17/2017

      We have successfully upgraded our forum to the latest version! Some things have moved around but don't worry everything is still there, we still need to find updated versions of the plugins we were using previously to restore everything to the way it was. There will be a running topic in the Feedback and Support in case you notice something wrong. Before you do so please clear your browser cache and close your browser completely to rule out a caching issue. Thank you for your patience during the outage and while we get everything back to 150%  
estriole

EST - NOTEBOOK SYSTEM

95 posts in this topic

[VXACE] EST - NOTEBOOK SYSTEM
Version: 2.5
 
Author 
Estriole (yin_estriole@yahoo.com)
also credits
Woratana for Adv text Reader VX version
Jet for Notebooks Menu VX version
Pacman for converting Jet Notebooks menu to ACE
 
Introduction
This script make you able to have txt files and view it from the games in a form of notebook entry. useful for making in game information / lore. or simple tutorial.
 
Feature
- type your information in txt files
- view the info from the game
- support escape code from most message system (except some code)
- have decorate tags such as to italic the text. [cen] to center the text alignment.

to right the text alignment


- can have category (sorta like folder)
- can sort the entry
- can launch common event on the text reader scene (Requires tsukihime Scene Interpreter script)
- can launch common event AFTER the text reader scene
 
Version History:

v 2.5 - 2013.08.04 > when returning from text_reader it will pick the last chosen entry
Add category feature. see NEW FEATURE FROM v2.5 in script header
Add sorting feature. see NEW FEATURE FROM v2.5 in script header
Add Common Event Launch feature. see NEW FEATURE FROM v2.5 in script header
if you manage to do something great using this feature share with me in this topic please



How to use:
see script header

Screenshot:


Notebook menu
addentryandgotonotebook.png

Text viewing
estadvtextreadernormal.png

with face
estadvtextreadernameonl.png

with face and title
estadvtextreadernameinf.png



New Screenshot (new feature from v2.5)


Category
category%20feature.jpg

Sorting
sorting%20feature.jpg

Common Event at reader scene
common%20event%20at%20reader%20scene.jpg

Choice at reader scene
choice%20at%20reader%20scene.jpg



Script
http://pastebin.com/ryjyH2vK

Demo

https://www.dropbox.com/s/k3lwift5c0k1uge/EST_NOTEBOOK_SYSTEM.rar

Edited by estriole
Kanatakkun, TheFaceless and Archeia like this

Share this post


Link to post
Share on other sites

Hum, I wonder why this went by almosr unnoticed. Nice script! Only one question, though: would it be possible to say, like, some message window, please output lines 744-747? So you could store all dialogue in one file.

 

That's what would make this script really useful. I know there's a system for reading tlk files, but that's way too much for my needs.

Share this post


Link to post
Share on other sites

@Caveras : sorry but i don't really get what you means.

if you means does this support long text file. i never try that but i thing it could works fine (except if too long maybe there will be some delay)

 

if you means can you adjust the size.

 

 

experiment in here :

class Window_Reader < Window_Base

attr_accessor :firstline, :nowline

 

def initialize(text,actorx,type)

if actorx == nil

case type

when "default"

super(0,0,544,416)

else;

super(0,116,544,300)

end

else

case type

when "default"

super(0,0,544,416)

else;

super(0,116,544,300)

end

end

 

 

just change the super(bla bla bla) to whatever you need. (actually if you know some programming you could made new type that sized like message windows). but for it to work like message windows such as when you press enter it would go to next line would need some rework in :

def update

super

@window.update

process_exit if Input.trigger?(: B) or Input.trigger?(:C)

process_down if Input.repeat?(:DOWN)

process_up if Input.repeat?(:UP)

end

 

add input trigger for :c which scroll 5 lines down maybe?

 

 

is that what you want? i could try that if you really want that.

Edited by estriole

Share this post


Link to post
Share on other sites

I believe I can modify it to my needs, thanks for the helpful answer!

 

What I meant was that you store ALL of your game's dialogue in one text file, and whenever text pops up in the game, you just call the line with the correct text to make it show up in-game. (So you don't have to enter text in the RPG Maker editor and then choose Text Message, for example, but just script-call a line from your text file with all the text already stored into it. Something like this: http://www.rpgmakervxace.net/topic/4060-scripter-tool-talk-file-parser/ but not as sophisticated/elaborate.)

Share this post


Link to post
Share on other sites

in theory it's actually possible. you have to pass on the lines in the script call.

 

 

module SceneManager

def self.callplus(scene_class,filename,startline=1,actor = nil,type="default",infocontent="") #<< edit this line

@stack.push(@scene)

@scene = scene_class.new(filename,startline,actor,type,infocontent) #<<and this line

end

end

 

then modify

class Text_Reader < Scene_MenuBase

 

OPEN_SPEED = ESTRIOLE::OPEN_SPEED

SCROLL_SPEED = ESTRIOLE::SCROLL_SPEED

TEXT_FOLDER = ESTRIOLE::TEXT_FOLDER

def initialize(file_name,startline = 0,actor = nil,type="default",infocontent="",mode = 0) #<<this line

 

then maybe:

def start

super

file = File.open(TEXT_FOLDER + @filename)

@text = []

for i in file.readlines

@text.push i.sub(/\n/) {}

end

if @mode == 1

@text[0] = @text[0].sub(/^./m) {}

end

 

@window = Window_Reader.new(@text,@actorx,@type)

@window.visible = true

@window.oy += startline #<<add this line?

 

but you might want to disable the up and down function because if not people will be able to see previous message and next messages. or set the limit on how many lines people can scroll down but i think that's harder than using normal conversation text. :D

 

 

haven't test above since i'm currently outside and have little time to interact with the script. if that works can you tell me. :D.

Edited by estriole

Share this post


Link to post
Share on other sites

Alright, thanks! I'll be looking at this later and give feedback if I'm successful!

 

( Though it seems as if it's a more time-consuming way than the regular editor way ;) )

Edited by Caveras

Share this post


Link to post
Share on other sites

@Caveras : yes. especially regular editor way have lots of function that not yet scripted in adv text reader. such as wait (\.) etc. name boxes.

In theory it could all be scripted.

but i guess it's better to script a new script that use built in message box but instead of using the editor use the script call and read the txt and point to which line to what line to show.

 

the use of this adv text reader script is better for showing tutorials (you could add image and description below it) or book scene or whatever but for message it still possible but not easy to use.

Share this post


Link to post
Share on other sites

Sorry about the bump, but is it possible to have a demo by any chance? :D

I kinda want to see how you applied them. There are some things I am unsure about <:3c

Edited by Archeia

Share this post


Link to post
Share on other sites

ok wait... i will upload demo later. now i have to pick up my son from school. after that i will create the demo and upload it for you from my office. :D.

 

edit : done

 

http://www.mediafire...6s7kqo9b271b2vp

 

it's just some basic function i mentioned above. to make it better like making tutorial scene. just add images and then add line break manually (press enter :D) and add text below the pictures. :D. it's just experimenting with the text files to get view you want.

 

In the demo i also included some messages script so you can see that this script support all escape codes recognized by system when old mode off.

 

(message script have some modification i made to the script - mainly disabling some escape codes. since it conflict with the other message script in general not because my script. example: disabling \ii from modern algebra since yanfly already have same function and conflict with it, etc)

 

to improve this script. i still need learn from modern algebra script because he able to combine process escape character + paragraphing in his script. i still haven't get how he do that... but i still got a life so i might or might not made update to this script >.<.

Edited by estriole

Share this post


Link to post
Share on other sites

Estriole, beautiful!! The fact that your using MogHunter's Wallpaper makes me think maybe your about to my hero. Are you familiar with Moghunter's Animated Title? You know the particle effect he does on that? Is that possible to do on this Text Window? I would *love* to see particle effects in text windows. Im pretty crazy about anything flashy...be it particles, animations, weather, lighting, .. or whatever I haven't found yet! This window is ten times better than the "skins" I have seen around,.. and I am happy to have found it! But if you can add the particle effect thing, you will have reached the next level!

Share this post


Link to post
Share on other sites

actually mog_wallpaper ex have particles too. did you check it out.

 

 

==============================================================================

# Serão necessários os seguintes arquivos na pasta GRAPHICS/SYSTEM.

#

# Menu_Particles.png #<<< see menu particles :P.

# wallpaper

#

#==============================================================================

 

 

if you want to use mog wallpaper script as windows for this script. just add this below.


class Text_Reader < Scene_MenuBase
 include WALLPAPER_EX

#--------------------------------------------------------------------------
# â— Start
#--------------------------------------------------------------------------				
 alias mog_layout_ex_start start
 def start
  mog_layout_ex_start
  set_window_opacity
 end  
end

 

there you go. wallpaper + shiny little particles :D. hope this help

 

edit: don't forget... put this snippet below the mog wallpaper script. but above est-adv reader script.

the order is

 

mog wallpaper

this snippet

est adv reader

Edited by estriole

Share this post


Link to post
Share on other sites

Ooh too nice! I'll test it out tonight or tomorrow!Unfortunatelt I work 14 hours today. Thanks estriole. This looks fantastic!!

 

Edit: Just realized this could be used to display a manga of a story sequence... a perfect excuse to use one of those manga creator's I have seen flying around on the net. I think I just felt my creativity tingle! Use the wallpaper ex to display the manga ... But be able to use the Text Reader to lay down prologue and ending story to the manga... Oh I love it.

Edited by Nate The Great

Share this post


Link to post
Share on other sites

Hey, I love this script! It's pretty much just what I've been looking for since I moved from XP to VXA. Just a couple quick things if I may impose on you:

 

Is there a way to make it so the text is 'unlocked' when you read it, and add a scene where you can select the unlocked texts from the menu?

 

Like if I pick up Book 1 and Book 3 off of a shelf (but leave Book 2), 1 and 3 are unlocked via a script call and at that point if I go to the Book menu(which is just a selection I would add to the normal game menu), I can pick Book 1 or Book 3 from the list and read it?

Share this post


Link to post
Share on other sites

sorry for long response. i have been on vacation for two weeks.

@sacrifyx : it possible. but you need to script the gui for that again. (i'm still not too good at scripting gui / menu >.<. mostly now by trial and error which is not neat...)

 

the concept is maybe by creating hash which contain the text path + menu shown text + true/false. and when true added to the menu as menu item. then when selecting that menu item. execute the call with text path as the filename.

 

it sound easy but i'm not too good at scripting gui. so maybe other scripter willing to take the gui instead :D.

Share this post


Link to post
Share on other sites

hey estriole! I finally got around to implementing your script ... I got it working fine, now I am trying to use MOG's wallpaper ex with it. I tried copying your snippit but I get a crash

 

script"estriole mog patch" line 2: Name error occurred

uninitialized constant text_reader::Wallpaper_EX

 

Not certain what's wrong there...

Share this post


Link to post
Share on other sites

@nate: try putting the patch below mog wallpaper script.

i think that caused the issues since when the script start the module Wallpaper_EX not defined yet (it define in mog script). i will edit my previous post to put this information too.

 

edit : i better tell my arrangement instead.

put the script in this order:

 

mog wallpaper script

est-mog patch

est-adv reader script

Edited by estriole

Share this post


Link to post
Share on other sites

Beautiful! I see shiny lights on my story! Hehe... I am a simple man who is amused by simple things.

Now all I need to do is get the background picture part to work. It imported the wallpaper just fine from

wallpaper EX...and that's cool... but for some reason when I used your /pic[guns] and use your picture

of guns as a test... the actual story window just says [guns] at the bottom. Hmm... wierd, considering I copied

the event directly from the demo. Ah well, some coffee will help me figure this out.

Share this post


Link to post
Share on other sites

don't forget to copy the message system script :D.

/pic is message system feature... just copy the all message script from my demo. (i made it compatible each other by commenting what is not necessary). don't forget the arrangement.

Edited by estriole

Share this post


Link to post
Share on other sites

D'oh! I swear... I am not usually that thick-headed. Of course I needed the messaging scripts! Why did I not copy over all the scripts? Sorry about that....

Everything is working beautifully! No problems...

Currently I am using it to tell a prologue before the game starts... and its working perfect for that.

Here is an idea for other's thinking of using this script...

 

If using this script to tell a story of previous events:

 

you can setup scenes in your game... play the scene.. take a screenshot...

Now use a sepia tone filter on the screenshot...

Add that screenshot as a /pic to the txt file...

Now you have a cool visual aid to accompany your story.

 

Great work Estriole! I am loving this.

So here is a question... is it possible to trigger a sound effect when you reach a certain line of text?

For example...

the screen displays... person starts reading the text ... when they scroll down a certain number of lines...

they reach something like /soundeffect(id) and it auto plays a sound effect to accompany the text or picture being shown?

Just an idea!

Share this post


Link to post
Share on other sites

@nate : sorry but i don't think that possible. since the text is drawn before.

the press up and down is only scrolling that window to see the content. so no way to understand if it reach /sound.

if changing the message system... the sound will be played at the beginning since that's when the text written.

 

i even thought about workaround by sending the lines when to play sfx at scenemanager.callplus. but the problem is

process up and down is using pixel. not lines. perhaps i could implement lines (but lines is how many times process down. not actual lines in text).

but still it won't be easy. (you need to test play every scene to see the lines you will play the sfx :D)

 

still interested? :D.

Share this post


Link to post
Share on other sites

Haha, wow! Well thought out! It sounds like quite an undertaking! It would be a nice feature, but it sounds like a lot of trouble. One of those things that may not be worth the effort required...

I wonder if Vlue's special Keybinds script could be used in conjunction to tell the down arrow key to add a number to a variable? Once the variable reaches X ( where x equals number of lines down) ... the sound plays.

Hrmm. I might try and test that out later ...

Share this post


Link to post
Share on other sites

just assign adding and reducing variable in the script process up and down. (with same condition as scrolling it down).

then add play sfx when lines included in your scene call.

 

 


module ESTRIOLE

 

SPECIAL_PAGE_SFX = ["Cursor1", 80, 100]

 

end

 

module SceneManager

def self.callplus(scene_class,filename,actor = nil,type="default",infocontent="", playsfxarray=[])

@stack.push(@scene)

@scene = scene_class.new(filename,actor,type,infocontent,playsfxarray)

end

end

 

class Text_Reader < Scene_MenuBase

 

def initialize(file_name,actor = nil,type="default",infocontent="",playsfxarray=[],mode = 0)

@filename = file_name

@infocontent = infocontent

@playsfxarray = playsfxarray

if actor == nil

@actorx = nil

else

@actorx = $game_actors[actor]

end

@mode = mode

@type = type

@lines = 0

end

 

def process_down

Sound.play_cursor if (@window.oy + 272) < @window.contents.height

@window.oy += SCROLL_SPEED if (@window.oy + 272) < @window.contents.height

@lines += 1 if (@window.oy + 272) < @window.contents.height

Sound.play_special_page_sfx if @playsfxarray.include?(@lines)

end

 

def process_up

Sound.play_cursor if (@window.oy + 272) < @window.contents.height

@window.oy -= SCROLL_SPEED if @window.oy > 0

@lines -= 1 if @window.oy > 0

Sound.play_special_page_sfx if @playsfxarray.include?(@lines)

end

 

 

end

 

module Sound

 

def self.play_special_page_sfx

filename = ESTRIOLE::SPECIAL_PAGE_SFX[0]

volume = ESTRIOLE::SPECIAL_PAGE_SFX[1]

pitch = ESTRIOLE::SPECIAL_PAGE_SFX[2]

Audio.se_play("/Audio/SE/" + filename, volume, pitch)

end

 

 

end

 

 

 

add that below the original script

 

so try calling it with:

SceneManager.callplus(Text_Reader,"test.txt",nil,"text_title","Stupid Tutorial",[10,14,17])

the last argument sent is the array containing all the lines you want the special sfx to play.

it should play special sfx in lines 10, 14 and 17.

i didn't try that since i'm currently out of town. so if there's error. i will fix it as soon as i back. (about 13 november)

 

the only problem is if you want the special sfx in start (line 1). will need add some more code)

 

edit:

i forgot pass the variables. i already edit above.

the changes is in line:

module SceneManager
 def self.callplus(scene_class,filename,actor = nil,type="default",infocontent="", playsfxarray=[])
@stack.push(@scene)
@scene = scene_class.new(filename,actor,type,infocontent,playsfxarray)   #<<<< i forgot change that 
 end  
end

Edited by estriole

Share this post


Link to post
Share on other sites

Holy crap. Estriole I didn't mean for you to do that much work! Looks great. I'll test it when I get off work today. Thanks buddy! Way above and beyond the call of duty. Thank you again. This should help with a multimedia story. I love it

Share this post


Link to post
Share on other sites

see the post above. i forgot change the scene call to pass the variable

the changes is in line:

module SceneManager
 def self.callplus(scene_class,filename,actor = nil,type="default",infocontent="", playsfxarray=[])
       @stack.push(@scene)
       @scene = scene_class.new(filename,actor,type,infocontent,playsfxarray)   #<<<< i forgot change that 
 end  
end

Share this post


Link to post
Share on other sites

I Combine the old EST - ADV TEXT READER with JET Notebooks menu and thus i change the script name to:

EST - NOTEBOOK SYSTEM to reflect what this script can do now.

 

i also updated the first post for the newest feature.

 

basically now this can be used as notebook / journal scene. where you can add/remove entries freely. then read the content at will. you could also add this to yanfly menu engine AUTOMATICALLY. (see the config for it)

 

btw i haven't tested extensively the use RVDATA2 feature. where the notebooks all converted to RVDATA2. so report if there's any bug.

 

and since this script is combined script. so maybe it will be a little messy to look the configuration.

 

i also use this opportunity to see how much i've grown as scripter in past 5 months (see the change log :D)

Edited by estriole

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.