Ergebnis 1 bis 20 von 1418

Thema: Technik-Sammelthread für Probleme und Antworten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    *seufz* okey~

    Angenommen du hast einen Helden mit 240 Lebenpunkten von maximal 360 Lebenspunkten
    Angenommen du willst daraus Prozent machen.

    also aus

    240 von 360
    ? von 100

    240/360*100 = 66,6666~%

    Als Dreisatz:
    360 entspricht 240
    1 entspricht 240/360
    100 entspricht 240/360*100 = ....66,6666~%!

    In Makervariablen
    1. var = Hero.Lebenspunkte
    2. var * 100
    3. var / Hero.MaxLebenspunkte


    Wichtig:
    Teilen und multiplizieren kann man in beliebiger Reihenfolge machen, also 10/4*2 ist dasselbe wie 10*2/4. Du sollst im Maker zuerst Multiplizieren, weil der Maker keine Nachkommastellen hat, sonst kürzt du das ganze Ergebnis in der Zwischenrechnung weg.

  2. #2
    Als Ergänzung noch eine effektive Gedankenstütze (hilft mir jedes Mal wieder):

    Nehmen wir an, der Held hat von den maximalen 320 HP noch 240 HP übrig.
    320 = 100%
    240 = ???%
    Um ??? rauszufinden multiplizierst du die Zahlen, die Diagonal zueinander stehen (in diesem Fall 240 und 100) und teilst dann durch die übrig gebliebene (in diesem Fall 320).
    Das funktioniert immer und du has zuerst multipliziert, so wie es dir Corti vorgeschlagen hat.

  3. #3
    SCREW MATH I HAVE A CALCULATOR ! XD

    Man es klappt o0
    Danke für die mahte nachhilfe XD

  4. #4
    Zitat Zitat von Cynder Beitrag anzeigen
    Man es klappt o0
    Danke für die mahte nachhilfe XD
    Dann machen wir mal gleich mit Deutsch weiter ;-)

  5. #5
    FUCK ! XD Ich wollte es erst "Mathe" schreiben argh
    ist ja auch egal >_>

    es geht - das ist alles was zählt danke nochmal

  6. #6
    Ich hab' derzeit folgendes Problem:
    Ich bin einfach zu blöd, ein einfaches Skript zu machen, bei dem es darum geht, schnell hintereinander die Enter-Taste zu drücken. Bei jedem Druck von Enter soll eine Variable um einen Punkt erhöht werden. Ich hab' das bis jetzt so gemacht:

    Code:
    Label 1
    Variable Oper: [ENTER] Set 0
    Key Input Proc: [ENTER]
    Branch If Var [ENTER] is 5
     Variable Oper: [ZÄHLER] + 1
     Wait 0.0
     Jump to Label 1
    End
    Ein Timer läuft, der nach 5 Sekunden einen Switch aktiviert, der das Ganze dann beendet. Sobald ich aber nur 1 mal Enter drücke, wird die Variable ZÄHLER aber automatisch immer wieder um 1 erhöht und der Zähler steht dann auf 11. Wenn ich öfter drücke (also wirklich ganz, ganz schnell) dann bekomme ich maximal 29 zusammen. Wenn ich nichts drücke, bleibt er auf 0.

    Wie kann ich es besser lösen?

    LG Mike

  7. #7
    ...
    Branch If Var [ENTER] is 5
    ..Variable Oper: [ZÄHLER] + 1
    ..Label 2
    ..Key Input Proc [ENTER] (ohne wait until key press)
    ..Branch If Var [ENTER] is 5
    ....Wait 0.0
    ....Jump to Label 2
    ..:End
    ..Jump to Label 1
    ...

  8. #8
    Ich weiß zwar nicht, was ich jetzt falsch gemacht habe, aber jetzt zählt es immer 5, egal wie viel ich drücke ^^ Wo gehört der Label 1 hin, damit ich zu Label 1 springen kann, der am Ende steht? Ich habe deinen "Code" jetzt in meine erste Bedingung getan.

    LG Mike

  9. #9
    Willst du "ist Key gedrückt" periodisch abfragen oder willst du die Anzahl der Tastendrücke (Drücken + Loslassen) detektieren? Das ist die wesentliche Frage.

  10. #10
    Diesen Teil aus deinem Code:

    Code:
    Branch If Var [ENTER] is 5
     Variable Oper: [ZÄHLER] + 1
     Wait 0.0
     Jump to Label 1
    ...ersetzt du durch meinen.

  11. #11
    @Corti: Ich will die Anzahl der Tastendrücke zählen.

    @Cherry: Gut, dann hab ich es nach deiner Beschreibung eh schon richtig gemacht gehabt. Es zählt komischerweise jetzt (egal wie oft ich drücke) immer 11.

    LG Mike

  12. #12
    Ist der Code den du gepostet hat, das komplette Event?

    Zeig uns mal sowohl das Tastenabfrage-Event als auch das Zeit-Mess-Und-Switch-Ausmach-Event.

    [Copypasta]
    Verwende für so etwas bitte den EasyEventExporter. Spart Arbeit und zeigt außerdem Eventeinstellungen an, die normal nicht sichtbar sind (z.B. Picturetransparenzen - oder hier die genauen Einstellungen vom Key Input Processing, etc.)

    1. das ganze Event kopieren (Rechtsklick->kopieren)
    2. EasyEventExporter öffnen
    3. Bei der Frage auf "Ja" klicken und die Datei "vbcode_lightbg.eft" im Ordner "ftemplates" auswählen (dadurch wird der Code im Forum gehighlighted
    4. Das Ergebnis dann hier reinkopieren

  13. #13
    Kurz:

    Taste wird gedrückt
    Script: ist die Taste gedrückt? if(ja) +1
    Script: ist die Taste gedrückt? if(ja) +1
    Script: ist die Taste gedrückt? if(ja) +1
    Script: ist die Taste gedrückt? if(ja) +1
    Script: ist die Taste gedrückt? if(ja) +1
    Script: ist die Taste gedrückt? if(ja) +1
    Script: ist die Taste gedrückt? if(ja) +1
    Taste wird losgelassen

    und verbessert:

    Taste wird gedrückt
    Script: ist die Taste gedrückt? if(ja) +1~ wait 0.0
    Script: ist die Taste gedrückt? if(ja) +1~ wait 0.0
    Script: ist die Taste gedrückt? if(ja) +1~ wait 0.0
    Script: ist die Taste gedrückt? if(ja) +1~ wait 0.0
    Script: ist die Taste gedrückt? if(ja) +1~ wait 0.0
    Taste wird losgelassen

    ...na, warum zählts nicht richtig?^^

  14. #14
    Das "Enter-Hämmern"-Event:
    Zitat Zitat von EasyEventExporter
    --- EVENT ---
    Type: Map event
    Name: EV0067
    Coordinates: (9, 0)
    Number of Pages: 2

    -- PAGE 1 --
    Start conditions:
    • Switch [75] == ON
    Sprite: z-objekte1 #0
    Facing direction: Down
    Animation frame: Center
    Transparent: No
    Trigger condition: Parallel process
    Event level: Same level as hero
    Forbid event overlap: No
    Animation type: Non-continuous
    Movement type: Stationary
    Movement frequency: 3
    Movement speed: 3
    - SCRIPT -
    <> Label: 1
    <> Change Variable: [3] = 0
    <> Key Input Processing: Var. [3], Keys: Decision
    <> Fork Condition: If Variable [3] == 5 then ...
    . <> Change Variable: [22] += 1
    . <> Label: 2
    . <> Key Input Processing: Var. [3], Keys: Decision
    . <> Fork Condition: If Variable [3] == 5 then ...
    . . <> Wait: 0,0 sec.
    . . <> Jump To Label: 2
    . . <>
    . : End of fork
    . <> Jump To Label: 1
    . <>
    : End of fork
    <>

    -- PAGE 2 --
    Start conditions:
    • Switch [76] == ON
    Sprite: z-objekte1 #0
    Facing direction: Down
    Animation frame: Center
    Transparent: No
    Trigger condition: Push key
    Event level: Same level as hero
    Forbid event overlap: No
    Animation type: Non-continuous
    Movement type: Stationary
    Movement frequency: 3
    Movement speed: 3
    - SCRIPT -
    <>
    und hier das Timer-Event:
    Zitat Zitat von EasyEventExporter
    --- EVENT ---
    Type: Map event
    Name: EV0069
    Coordinates: (10, 0)
    Number of Pages: 2

    -- PAGE 1 --
    Start conditions:
    • Switch [75] == ON
    Sprite: z-objekte1 #0
    Facing direction: Down
    Animation frame: Center
    Transparent: No
    Trigger condition: Parallel process
    Event level: Same level as hero
    Forbid event overlap: No
    Animation type: Non-continuous
    Movement type: Stationary
    Movement frequency: 3
    Movement speed: 3
    - SCRIPT -
    <> Change Timer: Set timer 1 to 0'5"
    <> Change Timer: Start timer 1
    <> Loop
    . <> Fork Condition: If Timer 1 <= 0'0" then ...
    . . <> Move Picture: #41, (160, 130), Mgn 100%, Tsp 100%/100%, 0,1 sec., Wait
    . . <> Erase Picture: #41
    . . <> Change Switch: [76] = ON
    . . <>
    . : End of fork
    . <> Wait: 0,0 sec.
    . <>
    : End of loop
    <>

    -- PAGE 2 --
    Start conditions:
    • Switch [76] == ON
    Sprite: z-objekte1 #0
    Facing direction: Down
    Animation frame: Center
    Transparent: No
    Trigger condition: Push key
    Event level: Same level as hero
    Forbid event overlap: No
    Animation type: Non-continuous
    Movement type: Stationary
    Movement frequency: 3
    Movement speed: 3
    - SCRIPT -
    <>
    Edit: Ach, jetzt muss ich mir Cortis Text auch noch schnell durchlesen xD Der ist in meinem Post derzeit noch nicht berücksichtigt ^^

    Edit: Weil meins nicht kapiert, wann Enter losgelassen ist? Ich kapiers trotzdem noch immer nicht.

    LG Mike

  15. #15
    Zitat Zitat von Mike Beitrag anzeigen
    Edit: Weil meins nicht kapiert, wann Enter losgelassen ist? Ich kapiers trotzdem noch immer nicht.
    Na das geht doch schon in Richtung Verständnis.

    Du zählst keinen Tastendruck, du guckst, ob gedrückt ist.

    Praktisch gehts so:

    Die Taste ist nicht gedrückt, dein Script guckt mehrmals pro Sekunde ob was ist und denkt sich "hey , ne, da is nix, kein Tastendruck".

    Dann wird die Taste gedrückt, dein Script guckt "hey, ist gedrückt" und addiert +1 und einen Bruchteil einer Sekunde später wieder "hey, ist gedrückt" und addiert +1 und einen Bruchteil einer Sekunde später....

    Was passieren sollte ist:
    Taste wird gedrückt
    Script: "hey, ist gedrückt" und addiert +1 ~ und einen Bruchteil einer Sekunde später
    Script: "hey, ist gedrückt, ist aber immernoch derselbe" und nix +1

    dann wird die Taste losgelassen und Script stellt fest: "hey, die Taste ist nicht mehr gedrückt, d.h. jetzt muss ich wieder aufpassen ob ein Tastendruck kommt"

    Wie löst man das technisch?
    Die Tasteneingabe in eine zweite Variable kopieren und dann den Zähler nur erhöhen wenn die Tasteneingabe deiner Decision entspricht, also "5" ist UND die vorherige Tasteneingabe auf 0 oder nirgendwas nicht-5 ist.

    So, damit solltest du es jetzt lösen können ;-)

Berechtigungen

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