Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 35

Thema: Zahle, Zahlen, Zahlen ...

  1. #1

    Zahle, Zahlen, Zahlen ...

    So,
    erstmal hi
    vorab möchte ich sagen, das ich nicht so gut darin bin meine Probleme zu beschreiben. Deshalb könnte hier gleich ein etwas verwirrender Text stehen.

    Also fang ich mal an.

    Ich bin gerade dabei mein eigenes Levelsystem zu bauen.
    Bei jedem Level bekomtm man Attribute dazu. (Stärke, Ausdauer usw.)
    Ausserdem soll man über einen talentbaum noch paar Sachen dazuverdienen können. Ebenso wie über Waffen und Rüstung.
    Jetzt mein Problem.
    Das alles zusammenrechnen lassen und mit den Werten kämpfen usw geht ja.
    Nur wenn ich diese über Bilder anzeigen möchte komme ich ins straucheln.
    Ich kann ja nicht für jede Zahl von 0-99999 ein Pic machen. Also muss ich ja irgendwie die Zahlen in den Variablen aufteilen können.

    rein theoretisch weiß ich, wie es geht. Nur brauche ich da für jeden Wert einen immensen haufen an Variablen, weil ich immer zwischenspeichern muss :-/
    Und ein großer Haufen *7Attribute * 8 CHaraktere ist irgendwie nicht so verlockend :-/

    Also nochmal kurz:
    Wie schaffe ich es mit wenig Aufwand den Wert in einer Variable auf die 100er,10er 1er stellen aufzuteilen?

    Oder falls es einen einfacheren weg gibt sagt mir den

  2. #2
    Ich hab dir hier mal ein Screenshot von einem meiner Zahlensplit Skripte gemacht:


    Erklärung: (Auf dieses Beispiel bezogen)
    Bevor du den Attribut durch den Split jagst, (z.B. Stärke) setzt du die Variable "v0026: Zahlensplit" deines zu splittenden Attributes gleich. Dann rufst du dieses Event aus der Database auf und brauchst dann nur noch die einzelnden Zahlen anzuzeigen.

    Wenn du das mit Pictures machst, dann brauchst du auch nicht für jede einzelnde Ziffer eine Variable, du kannst z.B. so vorgehen:

    Code:
    >Setze Zahlensplit gleich des ersten Atrributes
    >Rufe das Zahlensplitskript auf
    >Zeig die einzelnden Bilder nach den einzelnden Variablen an
    >Setze die Zahlensplit-Variable gleich des nächsten Attributes
    >usw. bis du halt mit allen Attributen fertig bist.

    Oder du übernimmst ganz einfach die Werte aus dem Skript d.h. du brauchst dann z.B. die Variablen:
    Stärke 1000er
    Stärke 100er
    Stärke 10er
    Stärke 1er
    Magie 1000er
    Magie 100er
    Magie 10er
    Magie 1er
    usw.


    Ist insgesamt nicht wirklich schwer.

  3. #3
    Dein Skript ist unnötig aufwändig. Besonders dank der Iteration darin :o

    Um Zahlen zu splitten braucht man doch nicht mehr als:

    Code:
    Ausgangszahl: 1234
    
    1234 / 1000 = 1
    
    1234 % 1000 =  234
    234 / 100 = 2
    
    1234 % 100 = 34
    34 / 10 = 3
    
    1234 MOD 10 = 4
    
    % = Mod
    Geht viel schneller und simpler. Diese Rechnenweise funktioniert so da der Maker nur mit Ganzzahlen rechnet.

    Das Ergebnis dieser Rechnungen musst du nur in Variablen abspeichern und je nach dem mit einem Fork abfragen was für eine Zahl drin ist. Und diese dann entsprechend anzeigen lassen. Alternativ geht das natürlich auch mit Eventseiten.

    Edit:
    Recht hat er, mit dem PPP kannst du dir sogar das abgeforke sparen.

    Geändert von makenshi (28.01.2010 um 06:57 Uhr)

  4. #4
    Tipp: Am einfachsten geht es mit dem PicPointerPatch, weil du da die Bild-ID und auch den Dateinamen mit Variablen bestimmen kannst: http://www.multimediaxis.de/showthread.php?t=107583

    Im Beispielprojekt siehst du eine 6stellige Zahlenanzeige über Pictures, die 10 Zeilen Eventcode braucht. Die nur kannst du ganz einfach in dein Projekt übertragen.

    (Dabei kommt natürlich wieder "Mod" zum Einsatz; Danke Maki)

  5. #5
    Hast du schon mal im "Change Variable" Bereich den Operator "MOD" gesehen, und dich gefragt, wofür der gut sein soll? Nun, genau dafür! Der MOD-Operator teilt eine Zahl durch eine andere, gibt dir aber nicht das Ergebnis aus, sondern den Rest. So, wie in der Grundschule. 12 MOD 5 z.B. wäre 2, da 12 / 5 = 10, Rest 2.

    Inwiefern ist das jetzt für dein Problem nützlich? Die Antwort heißt MOD von 10.

    Hast du beispielsweise die Zahl 8483 und benutzt den MOD von 10, so bekommst du die 3, da 8480 durch 10 teilbar sind und 3 übrig bleiben. Mit dem MOD von 10 bekommst du also immer die letzte Stelle einer Zahl. Du brauchst insgesamt drei Variablen:

    -Originalzähler (z.B. HP Zähler)
    -Kopie des Zählers (wird nur verwendet, um den Originalzähler nicht zu verändern)
    -MOD-Ergebnis.

    Zuerst speicherst du den Wert des Originalzählers in der Kopie. Danach setzt du das MOD-Ergebnis = die Kopie. Nun musst die Kopie durch 10 teilen und das MOD-Ergebnis durch 10... MODden (< kann man dieses Wort hier benutzen ). Nun hast du die letzte Stelle im MOD-Ergebnis und kannst diese anzeigen. Nun musst du das MOD-Ergebnis wieder = die Kopie setzen, diese durch 10 teilen und das MOD-Ergebnis durch 10 MODden. Nun hast du die vorletzte Stelle. So verfährst du weiter, bis du alle Stellen verarbeitet hast.

    EDIT:
    Verdammt, ninja'd T_T

  6. #6
    das mit dem mod und so wusste ich. War mir nur zu umständlich ^-^

    ich werde das mal mit dem picpointer patch versuchen

  7. #7
    Zitat Zitat von agentk Beitrag anzeigen
    das mit dem mod und so wusste ich. War mir nur zu umständlich ^-^

    ich werde das mal mit dem picpointer patch versuchen
    Der PPP ersetzt die Modular Rechnung nicht, nur so für den Fall das der Eindruck entstanden sein sollte. Er bietet dir nur die Möglichkeit auf Picture IDs und Dateinamen zu referenzieren. Was dir wiederum das abgeforke erspart.

    Schneller als mit der Modularrechnung wirst du es nicht kriegen.

  8. #8
    da ich nicht immer wieder neue threads aufmachen will, frag ich hier einfach weiter ^-^

    Was genau passiert bei einem call event?
    Ich dachte bis jetzt, das das gecallte event einmal durchlaufen wird und dann geht es hinter dem callbefehl weiter. Ist das richtig so? Wenn ja muss ich den Fehler woanders suchen :P

  9. #9
    Zitat Zitat von agentk Beitrag anzeigen
    Was genau passiert bei einem call event?
    Ich dachte bis jetzt, das das gecallte event einmal durchlaufen wird und dann geht es hinter dem callbefehl weiter. Ist das richtig so? Wenn ja muss ich den Fehler woanders suchen :P
    Ist es in der Regel schon. Könnte ja sein, dass du im gecallten Event drin wieder ein anderes Event callst und diesem dann wieder ein anderes. Dann könnte es schon so aussehen, als wäre alles willkürlich, aber normalerweise sollte es schon so sein, wie du sagst, dass es danach normal weitergeht.

  10. #10
    das prob ist, es geht danach nicht weiter
    dann hab ich wohl in dem anderen event etwas verhackstückelt ^^

  11. #11
    Was für ein Event rufst du denn genau auf? Ich bin davon ausgegangen, dass du ein Common Event mit der Einstellung "Call Event" aufrufst. Mir ist aber gerade eingefallen, dass Der Call Event Befehl auch noch andere Event-Typen aufrufen kann. Beschreib mir mal genau, wie du das jeweilige Event eingestellt hast und was das überhaupt für ein Event ist (ein Map Event oder ein Common Event?).

  12. #12
    Es ist ein commonevent.
    Ich versuche gerade mir ein menü zu bauen.
    Und am Anfang war ich mir über die tolligkeit von Cal event noch nicht bewusst. Wie ordentlich man damit alles haben kann und so.
    Das heisst ich habe jetzt ein riesenevent und von da calle ich das besagte zweite event. Das läuft auch durch, nur danach passiert nichts mehr. Aber ich habe wahrscheinlich in dem riesigen unübersichtlichen teil einfach nur ne kleinigkeit falsch gesetzt.
    Und die werde ich heute Abend finden müssen

  13. #13
    Joa, ein ähnliches Problem hatte ich auch mal. Da hatte ich mehrere Parallel Events laufen, und mitten in einem Event, hat ein anderes Event eine Bedingung geändert, sodass das erste Event mittendrin unterbrochen wurde. Bei nicht-parellelen Events kenne ich sowas aber noch nicht. Ist denn dieses erste Event (das die andere callt) parallel?

  14. #14

  15. #15
    Das ist halt der Mist wenn man unübersichtlich skriptet. Ich kann mich noch erinnern mal ein Memoryspiel geskriptet zu haben und es wollte einfach nicht funktionieren. Ich hab dann stundenlang den Fehler gesucht, bis ich irgendwann mal feststellte, das ich bei Variablensetzen nicht auf "Setzen" sondern auf "Addieren" gedrückt hab. Das war echt ätzend...

    Seitdem beschrifte und stückel ich Skripte ganz gerne, so kann man die Fehler besser eingrenzen und findet diese schneller.


    Edit:
    Setzt du einen Switch in dem gecallten Event auf aus, der für das Parallel laufende Event als Condition steht ?

    Bin mir gerade nicht ganz sicher ob das Event dann trotzdem weiterläuft.
    Ansonsten kann es vielleicht noch sein das du "Clear Event" oder so im Skript eingewurstet hast ?

  16. #16
    Vielleicht hilft es auch, wenn du statt Parallel Process Auto Start auswählst. Das half auch bei meinem Problem damals. Ein Parallel Process verläuft nämlich, wie der Name schon sagt, parellel zu anderen Events, während ein Auto Start Event andere Events stopp. Bei einem Menü wäre Auto Start sowieso die bessere Variante, da du ja nicht willst, dass sich im Hintergrund Events bewegen, während du durch das Menü navigierst. Genau das wäre aber bei einem Parallel Process der Fall. Probier's einfach mal; vielleicht schlägst du ja dann zwei Fliegen mit einer Klappe.

  17. #17
    Zitat Zitat von RPG Hacker Beitrag anzeigen
    Vielleicht hilft es auch, wenn du statt Parallel Process Auto Start auswählst. Das half auch bei meinem Problem damals. Ein Parallel Process verläuft nämlich, wie der Name schon sagt, parellel zu anderen Events, während ein Auto Start Event andere Events stopp. [...]
    Das stimmt so nur halb. Ein Autostart Event stoppt z.B. keine parallelen Prozesse. Die laufen daneben weiter.

    @Topic
    Um dein Problem wirklich nachvollziehen zu können, solltest du eine genauere Beschreibung und etwas Code liefern. So ist das eher ein Ratschlägespielchen was dir nicht wirklich was bringt.

  18. #18
    ist schon in Ordnung. Wollte nur nochmal genaueres zu den vents wissen
    Den Code hab ich gelöscht und nochmal neu angefangen. Alles übersichtlicher und so =)

  19. #19
    So. Und wieder hoch damit =D

    Habe mal wieder eine Frage.

    Ist es möglich eine HP anzeige zu machen, welche in 1% abständen anzeigt , ohne 100 Forks und 100 Bilder zu machen?

    Hatte überlegt, das ich einfach einen schwarzen Balken in der selben größe daneben anzeigen lasse, und ihn einfach dementsprechend viele pixel über die anzeige schiebe.
    Aber das sieht kagge aus. ich bekomme den Balken nicht versteckt bei meinem Menü.
    Hab da nen transparenten hintergrund und der gefällt mir einfach viel zu gut

  20. #20
    Wenn du die HP-Anzeige ganz in eine Ecke stellst oder ein HUD rundherum hast, was auf einer Seite mindestens genauso breit ist wie die HP-Leiste, dann schon, weil dann kannst du quasi den Balken unter dem HUD (oder außerhalb des Bildschirms) verschieben, sodass durch den transparenten Ausschnitt nur ein Teil sichtbar ist. EDIT: Zu schnell gelesen.

    Ansonsten: ohne 100 Forks ja (PicPointerPatch), aber 100 Bilder wirst du brauchen. Außer du verwendest auch noch den DestinyPatch und machst das mit einem kleinen Script, aber das wäre wahrscheinlich komplizierter als notwendig.

Berechtigungen

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