Is there a way to bypass the 100-character damage formula limitation without externally-defined form

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
Hiya! I have a lot of issues with the limitations of the database. Not being able to set Ex-Parameters such as CRI on Skills is one example. However, I feel like I could defeat a lot of the limitations if I wasn't limited to 100 characters in the damage formula input.


I believe RPG Maker exists to make life easier, and that one of the ways it has done so was by taking much if not all of "programming" out of the equation. The problem is, there are way too many artificial limitations in the database, and people have to resort to scripts way too often.


Regardless of what I think about what RPG Maker should be to be the most useful, I want to ask: is there a way to lengthen the damage formula character limit? I don't want to load formulas by script or anything-- I want to input into the damage formula box. I just don't want to be limited to 100 characters.


Here's my damage formula of one of over 600 skills:


a.element_rate(20)*(90*a.atk/b.def.to_f*(2*a.level+10)/250.to_f+2)*0.93


I simply cannot make the formula any shorter unless anyone knows of a way. However, I now have to add the ability to change the CRI of this skill. And skills don't inherently support Ex-Parameters, which is one of many, many ridiculous database limitations. So I am forced to add the CRI info to the damage formula-- but it won't fit within the 100 characters.


I know MV doesn't have THIS particular limitation, but I don't have a spare $80. (Heck, I wouldn't even pay $80 for something with so many imposed limitations that you are FORCED to script for every project.) What on Earth am I supposed to do in Ace? And where are the devs when you need them so they can get to fixing these limitations and oversights?
 

bgillisp

Global Moderators
Global Mod
Joined
Jul 2, 2014
Messages
13,522
Reaction score
14,255
First Language
English
Primarily Uses
RMVXA
In ACE you have to script if 100 characters is not enough. Yanfly has a lunatic damage script for that very reason. Otherwise, you have to thin it down to under 100 characters somehow. Maybe you can write the formula in an equivalent way?
 

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
I absolutely refuse to use the Lunatic Damage script. Give me another option.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,359
Reaction score
7,672
First Language
German
Primarily Uses
RMMV
you only need to convert to float once (as early as possible), because float has precedence over integer and all values will automatically convert to float once the primary numbers are float


The following should get you the same results (if I made no mistake):


a.element_rate(20)*0.93*(90*a.atk/b.def*(2*a.level+10)/250+2)




But no, as soon as a formula is shortened as best as possible, the only way to get it into the damage formula box if it is still too long is by placing it in a scriptlet and call it by a short function name from the damage formula. That is because you can't change the editor
 
Last edited by a moderator:

bgillisp

Global Moderators
Global Mod
Joined
Jul 2, 2014
Messages
13,522
Reaction score
14,255
First Language
English
Primarily Uses
RMVXA
I absolutely refuse to use the Lunatic Damage script. Give me another option.
Sorry, that's the only option I know of. Though you do need to remember that when ACE came out 100 characters was a HUGE improvement. XP didn't even let you edit the damage formula, if you didn't like it, too bad. Programs go up in increments based on demand, and at the time 100 characters was huge. Now MV expanded it but afraid if you want it for ACE, you have to use that script, rewrite the formula, or write a script yourself that you call in the damage formula that does the rest for you. That's it for choices, take it or leave it.
 
Last edited by a moderator:

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
you only need to convert to float once (as early as possible), because float has precedence over integer and all values will automatically convert to float once the primary numbers are float


The following will get you the same results:



a.element_rate(20)*0.93*(90*a.atk/b.def*(2*a.level+10)/250+2)




But no, as soon as a formula is shortened as best as possible, the only way to get it into the damage formula box if it is still too long is by placing it in a scriptlet and call it by a short function name from the damage formula. That is because you can't change the editor


I spent over eight hours placing damage formulas for the 621 skills, and then over eight hours replacing them with a shorter formula that puts the variables first so people could easily see and check them. I have spent THREE WEEKS doing four days of work because the dayum database won't let me batch-change anything-- and shift-copy only works for some things-- and multi-copy always overwrites instead of pastes like the other half of the database, etc.. There are literally (yes, the real meaning of the word) dozens of limitations that either make not using scripts for simple things impossible or just make things that should take minutes take more than a day.


Do you understand what I'm saying I'm going through, here? RPG Maker limitations are driving me nuts.


When all is said and done though, I want to change the character limit the most if possible.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,359
Reaction score
7,672
First Language
German
Primarily Uses
RMMV
I absolutely refuse to use the Lunatic Damage script. Give me another option.
As I said above, there are alternatives to the full lunatic damage script, but they will require scripting - it can't be done without.


Your only choice is between using a general all-purpose script like the Lunatic Damage Script (which is big and complex because it allows for anything) or having a specific script written with your formulae.


Changing the editor limit is absolutely impossible.
 

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
As I said above, there are alternatives to the full lunatic damage script, but they will require scripting - it can't be done without.


Your only choice is between using a general all-purpose script like the Lunatic Damage Script (which is big and complex because it allows for anything) or having a specific script written with your formulae.


Changing the editor limit is absolutely impossible.


So when all is said and done, I HAVE to list formulas somewhere besides the damage formula box. What's the limit for MV?


P.S. I have never known a major software company to flat-out not read anything from its consumer base or not care about updating software to make it better until this company. I mean, just do a Google search for "RPG Maker" and "skills with their own CRI". It's everywhere. And they don't care. In fact, if I were this company, I would see how successful Lunatic Damage was and I would implement its most valuable features into the software.


I have never seen a real update for a version of RPG Maker. There's barely any real updates between Ace and MV outside of platform options. And I thought Dragon Quest hated change-- apparently (yes, "apparently", not "I know for sure") it's Japanese software and franchises in general.
 
Last edited by a moderator:

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,359
Reaction score
7,672
First Language
German
Primarily Uses
RMMV
Degica listens - but the only programmer who can change the editor are in japan, and are working mainly for the wishes of the japanese customers.


You can see that in the MV improvement boards where the bugs and updates to MV are handled.
 

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
Question! If I can't fit things into the damage formula box, is there a way to create parts of the formula in Common Events? I don't know what Common Events and Variables are capable of. It might be a way around the 100-character cap without scripts!
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,359
Reaction score
7,672
First Language
German
Primarily Uses
RMMV
not really - you can do a lot with common events, but they're called indepentendly of the damage formula.


Theoretically a common event can calculate everything and change enemy values (including HP) at will, but all common events called by skills are executed at turn end, not when the skill is processed.


If the timing doesn't matter it might be usable, but you still would have to either use a script for advanced event info or use special states to transfer targeting info, because by the end of the turn that info is otherwise lost.
 

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
Well, the 100-character limit is my biggest enemy. I guess I should wait a couple weeks and fork over the money for MV. $80... As if I wasn't broke enough already. ;_;
 

GreyStone84

Sic Gorgiamus Allos Subjectatus Nunc
Veteran
Joined
Jun 24, 2015
Messages
295
Reaction score
95
First Language
English
Primarily Uses
RMVXA
Well, the 100-character limit is my biggest enemy. I guess I should wait a couple weeks and fork over the money for MV. $80... As if I wasn't broke enough already. ;_;
If it is such an inconvenience to fork over $80, why bother? No offence, I just don't understand why you aren't willing to use a script, or scripts, to help fix your issue, especially if it is for free vs. an $80 expenditure?
 

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
If it is such an inconvenience to fork over $80, why bother? No offence, I just don't understand why you aren't willing to use a script, or scripts, to help fix your issue, especially if it is for free vs. an $80 expenditure?


Several reasons.


One is just in principle: people shouldn't have to program just to use semi-anti-programming (or scripting) software, or "efficiency software", or whatever you want to call it. People started using RPG Maker so they could make games more easily and without having to learn how to program, or "script" in this case. And before anyone makes the argument that scripting is half of the software, may I remind you that this, like Game Maker, is pretty much a GUI where you can hack in some scripts into the database if you absolutely need to. There aren't even official scripting tutorials.


If you want to program a game in Javascript or Ruby, do that. But if you want to make a game with a GUI, do that. Know your audience, is all I'm saying. Don't build a piece of software that does neither half that well. And when RPG Maker has so many artificial limitations in the database, you shouldn't be using "well, you can just script extra stuff!" as your primary excuse for the software not to truly be better on the GUI end where it can easily be.


Linux is another good example of this. Is it desktop software for normal people or is it command-line- and compile-heavy software for nerds? Well, it does neither that well. It doesn't know what it wants to be. And it does very poorly at desktop adoption rates because of it, and because the users are often a little dense and snobby, saying that the headache of getting things working right should be put on the users, not the developers. If you have the power to make life easier for consumers, you should do it-- especially if that's what your software is specifically made to do. And RPG Maker is 90% there already-- it's just the other 10% that makes it nearly impossible to do anything truly good with without scripting.


Two, I've been trying scripts. They often just don't work. For example, in order to set a CRI chance for a skill, you can't do about four things off the top of my head that wouldn't use a script, because they just don't work. So you have to use a script. The script I found was Critical Hit by Alistair. First of all, his Dropbox link is broken, and I've been noticing that most script writers upload to Dropbox, and most of those Dropbox links are suspended or otherwise disallowed. But after finally finding his blog link-- which was hidden away who knows where-- I found his script on his blog and put it into my game. It doesn't work, even though I disabled almost all previous scripts. It gives me a NoMethodError, and he hasn't responded to my messaging about it.


Three, I'm creating an engine for other people to use that is specifically made for user-friendliness and game style flexibility. Two other engines were made that I thought would do what I needed, but neither did and neither even works fully (or at all). The script editors in the engines are unbelievably messy and I can't even imagine someone troubleshooting it when one of the hundred or so (yes, HUNDRED or so) scripts used invariably goes wrong. (And something did go wrong, because all I get is a black screen.) The point I'm trying to get to is-- what if someone wants to make this kind of game (without specifying, they WILL. Trust me), but differ on details, and especially don't know how to script? Why can't people just be able to edit the database for most if not all things, as they SHOULD be able to just do?
 
Last edited by a moderator:

ZServ

Veteran
Veteran
Joined
Jun 16, 2014
Messages
260
Reaction score
71
Primarily Uses
RPG Maker is in no way a anti-programming type of software, or efficiency software, or whatever.


It was made for flexibility with the default systems in mind, one of those systems being scripts. I'm not saying the program is perfect, because it isn't at all, but VX Ace has been out for quite a while now, and hasn't been updated for a year or two at this point. Support for stuff like that is not continuous, the software received its EOL patch. When you do really anything in RPG Maker, whether that's making a cutscene, or a boss fight, whatever, you ARE programming. Yes, it's more visual programming than anything else, but it's 100% programming.


As for Game Maker, you're either high or ignoring GML entirely. Every commercially successful game that's released in GM has A; generally had an external level editor that was hand written, and/or B; been written in GML, including both Hotline Miami titles, that damn Undertale game, Hyper Light Drifter, etc. and so forth. You aren't creating an engine for other people to use. You're modifying one, at best. If they still need RPG Maker to use it, you didn't make an engine. Scripts aren't a one-size-fits-all kind of thing. Some have other stuff they rely on to work. Some don't work with one another. Some are flat out buggy. You're being difficult, evasive, and a tad rude. A 100 character limit is not an artificial limitation, it's perhaps an arbitrary one, but when you can work around it in under 5 minutes and just refuse to accept the solutions given, you're just throwing a fit for the sake of throwing a fit.
 

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
RPG Maker is in no way a anti-programming type of software, or efficiency software, or whatever.


Right. That's why it has a GUI where you choose what happens and when, and focuses on doing things through a GUI. You DO realize that, regardless of whether you think this is my "opinion" or not, practically EVERYBODY started using RPG Maker because they could just jump in and do it, and probably wouldn't have to learn to code/script. Then if they learned to script afterward, more power to them. But I am really sick of this argument among RPG Maker and Linux users-- the argument that a quest for more efficiency and/or more user-friendliness is EVER unjustified. Especially when it's something as simple as a expanding a character limit. WHICH, by the way, they did for MV. But they don't care to update VX Ace, even though it would take-- what, minutes?

You're being difficult, evasive, and a tad rude.


I'm sorry that my convictions about it being just the right thing to do to do literally a few minutes of work to make things far better for everyone are so strong. I really don't get why people always try to tell me that giving a crap is wrong, and why they always get defensive. You KNOW that this change is a good thing to do (they've even done it in MV!), and even if the devs aren't obligated to make these little improvements that mean a world of difference to the rest of us, are people REALLY going to be that against the idea of "excellence"? A job well done?


Yeah, I'm frustrated, but I've been through a LOT trying to get things to work, both through scripting and not through scripting. And when you're frustrated, you make your points strongly. And there's really nothing wrong with it. You don't see me name-calling or anything ridiculous. I'm just making my points. I don't feel obligated to "agree to disagree". I KNOW that what I'm pushing is more helpful than just shrugging it off.

...but when you can work around it in under 5 minutes and just refuse to accept the solutions given, you're just throwing a fit for the sake of throwing a fit.


I wish! I spent over an hour trying to get the script for skill CRI working, and it is broken! And just do a Google search for people who want to give Skills their own CRI. You will find a LOT of results.


Do you guys realize I've spent three weeks for 6-8 hours a day on this project in RPG Maker that-- if they just had a CTRL-click batch input like any tag editing software or window, or a copy-insert that worked in ALL database lists instead of just half of them, or the ability to rearrange lists by alphabetical order-- I could have done it in four days? If I were a professional video game development company, those kinds of lack of efficiency would mean paying people for much longer and greatly increasing my budget. Over things that simple. And these three weeks so far, I'm only scratching the surface of the headaches I've been through trying to do things that are super simple, like adding CRI to a Skill, or Absorbing HP equal to half the damage when there just aren't enough characters allowed. I have plenty of reason to say that I am frustrated from overworking and still not being able to accomplish much of what I'm trying to do at all, let alone efficiently.


Don't criticize me for being frustrated. I would never criticize any of you for being frustrated, ever. It seems like a really inhuman thing to not let people be frustrated about needs or expectations, like we're all a bunch of superficial people who need to either be happy or to shrug everything off. Why even bother getting offended? We all want to do good work and be happy here.
 
Last edited by a moderator:

Another Fen

Veteran
Veteran
Joined
Jan 23, 2013
Messages
564
Reaction score
275
First Language
German
Primarily Uses
To get back to the original question, the easiest solution I could think of without modifying the damage calculation process directly would be writing your formula into the notebox of the skill:

To execute the content of the notebox as code, you can use the  eval  command within your damage formula:


eval $data_skills[3].note


would evaluate the content of "Skill 003"'s notebox. You have to state whose notebox you want to use, but if you use the same formula for multiple skills you don't have to copy the formula over again and again.


In this case, you can also define variables before evaluating the formula: Using


id = 14; eval $data_skills[3].note


and using  id  as a term in your notebox-formula will allow you to substitute static numbers by variables, allowing to use the same formula with slightly different numbers for different skills.


As for naming conventions, your variable names should start with an underscore or a lower case letter (otherwise they might get interpreted as something different) and only contain letters, numbers and underscore characters.


---


Be aware that the linebreaks in the notebox are not ignored when executing the formula. Since linebreaks are used to separate instructions in ruby, this could cause problems when splitting a command right before an opening bracket:


a.element_rate


(20)


would be interpreted as two separate commands while


a.element_rate(


20)


would work fine.
 


---


In case you already use the notebox for something else, you can select a specific section of it by using a regular expression. There are some tutorials out there in case you are interested in how regular expressions work, but you should be able to use


eval $data_skills[3].note[/Formula:(.*?)(?:\n\s*$|\Z)/im, 1]


to only evaluate the part between the character sequence  "Formula:"  and the first following empty line.



Aside from that it's nothing you couldn't do with a supporting script. I've never used the Lunatic Damage script mentioned here and can't say what does without looking it up, but it probably would make things easier.
 
Last edited by a moderator:

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
To get back to the original question, the easiest solution I could think of without modifying the damage calculation process directly would be writing your formula into the notebox of the skill:

To execute the content of the notebox as code, you can use the  eval  command within your damage formula:


eval $data_skills[3].note


would evaluate the content of "Skill 003"'s notebox. You have to state whose notebox you want to use, but if you use the same formula for multiple skills you don't have to copy the formula over again and again.


In this case, you can also define variables before evaluating the formula: Using


id = 14; eval $data_skills[3].note


and using  id  as a term in your notebox-formula will allow you to substitute static numbers by variables, allowing to use the same formula with slightly different numbers for different skills.


As for naming conventions, your variable names should start with an underscore or a lower case letter (otherwise they might get interpreted as something different) and only contain letters, numbers and underscore characters.


---


Be aware that the linebreaks in the notebox are not ignored when executing the formula. Since linebreaks are used to separate instructions in ruby, this could cause problems when splitting a command right before an opening bracket:


a.element_rate


(20)


would be interpreted as two separate commands while


a.element_rate(


20)


would work fine.
 


---


In case you already use the notebox for something else, you can select a specific section of it by using a regular expression. There are some tutorials out there in case you are interested in how regular expressions work, but you should be able to use


eval $data_skills[3].note[/Formula:(.*?)(?:\n\s*$|\Z)/im, 1]


to only evaluate the part between the character sequence  "Formula:"  and the first following empty line.



Aside from that it's nothing you couldn't do with a supporting script. I've never used the Lunatic Damage script mentioned here and can't say what does without looking it up, but it probably would make things easier.


Sweet! A real non-script solution! Alright, alright, now I need to know... Is there a way to do most of the damage formula in the damage formula box and part of it in the notebox? That would be perfect!


Update: Removed because I now understand what you were saying.


Second update: It seems to be working and you are my hero. Thanks so much!
 
Last edited by a moderator:

SolemnDream

Veteran
Veteran
Joined
Jan 15, 2016
Messages
81
Reaction score
4
First Language
English
Primarily Uses
As I said above, there are alternatives to the full lunatic damage script, but they will require scripting - it can't be done without.


Your only choice is between using a general all-purpose script like the Lunatic Damage Script (which is big and complex because it allows for anything) or having a specific script written with your formulae.


Changing the editor limit is absolutely impossible.


Just so you are aware of this, I DID bypass the damage formula character limit without a script. It just uses the damage formula box and the notebox. I marked that reply in this topic as "Best Answer". And I am absolutely loving this solution. :D
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c

Forum statistics

Threads
105,857
Messages
1,017,018
Members
137,563
Latest member
MinyakaAeon
Top