CryEngine 2 Modifikation Precache eines Custom Material in c++



  • wie Du sehen kannst habe ich den Tipp von Coder++

    if (NeuesMaterial)
    {
    LadeMaterial();
    }

    umgesetzt. Ich verstehe nicht was dererlei Kommentare sollen. Wenn jemand nicht willens ist zu helfen, warum auch immer, dann muss er das ja auch nicht.

    In einem anderen Forum hat jemand vergessen ein ; zu setzen ( also command end )
    und gefragt warum er ne Fehlermeldung bekommt. Und was war? Man hat ihm mitgeteilt dass das fehlt, und nicht "lerne erstmal die Grundlagen". Also bitte ich darum mir wie coder++ tipps zu geben oder es zu lassen, aber dererlei Kommentare helfen weder Euch noch mir.



  • Ja man, du bist halt ober kuhl und andere sind es nicht. Darum wäre es auch nett wenn du den einfacheren Leuten dein Problem mit mit einer schönen Formatierung durch Code-Tags beibringst ... einfache Gehirne haben sonst Probleme und geben zu früh auf!



  • Storch1983 schrieb:

    wie Du sehen kannst habe ich den Tipp von Coder++

    if (NeuesMaterial)
    {
    LadeMaterial();
    }

    umgesetzt. Ich verstehe nicht was dererlei Kommentare sollen. Wenn jemand nicht willens ist zu helfen, warum auch immer, dann muss er das ja auch nicht.

    Der Code von Coder++ war Pseudocode und wird garantiert NICHT funktionieren.

    In einem anderen Forum hat jemand vergessen ein ; zu setzen ( also command end )
    und gefragt warum er ne Fehlermeldung bekommt. Und was war? Man hat ihm mitgeteilt dass das fehlt, und nicht "lerne erstmal die Grundlagen". Also bitte ich darum mir wie coder++ tipps zu geben oder es zu lassen, aber dererlei Kommentare helfen weder Euch noch mir.

    Semikolon vergessen ist etwas ganz anderes als das, was du machst.
    Ich verweise dich gerne auf die einzige Art Hilfestelle, die es dafür gibt - die Doku: http://doc.crydev.net/AssetCreation/



  • Darin geht es um das arbeiten mit der Grafik- Engine und nicht um das editieren des Codes. Das Modell habe ich bereits für die Engine konvertiert, das war das kleinere Problem. Es geht für mich darum ob ich mit meiner Annahme richtig liege dass es durch editieren dieses Codes möglich ist, der Engine das Laden eines weiteren Material Layers, zu ermöglichen. Dieser ist nur für die Textur verantwortlich, nicht für das Objekt. Wenn jemand sagt dass das nicht durch das editieren einiger wenige Zeilen getan ist, dann hilft mir das schon weiter. Aber keine blöden Sprüche. Und kuhl, schreibt man cool! Jemand der "angeblich" programmieren kann sollte das eigentlich wissen...



  • ScottZhang schrieb:

    Ja man, du bist halt ober kuhl und andere sind es nicht. Darum wäre es auch nett wenn du den einfacheren Leuten dein Problem mit mit einer schönen Formatierung durch Code-Tags beibringst ... einfache Gehirne haben sonst Probleme und geben zu früh auf!

    Storch1983 schrieb:

    Und kuhl, schreibt man cool! Jemand der "angeblich" programmieren kann sollte das eigentlich wissen...

    👍 😃 👍 Storch1983 kannst du mir bitte ein Autogramm zu senden?

    Ok genug getrollt.^^

    Das Problem ist halt das du nur mit Tipps wohl nicht zum Ziel kommen wirst ... Tipps sind für Leute die schon eine gewisse Erfahrung haben und ohne Erfahrung kann man die Tipps leider nicht umsetzen.

    Es wird dir hier warscheinlich auch niemand eine komplett Lösung für dein Problem liefern. Für komplett Lösungen gibt es das Projekt Forum hier. Aber kostenlos wird das auch wiederrum wohl keiner machen.

    Und benutz mal die Code Tags.

    if ( Storch1983 == "MORE SKILL")
    {
       LoadModel();
    }
    

    Unter dem 😞 smiley steht C++ damit kannst du den Tag setzen.

    Wenn dein Code nicht in Tags ist hat keiner lust ihn zu lesen.^^



  • Storch1983 schrieb:

    Und kuhl, schreibt man cool! ...

    Hab ich doch ... 😉



  • Das ist die eigentliche Zeile, worum es mir geht:

    {
    	const int nIndex = mode;
    	if (nIndex < 0 || nIndex >= NANOMODE_LAST)
    		return 0;
    
    	PrecacheMaterials(bAsian);
    	if (bAsian == false)
    		return &g_USNanoMats[nIndex];
    	else
    		return &g_AsianNanoMats[nIndex];
    }
    

    versucht habe ich es so:

    {
    	const int nIndex = mode;
    	if (nIndex < 0 || nIndex >= NANOMODE_LAST)
    		return 0;
    
    	PrecacheMaterials(bAsian);
    	if (bAsian == false)
    		return &g_USNanoMats[nIndex];
    	else
    		return &g_V2NanoMats[nIndex]
    	else
    		return &g_AsianNanoMats[nIndex];
    }
    

    Wenn mir hier einer den kleinen Hinweis gibt wie die dritte Variable eingefügt werden könnte, bzw. wo der Fehler liegt, wäre ich schon dankbar. Dass ich das nicht in 4 Wochen hin kriege ist mir auch bewusst. Also lassen wir das gegenseitige Beleidigen.

    Sorry @ ScottZhang.


  • Mod

    ich glaube Storch1983 hat klargemacht, dass er euren tipp wahrgenommen hat dass er c++ lernen sollte, bevor er es verwendet. es zu wiederholen bumpt nur den thread unnoetigerweise.
    wenn ihm jemand helfen will, so bitte zum thema, rest wird entfernt.



  • Über all wo "bAsian" zu finden ist, müsstest du den Typ von "bool" zu z.B. "int" ändern, und idealerweise den Namen zu "nNanoMatsVersion" oder so.

    Überall wo auf "bAsian" (bzw. dann "nNanoMatsVersion") geprüft wird müsstest du aus den einfachen "ifs" dann etwas in der Art machen:

    {
        const int nIndex = mode;
        if (nIndex < 0 || nIndex >= NANOMODE_LAST)
            return 0;
    
        PrecacheMaterials(bAsian);
        if (nNanoMatsVersion == 0)
            return &g_USNanoMats[nIndex];
        else if (nNanoMatsVersion == 1)
            return &g_AsianNanoMats[nIndex];
        else
            return &g_V2NanoMats[nIndex];
    }
    

    Und natürlich müsstest du überall wo es g_USNanoMats und g_AsianNanoMats gibt nochmal eine Kopie von mit g_V2NanoMats anlegen.
    Also dort wo die Variable deklariert wird, und natürlich überall wo darauf zugegriffen wird. Also z.B. in der PrecacheMaterials Funktion.

    Und irgendwo muss irgendwie noch dafür gesorgt werden, dass man die dritte Option auch in die nNanoMatsVersion Variablen reinbekommt. Wozu vermutlich weitere Änderungen nötig sein werden.



  • Damit kann ich jetzt erstmal was anfangen. Es sind nur 3 weitere Dateien in denen auf bAsian verwiesen wird. Alles andere spielt sich nur in der "nanosuit.cpp" ab aus der ich den Auszug genommen habe. 🙂


Anmelden zum Antworten