Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

2 Pages V   1 2 >  
Closed TopicStart new topic
> Hermes (Message Script), Hermes Extends RPGXP's MEssage System
derula
post Oct 13 2011, 06:08 AM
Post #1


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




Hermes - Hermes Extends RPGXP's MEssage System

Version 0.4
Author derula
Release Date Feb 21, 2011


Introduction
Hermes replaces RPGXP's message system. It was originally based on AMS+, which was a modification of AMS I made to fix some bugs and introduce new features. As some may know, AMS is a (horribly broken) message script Dubealex based on XRXS's, which in turn is based on RPGXP's default Window_Message script. Little traces of the original script remain in Hermes.

The main goal of Hermes and all its predecessors is to have an extension of the original message window in a way that you can flawlessly upgrade from the latter to the former without losing any features - you'll only gain new ones. Tag names have been changed multiple times, but there are a few flavors of compatibility mode to ease the transition.


Features
  • Displays multiple message simultaneously
  • Shows messages over the heads of events, much like speech bubbles
  • Can connect the contents of multiple Show Text commands into one single message
  • Messages begin to scroll when they have more then four lines, requiring a key press every next three lines
  • Reintroduced tags from RM2k, like \|, \. (wait a second/quarter second), \^ (close message)
  • Reintroduced symbol insertion from RM2k (e.g., $k will display a heart; replacement table can be customized)
  • Reintroduced "Facesets" (like RM2k, but better)
  • A large list of other "tags" that can be used to format your message
  • New tags can easily be added if you know how to Ruby
  • Huge amount of preferences to play with, most of which can be changed and saved in-game

See the users' manual for details.


Script
Hermes uses a file-based scripts collection that is automatically loaded on the game's startup. This means, you only have to install a small script called Inserter once, after that you won't need to open RPG Maker or the script editor windows again to install or update Hermes. For a more detailed explanation, see the installation section of the users' manual. To download the current version of Hermes, visit its website.


Customization
Hermes has a large amount of settings, all of which are collected in *.rb files in the config subdirectory of the Hermes script archive. Many of these settings can be changed while the game is running, and will be saved to the game's save files. See this section of the users' manual to learn more.


Compatibility
As of 0.5, message tags Hermes is (will be) fully compatible to the standard RPGXP message system out of the box. Compatibility with older Hermes versions or AMS/AMS+ can be restored by a simple setting, however its usage is discouraged and unsupported. In 0.4, it is also slow. It is recommended to update your messages to work with Hermes. Apart from the tags though, Hermes can easily be configured to mimic RPGXP default.

Compatibility with other scripts is mostly un-tested; please let me know if there are compatibility issues with a certain script.


Screenshot



DEMO
To find the latest downloadable demo, visit the Hermes homepage.


Installation
Like described in the installation section of the users' manual, you install it like this:
  1. If Inserter is already installed into your project, skip to step 6.
  2. Open your project in RPGXP and then open the script editor.
  3. Insert a new script at the very top (not directly above main!) and name it Inserter.
  4. Open inserter.txt in an editor and copy its contents into the newly created script.
  5. Save the changes and close the script editor (you can close inserter.txt too).
  6. Open the Data\Scripts folder in your project folder (create it is it doesn't exist).
  7. If you're updating from an older Hermes version (0.4 or newer):
    • Descend in its folder and delete everything except the config folder.
    • Rename the config folder to something like config_old.
    • Go back up into the Scripts folder again.
  8. Extract the Hermes folder from the script archive into the Scripts folder.
  9. If you're updating from an older Hermes version (0.3 or older):
    • Open the script editor and find the Hermes script (or Hermes Configuration).
    • Copy the setting values into the appropriate files in config/*.rb.
    • Delete all the Hermes scripts from the script editor (except Inserter).
  10. If you're updating from an older Hermes version (0.4 or newer):
    • Merge your settings from config_old (>=0.4) into the respective config scripts.
    • Delete the config_old folder or move it somewhere else if you desire a backup.



FAQ
-


Terms and Conditions
You're free to use Hermes in any kind of project (free, commercial, unrelated to RPGXP, motive for toilet paper, ...). It would be nice if you mentioned my name, showed me your finished project, or tell me you love me, but neither is required. While I do not care if you mention my name, please do not explicitly claim that it's your script.

This is beta quality, free-as-in-beer software; I do not claim it serves any useful purpose or doesn't mess up other stuff. You're not entitled to any free support or compensation if something does go wrong.


Credits

Thanks go out to:
  • Enterbrain, XRXS, Dubealex for the base and many ideas
  • KD, who had helped me a lot with scripting
  • Satoru Takabayashi for Ruby/Romkan
  • Naramura, Noa, Yinyamina and SilentResident (graphics for the Demo)


This post has been edited by derula: Oct 14 2011, 12:36 AM
Go to the top of the page
 
+Quote Post
   
joey101
post Oct 14 2011, 11:15 AM
Post #2


DeadlyWeapon6
Group Icon

Group: Revolutionary
Posts: 196
Type: Developer
RM Skill: Skilled




Whoa! this looks pretty cool i might use this for my first game!

thanks


__________________________
Go to the top of the page
 
+Quote Post
   
SilentResident
post Oct 15 2011, 12:16 AM
Post #3


PZE Team Member
Group Icon

Group: Revolutionary
Posts: 669
Type: Developer
RM Skill: Skilled




One of the greatest message scripts around - more advanced than the AMS everybody knows.

Good job done, Derula smile.gif

This post has been edited by SilentResident: Oct 15 2011, 12:16 AM


__________________________
Create, Share and Play your own Zelda 2D games with the Updated Project Zelda Engine!
The official website here: zeldaengine.net
Download it here: www.rpgrevolution.com
Download it here: www.rmrk.net
Download it here: www.rmxpunlimited.net
Download it here: www.creationasylum.net
Download it here: www.zfgc.com
Go to the top of the page
 
+Quote Post
   
superafroboy
post Oct 16 2011, 06:11 AM
Post #4


Level 3
Group Icon

Group: Member
Posts: 39
Type: None
RM Skill: Skilled




I've been using this in my project for a while now, and it really is great. My favourite feature is probably the animated facesets.


__________________________
Go to the top of the page
 
+Quote Post
   
derula
post Oct 16 2011, 07:05 AM
Post #5


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




Thanks everybody!

QUOTE (superafroboy @ Oct 16 2011, 04:11 PM) *
My favourite feature is probably the animated facesets.


The next version will come with a few new options for facesets. Not sure when it will be out though.
Go to the top of the page
 
+Quote Post
   
SilentResident
post Oct 16 2011, 07:41 AM
Post #6


PZE Team Member
Group Icon

Group: Revolutionary
Posts: 669
Type: Developer
RM Skill: Skilled




QUOTE (derula @ Oct 16 2011, 06:05 PM) *
Thanks everybody!

QUOTE (superafroboy @ Oct 16 2011, 04:11 PM) *
My favourite feature is probably the animated facesets.


The next version will come with a few new options for facesets. Not sure when it will be out though.



Derula, the speech bubbles -_- Just installed a new software called sticky notes - just to remind me everyday of the bubbles I have to make. And so many other things I forget.

Edit: including the avatar

This post has been edited by SilentResident: Oct 16 2011, 07:41 AM


__________________________
Create, Share and Play your own Zelda 2D games with the Updated Project Zelda Engine!
The official website here: zeldaengine.net
Download it here: www.rpgrevolution.com
Download it here: www.rmrk.net
Download it here: www.rmxpunlimited.net
Download it here: www.creationasylum.net
Download it here: www.zfgc.com
Go to the top of the page
 
+Quote Post
   
supercow
post Oct 18 2011, 04:57 AM
Post #7


Level 15
Group Icon

Group: Revolutionary
Posts: 280
Type: Artist
RM Skill: Undisclosed




this is SO COOL thumbsup.gif , i especially like the conversation of the 2 guy that doesnt get restriction by button .
must definitely use this

edit: can i ask where to change the size hieght of animated pict ? cuz pict im gonna use 96 while the pict hermes used is 128
tried looking at user manual but still cant understand

This post has been edited by supercow: Oct 18 2011, 05:35 AM
Go to the top of the page
 
+Quote Post
   
derula
post Oct 18 2011, 06:41 AM
Post #8


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




QUOTE (SilentResident @ Oct 16 2011, 05:41 PM) *
Derula, the speech bubbles -_-

Lol, now it's not that urgent any more, because I won't have much time now anyway. I should have released 0.5 it without the speech bubbles while I had time, but oh well.

QUOTE (supercow @ Oct 18 2011, 02:57 PM) *
this is SO COOL thumbsup.gif , i especially like the conversation of the 2 guy that doesnt get restriction by button .
must definitely use this

Thanks smile.gif Yes, I like that feature too, now that it's finally working correctly.

QUOTE (supercow @ Oct 18 2011, 02:57 PM) *
edit: can i ask where to change the size hieght of animated pict ? cuz pict im gonna use 96 while the pict hermes used is 128
tried looking at user manual but still cant understand

You'll have to edit the configuration file in "Data\Scripts\Hermes\0 - config\3 - face.rb". As pointed out, sadly you can't edit them in Notepad in this version (I'll try to have it fixed in 0.5!), so either use Notepad++ or any other editor you happen to have that doesn't mangle up the file. Open the file it such editor and find this line:

CODE
    HEIGHT = 128                   # Height of faces in facesets (pixels)

Replace the 128 with 96 and save the file. That should do the trick!

Feel free to ask if you have more questions smile.gif
Go to the top of the page
 
+Quote Post
   
maximusmaxy
post Oct 18 2011, 06:56 AM
Post #9


PZE whore
Group Icon

Group: Revolutionary
Posts: 131
Type: Scripter
RM Skill: Skilled




I think this script may be a Ccoa's UMS killer! I've been looking for a script that does the active conversation thing for a while now, It's really cool.


__________________________
Check out the new PZE Forums! http://zeldaengine.net/index.php
Go to the top of the page
 
+Quote Post
   
derula
post Oct 18 2011, 07:05 AM
Post #10


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




QUOTE (maximusmaxy @ Oct 18 2011, 04:56 PM) *
I think this script may be a Ccoa's UMS killer! I've been looking for a script that does the active conversation thing for a while now, It's really cool.


Thanks smile.gif though I don't think Hermes is a complete UMS "killer" yet. Ccoa's script still has a few features that Hermes doesn't. And I'm not sure... but because Hermes has such complicated features, it generally breaks any message window extensions other scripts may include, so this might be a point where Ccoa's performs better.
Go to the top of the page
 
+Quote Post
   
supercow
post Oct 19 2011, 01:44 AM
Post #11


Level 15
Group Icon

Group: Revolutionary
Posts: 280
Type: Artist
RM Skill: Undisclosed




thx it worked happy.gif , i downloaded notepad++ and i see why u use it cuz its quite convenient to write code.
another question pinch.gif , is there possible for animated pict to use more than 4 repeated pict? cuz i was thinking of making the pict blink also and it might need more than 4 repeated pict...

dont have any other question now since im still adjusting to it laugh.gif
Go to the top of the page
 
+Quote Post
   
derula
post Oct 19 2011, 07:41 AM
Post #12


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




QUOTE (supercow @ Oct 19 2011, 11:44 AM) *
thx it worked happy.gif , i downloaded notepad++ and i see why u use it cuz its quite convenient to write code.

Actually I don't use Notepad++ myself smile.gif I'm on Linux and usually use KatePart for coding. But I guess it's sort of similar in features.

QUOTE (supercow @ Oct 19 2011, 11:44 AM) *
is there possible for animated pict to use more than 4 repeated pict?

Yes, you can use as many frames as you like! Just pile them up vertically.

Note that if you put more than one animation in a single graphic (up to four), all of them need to have the same number of frames. But across different files they can have different numbers of frames, of course. The only global constraint is that each frame has to have the same height, throughout the game, including non-animated faces.
Go to the top of the page
 
+Quote Post
   
Perihelion
post Nov 1 2011, 07:31 PM
Post #13


Level 2
Group Icon

Group: Member
Posts: 17
Type: Artist
RM Skill: Undisclosed




This is great! I really like this a lot and plan on using it, so thanks for making such a slick message system. However, is there a way to set the x and y (and preferably width and height) of a message window manually through a script call or something? In my game, I have a kind of message HUD thing that changes between maps. I'd love to use Hermes windows for this, but I can't figure out how to put them at a specific location.

Also, is there any way to change vertical line spacing?

By the way, \popup[-1,async] doesn't seem to work very well. Only the first two letters of the message appear, and they just flicker.

This post has been edited by Perihelion: Nov 1 2011, 07:45 PM
Go to the top of the page
 
+Quote Post
   
derula
post Nov 2 2011, 09:29 AM
Post #14


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




QUOTE (Perihelion @ Nov 2 2011, 05:31 AM) *
This is great! I really like this a lot and plan on using it, so thanks for making such a slick message system.

You're welcome smile.gif

QUOTE (Perihelion @ Nov 2 2011, 05:31 AM) *
However, is there a way to set the x and y (and preferably width and height) of a message window manually through a script call or something?

Sort of. You can set the spacing from the border in y direction, set the width, and make it auto-adjust height to its contents. See the users' manual (settings margin, width, shrink, respectively).

QUOTE (Perihelion @ Nov 2 2011, 05:31 AM) *
In my game, I have a kind of message HUD thing that changes between maps.

Come to think about it, I could add a way so that you can open Hermes windows from script calls properly, with a special set of settings, so that global settings remain untouched. Definitely possible. Though... my time is so limited...

QUOTE (Perihelion @ Nov 2 2011, 05:31 AM) *
Also, is there any way to change vertical line spacing?

Indirectly. See line_height in the docs linked above.

QUOTE (Perihelion @ Nov 2 2011, 05:31 AM) *
By the way, \popup[-1,async] doesn't seem to work very well. Only the first two letters of the message appear, and they just flicker.

That's... bad... could you maybe test it in the Hermes Demo? It has a (totally hidden) achievement if you witness a murder by standing in the southeast map area when it happens... it uses a \p[screen,async]... I've never seen it fail, but obviously, I don't test out that part before every release. It's a very depressing scene. xD
Go to the top of the page
 
+Quote Post
   
Perihelion
post Nov 2 2011, 10:01 AM
Post #15


Level 2
Group Icon

Group: Member
Posts: 17
Type: Artist
RM Skill: Undisclosed




Yeah, I was trying to figure out how to make a Hermes window through a script call so I could set the x and y of the window manually, but I couldn't figure out what all the parameters were. You may want to consider adding a comment that explains them and says what type they're expecting.

def initialize(char, text, proc = nil, options = nil, init_opacity = 0)

Like text and init_opacity seem to be fairly straightforward, but I wasn't sure what to put for the rest of them. Anyway, if you do decide to add a way to create Hermes windows via script calls, I'd definitely be interested.

I did actually try the \popup thing in the Hermes demo, but I made a new event for it. I was using the 1.02 demo, though, because the 1.04 demo wouldn't open. It said it was using an old version of RM. Not sure if that's a problem on your end or mine.

EDIT: Hermes.shrink = false or $msg.shrink = false in a script call prior to a message box in an event doesn't work. Is it supposed to? I'm testing it in the demo. I can't set margins either, but I assume they might work if I could turn shrink off. Shrink works just fine if I change it in the config file (although are unshrunk windows supposed to be vertically centered? looks weird), and I can set other things like message box width.

By the way, is there a way to set parameters for only the following message box?

This post has been edited by Perihelion: Nov 2 2011, 12:35 PM
Go to the top of the page
 
+Quote Post
   
derula
post Nov 3 2011, 05:11 AM
Post #16


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




QUOTE (Perihelion @ Nov 2 2011, 08:01 PM) *
Yeah, I was trying to figure out how to make a Hermes window through a script call so I could set the x and y of the window manually, but I couldn't figure out what all the parameters were. You may want to consider adding a comment that explains them and says what type they're expecting.

def initialize(char, text, proc = nil, options = nil, init_opacity = 0)

Like text and init_opacity seem to be fairly straightforward, but I wasn't sure what to put for the rest of them. Anyway, if you do decide to add a way to create Hermes windows via script calls, I'd definitely be interested.

Well, you're not really supposed to use this right now via script calls, though I think it *should* be possible. char means the event over which it should popup (i.e., the argument from the \p command) or nil when no -2 command was found (I think), proc is the callback proc that is called when the player closes a non-asynchronous message window (or nil when the message should be asynchronous), and options is a Show Choice or an Input Number window defining object (instances of certain classes defined... somewhere, check out the Interpreter mods to see how to use them). Init_opacity is only used if the box is already visible before the call.

QUOTE (Perihelion @ Nov 2 2011, 08:01 PM) *
I was using the 1.02 demo, though, because the 1.04 demo wouldn't open. It said it was using an old version of RM. Not sure if that's a problem on your end or mine.

Well, the 1.04 project will only work in RMXP version 1.04, which adds no new features except a different way to register the demo, so few people use this version. 1.02 works in both versions, however, when I open it in 1.04 and save the project, it updates the version number in the project and it becomes unopenable in 1.02. So that's why I have 2 project files in there.

QUOTE (Perihelion @ Nov 2 2011, 08:01 PM) *
EDIT: Hermes.shrink = false or $msg.shrink = false in a script call prior to a message box in an event doesn't work. Is it supposed to? I'm testing it in the demo. I can't set margins either, but I assume they might work if I could turn shrink off.

Yup, it's supposed to work... Oo I'll have to look at that.

QUOTE (Perihelion @ Nov 2 2011, 08:01 PM) *
Shrink works just fine if I change it in the config file (although are unshrunk windows supposed to be vertically centered? looks weird), and I can set other things like message box width.

The shrunken windows are vertically centered in its place if vertical alignment is also set to middle. So, is works like this: first the alignment is applied to the text, and then the text box is placed around the text. I could add an option to change the behavior though, I guess...

QUOTE (Perihelion @ Nov 2 2011, 08:01 PM) *
By the way, is there a way to set parameters for only the following message box?

Nope, that's why I said it might be a good idea to add a way to allow arbitrary options being defined in Hermes.new. It... would require some changes, but should be possible to implement that possibility.

If only I can find some time...
Go to the top of the page
 
+Quote Post
   
Cozzer
post Nov 6 2011, 12:50 PM
Post #17


Level 4
Group Icon

Group: Member
Posts: 50
Type: Developer
RM Skill: Skilled




I really like this!
I can finally just write the dialogue without worrying about whether it will fit into the message boxes...

But I confirm that changing $msg.shrink during the game does not work... when I tried it, the game just froze.
I set it to false in the configuration files and it works ok, though, so it's not about the feature not working... probably it's just a minor accident in the function that turns it on/off.
Go to the top of the page
 
+Quote Post
   
derula
post Nov 7 2011, 08:30 AM
Post #18


Level 1
Group Icon

Group: Member
Posts: 13
Type: Scripter
RM Skill: Skilled




QUOTE (Cozzer @ Nov 6 2011, 10:50 PM) *
I really like this!
I can finally just write the dialogue without worrying about whether it will fit into the message boxes...


Pretty cool huh? xD Keep in mind though that text width calculation is broken with italic text (RMXP bug, not mine), so that could be cut off if you're unlucky. Also, there's still a fixed line height... I'm not really happy with that, not sure how else to do it either though.

QUOTE (Cozzer @ Nov 6 2011, 10:50 PM) *
But I confirm that changing $msg.shrink during the game does not work... when I tried it, the game just froze.


Meh. Okay, I'll have a look this weekend.

QUOTE (Cozzer @ Nov 6 2011, 10:50 PM) *
probably it's just a minor accident in the function that turns it on/off.


Well... there's not really an isolated function. The settings are actually all changed by one single function based on given rules for each setting. (That makes it much easier to add new settings to Hermes) If that function is broken, it should be broken for all settings. Maybe my rules are broken though. I'll have a look.
Go to the top of the page
 
+Quote Post
   
Cozzer
post Nov 7 2011, 11:32 AM
Post #19


Level 4
Group Icon

Group: Member
Posts: 50
Type: Developer
RM Skill: Skilled




QUOTE
Pretty cool huh? xD Keep in mind though that text width calculation is broken with italic text (RMXP bug, not mine), so that could be cut off if you're unlucky.


Well, I went from having a broken line every 3 to, like, one in 50. So, pretty big improvement, I'd say. laugh.gif
Go to the top of the page
 
+Quote Post
   
Perihelion
post Nov 8 2011, 09:21 AM
Post #20


Level 2
Group Icon

Group: Member
Posts: 17
Type: Artist
RM Skill: Undisclosed




As long as you're looking at it, if there could be a way to have asynchronous messages that aren't pop-up, that would be really cool.
Go to the top of the page
 
+Quote Post
   

2 Pages V   1 2 >
Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 24th May 2013 - 12:23 AM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker