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
    Ich hab die draw-Zeilen mal auskommentiert, leider kam immernoch derselbe Fehler.
    Allerdings wurde mir die Meldung diesmal über dem Fenster angezeigt und das Spiel hat nach einem Klick auf "OK" gestartet.
    Danach hab ich nochmal die draw-Zeilen hinzugefügt und auch dieses mal hat das Spiel nach einem Klick auf "OK" gestartet. Mir komm't gerade so vor, als ob es zufällig ist ob die Meldung über oder unter dem Fenster auftaucht.
    Wenn sie allerdings unter dem Fenstar auftaucht, hilft nur ein Beenden über den Task Manager.
    Danach bin ich im Spiel selber ins Menü gegangen und dann bekam ich erneut die Meldung mit "Access Violation in module ..." und wurde auf den Title Screen zurückverfrachtet.

  2. #2
    a) Kommentier mal alles raus. Einfach Callbacks ohne Inhalt. Was passiert dann?
    b) mach dann mal die reinladen-destroy schritte im onInit, einmal. Erstmal sehen ob das funktioniert.
    • Welche Version hat deine RPG_RT.exe?
    • Hast du irgendwelche Patches drauf?
    • Welche Version des C++-Compilers benutzt du?

  3. #3
    @Quetschi

    Hast du das Präprozessor-Makro »AUTO_DLLMAIN« definiert?
    Also am Anfang deiner main-Datei:
    Code:
    #define AUTO_DLLMAIN
    Weiß zwar nicht direkt, ob das was damit zu tun hat, aber vielleicht kann man so den Fehler eingrenzen.
    Ansonsten wäre dein ganzes Projekt bzw. dein ganzer Source vielleicht hilfreicher, als immer nur son Schnipsel.

    PeAcE
    MorDen

  4. #4
    Außer dass mir gerade bei 4 von 5 mal starten wieder der Fehler "DirectDraw Error (DDERR_NOEXCLUSIVEMODE)" um die Ohren gehauen wurde, was scheinbar durch bloßes patchen ausgelöst wird, kam keine "Access Violation" mehr.
    (Hab es dann nochmal bei einem komplett neuem Projekt ausprobiert, weil's mir zu doof wurde ._.)
    Ich benutz' die Code:: Blocks Version 12.11. Hab sonst keine Patches drauf. Die Version der RPG_RT.exe ist 1.0.8.0.

    EDIT:
    Wenn ich das ganze im onInit ablaufen lasse, kommt wieder Access Violation.

    @Morden: Ja das #define AUTO_DLLMAIN ist drin. Und hier nocheinmal der ganze Code:

    Geändert von Quetschi (04.06.2013 um 19:25 Uhr)

  5. #5
    Bei der Version 12.11 von CodeBlocks ist MinGW mit GCC Version 4.7 dabei, du solltest aber lieber GCC Version 4.6.1 verwenden!
    Ich such dir gleich mal nen Link raus.

    EDIT:

    Hier schonmal ein Link zu einem GCC in Version 4.6.1: http://sourceforge.net/projects/tdm-...1.exe/download. Beim Installieren darauf achten den Haken bei Updates rauszunehmen sonst installiert er gleich das neuste, also 4.7.1 wenn ich mich nicht täusche.

    Ich denke das müsste dann deine Probleme auch schon beheben, denn dein Code an sich scheint nicht falsch zu sein und sollte eigtl laufen - so auf den ersten Blick.

    Du musst dann halt in CodeBlocks nur einen neuen Compiler einrichten und dort dann auch halt DynRPG einfügen.

    PeAcE
    MorDen

    Geändert von Morden (04.06.2013 um 16:23 Uhr)

  6. #6
    Okay...Ich hab mir jetzt einfach ne ältere Code:: Blocks version geholt und ich krieg keine Meldung mit Access Violation.
    Ich muss jetzt nurnoch die Transparenz rausnehmen, weil man sonst noch die Zahlen darunter sieht ._. Aber das ist ja schnell getan.^^
    Und dann noch abfragen wieviele in meiner Party sind.

    Ich kriege aber immernoch ab und zu den Fehler mit "DirectDraw Error (DDERR_NOEXCLUSIVEMODE)", wenn ich es aus dem Ordner starte (also im Vollbildmodus).
    Weiß jemand was es damit auf sich hat? Entweder ich erhalte den Fehler und das Spiel schließt sich, oder aber ich krieg den Fehler nicht und das Spiel minimiert sich.
    Wäre gut wenn ich das auch noch irgendwie weg kriege.

  7. #7
    Versuch mal "AnotherFullscreenMode", gibts hier irgendwo im Forum. Welches Windows hast du?

  8. #8
    Okay, dann such ich mir den mal raus.

    Windows 7 64-bit

    Oh...und uhm Corti?

    Zitat Zitat
    Code:
    // Die Funktion "RPG::Actor::partyMember" gibt dir einen Zeiger auf ein Heldenobjekt auf dem übergebenen Index zurück
    actorCurrent = RPG::Actor::partyMember(indexHero); // Der Index ist 0 bis einschliesslich 3, da maximal 4 Helden in der Gruppe sein können. Die Reihenfolge entspricht der im Menü.
    
    // Nachdem du den Helden auf einem Index angefordert hast, musst du überprüfen, ob wirklich ein Held zurückgegeben wurde.
    if(actorCurrent != 0) // if zero, no actor has been returned
    Wenn der Index von 0 bis 3 geht, wieso muss ich dann prüfen ob er ungleich 0 ist? ._.

    EDIT: Okay, ich glaub ich hab's verstanden.

    EDIT2: Okay. Das PlugIn ist fertig ._. Großes Dankeschön an alle die mir geholfen haben!
    Muss jetzt nur noch mit dem AnotherFullscreenMode gucken ob dann immer noch der Fehler mit dem DirectDraw erscheint. Aber das mach ich morgen, bin jetzt zu müde :'D

    Geändert von Quetschi (04.06.2013 um 22:30 Uhr)

  9. #9
    Nochmal zur Erklärung:
    Du prüfst mit
    Code:
    if( actorCurrent != 0 )
    bzw
    if( actorCurrent != NULL )
    ob der Zeiger »actorCurrent« - den haben wir ja durch den »*«-Operator als eine Zeigervariable definiert - gleich Null ist. Das heißt in diesem Fall, dass der Zeiger leer ist - sozusagen. Sonst würde er ja auf ein RPG:ctor-Objekt zeigen von welchem du dann halt die Eigenschaften abfragen kannst. Dafür benutzt du »->« weil dieser Operator - im Gegensatz zum ».«-Operator - gleichzeitig den Zeiger dereferenziert und Zugriff auf das Objekt gibt, auf das der Zeiger zeigt. Ich weiß aber nicht, ob ich das gut erklärt habe xD

    Edit:

    Wegen dem anderen Problem: Was hast du für einen Monitor?

    PeAcE
    MorDen

  10. #10
    Ja ich hab's ja schon verstanden. :'D
    Das ganze ist mir dann auch klar geworden^^

    Uhm...einen von Asus 24" Full HD, weiß aber gerade das Modell nicht und im Handbuch steht auch nur VH236S/VH232S/VH202S...welcher das jetzt genau ist...keine Ahnung ._.

  11. #11
    Statt

    Code:
    switch(i)
                                    {
                                    case 0:
                                        RPG::screen->canvas->draw(200, 41, myExpImage);
                                        break;
                                    case 1:
                                        RPG::screen->canvas->draw(200, 99, myExpImage);
                                        break;
                                    case 2:
                                        RPG::screen->canvas->draw(200, 157, myExpImage);
                                        break;
                                    default:
                                        break;
                                    }
    Würde ich

    Code:
    RPG::screen->canvas->draw(200, 41 + i * 58, myExpImage);
    schreiben.

    Wesentlich kürzer, effizienter und wartbarer.

Berechtigungen

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