|
-
[Skriptpaket] Gothic Free Aim (GFA)
Das Skriptpaket "Gothic Free Aim" ermöglicht freies Zielen in Gothic und Gothic II für Fernkampf (Bogen, Armbrust) und Zauber.
Unter die Features dieses Skriptpakets fallen ausserdem- kritische Treffer nach getroffenen Körperteilen (z.B. Headshots),
- anpassbares Kollisions- und Schadensverhalten (z.B. Instant-Knockout/-Kill),
- das Wiederaufsammeln von Geschossen,
- wahre Trefferwahrscheinlichkeit durch Streuung von Schüssen,
- freies Bewegen während des Zielens,
- und eine umfangreiche Konfiguration, um all dies frei anzupassen.
Eine komplette und ausführliche Dokumentation der Features und Anpassungsmöglichkeiten findet sich im Wiki.
GFA Wiki
Dokumentation des gesamten Skriptpaketes mit ausführlicher Beschreibung der Anpassungsmöglichkeiten.
FAQ
Häufig gestellte Fragen.
Changelog
Alle Änderungen gegliedert nach Versionen.
Download
Alle Releases des Skriptpaketes inklusive Release-Notes absteigend sortiert.
Demo Mods
Gothic 1 und Gothic 2 mit freiem Zielen zum Ausprobieren der Features (Deutsch/English/Polnisch/Russisch).
Geändert von mud-freak (07.01.2018 um 14:43 Uhr)
-
Da es in diesem Thread mittlerweile um die Implementierung von freiem Zielen geht, habe ich den Einleitungspost angepasst. Hier ist der originale Einleitungspost, in dem es damals noch um SPL_Blink ging.
Zitat von Originaler Einleitungspost
Hallo!
Ich bin heute morgen auf der Tastatur ausgerutscht und habe aus Versehen einen netten Zauber entworfen.
Dabei gibt es ein Problem:
Während der Investphase (gedrückt halten) des Zaubers wird die Rotation um die Y-Achse deaktiviert; Man kann zwar nach oben und unten schauen, aber sich nicht drehen. In den Zaubern gibt es eine Eigenschaft canTurnDuringInvest, die genau das verspricht was ich will, allerdings scheint sie veraltet und ändert nichts.
Wer sich mit Aufrechterhaltungszaubern nicht so auskennt: Das ist im Grunde eine ähnliche Situation, wie wenn man beim Bogenschiessen gedrückt hält. Mausbewegungen nach oben und unten werden verarbeitet, die Drehung ist allerdings fest gefroren solange der Knopf gedrückt bleibt.
Ich bin mir nicht sicher, ob das am Input oder an der Kamera liegt. Aus den Enginefunktionen und Ausgaben aus dem zSpy wurde ich da nicht schlau.
Hat jemand eine Idee, wie ich die Mausblockade aufheben oder umgehen kann?
Ich hatte dazu gestern schon etwas im LeGo Thread geschrieben, aber vielleicht ist es besser in einem eigenen Thread, wo mir vielleicht jemand eine kreative, abstraktere Alternative anbieten kann.
Um dem ganzen ein bisschen Motivation mitzugeben, hier der Zauber um den es sich handelt. Das soll weniger Werbung als eine Vorschau sein, denn ich habe vor den Zauber in die Modderdatenbank zu stellen so bald ich damit zufrieden bin. Der Zauber ist angelehnt an 'Blink' aus Dishonored. So etwas ähnliches wurde schon einige Mal in Gothic gemoddet, allerdings hatten mir die Varianten nie gefallen. Im Moment ist mir - auf Grund der fehlenden Rotationsmöglichkeit - diese auch noch ein bisschen zu starr.
[Video]
Die Lösung des Problems wäre übrigens auch der erste Schritt in Richtung freies Zielen mit Ikaurs/LeGo.
Habe das Problem lösen können. Erstaunlich einfach.
Es gibt eine Engine-Funktion, die den Helden drehen lässt und die Kamera automatisch mit bewegt (die hängt am Helden). Ich musste also nur die Mausposition abfragen und die Drehung updaten.
Klappt wirklich gut, ich bin beeindruckt. Hier ein kleiner Test: https://youtu.be/DuaaLR7B7tM Dabei wird die Position nicht zu häufig upgedated, daher sieht das noch etwas stotterig aus. Kann man aber alles ausbessern.
Ich stelle hier später die (wirklich wenigen) Zeilen Code dazu rein. Damit wäre der erste Schritt fürs freie Zielen getan. Jetzt muss man sich "nur" noch mit den Projektilen befassen. Nebenbei wäre aber zu erst einmal mein Zauber fertig. An der Stelle kann ich ja eigentlich hier gerade mal fragen, bevor ich ihn in die Modderdatenbank stelle: gibt es dazu Feedback (Sound gut?, Animation passend?, Effekt in Ordnung?)
Geändert von mud-freak (22.11.2016 um 11:47 Uhr)
Grund: Alter Einleitungspost hier hin verschoben
-
Danke, dass du soetwas hochlädst. Genau solche Fortschritten sorgen bei mir überhaupt noch dafür, dass ich überhaupt noch modde. Wenn Gothic 2 auf dem Stand von 2003 geblieben wäre, hätte ich vermutlich schon lange aufgehört.
Der Zauber gefällt mir so sehr gut. Einzige Kritik von mir ist, dass bei kurzen Strecken dieser weiße Filter für meinen Geschmack etwas zu stark/hell ist. Soweit ich mich an Dishonored erinnere, war der Effekt dort weniger stark.
Möglicherweise ändert sich meine Meinung darüber auch, wenn ich es selbst ingame probiert habe und nicht nur über ein Video sehe. Ein großer Kritikpunkt ist es jedenfalls nicht - das kann so jederzeit hochgeladen werden.
-
Sehr schöne Arbeit!
Ich nehme mal an, dass du den Helden wirklich teleportierst und nicht nur schnell zum Ziel bewegst?
Dishonored macht letzteres, aber das sollte man vielleicht lieber nicht übernehmen
-
wow, schaut echt schon richtig gut aus!
Ich weiß nicht, ob das damals genau dieses Problem mit der Kamera war, aber "frei" zu fliegen als Zauber war ja recht blöd umzusätzen oder? Allerdings ging es da glaube ich um die Z-Achse Richtung. Hmm.
Risenmodkit
"Du sagst mir jetzt, was du weißt, oder es gibt ein paar auf's Maul, Paul!"
-
Zitat von Tyra
Danke, dass du soetwas hochlädst. Genau solche Fortschritten sorgen bei mir überhaupt noch dafür, dass ich überhaupt noch modde. Wenn Gothic 2 auf dem Stand von 2003 geblieben wäre, hätte ich vermutlich schon lange aufgehört.
Der Zauber gefällt mir so sehr gut. Einzige Kritik von mir ist, dass bei kurzen Strecken dieser weiße Filter für meinen Geschmack etwas zu stark/hell ist. Soweit ich mich an Dishonored erinnere, war der Effekt dort weniger stark.
Danke für das Feedback. Das stimmt, war mir nicht so aufgefallen. Vor allem bei Nacht sah das merkwürdig aus. Ich habe den Effekt jetzt verringert und schon mal in Skript ein Kommentar hinzugefügt, wo man den Effekt bei Bedarf ganz ausstellen könnte.
Zitat von Lehona
Sehr schöne Arbeit!
Ich nehme mal an, dass du den Helden wirklich teleportierst und nicht nur schnell zum Ziel bewegst?
Haha, ja wird einfach teleportiert. Das Skript an sich ist auch unglaublich simpel:
- Erstelle Vob ohne Visual und hänge den Aim-FX dran.*
- Solange der Zauber gedrückt gehalten ist:
- Schiesse einen Trace Ray vom Caster entlang der Kamera-Achse.
- Verschiebe das Aim-Vob an die Position, wo der Trace Ray ein Polygon schneidet (oder maximale Distanz)
- (Erlaube Maus-Bewegung und aktualisiere Rotation)
- Lösche Aim-Vob* und Aim-FX
- Erstelle Waypoint an den letzten Koordinaten des Vobs
- Teleportiere Caster
*Vielleicht kann ich das Vob auch weglassen. Das optimiere ich gerade noch.
Freies Zielen
Das freie Zielen habe ich mal universell für Zauber und Fernkampfwaffen eingebaut mittels Hook (mit Fadenkreuz usw.). Funktioniert sehr gut, allerdings nenne ich es mal nur "Free Look": Die Projektile schiessen zwar in die richtige Richtung und frei geschossene Pfeile machen auch Schaden, aber sie fliegen noch parallel zum Boden (egal ob man nach oben "zielt" = die Kamera nach oben zeigt). Trotzdem teile ich gern das Skript dazu (sobald ich es noch etwas optimiert habe), vielleicht kann jemand daran weiterarbeiten.
-
Zitat von mud-freak
Die Projektile schiessen zwar in die richtige Richtung und frei geschossene Pfeile machen auch Schaden, aber sie fliegen noch parallel zum Boden (egal ob man nach oben "zielt" = die Kamera nach oben zeigt)
Du müsstest den Look-Vector (und damit die Rotation) deines Geschosses an den Richtungsvektor deiner Flugbahn anpassen.
-
Zitat von Neconspictor
Du müsstest den Look-Vector (und damit die Rotation) deines Geschosses an den Richtungsvektor deiner Flugbahn anpassen.
Hört sich vernünftig an. Werde mal schauen wie schwierig es ist an das Projektil zu kommen. Zauber würden so schon komplett funktionieren, beim Fernkampf sollte man allerdings noch die Aim-Animation anpassen, sieht sonst etwas seltsam aus.
Was mir noch eingefallen ist: Man sollte vllt auch wie bei Blink einen Trace Ray schiessen, damit man die Healthbars von anvisierten Gegnern anzeigen kann (und wenn die Einstellung aktiviert ist, auch einen Fokus-Highlight)
Geändert von mud-freak (08.08.2016 um 12:31 Uhr)
-
Zitat von mud-freak
Danke für das Feedback. Das stimmt, war mir nicht so aufgefallen. Vor allem bei Nacht sah das merkwürdig aus. Ich habe den Effekt jetzt verringert und schon mal in Skript ein Kommentar hinzugefügt, wo man den Effekt bei Bedarf ganz ausstellen könnte.
Haha, ja wird einfach teleportiert. Das Skript an sich ist auch unglaublich simpel:
- Erstelle Vob ohne Visual und hänge den Aim-FX dran.*
- Solange der Zauber gedrückt gehalten ist:
- Schiesse einen Trace Ray vom Caster entlang der Kamera-Achse.
- Verschiebe das Aim-Vob an die Position, wo der Trace Ray ein Polygon schneidet (oder maximale Distanz)
- (Erlaube Maus-Bewegung und aktualisiere Rotation)
- Lösche Aim-Vob* und Aim-FX
- Erstelle Waypoint an den letzten Koordinaten des Vobs
- Teleportiere Caster
*Vielleicht kann ich das Vob auch weglassen. Das optimiere ich gerade noch.
Freies Zielen
Das freie Zielen habe ich mal universell für Zauber und Fernkampfwaffen eingebaut mittels Hook (mit Fadenkreuz usw.). Funktioniert sehr gut, allerdings nenne ich es mal nur "Free Look": Die Projektile schiessen zwar in die richtige Richtung und frei geschossene Pfeile machen auch Schaden, aber sie fliegen noch parallel zum Boden (egal ob man nach oben "zielt" = die Kamera nach oben zeigt). Trotzdem teile ich gern das Skript dazu (sobald ich es noch etwas optimiert habe), vielleicht kann jemand daran weiterarbeiten.
Zitat von mud-freak
Hört sich vernünftig an. Werde mal schauen wie schwierig es ist an das Projektil zu kommen. Zauber würden so schon komplett funktionieren, beim Fernkampf sollte man allerdings noch die Aim-Animation anpassen, sieht sonst etwas seltsam aus. Was mir noch eingefallen ist: Man sollte vllt auch wie bei Blink einen Trace Ray schiessen, damit man die Healthbars von anvisierten Gegnern anzeigen kann (und wenn die Einstellung aktiviert ist, auch einen Fokus-Highlight)
Soll das heißen, dass es mit deiner Arbeit, möglich wird, mit Zaubern und mit Bögen frei rum zu schießen?
Also das was sich viele Modder und viele Spieler seit langem erträumen.
-
Zitat von MyGamingHD
Soll das heißen, dass es mit deiner Arbeit, möglich wird, mit Zaubern und mit Bögen frei rum zu schießen?
Also das was sich viele Modder und viele Spieler seit langem erträumen.
Ich fürchte das Fass hab ich jetzt aufgemacht, ja. Das war mit Blink gar nicht meine Absicht. Aber ich schaue mal wie weit ich damit komme; auf jeden Fall stelle ich es aber demnächst hier bereit was ich bisher habe.
ToDo-Checkliste:
- Freie Maussteurung
- Fernkampf und Magiekampf hooken (wenn im richtigen Kampfmodus und Aktionstaste gedrückt: "befreie" Maus)
- Verschiedene Fadenkreuze für Zauber und Fernkampf an und ausstellen
- Y-Flugrichtung der Projektile anpassen Wie: Pointer auf Projektile ausfindig machen
- Bogen/Armbrust Animationen der Höhe anpassen Wie: siehe #4
- Healthbar und Name (und Focus-Highlight) anzeigen wenn NPC anvisiert wird. Wie: Trace Ray trifft oCNPC, siehe Blink. EDIT: Geht vielleicht auch einfacher (siehe Focus.d aber ohne focus collect) EDIT2: Focus collect geht nicht. Klappt bisher nur mittels Boundingbox, was mir ein bisschen zu ungenau ist. EDIT: Halb so wild
- Mausempfindlichkeit-Lock: Im Moment bewegt die Maus sich bei weniger bevölkerter Map schneller als bei volleren Wie: Bewegung skalieren an Hand von MEM_Timer.frameTimeFloat
- Maus smoothing: Gothic ist nicht für Zielen gemacht, präzise Mausbewegungen (Zielen in der Ferne) sind bisher schwierig Wie: Schon halb getan (siehe Blink), allerdings registriert Gothic wirklich minimale Mausbewegungen nicht
- Bonus: Fadenkreuz ändert grösse je nach Entfernung und ändert Farbe bei feindlichen Gegnern (letzteres vielleicht abschaltbar?) EDIT: Das mit der Farbe habe ich weggelassen
- Bonus: Während des Zielens seitlich Strafen können. Wie: Weiss nicht ob das mit den Animationen klappt.
- Bonus: Zugkraft simulieren. Was genau:
- Einfach nur die Pfeilanlegen-Animation langsamer machen? Mal sehen.
- Bei weniger Zug die Pfeilgeschwindingkeit verringern? Lohnt sich nicht.
- Bei weniger Zug die Pfeilflugbahn anpassen (früherer Drop-off)? Getan!
- Bei weniger Zug den Schaden verringern? Lohnt sich nicht.
- Oder das Schiessen gar nicht erlauben bis der Bogen ganz gespannt ist? So funktioniert das bereits von Haus aus
STAND: Freies Zielen ist komplett implementiert und spielbereit. Nur noch die oben als "Bonus" gekennzeichneten Aufgaben stehen an.
Hab das hier mal so aufgeschrieben, falls jemand mal dran weiterarbeiten will wenn ichs nicht tue (Code dazu folgt dann).
Die Liste werde ich aktuell halten.
Übrigens: Das "frei rum schiessen" mit Pfeil und Bogen geht schon und ist fabelhaft (allerdings halt wie gesagt nicht in der Y-Flugrichtung). Vielleicht kann ich ein kurzen Clip hochladen für mehr "Motivation".
Ob sich diese Art das Problem zu lösen bewährt ist eine andere Frage. Das sehen wir dann.
Würde mich freuen, wenn jemand Ideen zu den Einträgen in der ToDo-Liste, die mir noch unklar sind ("noch keine Ahnung" und "gute Frage"), hat!
Geändert von mud-freak (13.09.2016 um 19:16 Uhr)
Grund: ToDo Liste verschoben
-
Zitat von mud-freak
- Bogen/Armbrust Animationen der Höhe anpassen Wie: noch keine Ahnung
Ich habe zwar von dem, was du hier tust, kaum Ahnung, will auf diesen Punkt aber mit einer Gegenfrage antworten.
Sind diese Animationen nicht bereits vorhanden?
Der Held folgt doch mit Bogen/Armbrust dem anvisierten Ziel, im Targetlock sogar noch stärker.
Wenn man also auf einen erhöht stehenden Gegner zielt, wird die Fernwaffe doch nach oben gehalten.
Wenn du damit nichts anfangen kannst, dann sorry...vielleicht bringt dich das aber auch auf irgendeine Idee.
MfG
-
Zitat von TheBigLeBRUCEky
Sind diese Animationen nicht bereits vorhanden?
Der Held folgt doch mit Bogen/Armbrust dem anvisierten Ziel, im Targetlock sogar noch stärker.
Wenn man also auf einen erhöht stehenden Gegner zielt, wird die Fernwaffe doch nach oben gehalten.
Wenn du damit nichts anfangen kannst, dann sorry...vielleicht bringt dich das aber auch auf irgendeine Idee.
Ja hilft auf jeden Fall, danke! Man müsste schauen in wie weit man die Animationen starten kann (oder ab das auch intern leichter geht). Oder vielleicht den Hero auf was anderes Zielen lassen, damit er das von selbst macht. (Allerdings funktioniert die Kollision dann sicherlich nicht mehr).
Ich habe mal den bisherigen Fortschritt auf Video aufgenommen. Jetzt ist es aber weniger Motivation, als Demotivation. Denn ich hab eher Wert drauf gelegt zu demonstrieren was nicht funktioniert, als hier falsche Versprechen zu geben.
Das schwierige Zielen habe ich in Blink schon verbessern können. Das ist beim Bogenschiessen noch nicht dabei, deshalb ist das da noch ein Krampf: Die Maus hängt fest bis man sie schnell genug bewegt (Gothics Responsiveness ist da ziemlich schlecht), deshalb steht die Maus so lang still und springt dann zu weit, wenn ich sie zu weit bewege.
[Video]
-
Zitat von mud-freak
Ich fürchte das Fass hab ich jetzt aufgemacht, ja. Das war mit Blink gar nicht meine Absicht. Aber ich schaue mal wie weit ich damit komme; auf jeden Fall stelle ich es aber demnächst hier bereit was ich bisher habe.
Ich will dich damit nicht unter druck setzen oder dich zu etwas verpflichten, ich war eher fasziniert was die Modding Szene gerade für Fortschritte macht.
Grüße Viktor alias MyGamingHD
-
Zitat von mud-freak
Ja hilft auf jeden Fall, danke! Man müsste schauen in wie weit man die Animationen starten kann (oder ab das auch intern leichter geht). Oder vielleicht den Hero auf was anderes Zielen lassen, damit er das von selbst macht. (Allerdings funktioniert die Kollision dann sicherlich nicht mehr).[/video]
Der Gedanke, den ich dabei hatte, war, dass du die Methode, wie Gothics Targetlock funktioniert, eventuell auf dein Fadenkreuz übertragen kannst.
Das Video sieht schon sehr vielversprechend aus...respekt!
Edit:
Zitat von mud-freak
- Mausempfindlichkeit-Lock: Im Moment bewegt die Maus sich bei weniger bevölkerter Map schneller als bei volleren Wie: gute Frage
Wieder nur so ein Gedanke:
Die Vermutung liegt ja nahe, dass das mit den unterschiedlichen FPS bei leeren bzw. vollen Maps zusammenhängt.
Vielleicht könnte man die Mausempfindlichkeit von den aktuellen FPS abhängig machen, falls sowas überhaupt möglich ist.
Normalerweise muss man ja ins Menü, um die Mausempfindlichkeit zu verändern.
MfG
Geändert von TheBigLeBRUCEky (08.08.2016 um 18:42 Uhr)
-
Zitat von MyGamingHD
Ich will dich damit nicht unter druck setzen oder dich zu etwas verpflichten, ich war eher fasziniert was die Modding Szene gerade für Fortschritte macht.
Keine Sorge, so war das nicht gemeint. Ich schau mir das aus eigenem Interesse an. Dass es Leute interessiert ist ein Bonus und sorgt für Motivation.
Zitat von TheBigLeBRUCEky
Die Vermutung liegt ja nahe, dass das mit den unterschiedlichen FPS bei leeren bzw. vollen Maps zusammenhängt.
Vielleicht könnte man die Mausempfindlichkeit von den aktuellen FPS abhängig machen, falls sowas überhaupt möglich ist.
Normalerweise muss man ja ins Menü, um die Mausempfindlichkeit zu verändern.
Das ist ein sehr guter Gedanke. Hast mich auf die Idee gebracht einfach die Mausbewegung mit der verstrichenen Zeit vom letzten Frame zu skalieren. Die wird im zCTimer gespeichert:
Code:
var int frameTimeFloat; //zREAL [msec] //Zeit der zwischen diesem und dem letzten Frame verstrichen ist
Zitat von TheBigLeBRUCEky
Der Gedanke, den ich dabei hatte, war, dass du die Methode, wie Gothics Targetlock funktioniert, eventuell auf dein Fadenkreuz übertragen kannst.
Ja, mittlerweile bin ich am überlegen, ob mein Ansatz so der beste ist - für Blink funktioniert es ja fabelhaft. Dort wird ja nichts "geschossen". Aber für das wirkliche Anvisieren bedarf es vielleicht einem anderen Weg.
Z.B.: anstatt das automatische Zielen auszuhebeln und den Hero durch Mausbewegung zu drehen, wäre es vielleicht einfacher das automatische Zielen auf ein unsichtbares Vob zu zwingen und nicht den Hero sondern, das Vob zu bewegen (dann dreht der Hero ja automatisch mit). Dann spart man sich auch das ganze Anpassen von Aim-Animationen und des Schusswinkels vom Boden. Allerdings weiss ich nicht, ob das Projektil dann noch Schaden gegen "im Weg-stehende" NPCs macht, wenn es eigentlich das unsichtbare Vob als eingetragenes Ziel hat.
Ich probier einfach ein bisschen. Ich bin aber eher am Shortgame als am Longgame interessiert bin. D.h. ich stelle hier lieber immer Mal wieder aus dem nichts irgendwelche kleinen Features oder Zauber zur Verfügung, als mich grossen Projekten zu verschreiben. Ich warte mal eine Woche ab, wenn ich bis dahin keine grossen Fortschritte gemacht habe, stell ich das Free-Aim erstmal auf Eis und stell hier die bisherigen Skripte und Gedanken zur Verfügung und hoffe, dass jemand daran weiterarbeiten kann.
-
Zitat von mud-freak
Z.B.: anstatt das automatische Zielen auszuhebeln und den Hero durch Mausbewegung zu drehen, wäre es vielleicht einfacher das automatische Zielen auf ein unsichtbares Vob zu zwingen und nicht den Hero sondern, das Vob zu bewegen (dann dreht der Hero ja automatisch mit). Dann spart man sich auch das ganze Anpassen von Aim-Animationen und des Schusswinkels vom Boden. Allerdings weiss ich nicht, ob das Projektil dann noch Schaden gegen "im Weg-stehende" NPCs macht, wenn es eigentlich das unsichtbare Vob als eingetragenes Ziel hat.
Ich probier einfach ein bisschen. Ich bin aber eher am Shortgame als am Longgame interessiert bin. D.h. ich stelle hier lieber immer Mal wieder aus dem nichts irgendwelche kleinen Features oder Zauber zur Verfügung, als mich grossen Projekten zu verschreiben. Ich warte mal eine Woche ab, wenn ich bis dahin keine grossen Fortschritte gemacht habe, stell ich das Free-Aim erstmal auf Eis und stell hier die bisherigen Skripte und Gedanken zur Verfügung und hoffe, dass jemand daran weiterarbeiten kann.
Wieder meine Gedanken dazu...möglich, dass du für die Probleme, die ich da sehe, eine Lösung weißt.
Ich vermute schon, dass das Geschoss an Zielen Schaden verursacht, die im Weg stehen.
Ist sonst ja auch so, wenn man einen Gegner im Targetlock hat und ein anderer im Weg steht, bekommt der andere auch Schaden.
Das Problem, dass ich eher sehe, ist, dass vermutlich der Verteidigungswert gegen Geschosse, des anvisierten Ziels, für die Schadensberechnung herangezogen wird.
Dein Vob müsste somit vermutlich Verteidigungswerte haben, außerdem könnten dann Ziele, die immun gg. Geschosse sind und im Weg stehen, Schaden erleiden.
So ähnlich ist es ja auch bei Zaubern...
Edit: Außerdem würde der Schaden nicht stimmen...er würde immer von der Verteidigung des Ziel-Vobs abhängen, nicht von der Verteidigung des Getroffenen.
MfG
Geändert von TheBigLeBRUCEky (09.08.2016 um 11:52 Uhr)
-
- Y-Flugrichtung der Projektile anpassen Wie: Pointer auf Projektile ausfindig machen
This address Enables you to control an arrow .
Code:
void __thiscall oCAIArrow :: SetupAIVob ( zCVob zCVob * * * zCVob )
Arguments
1 - Arg ) What?
2 - Arg ) Whence ?
3 - Arg ) Where ?
Maybe this will help .
-
Zitat von Siemekk
This address Enables you to control an arrow .
Code:
void __thiscall oCAIArrow :: SetupAIVob ( zCVob zCVob * * * zCVob )
Arguments
1 - Arg ) What?
2 - Arg ) Whence ?
3 - Arg ) Where ?
Maybe this will help .
Thank you, Siemekk. Do you know why there is three arguments? Isn't the 'what' (1st arg) clear by the object (oCAIArrow)?
This engine function might even be easier (but I am not sure):
Code:
0x6A0FF0 void __thiscall oCAIArrow::SetTarget(zCVob *)
The problem is, that both functions need a zCVob, instead of a zCVec. I don't know if it would register damage on a different target.
Eine dieser Funktionen hier sollte übrigens das Animationsproblem (wo der Bogen hinzielt) lösen.
Code:
0x6B6360 void __thiscall oCAniCtrl_Human::SetLookAtTarget(class zVEC3 &)
0x6B6490 void __thiscall oCAniCtrl_Human::SetLookAtTarget(class zCVob *)
Ich muss mal schauen wie wackelig dieser momentane Ansatz ist. Auf eine zu "hackige" Lösung habe ich keine Lust - die ist dann zu instabil und buggy. Sie muss sich schon gut anfühlen und sound sein.
-
zCVob- vob to which arrow want to fly. If zCvob =0 arrow fly straight
-
Zitat von Siemekk
zCVob- vob to which arrow want to fly. If zCvob =0 arrow fly straight
Thank you. With the help of Lehona, it looks like this now: https://youtu.be/Fz97Z9Z5UO0
We took a similar approach.
Der Fix im Video stellt schon den Kern vom freien Zielen da. Es wird immer aufs Fadekreuz gezielt (auch wenn man zu dicht vor einer Wand/Hinderniss steht oder freies Feld vor sich hat). Dass der Hero im Video nicht so präzise trifft, liegt am Bogenschiessentalent. Das ist im Video nicht auf 100%, sondern auf 60%. D.h. eine Treffgenauigkeit brauche ich nicht zu implementieren, das wird vom Talent übernommen.
Jetzt fehlen nur noch die richtigen Animationen (dass der Hero mit dem Bogen auch dahin zielt wo das Fadenkreuz ist), die Anzeige von Namen und Healthbar eines anvisierten Gegners, und eine Verbesserung in der Maussteuerung.
Zauber sind leider etwas komplizierter. Auf Grund der Effekte brauchen sie ein vernünftiges Ziel, das sich sowohl in Line-of-Sight befindet, als auch vom richtigen Typ ist. Ausserdem fliegt ein Zauber, wenn er nicht anders geskriptet ist(!) auf sein Ziel und ignoriert Kollision mit anderen Gegenständen. Wer schon mal im richtigen Moment von einem herannahenden Zauber einen Schritt zurück gegangen ist, weiss auch, dass Zauber nur bis zu der originalen Position ihres Zielvob fliegen und dort aufhören, egal ob es einen Treffer gab oder nicht.
Ich probiere gerade die entsprechenden Engine-Funktionen, die ein Target als valide oder invalide markieren, zu hooken. Aber vielleicht wäre es besser sich erst einmal, um die Vervollständigung des freien Zielens mit Bogen zu kümmern. Dann wäre das schon mal fertig. Da muss ich noch herausfinden, wie Gothic normalerweise die Zielanimationen startet.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|