Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

This sort of solves my problem. The roundabout way that plugin adds notetags works but is a bit overcomplicated for my needs. Still does the job though.

Unfortunately, i'm getting errors when using Dynamic Parameters alongside visustella's menu. Not sure if it's something i've done or if it's incompatible with the visustella core menu. I have it set up so I have visustella custom parameters who's values are set to x value plus the cparamater

ex, i have a parameter called Physical Attack, the value of which is the actor's Attack + cparam "pa", so it displays in the visustella status menu.

I have a very simple use of the dynamics plugin but still getting this error. Any insight?

My Cparams:My dynamic template


(all are set to default except the following  state applies fine using my skill, but upon going to the status menu where Physical attack is displayed, i get this error

Any insight or possibility of a simper notetag system, ideally not using a second plugin? Just want to modify cparams by a set value on notetags. Also totally possible i'm being a dunce and just using the dynamic plugin wrong, but regardless, i really appreciate any time you could spare me. Thanks!

Hi there!

Unfortunatelly, you can't use another parameter as a base for other parameter. Meaning you can't: `this.cparam(1) + 5`, it will trigger this maximum call stack size error. 

This error means that javascript entered in a loop when calling functions. On this case, when you call "this.cparam(1)", that function is already calling the dynamic parameter function. So it enters on a loop. So I don't think visustella is the problem.

I wanted to try to find an alternative for that for a long time. But unfortunatelly, you can't use a parameter as base for another, for now.

Any insight or possibility of a simper notetag system, ideally not using a second plugin? Just want to modify cparams by a set value on notetags

- For both custom parameter and dynamic parameter, I will add a simple note tag system so you don't need to use the plugin parameters for that when you want to just change some parameter values.

- For the custom parameter, I want to keep it working as the same as the default parameters, but using custom parameters. So it does not get out of the scope. So on the states, I will add a way for you to also use something like this(that honestly, I don't know why I didn't added it since the beggining):


But if you want to add a flat value or a dynamic one, you will still need the dynamics plugin.

I can't say to you when I will do this. But I will someday, just put it on my to do list.

(+1)

Hey, super appreciate the reply. I'll do some kind of JavaScript workaround in the meantime and get the dynamics stuff to work. I'll figure it out.

I await your updates, but I'll probably find some solution before then, albeit with way too much unnecessary code involved haha. Thanks for all the help and good luck with your projects. 

Thanks for understanding!

i'm sure you will find a way, if not, I will let you know here when I released the updates!

I manage to solve this issue on the last update of the Dynamic Parameters plugin. Now you can use a parameter as a base value for another parameter. You also don't need to use the whole template anymore(you still can if you want), you have a simple way to do things now with a note tag:

<DynParam atk> 
return this.rawCParam(1) + 5 
</DynParam>

On this example, the Atk value will equal to the value of the Custom Parameter ID 1 + 5. For that to work, you need to use some different script calls, to get the other parameter value, without the dynamic values added to it:

Custom Parameter raw methods
When EliMZ_CustomParameters is installed, Custom Parameters also have raw methods:
rawCParamBase(nameOrId) → returns only the regular custom parameter base value.
rawCParamPlus(nameOrId) → returns the regular custom parameter plus value without Dynamic Parameters additions.
rawCParam(nameOrId) → returns the final regular custom parameter value without Dynamic Parameters additions.
- this.rawCParamBase("crm")
- this.rawCParamBase(1)
- this.rawCParamPlus("crm")
- this.rawCParamPlus(1)
- this.rawCParam("crm")
- this.rawCParam(1)

There are equivalent methods for all type of parameters.  You still need to be aware of the maximum call stack size error on cases like this, even sing the raw methods:

Circular Dependencies
This is a crash that can happen if for example you do that for ATK:
return this.rawParam("def") + this.rawParam("mhp")
And do that for DEF:
return this.rawParam("atk") + this.rawParam("mhp")
This will likely cause a maximum stack size error. You can make a parameter value be based on another one(ATK based on DEF). But then, you cannot also make DEF based on ATK. They will reference each other and end up in a loop.
Try to also avoid using the default maker formulas for that. Stick with the raw script call formulas if you want a parameter based on another.

But for now, you could do what you wanted to do before and didn't manage. Just make sure to check the new help file from the Dynamic Parameter plugin explaining everything.