Talentpunkte-System

  • Heyho und Abend, hab mich lange nicht mehr gemeldet.^^

    Nach ner langen Pause wollte ich mal wieder fortsetzen.


    Folgendes Szenario:

    Ich habe ja ein System, was meinem Charakter Punkte gibt, wannimmer dieser ein Level aufsteigt. Dafür habe ich(Mit Hilfe der Community) ein Event gebastelt, was mir automatisch Punkte gibt.

    Bisher war es so, dass mein Charakter Punkte in Höhe des Levels, was dieser erreicht hat erhielt. Es wird also immer mehr. Auf Level 100 hätte dieser 5050 Punkte zum verteilen.

    Allerdings ist mir das zu wenig, da ich laut Berechnungen locker mehr Punkte brauche.

    Aus diesem Grund habe ich ne kleine Formel, die mir mehr Punkte ausspuckt.


    Vorher war die Formel so:

    Wenn Level Up:

    Punkte += Neues Level


    Aber nun möchte ich es SO machen(ich kann ja noch dran rumbasteln):

    Wenn Level Up:

    Punkte += Neues Level*(1+(0.02*Neues Level))


    Heißt also, dass mein Charakter auf Lv100 300 Punkte statt 100 bekäme.


    Nun das Ding: Ich weiß nicht exakt, wie man solch ne Formel einbaut. Ich versuche es mit "Variable steuern" und darin die Eingabefläche "Skript"

    "tad_lv1*(1+(0.02*tad_lv1))" Tad ist der Name der Variable



    Könnt ihr mir helfen? Thaanx:)

  • Hi Truncatus,


    es wäre praktisch wenn du, gerade bei technischen Fragen, einen Screenshot beifügst.


    Zur Frage: Die Variable "tad_lv1" ist eine Spielvariable, richtig? Wenn das so ist dann musst du bei einem Script stattdessen "$gameVariables.setValue(ID, neuer Wert)" bzw. "$gameVariables.value(ID)" eingeben. Statt "ID" musst du die Nummer der Spielvariable eintragen. Die Nummer ist immer vor dem Variablennamen. Führende Nullen kannst du weglassen. Die erste Funktion setzt der Variable einen neuen Wert, die zweite liest einfach nur ihren momentanen Wert aus. Für "neuer Wert" kannst du auch Formeln verwenden. Den Level müsstest du mit "$gameActors.actor(ID).level" ansprechen können (muss ich noch testen, sollte aber klappen). Der Scriptschnipsel müsste also lauten, angenommen die ID ist 1:


    Code
    1. $gameVariables.setValue(1, $gameActors.actor(1).level*(1+(0.02*$gameActors.actor(1).level)));

    Edit: Man sollte die Frage schon richtig lesen... also, wenn du das über Variable steuern machst dann einfach nur folgenden Code eingeben:


    Code
    1. $gameActors.actor(1).level*(1+(0.02*$gameActors.actor(1).level))

    Allerdings rundet der Maker dabei ab. Wenn du mathematisch runden willst dann:


    Code
    1. Math.round($gameActors.actor(1).level*(1+(0.02*$gameActors.actor(1).level)))

    Mit der mathematischen Rundung komme ich insgesamt auf 11522 Punkte und ohne auf 11472.