HToneill's Mod Thread - Theorie und Praxis

  • also, die Kochrezepte und das servieren auf dem Teller finde ich fantastisch umgesetzt.

    Hatte ich vor ca einem halben Jahr auch mal begonnen.


    Da war mir aber die Rezeptmechanik und die dann über 100 nötigen Möglichkeiten, wie man was kombinieren kann, zu dumm.


    Ich würde mir gerne deine Arbeit mal ansehen.

    Auch wie du die rezeptmechanik erweitert hast.


    Denn ich suche zB schon ewig nach einer Lösung für eins meiner Modprobleme.


    Ich habe nämlich kleine nicht belabelte Pillendosen ins Spiel gebracht und diese mit sämtlichen Tabletten (vanilla und teilweise aus Mods) kombinierbar gemacht.

    Sodass man nicht unzählige angerissene Tabletten-Packungen aufheben muss.


    Jetzt suche ich eine Möglichkeit ein kontinuierliches craftingrezept zu erstellen.

    Aktuell muss ich beide items jedes mal kombinieren um 1 Tablette in die Dose zu machen.

    Da die crafting Mechanik die Menge vom Inhalt nicht prüfen kann, muss ich so vorgehen.

    Entweder so dass die enthaltene Menge der Packung und das verbleibende Volumen der Dose abgleicht und in einem crafting Durchgang alle Pillen der Packung oder nur soviel, wie die Dose noch Platz hat umfällt, oder aber ein kontinuierliches crafting, wo man so lange gedrückt halten muss und jeder Zyklus eine Tablette in die Dose packt.


    Ich bin aber echt begeistert, was so alles von der Community kommt.

    Ich möchte mich für vermutlich unnötige Fragen im Forum, die man sich evtl durch testen usw selber beantworten könnte entschuldigen.

    Leider bin ich beruflich bedingt immer mal für 12 ganze Tage am Stück nicht zuhause!

    Ich arbeite deutschlandweit im Schichtdienst und das gut und gerne auch mal bis zu 16 Stunden.

    Mir steht nicht die Möglichkeit zur Verfügung einen Patch, eine Mod oder etwas anderes auf die schnelle zu testen.

  • @cj, entweder du erstellst gleich eine modded class RecipeBase

    oder wenn es nur ein einzelnes Problem ist und mit nativen Abfragen gemacht werden kann,

    gehst du in dein Rezept.c ein


    und fügst der klasse ein override bool CanDo hinzu,

    das sieht etwa so aus:



    In den beiden Funktionen kannst du dann wie im Beispielcode mit der Menge spielen. Sobald du da tiefere Infos abreifen willst, musst du gleich die RecipeBase modden.

  • super, ich danke dir.

    Ich versuche mal damit zu arbeiten.


    Was das Programmieren betrifft, bin ich aber sehr schlecht.

    Ich möchte mich für vermutlich unnötige Fragen im Forum, die man sich evtl durch testen usw selber beantworten könnte entschuldigen.

    Leider bin ich beruflich bedingt immer mal für 12 ganze Tage am Stück nicht zuhause!

    Ich arbeite deutschlandweit im Schichtdienst und das gut und gerne auch mal bis zu 16 Stunden.

    Mir steht nicht die Möglichkeit zur Verfügung einen Patch, eine Mod oder etwas anderes auf die schnelle zu testen.

  • Texturen erstelle ich sehr gerne.

    Auch im 3D-Modellbau war ich 10 Jahre lang für ein anderes Spielgenre sehr leidenschaftlich aktiv.


    Und Ideen habe ich, viele Ideen...

    Ich möchte mich für vermutlich unnötige Fragen im Forum, die man sich evtl durch testen usw selber beantworten könnte entschuldigen.

    Leider bin ich beruflich bedingt immer mal für 12 ganze Tage am Stück nicht zuhause!

    Ich arbeite deutschlandweit im Schichtdienst und das gut und gerne auch mal bis zu 16 Stunden.

    Mir steht nicht die Möglichkeit zur Verfügung einen Patch, eine Mod oder etwas anderes auf die schnelle zu testen.

  • Habe ein wenig mit Proxy Attachments gespielt und erst gemerkt, wie schlecht das alles implementiert ist, wenn man

    nicht nur das Model des Attachments anzeigen möchte, sondern auch die Funktionsweise.


    Hier habe ich einen Gasofen/Herd aus 4 Campingkochern gemacht.

    Das Ding symbolisiert quasi die perfekte Kochstelle um in kurzer Zeit einen haufen Essen zu kochen, für größere Gruppen

    interessanter, als für Einzelkämpfer.


    Die Ofentür kann man öffnen und schießen. Auf die 4 Campingkocher kann man Töpfe stellen und einen weiteren im Ofen warm machen.

    Die Campingkocher beziehen ihre Energie aus einem zentralen Tank, sobald diese in die Herdslots gesteckt werden.

    Da hilft es sehr erstmal in die EnergyMananger Klasse zu schauen.

    20200827051407-1.jpg


    Und auch die Proxies der Proxies (Topf auf Gaskocher auf Herd) werden auch angezeigt.


    20200826204939-1.jpg


    Man kann bereits schon die vier Gasfelder zum an/aus schalten anschauen, leider kann ich jedoch noch nicht aus der First Person den Topf anbringen oder abnehmen, aber das scheint in erster Linie ein Problem vom Gaskocher zu sein. Energier weiterleiten funktioniert nur, wenn das Objekt, dass die Energie liefert an ist (die haben wohl nicht weiter als ein Generator-Verbraucher System gedacht) Etwas doof, wenn man die Gasfelder nutzen möchte, ohne dass der Ofen läuft...

    ...Es wird also nochmal hier ein Spaß zu machen, was die Devs nicht haben.


    Ein weiterer Punkt ist, dass GUIInventoryAttachmentsProps nicht den Inhalt der Töpfe anzeigt, da diese "Sub-Sub-Attachments" sind.

    Zwar habe ich das schon den Devs geschrieben aber da kam noch nichts zurück.


    Und ein weiteres Gimmick ist, dass ich den Topf nicht an den Gaskocher machen kann, sobald da auch nur ein Slot im Topf belegt ist.


    - Dann schaue ich mir das mal an.

  • Jetzt kann man die Töpfe aus der First Person nehmen und abstellen.

    Hand.png


    Das war trickreich, da "ActionAttach" das Ziel zum Parent eines Attachments weitergeleitet hat.

    Somit wurde zwar angezeigt, dass man den Topf am Gaskocher anbringen kann, aber gemeint war damit laut Bohemia der Ofen.

    Durch eine Ausnahmeliste in "ActionAttach" kann man Attachments in Reihe schalten und benutzen. Das geschieht aktuell von Hand,

    muss ich zwingend anpassen.



    Auch war das Problem im Gasbrenner von Bohemia selbst. Sie haben in ihrem 3d Modell eine Zeile Code "Verweis auf Proxy" vergessen.

    Somit konnte man nie den Topf aus der First Person erreichen. Habe ich gefixt bekommen, auch wenn das nicht gehen soll :P.

    Als Nebeneffekt können wir auch fixen, dass die blaue Flamme durch die Pfanne durchgeht. Auch passiert, dass man den Topf, der auf dem einzelnen Vanilla Gaskocher steht aus der First Person nehmen/ drauf stellen kann. Win-Win-Win.


    Die GUIInventoryAttachmentsProps Sache gebe ich auf. Wenn das BI nicht fixt, wird es erstmal so sein, dass man die Töpfe, die auf den Herdplatten stehen, in die Hand nehmen muss, um zu sehen ob der Inhalt fertig gekocht ist.


    Ich kümmere mich noch um den Kniff, dass man die Gaskocher auf der Herdplatte nur anbringen kann, wenn keine Gasflasche dran hängt.

    Ansonsten scheint das Skript grundlegend zu funktionieren. Da sind ein paar schöne Tricks zusammengekommen.


    Wenn alle soweit funktioniert, gibt es ein Update vom Ofenmodell mit einer richtigen Textur.

  • model.png


    Ein kleines Modelupdate, mit mehr Details.

    Leider ist es so, dass wenn man 4 Gaskocher mit einer Vanilla Gasflasche versorgt, selbst die große Flasche schnell leer ist und da ist der Gasofen noch nicht bedacht^^ => Große Gasflasche musste her.

    Hier habe ich ein schönes Ventil erstellt, wo der 1/2 Zoll Gasschlauch auch eine Verbindung zum Ofen herstellt.

    Wie gesagt, Texturen fehlen noch. Das Mesh ist aber fertig.

    Einmal editiert, zuletzt von HToneill ()

  • Ich danke euch vielmals^^ habe nie gedacht, dass es so viel positive Resonanz erzeugt.

    Und da es euch so sehr gefällt, zeige ich euch ein neues Detail:

    20200831103614-1.jpg


    20200831103619-1.jpg


    Ich habe mir die Mühe gemacht den Schlauch samt Ventil in zwei Variationen zu erstellen.

    Ein kleines Detail, aber auf sowas kommt es an :)


    In der Model CfG müssen folgende Zeilen da sein um eine Selection über Code zu schalten:

    Einmal editiert, zuletzt von HToneill ()

  • Ich habe mich nochmal drangesetzt um für die 1.09 den Ofen fertig zu stellen.


    - Man kann jetzt das Inventar jedes Topfes im Tab Menu sehen und mit dem Inhalt interagieren.

    - Der Topf, der im Ofen steht ist nur erreichbar, wenn die Ofentür offen ist.

    - Bohemia Partikelbug gefixt (Teilfix) Der Dampf beim kochenden Topf sieht so aus wie er muss, weniger dicht als zuvor


    add.png

    Die Durchsichtbarkeit von Dampf habe ich nicht angepasst, weshalb man immernoch nicht durch den Dampf schauen kann.

    Aber der Dampf ist weniger.



    Und jetzt bin ich beim letzten Arbeitsschritt angekommen.

    Wenn es kein Gas gibt, muss das Kochen aufhören. Aktuell blubbert alles noch weiter.

    Absolut machbar und demnächst fertig.



    Edit:

    Ich habe unglaublich Lust noch eigene Sounds zu machen für:

    - die Ofentür

    - dem anbringen den Töpfe/ Campingkocher/ Gasflasche

    - Öffnen/ Schließen des Gasventils


    Erst die besonderen akustisten Eigenschaften machen das Objekt zum Unikat.

  • Genau so :P


    Die Sounds sind jetzt fertig und eingebaut, ich habe sogar Variationen für jeden Sound! Habe ich noch nie gesehen, aber falls es euch interessiert:


    Code
    class DeinSoundName_Soundshader : HT_Main1_SoundShader
    {
    samples[] = {{"DeineMod\sound\Variation1",1},{"DeineMod\sound\Variation2",1}};
    };

    So macht man die Aufzählung aller Variationen im Soundshader...

    Es wird durch Zufall entschieden welcher definierte Sound gespielt wird, sobald man den Sound abspielt.



    brauche nur noch zwei Soundeffekte für den Gaskocher (dranmachen/abmachen). Ich habe im Haushalt nichts vergleichbares. Evtl fahre ich mal an die Tanke und lasse meine Reifen befüllen und nehme das mal auf.



    Ach ja - Überraschung!

    Die 1.09 bringt neue Bugs! - Ich kann meine Herdplatten nicht mehr durch anschauen anmachen. Die haben wohl erfolgreich an Actions von Attachments gearbeitet und ein paar Möglichkeiten wegoptimiert. DayZ, der Horror wenn man etwas besonderes machen will ^^


    Edit: Die Bugs sind tatsächlich mit 1.09 reingekommen, sind jetzt gefixt.


    Ich habe mir ebenfalls gedanken über die Wärme gemacht. Eine Gasofen/Herd Kombo hat etwa 8-12kW Wärmeleistung.

    Das ist genug um einen Gasofen als Wärmequelle zu nutzen. Das habe ich ebenfalls implementiert. Je nachdem ob der Ofen offen ist oder zu, wie viele Herdplatten angeschaltet sind wird die Wärme entsprechend berechnet. Es ist nicht übertrieben, aber kann einen warm halten und trocknen. Auch Kleider die in der Nähe abgelegt werden, werden getrocknet.


    Das sollte euch gefallen :)

    2 Mal editiert, zuletzt von HToneill ()