Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Page 3 of 14 « First 123456710 ... Last »
Results 41 to 60 of 273
  1. View Forum Posts #41 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by königsgardist View Post
    Das ist dir sehr gut gelungen! Vielen Dank- ich freu mich schon wie irre auf dein Feature! Geht es, dass deine Mod als eine Art "Patch" erscheint oder nicht?
    Das freut mich. Genau: Zum einen werde ich hier die Skript(e) für Modder veröffentlichen, die es dann einfach in ihre Mods einbauen können, zum anderen werde ich (für nicht-Modder) eine simple Erweiterungsmod zum normalen Gothic 2 im Modifikationsforum veröffentlichen. Die kann dann jeder Spielen. Das wird dann mehr als eine Art Beta-Test fungieren mit dem es mir leichter fallen wird mögliche Bugs und Feedback zu verarbeiten.

    Quote Originally Posted by Milky-Way View Post
    Wie funktioniert denn momentan die Trefferwahrscheinlichkeit / Bogenskill? Geht der Pfeil dann neben das Fadenkreuz oder auch weiterhin genau auf das Fadenkreuz und verursacht nur ggf. keinen Schaden?
    Bisher schiesst man noch genau dahin wo man hinzielt. Die Berechnung der Trefferwahrscheinlichkeit überlasse ich noch Gothic. Wo du das gerade aufbringst, würde ich das gern noch ändern, weil mich das schon immer gestört hat (man trifft den Gegner merklich, aber es gibt nur in x% der Fälle Schaden - das ist hässlich). Darüber habe ich noch nicht viel nachgedacht, aber ich würde eine Streuung um das Fadenkreuz einbauen (abhängig vom Bogenskill als auch von der Zugkraft) und dann müsste ich die Prozentberechnung nach Treffer von Gothic ausschalten - die muss ich dann aber noch finden. Ich nehme das mal oben in die Liste auf. Danke, dass du das erwähnst.

    Quote Originally Posted by Rayzer View Post
    If this struct of class zCModelNodeInst is correct, all what you need is comparing projectile bounding box with head bounding box.
    I haven't thought a lot about the headshot detection so far. So thank you for your thoughts and the code. This will definitely help!

  2. View Forum Posts #42 Reply With Quote
    now also in your universe  Milky-Way's Avatar
    Join Date
    Jun 2007
    Posts
    13,384
     
    Milky-Way is offline
    Quote Originally Posted by mud-freak View Post
    Bisher schiesst man noch genau dahin wo man hinzielt. Die Berechnung der Trefferwahrscheinlichkeit überlasse ich noch Gothic. Wo du das gerade aufbringst, würde ich das gern noch ändern, weil mich das schon immer gestört hat (man trifft den Gegner merklich, aber es gibt nur in x% der Fälle Schaden - das ist hässlich). Darüber habe ich noch nicht viel nachgedacht, aber ich würde eine Streuung um das Fadenkreuz einbauen (abhängig vom Bogenskill als auch von der Zugkraft) und dann müsste ich die Prozentberechnung nach Treffer von Gothic ausschalten - die muss ich dann aber noch finden. Ich nehme das mal oben in die Liste auf. Danke, dass du das erwähnst.
    Genau so hatte ich mir das auch vorgestellt
    Dahingehend vielleicht interessant:
    http://forum.worldofplayers.de/forum...1#post25080193

  3. View Forum Posts #43 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by Milky-Way View Post
    Genau so hatte ich mir das auch vorgestellt
    Dahingehend vielleicht interessant:
    http://forum.worldofplayers.de/forum...1#post25080193
    Danke, ich werde die Augen in dem Thread offen halten. Vielleicht sucht Lehona raus wo genau das in Gothic geschieht. Dann brauch ich das später nicht auch noch einmal suchen. Mir ginge es ja dann nur darum, das auszuschalten.

  4. View Forum Posts #44 Reply With Quote
    Provinzheld Kardulor's Avatar
    Join Date
    Aug 2015
    Posts
    201
     
    Kardulor is offline
    Mal so eine kleine Anregung bzgl. der Streuung:

    Wäre es möglich, abhängig von dem charaktereigenen Talent für's Bogenschießen den Streuungsbereich vllt. durch eine gepunktete Kreislinie darzustellen?
    Hier ein Beispiel:[Bild: 26763823jm.jpg]

    Damit einhergehend würde nämlich gerade eben die Charakterfertigkeit im Bogenschießen weiterhin einen Sinn ergeben: wer nicht viel Erfahrung im Bogenschießen hat, der trifft bei größeren Distanzen sehr oft daneben und wer sehr gut darin ist, der trifft den Apfel eben auch noch auf hundert Meter Entfernung.

    Ach ja und auch von mir übrigens noch einmal zwei fette Daumen hoch für diese Programmierleistung! So etwas hat sich bestimmt ein großer Teil der Community herbeigesehnt.

    P.S. Funktioniert das ganze eig. auch für die Armbrust?

  5. View Forum Posts #45 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by Kardulor View Post
    P.S. Funktioniert das ganze eig. auch für die Armbrust?
    Ja, alles was bisher mit dem Bogen geht, funktioniert auch mit der Armbrust. Das wird intern gleich behandelt und ich muss da nicht noch etwas anpassen. Was noch nicht ganz funktioniert, aber ich noch einbauen werde (damit fing das ganze hier an siehe Einleitungspost), ist das freie Zielen für Magie. Darum kümmere ich mich anschliessend. Das wird aber (nach aussen hin) dann genau so ablaufen.

    Quote Originally Posted by Kardulor View Post
    Mal so eine kleine Anregung bzgl. der Streuung:

    Wäre es möglich, abhängig von dem charaktereigenen Talent für's Bogenschießen den Streuungsbereich vllt. durch eine gepunktete Kreislinie darzustellen?
    Danke, genau wegen solcher Vorschläge führe ich diesen Thread so weiter. Ich habe selbst so meine eigenen Vorstellungen und da ist Input von anderen Köpfen immer eine gute Sache.
    Mit dieser Idee sehe ich aber leider eine Komplikation: Da die grösse des Fadenkreuzes an der Distanz, wo man hinzielt, skaliert wird (grösser je näher ein Objekt ist, kleiner wenn das nächste Hinderniss weiter weg ist), müsste ein solcher Kreis auch skaliert werden, denn sonst ist die Information, die ein Spieler durch den Streukreis erhält falsch. Zwei Probleme kommen damit auf:
    • Wenn man weit weg zielt (z.B. in den Himmel) würde so ein Kreis zwangsweise unglaublich gross sein - bis zu der Hälfte des Bildschirms oder grösser. Wenn man das nach oben hin kappt, streut der Schuss weiter als durch den Kreis angegeben: inkonsistent.
    • Mal angenommen ich täte es trotzdem, müsste ich für jeden Durchmesser eine eigene Texture erstellen. Für das Fadenkreuz gibt es für alle Grössen bisher nur eine Textur (mittlerweile eine andere als auf dem Screenshot den du gepostet hast, siehe hier), da man es gut skalieren kann. So ein Kreis würde aber schnell extrem verzerrt und die dicke der Ränder des Kreises skaliert ja mit.
    Quote Originally Posted by Kardulor View Post
    Damit einhergehend würde nämlich gerade eben die Charakterfertigkeit im Bogenschießen weiterhin einen Sinn ergeben: wer nicht viel Erfahrung im Bogenschießen hat, der trifft bei größeren Distanzen sehr oft daneben und wer sehr gut darin ist, der trifft den Apfel eben auch noch auf hundert Meter Entfernung.
    Das ist ja auch ohne den Kreis der Fall. Der Kreis wäre rein ästhesteish.

    Ach ja und auch von mir übrigens noch einmal zwei fette Daumen hoch für diese Programmierleistung! So etwas hat sich bestimmt ein großer Teil der Community herbeigesehnt.
    Danke, ich hoffe am Ende ein hochflexibles Skript zu bieten, in dem man möglichst einfach alles anpassen kann was man will. Am liebsten würde ich auch deinen Vorschlag aufnehmen und einfach (von Skriptseite) ein- und ausstellbar machen. Das geht aber wegen oben genannter Gründe leider nicht.
    Falls ich deine Idee aber falsch verstanden habe, oder du eine Lösung zu den aufgeführten Problemen weisst lass es mich wissen - ich möchte wie gesagt auf möglichst viele Ideeen eingehen und sie einbauen.
    Last edited by mud-freak; 09.09.2016 at 09:26.

  6. View Forum Posts #46 Reply With Quote
    Provinzheld Kardulor's Avatar
    Join Date
    Aug 2015
    Posts
    201
     
    Kardulor is offline
    Gut, das Problem mit der Skalierung des Kreises kann ich nachvollziehen, aber könnte man nicht theoretisch die Kreisgröße anhand der maximalen Schussweite eichen? Demnach ist der Streuungskreis nicht an die Nähe des Zielobjektes angepasst, sondern immer vom jeweiligen Bogen- oder Armbrustschießtalent her gleich. Insofern könnte das ganz gut sein, da man auf dieser Art und Weise vllt. auch ein bisschen Gefühl für das Abschätzen von Distanzen und das eigene Schießtalent entwickeln muss.

    P.S. Theoretisch könnte die Schussreichweite auch etwas sein, was von Bogen zu Bogen unterschiedlich ist. Ein höherstufiger Langbogen mit mehr Zugkraft macht demnach nicht nur mehr Schaden, sondern kann auch weiter schießen. So etwas würde man aber vermutlich individuell als Modder einstellen müssen, oder? Es sei denn, du würdest so etwas für die Vanilla-Version vornehmen - aber das wird vermutlich auch noch ein bisschen Gefummel sein.
    Last edited by Kardulor; 12.09.2016 at 23:44.

  7. View Forum Posts #47 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by Kardulor View Post
    Gut, das Problem mit der Skalierung des Kreises kann ich nachvollziehen, aber könnte man nicht theoretisch die Kreisgröße anhand der maximalen Schussweite eichen? Demnach ist der Streuungskreis nicht an die Nähe des Zielobjektes angepasst, sondern immer vom jeweiligen Bogen- oder Armbrustschießtalent her gleich. Insofern könnte das ganz gut sein, da man auf dieser Art und Weise vllt. auch ein bisschen Gefühl für das Abschätzen von Distanzen und das eigene Schießtalent entwickeln muss.
    Das würde mir persönlich den Reiz des Bogen-/Armbrustschiessen nehmen. Bei einem Maschinengewehr habe ich da nichts gegen, bei einem Bogen stört mich das aber. Man muss ja selbst etwas abschätzen, wo man hinschiesst. Die Streuung (= Accuracy) kann man dann anhand der Flugbahn erkennen und gewöhnt sich daran, je öfter man schiesst. Mit so einem Streukreis ist mir auch etwas zu viel auf dem Bildschirm. Was ich damit sagen will: ich werde es erstmal noch nicht einbauen, aber wie du schon richtig sagst, kann das dann jeder Modder nachholen und Problemlos bei sich einbauen. Das habe ich immer im Hinterkopf und versuche das Skript so offen und flexibel und gut kommentiert zu schreiben wie es geht. Edit: Siehe unten.

    Quote Originally Posted by Kardulor View Post
    P.S. Theoretisch könnte die Schussreichweite auch etwas sein, was von Bogen zu Bogen unterschiedlich ist. Ein höherstufiger Langbogen mit mehr Zugkraft macht demnach nicht nur mehr Schaden, sondern kann auch weiter schießen. So etwas würde man aber vermutlich individuell als Modder einstellen müssen, oder? Es sei denn, du würdest so etwas für die Vanilla-Version vornehmen - aber das wird vermutlich auch noch ein bisschen Gefummel sein.
    Das allerdings finde ich eine sehr gut Idee von dir. Damit hast du mich auf die Idee gebracht, die Berechnung der Accuracy (also Streuung) und die Berechnung der Zugkraft (und einige weitere Sachen) in separate bündige Funktionen auszulagern, die jeder für sich anpassen kann (ohne sich mit dem Rest des Skriptes auseinandersetzen zu müssen). Hier mal ein kleiner Einblick. Die beiden Funktionen müssen einen Prozentwert zwischen 0 und 100 zurückgeben - wie man diesen errechnet ist völlig offen. Es ist schon etwas Vorarbeit geleistet; z.B. steht die Schusswaffe in der Variable weapon bereit. So könnte man dort einen Bogenwert mit in die Berechnung der Streuung einbeziehen. Wenn ein Modder ein Schnellzielen-Talent einbauen will, kann er das in freeAimGetDrawForce hinzufügen und die Prozentzahl anpassen.
    In diesem Fall (s.u.) wird die Zugkraft nur an einem Zeitwert festgemacht (dazu steht bowDrawOnset bereit). Die Accuracy ist einfach das Bogen-/Armbrusttalent skaliert mit der Zugkraft.

    Spoiler:(zum lesen bitte Text markieren)

    Code:
    /* Modify this function to alter the draw force calculation. Scaled between 0 and 100 (percent) */
    func int freeAimGetDrawForce(var C_Item weapon, var int talent) {
        var int drawTime; drawTime = MEM_Timer.totalTime - freeAimBowDrawOnset;
        // Possibly incorporate more factors like e.g. a quick-draw talent, weapon-specific stats, ...
        // Check if bow or crossbow with (weapon.flags & ITEM_BOW) or (weapon.flags & ITEM_CROSSBOW)
        // For now set drawForce by draw time scaled between min and max times:
        var int drawForce; drawForce = (100 * (drawTime-FREEAIM_DRAWTIME_MIN))/(FREEAIM_DRAWTIME_MAX-FREEAIM_DRAWTIME_MIN);
        if (drawForce > 100) { drawForce = 100; } else if (drawForce < 0) { drawForce = 0; }; // Respect the ranges
        return drawForce;
    };
    
    /* Modify this function to alter accuracy calculation. Scaled between 0 and 100 (percent) */
    func int freeAimGetAccuracy(var C_Item weapon, var int talent) {
        // Add any other factors here e.g. weapon-specific accuracy stats, weapon spread, accuracy talent, ...
        // Check if bow or crossbow with (weapon.flags & ITEM_BOW) or (weapon.flags & ITEM_CROSSBOW)
        // Here the talent is scaled by draw force: draw force=100% => accuracy=talent; draw force=0% => accuracy=talent/2
        var int drawForce; drawForce = freeAimGetDrawForce(weapon, talent); // Already scaled to [0, 100]
        if (drawForce < talent) { drawForce = talent; }; // Decrease impact of draw force on talent
        var int accuracy; accuracy = (talent * drawForce)/100;
        if (accuracy > 100) { accuracy = 100; } else if (accuracy < 0) { accuracy = 0; }; // Respect the ranges
        return accuracy;
    };


    Wer in letzter Zeit mal in den Einleitungspost geschaut hat, wird bemerkt haben, dass sich in der Liste einiges getan hat. Mittlerweile fehlt nur noch das seitliche Laufen beim Zielen (neben einigen kleineren Sachen). Im Moment bin ich sehr mit meinem Code zufrieden und könnte, falls das seitliche Laufen nicht gut funktionieren wird oder ich irgendwann keine Lust mehr habe, ohne grosse Umstände das Skript so wie es ist veröffentlichen.
    Hier, was sich getan hat:

    Die Streuung funktioniert wunderbar (sieht hier nicht so gut aus, aber die ist Kreisrund). Hier aus ca. 12 Meter Entfernung mit Trefferwahrscheinlichkeit 50, ohne Zugkraft:
    [Bild: attachment.php?s=16f882693908b5c0877683fd23e1511f&attachmentid=44809&d=1474125492&thumb=1]

    Genau so der Headshot. Dort sind auch zwei Funktionen ausgelagert. In einer kann man den Schaden (z.B. einem bestimmten Monster) anpassen. In der anderen kann man einen Headshot-Event festlegen, wie z.B. einen Sound oder einen Print auf dem Bildschirm. Man könnte also auch mitzählen und nach 25 Headshots extra Erfahrung vergeben o.ä. Beachten muss man, dass der Schaden dem Basisschaden entspricht, also dem Waffenschaden. Stärke usw. wird von der Engine anschliessend dazuaddiert. So sieht das aus:

    Spoiler:(zum lesen bitte Text markieren)

    Code:
    /* Modify this function to set the headshot damage. Caution: damage is a float and should be returned as such */
    func int freeAimGetHeadshotDamage(var int damage, var C_NPC target, var C_Item weapon) {
        // Possibly incorporate weapon-specific stats, headshot talent, dependecy on target, ...
        // The damage may depent on the target npc (e.g. different damage for monsters). Make use of 'target' argument
        // if (target.guild < GIL_SEPERATOR_HUM) { }; // E.g. special case for humans
        // The weapon can also be considered (e.g. weapon specific damage). Make use of 'weapon' for that
        // Caution: Weapon may have been unequipped already at this time! Use Hlp_IsValidItem(weapon)
        // if (Hlp_IsValidItem(weapon)) && (weapon.certainProperty > 10) { }; // E.g. special case for weapon property
        damage = mulf(damage, castToIntf(2.0)); // For now, just double the base damage
        return damage; // This sets a new base damage (excl. strength, ...). This is not the final damage!
    };
    
    /* Use this function to create an event when getting a headshot, e.g. a print or a sound jingle, leave blank for none */
    func void freeAimHeadshotEvent(var C_NPC target, var C_Item weapon) {
        // The event may depent on the target npc (e.g. different sound for monsters). Make use of 'target' argument
        // if (target.guild < GIL_SEPERATOR_HUM) { }; // E.g. special case for humans
        // The headshots could also be counted here to give an xp reward after 25 headshots
        // The weapon can also be considered (e.g. weapon specific print). Make use of 'weapon' for that
        // Caution: Weapon may have been unequipped already at this time! Use Hlp_IsValidItem(weapon)
        // if (Hlp_IsValidItem(weapon)) && (weapon.certainProperty > 10) { }; // E.g. special case for weapon property
        Snd_Play("FORGE_ANVIL_A1");
        PrintS("Kritischer Treffer"); // "Critical hit"
    };


    Die Headshot-Detection ist sehr präzise. Die Enginefunktionen mit möglichen Schnittpunkt usw. waren mir dafür zu ungenau und ich hab das selbst in die Hand genommen.

    Bei Menschen klappt es sehr genau (erstes Bild mit einem möglichen Print), die Linien sind natürlich nur zu Debugzwecken:
    [Bild: attachment.php?s=16f882693908b5c0877683fd23e1511f&attachmentid=44806&d=1474125447&thumb=1]
    [Bild: attachment.php?s=16f882693908b5c0877683fd23e1511f&attachmentid=44804&d=1474125447&thumb=1]
    [Bild: attachment.php?s=16f882693908b5c0877683fd23e1511f&attachmentid=44805&d=1474125447&thumb=1]
    Bei Tieren ist das grosse Problem, dass sie kein separates Head-Visual haben (Menschen haben ja alle individuelle Köpfe). D.h. die Kopf-Boundingbox von Tieren hat die Grösse Null. Dafür sehe ich keine Lösung, daher wird jetzt einfach bei Tieren eine Kopfgrösse "geraten" (= 60x60cm). Das haut bei den meisten Tieren hin - Ausnahmen sind Monster wie Trolle (siehe zweites Bild) - dort ist dann halt ein Headshot einfach schwieriger. (Ausserdem steht man im Kampf gegen einen Troll meist eh in dessen Boundingbox, sodass man trifft bevor der Pfeil richtig losfliegt - in dem Fall wird man NIE einen Headshot erzielen können). Das sind aber Sachen, die werden einen "Endbenutzer" nicht stören, so lange man es ihm nicht unter die Nase reibt - er bekommt schliesslich nichts davon mit und wird davon aussgehen, dass der Pfeil knapp vorbei gegangen ist oder ein Headshot intern einfach anderes errechnet wird.
    [Bild: attachment.php?s=16f882693908b5c0877683fd23e1511f&attachmentid=44807&d=1474125492&thumb=1]
    [Bild: attachment.php?s=16f882693908b5c0877683fd23e1511f&attachmentid=44808&d=1474125492&thumb=1]

    EDIT: Für Leute, denen diese Headshot-Angelegenheit bei Monstern zu ungenau ist, habe ich noch eine weitere Funktion eingebaut, in der man die Kopfgrössen der einzelnen Monster definieren kann. Die ist vor allem dann interessant, wenn jemand in seiner Mod neue Monster hat.
    Damit steht natürlich noch die Frage im Raum, ob jemand trotzdem eine Möglichkeit sieht, an die Boundingbox vom Head node von Monstern zu kommen. Über Ideen würde ich mich freuen!
    Spoiler:(zum lesen bitte Text markieren)

    Code:
    /* Modify this function to assign more appropriate head sizes for headshot detection: Only called for non-human npcs */
    func int freeAimGetHeadSize(var C_NPC monster) {
        // if (monster.aivar[AIV_MM_REAL_ID] == ID_TROLL) { // Head size for trolls
        //     return 120; // 120x120cm
        // } else if (monster.aivar[AIV_MM_REAL_ID] == ...
        //     ...
        // } else {
        //     return 60; // Default head size is 60x60cm
        // };
        return 60; // Default is 60x60cm
    };


    @Kardulor: Hier ist noch eine weitere Funktion, mit der man dann genau das erreich kann, was du dir vorstellst - oder zumindest ähnlich. In der Funktion kann das Fadenkreuz manipuliert werden (sowohl Grösse als auch Textur). Standardmässig skaliert das Fadenkreuz einfach mit Zielentfernung. In dem auskommentierten Abschnitt sind aber noch zwei Beipsiele, wie man die Grösse stattdessen (1) mit der Zugkraft oder (2) mit der Accuracy (das ist doch was du dir vorstellst, oder?) skaliert (je länger man zielt/mehr Accuracy desto kleiner wird das Fadenkreuz).

    Spoiler:(zum lesen bitte Text markieren)

    Code:
    /* Modify this function to alter the reticle style. By draw force, weapon-specific stats, talent, ... */
    func int freeAimGetReticleStyle(var C_Item weapon, var int talent) {
        if (weapon.flags & ITEM_BOW) { return POINTY_RETICLE; }; // Bow readied
        if (weapon.flags & ITEM_CROSSBOW) { return POINTY_RETICLE; }; // Crossbow readied
        return NORMAL_RETICLE;
    };
    
    /* Modify this function to alter the reticle size. By draw force, weapon-specific stats, talent, ... */
    func int freeAimGetReticleSize(var int size, var int weapon, var int talent) {
        // The argument 'size' comes precalculated by aiming distance
        // var int scale; scale = -freeAimGetDrawForce(weapon, talent)+100; // E.g. scale with draw force instead
        // var int scale; scale = -freeAimGetAccuracy(weapon, talent)+100; // or scale with accuracy
        // size = (((FREEAIM_RETICLE_MAX_SIZE-FREEAIM_RETICLE_MIN_SIZE)*(scale))/100)+FREEAIM_RETICLE_MIN_SIZE;
        return size; // For now leave it scaled by distance
    };
    Last edited by mud-freak; 19.09.2016 at 19:50. Reason: Code ist jetzt sehr vereinfact und leserlicher

  8. View Forum Posts #48 Reply With Quote
    Provinzheld Kardulor's Avatar
    Join Date
    Aug 2015
    Posts
    201
     
    Kardulor is offline
    Sind ja ein paar schicke Sachen, die da wieder dazugekommen sind.
    Vergiss aber erst einmal den visualisierten Streuungskreis, dass wird auch so schon gut sein, wie du das machst.

    Was die Treffergenauigkeit anbelangt gibt es allerdings grundlegend etliche Aspekte, die man in das Schussergebnis mit ein beziehen könnte. Da wäre wie bereits erwähnt die Art des Bogens bzw. wie viel maximale Zugkraft dieser bietet. Dann natürlich die individuell für den Schuss aufgewendete Zugkraft selbst (also wie lange er den Bogen spannt), allerdings könnte dieser Punkt auch gegenteilig genutzt werden: wer nämlich zu lange den Bogen spannt, dem werden mit der Zeit die Arme schwach und wackelig, sodass sich die Streuung wieder erhöht. Ist jetzt zwar nicht unbedingt für den Singleplayer notwendig, aber speziell wenn ich an die Implementierung im Multiplayer denke, könnten solche kleinen Balancing-Elemente unter Umständen sehr wichtig sein/werden.

    So oder so sind das aber bloß Feinheiten, denen man sich final dank deiner offenen Scriptführung mehr oder minder selbst annehmen könnte, wenn man wollte. Dafür auf jeden Fall mal einen großherzigen Dank!

  9. View Forum Posts #49 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Ja, ich denke solche Ideen sollten sich nun im Nachhinein recht einfach einbauen lassen.

    Quote Originally Posted by Kardulor View Post
    Dann natürlich die individuell für den Schuss aufgewendete Zugkraft selbst (also wie lange er den Bogen spannt), allerdings könnte dieser Punkt auch gegenteilig genutzt werden: wer nämlich zu lange den Bogen spannt, dem werden mit der Zeit die Arme schwach und wackelig, sodass sich die Streuung wieder erhöht.
    Quote Originally Posted by mud-freak View Post
    • Steady Aim 70% Bogen zu lang gespannt = Kamera wackelt, schwieriger zu Zielen Unnötig. Oder ist wer daran interessiert? Dann bitte melden.
    Daran hatte ich auch schon gedacht. Wäre dir so etwas wichtig? Ich hatte nämlich mit so etwas schon einmal angefangen. D.h. die Kamera fängt nach zu langem Zielen an zu wackeln - ähnlich wie bei einem Erdbeben-Effekt aber etwas seichter und ich vernünftigen Ausmass/Richtungen. Allerdings war mir das irgendwie zu unwichtig.

    Noch etwas anderes: Bezüglich des seitlichen Gehens (also Strafen) während dem Zielen habe ich die Arbeiten eingestellt. Mehrere Animationen gleichzeitig (zielen, gehen) abzuspielen war nicht einfach möglich - und als es klappte, blieben die Animationen manchmal hängen und schiessen und nachladen waren während dem Strafen nicht möglich.
    Heute habe ich dann noch einmal einen komplett anderen Ansatz ausprobiert (nicht umfallen: Spieler-Vob manuell verschieben und eine "nicht-bewegende" Gehanimation drüber legen). Der hat überraschender Weise sehr gut geklappt. Man konnte schiessen, zielen, usw. problemlos während dem Gehen und Animationen und Bewegungen hingen auch nicht anschliessend fest. Kollision hatte man auch, sodass man nicht durch Wände verschoben wurde o.ä.
    Das "einzige" Problem waren unvorhersehbare Nebeneffekte, wie man sich bei so einer unkonventionellen Methode vorstellen kann. So steckte man manchmal an einer Wand fest. Mir war dieser Ansatz aber eh zu dirty. Ich habe meine Versuche mit dem Strafen aber nicht gelöscht, sondern in einen eigenen Branch gelegt, so dass jeder der will später daran weiterarbeiten kann. Ich habe vor das Repo dann hier zu teilen.

    Quote Originally Posted by mud-freak View Post
    • Seitliches Gehen beim Zielen 40% Klappt fast, aber ist mir zu instabil. Habe aber einen Branch dafür angelegt.

  10. View Forum Posts #50 Reply With Quote
    Provinzheld Kardulor's Avatar
    Join Date
    Aug 2015
    Posts
    201
     
    Kardulor is offline
    Daran hatte ich auch schon gedacht. Wäre dir so etwas wichtig? Ich hatte nämlich mit so etwas schon einmal angefangen. D.h. die Kamera fängt nach zu langem Zielen an zu wackeln - ähnlich wie bei einem Erdbeben-Effekt aber etwas seichter und ich vernünftigen Ausmass/Richtungen. Allerdings war mir das irgendwie zu unwichtig.
    Huch, hatte ich ganz am Anfang wohl ganz überlesen oder einfach vergessen.
    In Bezug auf den Singleplayer: kann man machen, muss man aber nicht. Wenn man's hat, ist es bestimmt ganz nett, aber wirklich unbedingt brauchen tut man's eig. nicht. Das sähe dann aber im Falle eines Multiplayers (was dann vllt. eher für die Jungs vom G:UC interessant sein könnte, wenn die das dort bei sich einbauen) deutlich anders aus, da ein solches Zittern ein wichtiges Balancing-Element im Spielerkampf darstellen könnte.

    Letztendlich kannst du es aber denke ich reinmachen, wenn du die Lust und Zeit hast. Kannst ja vllt. ne An- und Ausschaltmöglichkeit für dieses Feature bieten und dann hat sich das.

  11. View Forum Posts #51 Reply With Quote
    Provinzheld
    Join Date
    Feb 2011
    Location
    Wachlokal von Vengard
    Posts
    281
     
    königsgardist is offline
    Hab mal prinzipiell eine Frage zur Strafe- Animation:

    geht es nicht, dass man so eine einfach von einer Website hinunterlädt, in das Gothic-Format konvertiert und dann einfach einbaut? Bin Laie...

    mfg königsgardist

  12. View Forum Posts #52 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by königsgardist View Post
    geht es nicht, dass man so eine einfach von einer Website hinunterlädt, in das Gothic-Format konvertiert und dann einfach einbaut? Bin Laie...
    Die Animation dabei ist nicht das Problem. Also es ging nicht darum, dass ich keine Animation habe. Wo es knifflig wird ist was du "einfach einbauen" nennst. Leider geht das nicht so einfach. Normalerweise hast du recht - man sagt Gothic: Spiel diese Animation ab und es klappt.
    Hier soll die Animation aber abgespielt werden während die Zielen-Animation (d.h. der Bogen folgt dem Fadenkreuz) weiterläuft. Die Zielen-Animation ist aber keine festgelegte Animation, sondern sie ändert ständig wenn man wo anders hinzielt. Deshalb haben sich die beiden Animationen gegenseitig blockiert.
    Ich denke, dass es eventuell möglich ist beide laufen und ständig aktualisieren zu können, doch habe ich damit bisher zu viel Zeit verbracht und selbst wenn es klappt, stünde noch das Problem im Raum, dass man dann auch noch währenddessen schiessen und nachladen können muss. Irgendwann wird so etwas zu einer Aufgabe, wie ein Raumschiff aus Holz zu bauen - die Werkzeuge sind begrenzt. Gothic ist einfach nicht für so etwas gemacht.

  13. View Forum Posts #53 Reply With Quote
    Provinzheld
    Join Date
    Feb 2011
    Location
    Wachlokal von Vengard
    Posts
    281
     
    königsgardist is offline
    Quote Originally Posted by mud-freak View Post
    Die Animation dabei ist nicht das Problem. Also es ging nicht darum, dass ich keine Animation habe. Wo es knifflig wird ist was du "einfach einbauen" nennst. Leider geht das nicht so einfach. Normalerweise hast du recht - man sagt Gothic: Spiel diese Animation ab und es klappt.
    Hier soll die Animation aber abgespielt werden während die Zielen-Animation (d.h. der Bogen folgt dem Fadenkreuz) weiterläuft. Die Zielen-Animation ist aber keine festgelegte Animation, sondern sie ändert ständig wenn man wo anders hinzielt. Deshalb haben sich die beiden Animationen gegenseitig blockiert.
    Ich denke, dass es eventuell möglich ist beide laufen und ständig aktualisieren zu können, doch habe ich damit bisher zu viel Zeit verbracht und selbst wenn es klappt, stünde noch das Problem im Raum, dass man dann auch noch währenddessen schiessen und nachladen können muss. Irgendwann wird so etwas zu einer Aufgabe, wie ein Raumschiff aus Holz zu bauen - die Werkzeuge sind begrenzt. Gothic ist einfach nicht für so etwas gemacht.
    Alles klar! Vielen Dank für den Einblick. Schade, aber das Spiel hat ja auch ein paar Jährchen auf dem Buckel. Bin trotzdem gespannt, was du noch zusammenbringen wirst . Beta-Testen werde ich gerne, wenn es soweit ist.

    lg königsgardist

  14. View Forum Posts #54 Reply With Quote
    Antrum Mod Team Simon's Avatar
    Join Date
    Dec 2007
    Location
    Kiefersfelden
    Posts
    6,607
     
    Simon is offline
    Uuuuuh, das wird ja immer besser hier!

    Da kommt mir eine Idee, die sehr atmosphärisch für bestimmte Mods und Monster wäre. Man könnte über Quests oder einfach im Gespräch mit NPCs von bestimmten "Schwachstellen" von speziellen Monstern erfahren. Die müssen ja jetzt nicht zwangsweise am Kopf sein. Ein Mensch hat klar am Kopf den headshot-Bonusschaden aber zum Beispiel ein Dämon könnte sie am Herz haben oder ein alter Draceh, von dem man erfahren hat, dass ihm eine Schuppe unter dem linken Flügel fehlt eben dort (OK ich weiß billiger fake, aber nur zur Veranschaulichung der Idee) etc..
    Die Frage ist, ob es Möglich ist, um bestimmte Bones diese Boundingbox zu definieren. Ich kenn mich zwar mit Bones aus, aber kaum mit Scripts.
    Risenmodkit
    "Du sagst mir jetzt, was du weißt, oder es gibt ein paar auf's Maul, Paul!"

  15. View Forum Posts #55 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by Simon View Post
    Uuuuuh, das wird ja immer besser hier!

    Da kommt mir eine Idee, die sehr atmosphärisch für bestimmte Mods und Monster wäre. Man könnte über Quests oder einfach im Gespräch mit NPCs von bestimmten "Schwachstellen" von speziellen Monstern erfahren. Die müssen ja jetzt nicht zwangsweise am Kopf sein. Ein Mensch hat klar am Kopf den headshot-Bonusschaden aber zum Beispiel ein Dämon könnte sie am Herz haben oder ein alter Draceh, von dem man erfahren hat, dass ihm eine Schuppe unter dem linken Flügel fehlt eben dort (OK ich weiß billiger fake, aber nur zur Veranschaulichung der Idee) etc..
    Die Frage ist, ob es Möglich ist, um bestimmte Bones diese Boundingbox zu definieren. Ich kenn mich zwar mit Bones aus, aber kaum mit Scripts.
    Interessanter Gedanke. Bisher wird einfach der Bip01 Head geholt. Das könnte ich aber auch so auslagern, dass man mittels Guilde o.ä. den "Schwachstellen-Bone" individuell bestimmt.
    Kann ich mal ausprobieren. Vielleicht sollte ich dann diese Debuganzeigen, die man in den Screenshots sieht (Boundingboxes und Flugbahn) wieder einbauen und über Skripte ein- und ausstellbar machen, damit Modder dann solche Schwachstellen für Monster klarer festlegen und überprüfen können.
    Also generell sehe ich für deine Idee grünes Licht.

  16. View Forum Posts #56 Reply With Quote
    Provinzheld
    Join Date
    Feb 2011
    Location
    Wachlokal von Vengard
    Posts
    281
     
    königsgardist is offline
    Hallo,

    ich wollte einmal nachfragen, wie es geht!

    lg königsgardist

  17. View Forum Posts #57 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Quote Originally Posted by königsgardist View Post
    Hallo,

    ich wollte einmal nachfragen, wie es geht!

    lg königsgardist
    Hi, ich habe die letzten zwei Wochen etwas Abstand genommen und habe im Moment auch nicht viel Zeit. An den ein oder anderen Wochenenden werde ich immer wieder ein bisschen weiterarbeiten. Wie schnell ich also vorankomme, kann ich leider nicht abschätzen.

    Ein Überblick:
    Im Moment habe ich zehn offene "Aufgaben" (Implementierung für Zauber nicht einbegriffen) wovon sechs sehr wichtig für die Funktionalität sind, der Rest optional.
    Was die einfachen Anpassungsmöglichkeiten für Modder angeht, sind bisher folgende Funktionen implementiert (darunter auch spezifische Schwachstellen per Gegner, wie vorgeschlagen von Simon):

    Code:
    /* Modify this function to alter the draw force calculation. Scaled between 0 and 100 (percent) */
    func int freeAimGetDrawForce(var C_Item weapon, var int talent)
    
    /* Modify this function to alter accuracy calculation. Scaled between 0 and 100 (percent) */
    func int freeAimGetAccuracy(var C_Item weapon, var int talent)
    
    /* Modify this function to alter the reticle texture, color and size (scaled between 0 and 100). */
    func void freeAimGetReticle(var C_Npc target, var int weapon, var int talent, var int distance, var int returnPtr)
    
    /* Modify this function to disable hit registration. E.g. 'ineffective' ranged weapons, disable friendly-fire, ... */
    func int freeAimHitRegistration(var C_Npc target, var C_Item weapon, var int material)
    
    /* Modify this function to define a critical hit by weak spot (e.g. head node for headshot), its size and the damage */
    func void freeAimCriticalHitDef(var C_Npc target, var C_Item weapon, var int damage, var int returnPtr)
    
    /* Use this function to create an event when getting a critical hit, e.g. print or sound jingle, leave blank for none */
    func void freeAimCriticalHitEvent(var C_Npc target, var C_Item weapon)
    
    /* Modify this function to alter (or remove) the projectile instance after shooting for re-using, e.g. used arrow */
    func int freeAimGetUsedProjectileInstance(var int projectileInst, var C_Npc inventoryNpc)
    EDIT: Der oben stehende Code ist veraltet aber zeigt beispielhaft noch wie es geht.
    Last edited by mud-freak; 03.11.2016 at 09:57. Reason: Kollision von Projektilen kann man nun vom Material abhängig machen

  18. View Forum Posts #58 Reply With Quote
    Provinzheld Kardulor's Avatar
    Join Date
    Aug 2015
    Posts
    201
     
    Kardulor is offline
    In Bezug auf den Unterpunkt "Steady Aim": Wäre es nicht möglich, die Verwackelung ebenfalls mit dem Bogenschießtalent zu kombinieren? Man könnte die Stärke des Verwackelns und die Zeit, wann die Verwackelung eintritt, vom dazugehörigen Waffentalent abhängig machen. Wer ungeübt ist, wackelt sehr viel schneller und sehr viel stärker als ein ausgebildeter Schütze.

    Wie die große Mehrheit das fände kann ich nicht sagen, aber ich persönlich fände so etwas super toll! Das brächte in meinen Augen einen gesunden Realismus in die Geschichte und ein faires Balancing, auf dass man es als anfänglicher Bogenschützen-Neuling nicht so einfach mit dem überaus starken Fernkampf hat.

  19. View Forum Posts #59 Reply With Quote
    Antrum Mod Team Simon's Avatar
    Join Date
    Dec 2007
    Location
    Kiefersfelden
    Posts
    6,607
     
    Simon is offline
    @mud-freak: Aaahh sehr schön, das entwickelt sich ja zu einem allround feature, welches selbst ein Hans-Bauer wie ich bedienen kann!
    Wunderbar.
    Risenmodkit
    "Du sagst mir jetzt, was du weißt, oder es gibt ein paar auf's Maul, Paul!"

  20. View Forum Posts #60 Reply With Quote
    Knight mud-freak's Avatar
    Join Date
    Dec 2005
    Posts
    1,326
     
    mud-freak is offline
    Ich habe gute Neuigkeiten. Ich habe mir ein vorläufiges Releasedatum gesetzt. Das basiere ich auf einem Zeitplan. Beides lässt sich im Einleitungspost finden zusammen mit einer aktualisierten Aufgabenliste und der Anzahl der offenen und geschlossenen Issues/Tickets, die ich fortlaufend Aktuell halten will.
    Das mag alles etwas albern wirken, aber ich poste es hier für mich selbst, um mir ein bisschen Druck zu machen; ich will es endlich fertig haben. Sicher kann es sein, dass ich das Release nach hinten verschiebe (und still und leise im Einleitungspost anpasse), sollte es knapp werden. Aber ich denke es sollte machbar sein, es einzuhalten.
    Mittlerweile habe ich die Arbeiten am Fernkampf abgeschlossen und am freien Zielen für Magie begonnen (siehe Fortschritt). Freies Zielen für Magie wird wesentlich eingeschränkter was Anpassungsmöglichkeiten angeht. Z.B. wird es keine Accuracy bei Zaubern geben, da die Kollision von Effekten zu grob ist. Die einzige Anpassungsmöglichkeit für Zauber wird die dynamische Gestaltung des Fadenkreuzes sein. Ob ein bestimmter Zauber freies Zielen unterstützt wird mit der Spell Instanz entschieden (targetCollectAlgo, targetCollectType und canTurnDuringInvest).
    Es werden keine neuen Features mehr dazu kommen.

    Quote Originally Posted by Kardulor View Post
    In Bezug auf den Unterpunkt "Steady Aim" [...]
    Ich hatte beschlossen Steady Aim nicht mit aufzunehmen. Es bleiben noch einige Überreste dazu im Repository, d.h. du kannst später selbst (oder mit Hilfe von anderen) versuchen eine Lösung dazu zu finden. Der Grund warum ich es gestrichen hatte ist, dass Gothics "Camera Tremor" nicht leicht zu bändigen ist und es im Menü usw. weiter läuft. Sicher etwas was man beheben kann, wenn man sich die Enginefunktionen genauer anschaut (was ich nicht getan habe). Mir war es aber zu "hacky".

    Quote Originally Posted by Simon View Post
    @mud-freak: Aaahh sehr schön, das entwickelt sich ja zu einem allround feature, welches selbst ein Hans-Bauer wie ich bedienen kann!
    Wunderbar.
    Genau darauf ziele ich ab. Viele Zeilen vom Kernskript sind denke ich nicht leicht nachvollziehbar (trotz Kommentaren) und einiges wird Gothic extrem instabil machen wenn man auch nur das kleinste Bisschen ändert (ohne, dass man es vielleicht direkt merkt). Es ist viel Arbeit hinein gegangen das freie Zielen stabil zu machen und ich kann nicht an jede Zeile Code schreiben, warum ich sie so gewählt habe auch wenn sie evtl. umständlich aussieht. Wenn jemand anfängt darin rumzufuschen ist er selbst Schuld. Deshalb habe ich im Vornherein versucht, alle Sachen, die man möglicherweise Anpassen wollte als Konfigurationen ausgelagert, damit man das Kernskript nicht berühren muss (darf!).

Page 3 of 14 « First 123456710 ... Last »

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide