Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie ist die Exp Formel für RM2k3?
Im RM2k3 haben wir einen Base Wert, einen Extra Wert und eine Acceleration.
Kann mir jemand erklären, wie die Formel lautet um die Exp für den nächsten Level zu berechnen?
Aus dem rpgmaker.net Forum: (https://rpgmaker.net/forums/topics/11264/?post=383789#post383789)
Depends on what he set the EXP curves to in the database. The EXP needed to reach the next level in RM2K3 is Primary + (Secondary * current level) + Tertiary. Primary, Secondary and Tertiary are the three sliders in the database when you are setting the EXP curves.
Yes, the primary and tertiary sliders do exactly the same thing. Yes, really.
Wow das ist wirklich eine sehr stumpfe Formel.
Vielen Dank!
Das wurde im 2k3 verschlimmbessert. Im 2k war die Formel wesentlich weniger stumpf. Ich hab das jetzt versucht ca. zu rekonstruieren aber es kann sein dass da noch wo Fehler drin sind... Es gilt: a = Primary, b = Secondary, c = Tertiary, l = Level
https://cherryshare.at/i/fYw6hy/image.png
Ich weiß du hast nach 2k3 gefragt und nicht 2k, aber vielleicht findet das noch mal wer anderer und glaubt dann es gilt auch für 2k...
EDIT: Hier die entsprechende Funktion im EasyRPG-Code: https://github.com/EasyRPG/Player/blob/268a3e872da81903d62daad3dd84fe0e7e280ae1/src/game_actor.cpp#L530-L566 (ich glaube aber hier ist der Level evtl. 0-basiert)
int Game_Actor::CalculateExp(int level) const {
const lcf::rpg::Class* klass = lcf::ReaderUtil::GetElement(lcf::Data::classes, data.class_id);
double base, inflation, correction;
if (klass) {
base = klass->exp_base;
inflation = klass->exp_inflation;
correction = klass->exp_correction;
}
else {
const lcf::rpg::Actor& actor = *lcf::ReaderUtil::GetElement(lcf::Data::actors, GetId());
base = actor.exp_base;
inflation = actor.exp_inflation;
correction = actor.exp_correction;
}
int result = 0;
if (Player::IsRPG2k()) {
inflation = 1.5 + (inflation * 0.01);
for (int i = level; i >= 1; i--)
{
result = result + (int)(correction + base);
base = base * inflation;
inflation = ((level+1) * 0.002 + 0.8) * (inflation - 1) + 1;
}
} else /*Rpg2k3*/ {
for (int i = 1; i <= level; i++)
{
result += (int)base;
result += i * (int)inflation;
result += (int)correction;
}
}
return min(result, max_exp_value());
}
lylayanez
26.04.2021, 04:43
Das ist genau das, was ich gesucht habe. Danke!
five nights at freddy's (https://fivenightsatteddys.com)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.