Ergebnis 1 bis 14 von 14

Thema: HP/MP mit variablen(help)

  1. #1

    HP/MP mit variablen(help)

    Nun nach nem halben jahr mach ich mich mal wieder an den maker . Im moment versuch ich ein eigenes Kampfsystem zu machen, mein jetziges problem(von ziemlich vielen )bei dem ich nicht weiterkomme ist folgendes:

    Da ich die HP ja mit variablen machen will, wollte ich es natürlich so machen, das beim heilen die maximale anzahl lebenspunkte levelbasierend nicht überschritten werden kann. Dazu hab ich mir zweimal die Variablen für Hp zugelegt, einmal konstant und einmal das was man im moment noch an lebensenergie übrig hat. Leider kann ich mich wenn ich 200/200 HP hab bis zu 9000 HP noch heilen. Ansonsten muss ich noch wissen wie ich es machen kann das sich die HP auch nacher in einem kampf richtig abziehen und ich nicht plötzlich um die -500 HP hab.

    Mal sehn ob ihr mir da helfen könnt.

  2. #2
    ich versteh dein problem aber ich versteh nicht genau was du haben wills^^

    kanst du es noch genauer erklären?

  3. #3
    Ich will nur das ich nichtmehr 1000 von 200 HP haben kann, es soll nur das max. an HP ereichbar sein z.b. 200/200.

  4. #4
    hmm dann müssteste die eine variable auf max lp stellen hmm kanse mal den code hier rein posten?dann könnt isch disch^^ besser helfen

  5. #5
    Fork: Var[HP] bigger than [Max HP]
    Change Var: [HP] Set [Max HP]
    End Case

    so gehts nich über die max HP raus

    Fork: Var [HP] below -1
    Change Var: [HP] Set 0
    End Case

    so gehts nich unter 0.


    nich schwer, oder? ^^

  6. #6
    Also hier erstmal die startvoraussetzung für den chara:
    < >Bedingung:Varbl[0042:Level01]-0
    < >Var.ändern:[0042:Level01]Set, 1
    < >Var.ändern:[0046:HP01]Set, 2
    < >Var.ändern:[0049:MP01]Set, 2
    < >Var.ändern:[0053:HP01/con]Set, 2
    < >Var.ändern:[0056:MP01/con]Set, 2

    Wobei 0001 für 1HP und 001 für 10 stehn, sowie 01 für 100 HP/MP. Con. steht für den max. wert an HP/MP.

    Dann hab ich noch eingestellt dass es bei jeder heilung so aussieht:
    < >Bedingung:Varbl[0044:HP0001]-10
    < >Bedingung:Varbl[0047:HP1]-9
    < >
    : Ansonsten
    < >Var.ändern:[0045:HP001]+, 1
    < >Var.ändern:[0044:HP0001]Set, 0
    < >
    :END-Fall
    < >
    :END-Fall

    Dass hab ich mit allen auch mit 001 und 01 gemacht.

    Dann hab ich versucht es so einzustellen, dass die variable HP nicht die variable HP/con übersteigen kann, hatte aber nicht herausgefunden wie ich das machen soll. Darum kann das ganze immer auf 9999HP von 200HP ansteigen(ein spielfehler den ich in manchen spielen gerne hätte ). Hoffe du kannst mir sagen wie ich die variablen einstellen muss dass HP von HP/con abhängig ist.

    Geändert von Asgar Serran (30.08.2003 um 05:37 Uhr)

  7. #7
    maaan melior immer kommst du mir zuvor ich hatte gehofft auch mal zuhelfene^^
    naja muss ich wenigstens meinen grips net so anstrengen^^

  8. #8
    Zitat Zitat
    Original geschrieben von melior
    Fork: Var[HP] bigger than [Max HP]
    Change Var: [HP] Set [Max HP]
    End Case

    so gehts nich über die max HP raus

    Fork: Var [HP] below -1
    Change Var: [HP] Set 0
    End Case

    so gehts nich unter 0.


    nich schwer, oder? ^^
    Bei der methode gibts nur ein kleines problem, da ich für 1, 10, 100 und 1000 eigene variablen verwendet habe,(da es anderst viel zu umständlich ist und ich keine lust auf 1 event mit über 100 seiten habe!) gibt es ein problem, nämlich:
    ich müsste es für alle variablen so einrichten, das hieße aber, dass wenn ich bei maximal 200 HP 50 schaden nehmen würde nurnoch 100 HP hätte. (zum anderen hab ich noch einen weiteren fehler gefunden, der es mir nur ermöglich allerhöchstens 9000 HP zu haben, den hab ich aber glaube ich geregelt.

    Das andere problem ist nicht, das ich soviel schaden genommen habe das der wert unter 0 ist, sondern dass es wenn es von 1500 auf 999 umspringen sollte nicht ins minus geht, aber das habe ich dank des ersten problems nun geregelt.

    -edit- anderst gesagt, die beiden probleme sind das gleiche und haben sich besser gesagt noch nicht geregelt, nur die vorstellung wie ich das mit abzug von HP machen kann ist da, aber das problem mit der maximalen überschreitungsgrenze bleibt.

  9. #9
    Ehrlich gesagt, weiß ich nich so ganz, was du mit dem code in deinem vorletzten post machst ^^° Ich hab nur verstanden, dass du heilen willst, und dabei sollen die HP langsam hochlaufen, stimmts?


    ich würde das so machen:
    Label #1
    Fork: Var[HP1000er] below [Max HP1000er]
    Change Var: [HP1000er] (das wäre die 1000er Stelle)+1
    Change Var: [HP100er] Set Var [HP1000er]
    Change Var: [HP100er] Mod 1000
    Change Var: [HP10er] Set Var [HP100er]
    Change Var: [HP10er] Mod 100
    Change Var: [HP1er] Set Var [HP10er]
    Change Var: [HP1er] Mod 10
    (so wird jede einzelne stelle ausgerechnet)
    GoTo Label #1
    End Case


    Du darfst mit dieser methode nur zu den 1000er stellen etwas addieren oder subtrahieren. So kriegst du immer den richtigen wert der momentanen HP.



    Und dann machst du einfach diese Fork noch hintendran

    Fork: Var[HP1000er] bigger than [Max HP1000er]
    Change Var: [HP] Set [Max HP]
    Change Var: [HP100er] Set Var [HP1000er]
    Change Var: [HP100er] Mod 1000
    Change Var: [HP10er] Set Var [HP100er]
    Change Var: [HP10er] Mod 100
    Change Var: [HP1er] Set Var [HP10er]
    Change Var: [HP1er] Mod 10
    End Case


    das mit dem Mod kannst du auch alles in ein extra Event reinmachen, dann reicht ein kurzes Call event aus

  10. #10
    Zitat Zitat
    Original geschrieben von melior
    Ehrlich gesagt, weiß ich nich so ganz, was du mit dem code in deinem vorletzten post machst ^^° Ich hab nur verstanden, dass du heilen willst, und dabei sollen die HP langsam hochlaufen, stimmts?


    ich würde das so machen:
    Label #1
    Fork: Var[HP1000er] below [Max HP1000er]
    Change Var: [HP1000er] (das wäre die 1000er Stelle)+1
    Change Var: [HP100er] Set Var [HP1000er]
    Change Var: [HP100er] Mod 1000
    Change Var: [HP10er] Set Var [HP100er]
    Change Var: [HP10er] Mod 100
    Change Var: [HP1er] Set Var [HP10er]
    Change Var: [HP1er] Mod 10
    (so wird jede einzelne stelle ausgerechnet)
    GoTo Label #1
    End Case


    Du darfst mit dieser methode nur zu den 1000er stellen etwas addieren oder subtrahieren. So kriegst du immer den richtigen wert der momentanen HP.



    Und dann machst du einfach diese Fork noch hintendran

    Fork: Var[HP1000er] bigger than [Max HP1000er]
    Change Var: [HP] Set [Max HP]
    Change Var: [HP100er] Set Var [HP1000er]
    Change Var: [HP100er] Mod 1000
    Change Var: [HP10er] Set Var [HP100er]
    Change Var: [HP10er] Mod 100
    Change Var: [HP1er] Set Var [HP10er]
    Change Var: [HP1er] Mod 10
    End Case


    das mit dem Mod kannst du auch alles in ein extra Event reinmachen, dann reicht ein kurzes Call event aus
    Die obrig gennanten codes stimmen alle daran braucht man nichts ändern, es ist nur das es vieleicht be der problemlösung helfen könnte. Und das problem ist nicht das ich langsam heilen will sondern das ein heiltrank der 50 HP heilt nichtmehr 50 HP heilen kann wenn die maximalen HP schon erreicht sind. Mit der ersten Methode die du genann hattest ist entweder das problem, das ich noch 250 HP erreichen kann, oder die HP bei 50 schaden von 200 auf 100 sinkt. Das problem wäre so einfach zu regeln würde ich die gesammten HP variablen in eine packen aber das würde dann heißen ich müsste für alle 1 10 100 und 1000der anzeigen ein bild in ein event setzen. bei 7 events kannst du dir vorstellen dass das zu viel ist.

    PS:Und wie du oben im post mit den vielen variablen von mir siehst hab ich den deutsch patch. (ist aber nicht so wichtig)

  11. #11
    Uppss... auf den deutschpatch hab ich gar nich geachtet, sorry ^^°

    Fork = bedingung, aber das is ja klar, oder

    und jez hab ich auch geblickt, wie dus meinst.

    du lässt noch ne andere variable hochzählen, immer mit +1. und für die heilung brauchst du auch eine, die diu aber auf einen festen wert setzt (hier: 50).
    dann kommt ne bedingung ()

    Bedingung: [die variable zum hochzählen] = [der variable mit dem fixen wert]
    dann hier was reinmachen, das das heilen unterbricht
    Ende Bedingung


    ich hoffe, du weißt, was ich mein

  12. #12
    Hm, leider versteh ichs nicht, aber ich werds mir so oft durchlesen, bis ichs verstanden habe

  13. #13
    Okay, nochmal ^^

    Wir brauchen:
    Ne variable, die den Wert hat, um wie viel die HP geheilt werden sollen
    eine, die wir einfach immer um 1 hochzählen lassen, wenn wir die HP um 1 erhöhen


    immer wenn du bei deinen HP 1 addierts, musst du die 2 variable, die ich da oben beschrieben hab, auch um 1 erhöhen, und das solang, bis sie den wert der 1. variablen hat. Wenn du also deine HP um 50 heilen willst, muss die erste auf 50 sein.

    Label #1 (oder n cycle)
    Change Variable: [die 2. ^^] +1
    Fork: Var[dier 2.] Same Var[die 1.]
    hier den kreislauf irgendwie beenden (mit GoTo Label oder break cycle)

    Else Case
    Goto Label #1

    End Case



    jez geblickt ^^

  14. #14
    Das problem hat sich erledigt, special thx @ melior

Berechtigungen

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