-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Event Commands (request them here!) #2338
Comments
About the current ideas:
Save/Load information
Take screenshot
|
It's easy say ideas, implementing them is another story... Anways, since this is just a brainstorm, I will say some good, bad, awful and "Oh man, shut up!" ideas. Switches/variables related:
Pictures related:
Audio related:
Event related:
System related:
|
EDIT, new ones:
|
This is a special request, as an enginner in RPG maker 2000 and RPG maker 2003. I created lots of engines, like CMS, CBS, and ABS, and i always encountered a major problem, and its a "wait" proces to block all that is in progress... its a special "wait" comand or a "going into a pause like when you go to the default menu and all process in map STOPs" lets try if i can explain correctly in english... An option that you can stop all process (auto, parallel process etc...) forsefully like when you open the default menu, so you can do in that "event menu" a new engine to create a CMS, CBS whithout being anoyed whith the actual event process in the maps or comon events from BDD For example, i do an ABS like my Soul Blazer engine, but of course, there are lot of "parallel proces" like enemies moving, atacking, animations etc,,, with the grafics moving and sounds, and if i call for an CMS engine, these process i can stop them, but not all... due to some factores to make the ABS working correctly But meh... anyways, here are some command ideas. Upgrading Commands: Command: Control variables Command: Show Picture and Move picture
Command: Show Picture and Move picture Command: Show Picture and Move picture Command: Display text setting Command: Call Event as a parallel process New Commands: Command: Change Individual Tile Command: Mouse input Command: Mode 7 view Command: Particle command Command: Pause BGM Command: Show number And this is an 2 EXTRA for the editor: Problem 1º Problem 2º |
Scene Push & Scene Pop This one is complecated, needs lots of incompatible data format changes and no global state (!) but it solves one fundamental problem: Custom menus and battle systems are painful to implement: When you have them on an extra map and you teleport to it then all event positions are reset when teleporting back (and you can abuse this type of menu to e.g. skip "On Touch" events by calling the menu while walking on thie tile). The other solution is overlaying the Menu/Battle on top. Disadvantage: You can't use the map at all, must be entirely Picture based. In both cases running events will cause chaos, you must somehow terminate and continue them. For this I propose Scene Push/Pop. Semantics: The element on the top of the scene stack (not to be confused with the stack we use for Scenes in Player, when I talk about a stack here I mean a stack of Maps) is stored in the well-known fields of the LSD. All parent maps are stored in such a way: New field
So is a copy of everything When the Scene Push happened except for The pushed map starts with a completely empty state (from the database, as if you started a new game). To be decided:
When invoking Scene Pop the map returned to continues event execution right after the Scene Push command and implicitly does a |
Scoped Variables and SwitchesI don't know how exactly this would look, but I have (and probably alot of others do too) use cases for scoped variables and switches. In hh3 I have a very ugly and poor manual way to allocating a range of variables and calling common events to clear them My use cases include:
One way to implement this could be to use negative id numbers for this feature. This would allow all existing event commands which reference variables and switches integrate with the feature very easily. The implementation would be a simple stack for each called event. You would want either a command or some builtin functionality to the map, battle, and common event to declare the variables. This would allow editor to provide the necessary syntactic sugar to display the local variable names and also allow re-indexing if you change the local variable set. For re-indexing, editor should warn you if any indirect variables are accessed as it can't guarantee that doesn't break.
A simple extension to the previous. You would need to enhance the CallEvent command, or create another CallEvent command to support parameter passing. Events should define up front what parameters they take, and the editor dialogue to call them requires you to assign either constants, pre-existing global variables, or pre-existing local variables. Editor will need some way of checking for all call sites if you change an events parameters and give you a convenient report of where they all are so you can fix them.
I have this use case where I have a set of dungeon variables which are used for puzzles, traps, games without random encounters which place enemies etc.. which reset when you exit the dungeon. To save on RPG_RT variable space, I reuse the same reserved set for each dungeon and have carefully managed common events resetting them on enter /exit which is super painful and error prone to manage. How you would implement this in practice is an open question. Here are some ideas. First, you need to define what a "dungeon" or more generally a map group is. A few options:
Wherever the map group is defined, the map group object needs to define the number and names of it's local variables. Next, we need to define what variables are "map group local" variables. This could again be some reserved negative range. Once you have this, the teleport code can detect anytime you change map groups and reset all the map group variables for you. I would also create event commands to do this reset explicitly, so you could for example choose to have the escape /teleport spell run this sequence or not.
A version of the above, without groups. Useful for map specific puzzles etc.. Could be implemented the same way as above Possible variable mapping range, and how they might be saved.
Common Event run once per mapLike how you can use "Erase Event" to run map events once, I want to have common events that run some code everytime I change maps, but only once. This could be done in a few ways
|
I'm not a huge fan of "inband signalling". For writing I would also prefer additional parameters or an entire new field "out_parameters". |
Would it be possible a conditional branch + batch function? |
Looks like there's a interesting feature request here: Assign Switch value by reference (in editor you can only set ON, OFF or toogle, but not v[x] value, where x is a variable ID). You can do it with variables without much issue actually but not with switches. In resume: |
Make hero/vehicle event editable. I guess these are a Ev0000, and maybe it could be dangerous, but perhaps the left side (not the event command side when editing an event) could be interesting to editing by double click for more configs. |
Animate event graphics when the graphic is obtained from the chipset. |
New command: Here are some upgrades: Set movement route Set event location Creating a Event |
|
Identify variables/switch by nameFor now, you have to store variables/switch in a list. The idea would be to identify variables by name. It would be compatible with old project with different variable with the same name (because they are still identified by id). Pros :
Cons :
Local variablesLocal variables to an event, and the possibility to access it from other events/common events would also be very very very useful. I managed to make a system in rm2k3 with pointers in order to simulate local variables and it's reeeeeally a game changer, you can code fully generic code (a movable case, an interactive switch etc.) but it requires some tricks to understand how the engine work (ie. always call a common event initializing the pointer after any "pause") and it would be much better if this was native in the engine. |
Zoom In/OutCommand that applies a zoom by predefined values (x1~x4). All map content (chipset, charset, pictures, panorama) is affected. |
Get/Set Custom Game DataWho doesn't know this issue: Your global variables are a mess and you want to store e.g. for your custom event based battle system some additional attributes for your actor and you have no idea how to recompile liblcf and Player. The solution for this is The chunk structure could be something like this:
The data can be predefined in the database tab. Event command:
|
Extend "Movement Type" and "Set Move Route" when just refers to Player EventAdded in code, not as an event Apart of a better IA for the movements approach and away, it would be great that the Editor can offer the possibility to select the specific event to approach or away (or those ones that just refer the Player event, as the screenshots below). |
Improve Text CommandWe already have done some proposal related with this, but more specific with text boxes: In this case, the proposal is that apart of the text codes (speed, text pauses, etc), it could be great a code/option in editor for press key and show the text suddenly. Similar to Debug for read quickly the text, but in this case you can make the text with an specific speed, with its pauses, but if you press action key, all of that is ignored an the text appear suddenly (if this option was previously configured). |
In a RPG Maker Discord was the discussion about a screenshot function. Though imo the better way to solve this is a "Create Picture" command that snapshots a rectangle of the screen. Could also get a layer filter. Plus a "Save Picture" command that writes it in the Save-directory (Game directory is read-only). This in-memory pic must be somehow saved in a new savegame chunk (as a PNG image) |
This comment was marked as resolved.
This comment was marked as resolved.
~~I played around with the Steam version of RM2K3 recently and while the new additions allow for more flexible and organized scripting there's one feature I'm still missing, requiring me to create a lot of "lookup tables" on my maps:
Other than that (doesn't concern events), a great addition to the Player would be some sort of message history which collects all the dialog up to a certain size. |
This comment was marked as off-topic.
This comment was marked as off-topic.
Thanks, I haven't known about the "Get Event ID" command but it sounds like it isn't suited for my purpose. (Nostalgia compels me to do some highly advanced stuff in rm2k3 which would probably be way easier to implement in any custom engine xD ) Some more ideas: Log command
|
"Delete Save File [N]" single A way to empty save files from the game, or take advantage as a mechanic in games. |
Stop event movement when off screenThis would be a subcommand of Set Move Route, and would consist of stopping the movement of an event when the event is out of focus on the screen. This would be useful when for example you want to simulate a free-fall event and you do not want to calculate the wait time needed to be displayed off the screen, simply ticking a check or applying this command would stop such a movement. |
Set event transparency (Enable - Disable, or maybe change graphic to another one) There's a similar option but only for your hero, not for an own event. |
Transparency can be done in the same graphic picture, remembet, EasyRPG use alpha channel, so it works for EVERY chara, picture, battle animations, etc... |
I wanna say,
Another thing, if you have an npc in 10x 10y and you use Remove event, the event remains there, can be a problem to make shooting systems, you have to move each event to another position. |
Resolution settings, |
This comment was marked as resolved.
This comment was marked as resolved.
Fog of WarI'm not clear if this should be a new addition in weather effects or a separate command, but it could be a good way to configure it (in transparency, colour, size, shape and range in tiles at which the fog will dissipate). e.g: https://youtu.be/X0BzK80plRs EDIT: Perhaps among other options would be what you choose to cover, from panoramas, tiles, charts and images to a choice of one or more. |
On the basis of the following proposal: #2720 (comment) A command similar to Show Picture, but in this case for APNG. |
This comment was marked as resolved.
This comment was marked as resolved.
Calling javascript, or something like that. I really want to add Newgrounds Medals to my EasyRPG games. |
Expanding shake and move screen optionsI don't think I've proposed this anywhere yet.... Shake screen: Maybe it could make the shaking also vertical or even combined (diagonal shaking). Move screen: What is missing here is the use of variables for the movement and the search for an event by its XY coordinates. |
On-the-fly map growthWhen loading maps, I don't know if this could be interesting for very large maps or a way to load a map design that could vary depending on the player's actions. We know that the maps have a minimum and maximum size (which we will see what it will be in the case of EasyRPG Editor), it would be to increase the map based on the limits. |
This comment was marked as resolved.
This comment was marked as resolved.
Improving message codesThis proposal is directly related with message commands and Show String Picture (#2338 (comment)) |
Get amount of events on call stackWould be nice for making custom crash handlers. It would output the current event call stack to a variable. |
Flip charset spriteSomething similar to flip picture of Maniac's Patch. |
Auto-initialise variables/switchesImagine you want the player to enjoy an extra, special menu, whatever on the condition that he/she has finished the game once. It could be an alternative to do weird tricks with the saves that don't work properly with this idea. |
Reset switches and/or vars of current mapThis would actually be an extension of the variable / switch setting commands. |
Actor Skill Switch ControlTakes an actor ID and a skill ID and sets a switch to ON or OFF depending on if the actor knows the skill or not. All values (actor ID, skill ID, switch ID) can be hard-coded or taken from a variable. |
Switch writing mode Once we implement support for different text directions, I suggest having some command to switch the writing mode. It could be an event command with 1 parameter, with the following values:
Alternatively, this could be two separate settings (with CSS meanings of
This can be useful for:
We also would need some way to specify the initial writing direction of the game (to make sure that the Title and Load Game screens have correct display). Maybe this could be done with a new LCF block, or with an setting in RPG_RT.ini. |
Scroll Map: Recenter the Camera on PlayerThe command |
👆 would be cool if this command were "focus on event n". |
Shake EventSo far this effect is achieved by editing a CharSet and moving the chart in question by several pixels (usually on its X-axis, several pixels to the right, back to the centre, several pixels to the left, back to the centre). In addition to this technique, it could be interesting to have a command that can apply this effect to one or several events, at speed 0.0 onwards or even allow per variable. |
Currently there is space for 999 event commands in the range of 2000-2999.
There could be some basic grouping at least:
Set Auto Battle Algorithm - One event command
Value must be saved! (see #2331)
Change Language - One event command
Changes the language of the game
Value must be saved!
Show Message (Plural aware) - Requires 3 new event commands
Proposed idea:
Lets say we have the message
and the source language has one plural form.
The result is with Plural Support:
The Variable in
PluralIndicator
is used to decide which message is shown.Forms
is automatically set by the editor: It contains the number of forms. When the project main language is changed this allows quick patching of all of them.The
Indicator
is generic enough to also allow it's use in e.g.ShowStringPic
see also https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
The text was updated successfully, but these errors were encountered: