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
    Zitat Zitat von Corti Beitrag anzeigen
    Der Dateiname ist an der Stelle unfug, da die Bilderdaten längst in onInit geladen wurden. Praktischer wäre es die Bildaten in ein Array zu packen und dann jeweils das Bild an Index i anzuzeigen.
    Praktikablerweise würde ich so etwas nicht einmal als Schleife machen sondern copy&paste, sind eh maximal 4. Der Kompiler wird kleine Schleifen in der Optimierung sowieso "unrollen" wenn es sich anbietet.

    Die beste Lösung bietet aber hier unser Cherrrrry~

    Cherry, könnte man auf die Art alle bekannten "Hacks" on the fly einspielen? Krieg ich die Offsets für Dyn-reinterpret-casts durch simple Differenz der hier gegebenen Adresswerte raus?
    Oh, du hast vollkommen Recht. Kommt davon, wenn man mal fix antwortet. Danke für den Hinweis! Werd's gleich editieren.
    Hatte schon wieder ne ganz andere Lösung im Kopf und dann falsch gedacht - passiert^^''

    Und letzteres würde mich auch brennend interessieren! Ich habe nämlich alles, was Cherry bisher iwo gepostet hat an OnTheFly-Hacks und was ich gefunden habe zusammengesammelt^^

    PeAcE
    MorDen

  2. #2
    Vergiss nicht die Exp-Anzeige im Statusmenü:
    0x9E621 -> 01 set 00 (ausblenden)
    bzw.
    0x9E628 = x-Pos

    und das Exp-Symbol
    0x9E4A6 -> 01 set 00 (ausblenden)
    bzw.
    0x9E4AD = x-Pos

    und das ----/---- beim max.Lv
    0x9E5D4 -> 01 set 00 (ausblenden)
    bzw.
    0x9E5DB = x-Pos

    Zitat Zitat von Corti Beitrag anzeigen
    Cherry, könnte man auf die Art alle bekannten "Hacks" on the fly einspielen? Krieg ich die Offsets für Dyn-reinterpret-casts durch simple Differenz der hier gegebenen Adresswerte raus?
    Physischer Offset + 0x400C00 = virtueller Offset. Klingt lustig, wenn man zwischen HexHacks wechseln kann/tut.

  3. #3
    Nein, ursprünglich wollte ich die EXP bis zum nächsten Level ändern, so dass ich nicht an die Kurve vom RPG Maker gebunden bin. Da das ja scheinbar nicht geht, benutze ich jetzt Variablen.
    Da ich dann aber nicht die korrekten Werte im Menü hätte, wäre das nur verwirrend für den Spieler, also hab ich mir gedacht ich pack da halt ein Bild mit "100" hin und sag dem Spieler dann wieviel "Prozent" er schon hat.
    Diese Angabe ist dann zwar gerundet, aber das ist nicht so schlimm denke ich, ansonsten mach ich aus der 100 einfach eine 1.000 und kann sozusagen eine Nachkommastelle anzeigen.
    Dann würde 627/1.000 eben 62,7% EXP bedeuten. Mir gings halt darum, dass dem Spieler was angezeigt wird.

    Das Statusmenü benutze ich nicht und ist somit kein Problem. Was meinst du mit EXP-Symbol? Mir fiel da keins auf...oder ist das nur im Statusmenü vorhanden?
    Und ja beim max. LVL muss ich mal gucken wie ich das regel...entweder auch über's PlugIn (theoretisch gesehen ist das ja einfach nur anzeigen wenn mehr Bildern, wenn die Helden das max. Lvl haben) oder ich umgeh das irgendwie mit dem Maker.

  4. #4
    Symbol = Was man in der Database unter Vokabeln/String, Seite 5 angibt. (Gibt nämlich Offsets für Symbol, Zahl(aktuell) und Zahl(max.))
    Edit: Ja, ist nur im Status-Fenster

    ----/---- (bei max.Lv) im Hauptmenü entfernen:
    Zitat Zitat von Cherry Beitrag anzeigen
    Als Patch: 2 Bytes ab Offset 0x9D548 (7C 21) zu EB 71 ändern.
    oder nur das ----/---- entfernen
    0x9D748 -> 0F set 00

    ...oder die Exp-Anzeige im Menü verschieben und als einen zusätzlichen Wert für etwas komplett anderes/eigenes missbrauchen:
    0x9D5AB (oder auch ...AE) = y-Pos.
    0x9D5B0 = x-Pos

    Geändert von bugmenot (05.06.2013 um 20:02 Uhr)

  5. #5
    Code:
    ' VA/File mapping (VA range = 400000 - 4CF000):
    ' 400000 - 400400 = 00000 - 00400 HEADER
    ' 401000 - 4C9E00 = 00400 - C9200 CODE
    ' 4CA000 - 4CE200 = C9200 - CD400 DATA
    Also für Offsets 0 - 400 addieren wir 400000, für Offsets 400 - C9200 addieren wir 400C00, für Offsets C9200 - CD400 addieren wir 400E00.

    Das ganze hat mich auf eine - hoffentlich geniale - Idee gebracht: http://www.multimediaxis.de/threads/...=1#post3084525

  6. #6
    Mal ne ganz, ganz blöde Frage:

    "Change entire Partys HP +1" heißt ja ich geb der ganzen Party +1 HP. Heißt das nun, wenn ich zwei Partymitglieder á 25 HP habe, dass dann beide +1 HP bekommen oder einfach einer von beiden? Mir gehts um die Zahl im Speicherslot. Die ist immer fehlerhaft, obwohl ich korrekt scripte. Daher dachte ich mir, dass ich vllt irgendwas falsch verstehe. Auf welchen "Held" geht das +1? Auf beide? Auf einen? Wenn ja: auf welchen? (ich nutze dieses HP-Zeug das erste mal, daher hab ich kein blassen Dunst. Man möge mir verzeihen.)

  7. #7
    Nein da kriegen dann beide je 1 HP.

    Fehlerhaft Skripten: Kann es sein dass du vergisst dass man nicht alle HP abziehen kann ohne zu aktiveren dass der Held sterben kann - sonst bleibt immer 1 HP übrig - und man umgekehrt einem 0-HP-Helden keine HP geben kann ohne vorher manuell den Status "Tot" zu entfernen, was ihm wiederum automatisch 1 HP gibt?

  8. #8
    Ähm, gibt es eigentlich eine performante Möglichkeit zu prüfen ob irgendeines von 31 Events auf einen von 11 Bodenschaltern steht? Dank RMEF konnte ich zwar recht fix den Code für die Abfragen generieren, allerdings ist das dann ne ziemliche Ruckellei(oh, wunder) und ich hab ja nicht mal den schwächsten PC, kann ich also so nicht hinnehmen. Bin an RM2k gebunden, DynRPG ist also keine Option.
    Der PP hat nen Wait von 0.1 Sek, mehr wäre nicht ganz so gut, denn die besagten Events sind ständig in Bewegung(und auch nicht auf festen Bahnen oder sonstwas).

    Gibt's da irgendeinen möglichen Trick oder sonst was?

  9. #9
    Wenn's ruckelt, hast du Mist gebaut, aber für diese Abfrage brauchst du bestimmt keinen hochkomplexen Code aus der Factory.

    Benutz [Get Event ID] auf den 11 Schalterpositionen und schau jeweils, ob sie einem der 31 Dinger entspricht, das sollte Makerchen
    schnell genug abarbeiten können. Vorzugsweise aber ohne Loop, sondern alle 11 hintereinanderweg, der Wiederholperformance wegen.
    Am Ende einen Wait 0 benutzen, reicht aus.

    Du könntest auch 11 Prüfevents auf die Schalter stellen, die alle niedrigere IDs als die anderen haben und schauen, ob die Event-ID
    auf ihrer Position nicht mehr ihrer eigenen entspricht, irgendwie könnte das auch gehen.

  10. #10
    Zitat Zitat von MagicMaker Beitrag anzeigen
    Du könntest auch 11 Prüfevents auf die Schalter stellen, die alle niedrigere IDs als die anderen haben und schauen, ob die Event-ID
    auf ihrer Position nicht mehr ihrer eigenen entspricht, irgendwie könnte das auch gehen.
    Letzteres klappt ganz gut, ist mir dann sogar auch selbst eingefallen. Wenn mal was auf dem direkten Weg nicht ganz so klappt, stellt sich wohl erst die Denkblockade ein.^^'
    Danke.

  11. #11
    Zitat Zitat von elvissteinjr Beitrag anzeigen
    Bin an RM2k gebunden, DynRPG ist also keine Option.
    Wenn du an den Rm2k gebunden bist, kann ich dir für komplexere Sachen den DestinyPatch empfehlen! Der stellt eine Skriptsprache bereit, welche du in den Kommentaren notierst, und die dir auf fast alles Zugriff gewährt. Damit kannst du dann auch komplexere Skripte "leichter" umsetzen. Zählschleifen und erweiterte logische Ausdrücke sind schon was feines^^

    Zitat Zitat von MagicMaker Beitrag anzeigen
    Wenn's ruckelt, hast du Mist gebaut, aber für diese Abfrage brauchst du bestimmt keinen hochkomplexen Code aus der Factory.



    Am Ende einen Wait 0 benutzen, reicht aus.
    Ich könnte mir vorstellen, dass evtl. der Else-Handler - wenn er denn verwendet wurde - daran Schuld sein könnte. Also an dem Ruckeln. Ich habe auch schon desöfteren festgestellt, dass man die Engine ziemlich leicht zum ruckeln bringen kann, wenn man viele Else-Handler verwendet und die Reihenfolge der Abfragen nicht der "erwarteten" Häufigkeit entspricht. Dort ist es dann oftmals schneller keine Else-Handler zu benutzen, und das ohne sie zu lösen.

    Und eigentlich bräuchte man bei einem PP kein Wait 0 am Ende, weil ein PP automatisch ein Wait 0 am Ende des Event-Skriptes setzt Setzt man gar kein Wait in einem PP, so wird es - im günstigsten Fall - 60 mal in der Sekunde ausgeführt (60 fps). Es wartet also von vornherein schon einen Frame - also Wait 0 - bis es das nächste Mal durchläuft. Mit einem Wait 0 würde es also 30 mal durchlaufen pro Sekunde.

    PeAcE
    MorDen

  12. #12
    Also 30 mal in der Sekunde ist eh mehr als genug. Und gegen sich stapelnde Else-Handler kann man die Abfragen in Gruppen aufteilen und den nicht benutzten Code überspringen.

  13. #13
    Zitat Zitat von Nemica Beitrag anzeigen
    Also 30 mal in der Sekunde ist eh mehr als genug. Und gegen sich stapelnde Else-Handler kann man die Abfragen in Gruppen aufteilen und den nicht benutzten Code überspringen.
    Ob 30 mal die Sekunde genug ist, kommt wieder darauf an, was gemacht werden soll - wobei ich dir natürlich grundsätzlich Recht gebe. Normalerweise sollte das reichen. Nur ist es einfach gut zu wissen, wie der Maker seine Events abarbeitet - ist zumindest meine Meinung. Denn ein AutoStart-Event z.B. wartet nicht bis zum nächsten Frame, weswegen man damit auch ziemlich einfach die gesamte Engine lahmlegen kann.

    Man kann manchmal auch komplett auf den Else-Handler verzichten. Aber es ist stimmt schon was du sagst, ist alles ne Frage der Code-Strukturierung. Ich arbeite ja auch nicht erst drei Tage mit den Makern^^ Und der Else-Handler ist imo schlecht implementiert xD

    PeAcE
    MorDen

  14. #14
    Das mit dem Elsestapeln ging auch eher an Elvis Stein den Jüngeren.

  15. #15
    Also bei mir läuft ja jetzt alles. Destiny wollt ich jetzt nicht auch noch reinhauen und schon gar nicht kurzfristig lernen damit umzugehen(ist Contestprojekt, Abgabe: heute*hust*). Achja, ich hoffe übrigends dass du nicht extra für Zählschleifen den Destiny brauchst, würde mir sorgen machen.^^'
    Und selbst wenn ein PP den Frame abwartet, ohne Wait wird das auf Singlecores oft unverhältnismäßig lahm.

    Die Frage ist ja, wie man die klassische direkte Positionsabfrage denn für die Menge sinnvoll aufteilen könnte. Wenn ich das ganze jetzt mit Flächen gebraucht hätte, wär's erst recht was geworden.

    Aber naja, bei läuft ja jetzt alles soweit. Hoffe nur dass wirklich schwache Rechner da nicht irgendwie trotzdem überfordert werden(die Schalter sind ja nicht die einzigen Sachen die als PP laufen), hab sowas aber leider nicht mehr im Haus.

Berechtigungen

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