Ergebnis 1 bis 5 von 5

Thema: Wie ist die Exp Formel für RM2k3?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    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



    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/bl....cpp#L530-L566 (ich glaube aber hier ist der Level evtl. 0-basiert)

    Code:
    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());
    }

    Geändert von Cherry (26.12.2020 um 18:23 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •