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
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:
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.
Dein Skript ist unnötig aufwändig. Besonders dank der Iteration darin :o
Um Zahlen zu splitten braucht man doch nicht mehr als:
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.
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)
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!
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.
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.
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
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.
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?).
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
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?
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 ?
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.
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.
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 =)
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
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.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!