| Zeriab's Anti Event Lag System |
|
|
|
| Written by Zeriab |
|
Zeriab's Anti Event Lag System Version history For anyone interested Version 0.8 -------------------------------------------------- (2007-09-03) - First release Version 0.81 ------------------------------------------------- (2007-09-05) - Overwrote Game_Map's passable? method for faster collision detection Version 0.9 -------------------------------------------------- (2007-09-12) - Support for the Non-SDK patch - Support for defining whether and event will always be updated or never be updated by defining name patterns. Version 1.0 -------------------------------------------------- (2007-09-24) - Fixed compatibility issue with Blizzard's Caterpillar script - Overwrote more methods scanning for events on a specific tile - Support for defining whether an event will always be updated or never be updated by specifying the event's id and map_id - Some structural changes. - Integrated the Non-SDK patch into the main script Version 1.05 ------------------------------------------------- (2007-11-18) - Fixed bug where sprites might not be disposed when changing scene. Version 1.1 -------------------------------------------------- (2008-04-10) - Added declaration to which common events to update Version 1.15 ------------------------------------------------- (2008-06-19) - Added automatic detection of which common events to update (optional) Version 1.2 -------------------------------------------------- (2008-07-04) - Fixed a case where an event could be registered twice causing transparent events to look less transparent. Features Easy to alter the size of the visible area. (In combination with resolution scripts for example) Pattern matching on event names to ease determination of events needing special treatment. (Never update and always update) Specify special update schemes for events by their id and the map they are on. Screenshots The screenshot was taking from my test map included as an attachment. There are 662 events on that 500x500 map. ![]() Demo http://www.sendspace.com/file/0up9up (zip version)
Script Installation You don't have to do more than copy and paste the script into the script editor BUT where you paste it matters. If you are using the SDK 2.0+ paste the script just below the SDK. If you are are not using the SDK then paste the script just below the default scripts The structure in the script editor should be like this: default scripts (SDK) Zeriab's Anti Event Lag System (custom scripts) main Pasting the script just above main has caused errors! You can add [A] to the name of an event if you want it always updated. A typical example is that you want an event outside of the screen to move around properly. You can add [N] to the name of an event and it will never be updated. Great for non-animated decoration events. Note that if you have both [A] and [N] in the name of the event the event will never be updated. If you are not satisfied with the default settings or are curious you can look into the customization possibilities Customization A little below the big header there is a customization area (line 265-284) which contains: CODE class Game_Map ALWAYS_UPDATE = false BUFFER_SIZE = 1 TILES_VERTICAL = 15 TILES_HORIZONTAL = 20 LIMIT_COMMON_EVENTS = true SPECIFY_COMMON_EVENTS_MANUALLY = false # If you want to specify which common events to update COMMON_EVENTS_TO_UPDATE = [] # If you want the script to automatically read the common events and find # out which to update. Must be the path to the CommonEvents.rxdata COMMON_EVENT_FILEPATH = 'Data/CommonEvents.rxdata' end class Game_Event SPECIAL_UPDATE_IDS = {} NEVER_UPDATE_NAME_PATTERNS = ['[N]'] # [N] in the event name => not updated ALWAYS_UPDATE_NAME_PATTERNS = ['[A]'] # [A] in the event name => always updated end There are comments on how to use each constant in the script header. Those comments are aimed at other scripters and can therefore be fairly difficult to understand for non-scripters. The examples in the header can useful even if you are not a scripter. I will explain each constant in a more humane way. (Using this in unison with the instructions in the header might yield the best result) I'll start by going through class Game_Map. ALWAYS_UPDATE Set this to true if you want all events updated. All events will on the map will be updated just like with the default scripts. This is slow, but you will still get the effects of the changed collision detection and sprite management. I included this option for compatibility reasons more than anything else. Don't use this if you want a few events outside of the screen to be constantly updated. In that case refer to the stuff in Game_Event BUFFER_SIZE The buffer size tells how many tiles outside of the visible area should be updated. If you have many big sprites (for the events) and get the sprites just disappearing or 'freezing' for a moment near the edge of the screen the solution can be to increase the buffer size. Be aware that increasing the buffer size makes the game slower. TILES_VERTICAL Use this to tell how many tiles there on a vertical line across the game screen. Only change this value if you change the resolution. TILES_HORIZONTAL Use this to tell how many tiles there on a horizontal line across the game screen. Only change this value if you change the resolution. LIMIT_COMMON_EVENTS Set this to false if you do not wish to limit which common events are updated. If you do not limit the common events the next three constants have no effect. (SPECIFY_COMMON_EVENTS_MANUALLY, COMMON_EVENTS_TO_UPDATE, COMMON_EVENT_FILEPATH) SPECIFY_COMMON_EVENTS_MANUALLY Set this to true if you want to specify the common events manually. This is not recommended for beginners. You will have to fill out COMMON_EVENTS_TO_UPDATE if you set this to true. COMMON_EVENT_FILEPATH will have no effect if this is true. If this is set to false then COMMON_EVENTS_TO_UPDATE will have no use. The script will automatically detect which common events to update if this is set to false. COMMON_EVENTS_TO_UPDATE Fill in the array with the common event ids you want updated. (Look in the database for the numbers) All other common events will not be updated. They can still be called using the call common event command, but they will not be started if they have the autorun or parallel process triggers. COMMON_EVENT_FILEPATH The path to where the common events are stored. Only touch this if you have changed the filename where the common events are stored. If you don't know what this means then chances are that you should not change what is given. Next we come to class Game_Event which is a bit more complicated to customize. Typically you can be fine without modifying the following constants. Id y SPECIAL_UPDATE_IDS You can use this to say that specific in specific maps must always be updated or never updated. If an event is always updated it acts just as it does with the default scripts. If an event is never updated it not move. Neither with Autonomous Movement nor the event command 'Set Move Route...'. You can still to some degree interact with it but in general use the never update feature for decoration events. NEVER_UPDATE_NAME_PATTERNS You can use this to specify new patterns to look for in the names of the events. If the name of an event matches at least one of the patterns it will never be updated. A pattern can both be what is called a regular expression and a string. If you don't know what a regular expression is or don't understand them then don't try to use regular expressions. The string is a piece of text and the name of the event will be checked if that piece of text is anywhere in the name. The text have to be surrounded by either 'text' or "text". There is no practical difference in case of this script. If an event is never updated it not move. Neither with Autonomous Movement nor the event command 'Set Move Route...'. You can still to some degree interact with it but in general use the never update feature for decoration events. ALWAYS_UPDATE_NAME_PATTERNS You can use this to specify new patterns to look for in the names of the events. If the name of an event matches at least one of the patterns it will always be updated. A pattern can both be what is called a regular expression and a string. If you don't know what a regular expression is or don't understand them then don't try to use regular expressions. The string is a piece of text and the name of the event will be checked if that piece of text is anywhere in the name. The text have to be surrounded by either 'text' or "text". There is no practical difference in case of this script. If an event is always updated it acts just as it does with the default scripts.
Q&A's
Compatibility Credits and Thanks
Terms and Conditions Author's Notes
Set as favorite
Bookmark
Email This
Hits: 508 Comments
(0)
|
| Last Updated on Friday, 03 October 2008 08:09 |






