Vor vielen Jahren war ich hier aktiv. Die meisten kennen mich wahrscheinlich gar nicht mehr (ich hatte mich vor allem mit Partikeleffekten und Zaubern beschäftigt). Ich hatte damals aber nie die Gelegenheit (nenn es fehlende Ausdauer, Zeit, Überblick) Teil eines fertigen Modprojekts zu werden. Nachdem ich mich hier für immer verabschiedet hatte, ist meine getane Modder-Arbeit verstaubt und vergessen auf meiner Festplatte zurück geblieben, um nie das Licht der Welt zu erblicken.
Eigentlich schade. Das dachte sich wohl auch unser lieber Fisk2033, dank dem ich mich seit einigen Wochen widerwillig aber neugierig nach langer Abwesenheit auf das Modden eingelassen und mich in meine alten Arbeiten gestürzt habe. Das Ziel dabei: mögliche alte Schätze in der Modderdatenbank zur Verfügung stellen, damit sie es vielleicht doch noch in eine fertige Mod schaffen oder als Inspiration für andere dienen können.
Ich habe jetzt 13 Zauber plus ein Zauberverwandtes Feature ausgewählt, isoliert und möchte sie als ein "Zauberpaket" zur Verfügung stellen. Viele andere Sachen waren einfach nicht fertig genug oder zur Veröffentlichung ungeeignet.
Da man sich unter Zaubern so schlecht durch Text und auch durch einfache Screenshots etwas vorstellen kann, habe ich ein kleines Trailer-Video gedreht (siehe oben).
Die Zauber lassen sich einzeln benutzen und reichen von simplen Umfärbungen (mit einigen Fixes) zu komplett neuen Features und Effekten.
Schön! Aber warum jetzt ein eigener Thread?
Ich wollte nur eben vorbei schauen, um dieses Paket zu erstellen und dann wieder wie vorher verschwinden. Das Paket ist sehr komplex und es kann durchaus zu Unklarheiten oder Fragen kommen. Denen will ich gern zur Verfügung stehen. Deshalb will ich diesen Thread in meinem Eintrag in der Modderdatenbank verlinken und diesen Thread abonnieren. So werde ich dann immer informiert, sollte es Interesse und Fragen zu dem Paket geben. Auch wenn ich nicht mehr im Forum aktiv bin.
Der Thread hier darf also ruhig versinken.
Ich will den Thread allerdings trotzdem nutzen, um einiges zu erläutern. Nicht jeder interessiert sich für Zauber, allerdings sind ein paar - wie ich finde - innovative Kniffe dabei, die auch sonst für Inspiration sorgen könnten. Ich werde hier jetzt nicht alles beschreiben, dazu habe ich eine detailierte Readme in das Paket gepackt, die ich bei Interesse sehr empfehle zu lesen. Hier will ich nur einige interessante Anhaltspunkte herauspicken.
Schaden über Zeit (ohne ZS und ohne Ikaurs ö.ä.)
Gothic verfügt von Haus aus über eine Damage-over-time-Implementation, die ganz simpel zu Bedienen ist und den NPC nicht in einen ZS versetzt. Nicht für alles muss man gleich zu komplizierten Ikarus-Lösungen und Frame-Schleifen greifen!
Bei Interesse den Zauber Säurefluch ansehen. In der Readme im Paket ist auch eine Erklärung (Zeile 455 ff.) mit vollem Beispielcode, wie man DoT so auch universell ganz einfach benutzen kann (z.B. in Verbindung mit Nahkampfwaffen).
Interaktive Benutzung von Movern, die während Laufzeit eingefügt und entfernt werden
Dazu verweise ich auf den Zauber Erheben.
Implementierung von triggerbaren Animations-Fenstern
Beim Schwertkampf kann man durch gutes Timing eine Kombo auslösen. Das habe ich für Zauber eingebaut.
Siehe dazu Schnellfeuer Feuerpfeil und Schnellfeuer Eispfeil.
Realsierung von Spiralen in PFX
Effekte bei denen sich die Partikel spiralenförmig bewegen sind unmöglich in Gothic dachte ich immer.
Wer sich anschauen will wie es doch geht: Manasucht und Säurefluch. Leider ist das Ganze auf verschiedene Kompenenten aufgeteilt und nicht gut kommentiert. Ich kann es aber bei Interesse erklären.
Aufrechterhaltungszauber der kein Mana verbraucht
Dafür könnte man sich jetzt wieder komplizierte Ikarus-Lösungen ausdenken oder dem Zaubernden irgendwie die Manapunkte sofort zurückgeben. Das geht aber auch alles innerhalb einer Zeile ganz ohne sowas.
Vergleiche Manasucht.
Magieparade wie die Parade im Schwertkampf
Für eine nie fertig gestellte Magie-Arena-Mod hatte ich ein Block-System für Magier eingebaut. Mittels dem Parieren der Gothic 1 Kampfsteuerung (meist STRG+S, wird aber aus der den aktuellen Tastenbelegungen ausgelesen), formt der Spieler - wenn er gerade einen Zauber gezogen hat - ein Magieschild vor sich und blockt somit. Die Funktionalität hinkt zwar etwas (die Kollision des NPC wird einfach temporär ausgeschaltet - sehr unschön und müsste verbessert werden!), aber das Blocksystem ist ansonsten fertig und abgerundet implementiert.
Es könnte in der Form auch für Fernkampfwaffen (den Bogen in beide Hände nehmen und blocken) übernommen werden.
Einige einzelne Zauber-Animationen Hier ist noch ein kleines Video mit Rendern der einzelnen Zauber-Animationen, die enthalten sind. Dazu sei gesagt ich bin kein Animierer; die Animationen sind nicht die Flüssigsten.
Ich habe viel Wert darauf gelegt, dass die Zauber sofort benutzbar sind.
Neben Runen/Spruchrollen mit individuell gestalteten Visuals, habe ich mir die Mühe gemacht ein Tool zu schreiben, das das Einpflegen der Code-Schnipsel an die richtigen Stellen (mittels RegEx) automatisch übernimmt. Das Ganze dann auch nur für die Features, die man zuvor selbst auswählen kann. Das erschien mir notwendig, denn die Zauber in diesem Paket umfassen insgesamt mehr als 200 Ergänzungen in bestehenden Dateien (die sich nicht auslagern lassen) und wer will die schon alle per Hand in die richtigen Zeilen einfügen.
D.h. man kann die für einen interessanten Zauber/Features auswählen und integrieren lassen und wenn alles so tut wie es soll, kann man das Spiel direkt starten und sich über die Konsole mit insert ItSe_allZP ein von mir geschnürten Beutel einfügen lassen, in dem alles was man zuvor ausgewählt hat als Rune und Spruchrolle spielbereit enthalten ist.
Das sollte das Austesten sehr vereinfachen. Natürlich wird vor dem Verändern von allen betroffenen Dateien ein Backup angelegt.
Da das wie gesagt mein einziger richtiger Beitrag zum Editing ist, würde ich bei Verwendung von den Inhalten um Erwähnung in den Credits bitten und über Benachrichtigung, damit ich mich mit dem Modteam und dessen Release freuen kann.
Hier noch eine Liste der enthaltenen Zauber gemäss der Reihenfolge im Trailer-Video:
//////////////////////////////////////////////////////////////////////////////
mud-freaks Zauberpaket
2007 / 2010 / (2016)
//////////////////////////////////////////////////////////////////////////////
1. Bemerkungen
1.1. Kontakt und Fragen
1.2. Automatisch Installieren dank einem Tool
1.1. Hinweise zur Benutzung in Modifikationen (Credits)
1.2. Unfertiges Material
1.3. Besondere Hinweise für Ikaruszauber
2. Inhalt (grobe Übersicht)
2.1. Zauber ohne Ikarus
2.2. Zauber mit Ikarus/LeGo
2.3. Einzelne Zauberanimationen
2.4. Hintergrund und Infos
3. Wichtige Informationen zu den einzelnen Zaubern
3.1. Befreiungsschlag
3.2. Blutrausch
3.3. Erdbeben
3.4. Erheben
3.5. Explosion
3.6. Fremdenheilung
3.7. Magie Parade / Blocken
3.8. Magiekäfig
3.9. Manasucht
3.10. Säurefluch
3.11. Schnellfeuer
3.12. Schnellfeuer
3.13. Zerfleischen
3.14. Zorn
4. Weitere Bemerkungen
4.1. Danke
//////////////////////////////////////////////////////////////////////////////
1. Bemerkungen
Danke fürs Downloaden dieses Zauberpaketes. Es enthält einige mehr oder weni-
ger innovative und interessante Zauber für Gothic 2. Da ich, mud-freak, nie
eine Modifikation bis zum Ende vervollständigt habe und deshalb nichts an die
World-of-Gothic-Community zurückgeben konnte, habe ich hier ein Paket ge-
schnürrt, um einen kleinen Teil meiner Arbeit in benutzbaren Zustand dem Edi-
ting zur Verfügung zu stellen.
Wenn ein Zauber benutzt werden will, rate ich dringend dazu die betreffenden
Informationen hier zu lesen. Denn die meisten Zauber haben ihre Tücken, die
beachtet werden sollten!
Damit man sich unter dem Inhalt etwas vorstellen kann, hier ein kleines
Trailer-Video:
http://youtube.com/watch?v=EMydiJl-m...qBSB_MFiVo-oEj
1.1. Kontakt und Fragen
Um mich bei Fragen zu diesem Paket zu erreichen, bitte eine private Nachricht
im WoP an mich schreiben. Ich schaue nicht mehr im Forum vorbei, werde aber
per E-Mail über neue private Nachrichten informiert. Ich werde dann so gut es
geht helfen, auch wenn ich dann wahrscheinlich nicht mehr so viel darüber Be-
scheid weiss.
Besser ist es Fragen zu dem Paket in folgenden Thread zu posten. Den habe ich
abonniert und werde ebenfalls über E-Mail informiert:
http://forum.worldofplayers.de/
forum/threads/1468949-Modderdatenbank-Zauberpaket?p=24942624#post24942624
1.2. Automatisch Installieren dank einem Tool
Ich habe viel Wert darauf gelegt, dass die Zauber sofort benutzbar sind.
Neben Runen/Spruchrollen mit individuell gestalteten Visuals, habe ich mir die
Mühe gemacht ein Tool zu schreiben, das das Einpflegen der Code-Schnipsel an
die richtigen Stellen (mittels RegEx) automatisch übernimmt. Das Ganze dann
auch nur für die Features, die man zuvor selbst auswählen kann. Das erschien
mir notwendig, denn die Zauber in diesem Paket umfassen insgesamt mehr als 200
Ergänzungen in bestehenden Dateien (die sich nicht auslagern lassen) und wer
will die schon alle per Hand in die richtigen Zeilen einfügen.
D.h. man kann die für einen interessanten Zauber/Features auswählen und inte-
grieren lassen und wenn alles so tut wie es soll, kann man das Spiel direkt
starten und sich über die Konsole mit insert ItSe_allZP ein von mir geschnür-
ten Beutel einfügen lassen, in dem alles was man zuvor ausgewählt hat als Rune
und Spruchrolle spielbereit enthalten ist.
Das sollte das Austesten sehr vereinfachen. Natürlich wird vor dem Verändern
von allen betroffenen Dateien ein Backup angelegt.
Einige Bemerkungen dazu:
Generell müssen die Modkit-Skripte existieren. Das kleine Modkit reicht hier
also nicht (bereinigte Skripte sind ausreichend).
Für die Features die Ikarus und LeGo voraussetzen wird angenommen, dass beide
in der Init_Global() bereits initialisiert sind.* Das wird nicht vom Tool
übernommen. Welche Pakete von LeGo für die Features benötigt werden ist unter
Punkt (3.) dieser Readme für jedes Feature einzeln aufgeführt (unter
"Voraussetzungen").
* In etwa sollte das ungefähr so aussehen:
func void INIT_GLOBAL()
{
// wird fuer jede Welt aufgerufen (vor INIT_<LevelName>)
Game_InitGerman();
...
// Ikarus initialisieren
MEM_InitAll();
// LeGo initialisieren
LeGo_Init(/* entsprechende Pakete */);
...
};
1.1. Hinweise zur Benutzung in Modifikationsprojekten (Credits)
Zuerst einmal würde ich mich freuen, wenn das ein oder andere Feature/Zauber
seinen Weg in eine Modifikation findet! In diesem Falle wäre ich sehr über
eine Benachrichtigung dankbar, weil ich mich nach dieser Veröffentlichung hier
endlich komplett aus dem Editing zurück ziehe und mich über Modprojekte nicht
mehr aktiv informieren werde. Eine private Nachricht über das WoP-Forum wäre
da sehr lieb, damit ich mich an der fertigen Mod mitfreuen kann.
Ich halte nicht viel davon sich wichtiger zu nehmen als man ist (auch wenn
dieser lange Text vielleicht von etwas anderem zeugt) und würde daher eigent-
lich nicht darauf bestehen dafür in irgendwelchen Credits einer Modifikation
aufgeführt zu sein. Da ich aber wie gesagt nie Teil einer fertigen Modifika-
tion wurde und dies mein einziges "Vermächtnis" ist, würde ich deshalb bitten
mich bei Benutzung von Teilen dieses Pakets in den Credits zu vermerken.
1.2. Unfertiges Material
Das Paket besteht zum Teil aus fertigen und benutzbaren Zaubern und zum ande-
ren aus separaten Teilen derer oder unabhängigen unfertigen Arbeiten.
Einige Zauber mögen den Anschein machen, sie seien fertig. Mögliche Defizite
oder Probleme sind aber unten bei der Auflistung angemerkt. Bei den einzelnen
Teilen handelt es sich um Zauberanimation, die sich sehr leicht in Gothic in-
tegrieren lassen.
1.3. Besondere Hinweise (für Ikaruszauber)
Einige Zauber sind nicht für die Benutzung von NPCs implementiert! Diese sind
unten dem entsprechend gekennzeichnet und erklärt.
Ausserdem ist es sehr zu Empfehlen den Alpha-Vob-Fix von Sektenspinner zu be-
nutzen. Zwar habe ich mich sehr bemüht alle Zauber zu optimieren und jeden
insgesamt unter 700 Alphapolys zu jedem Zeitpunkt zu halten, aber wenn Zauber
zu schnell hintereinander ausgeführt werden oder wenn mehrere NPCs gleichzei-
tig Zauber ausführen, kann es zum MaxAlpha-Fehler kommen. Mit dem Alpha-Vob-
Fix ist das kein Problem mehr: http://forum.worldofplayers.de/forum/threads/
1039918-Skript-Mehr-Alpha-Vobs-und-Alpha-Polys-in-Gothic-2?p=16945562
z.B. dann so in der Init_Global()
MoreAlphaVobs(2048); // old: 256 (*8)
MoreAlphaPolys(16384); // old: 2048 (*8)
Vor allem bei den Ikarus-Zaubern ist Acht zu geben, weil sie mit hoher Wahr-
scheinlichkeit sehr unbalanciert und in einigen Situation sicherlich auch pro-
blematisch sind. Balancing und extensives Bugtesting habe ich nicht vorgenom-
men. Einige Hinweise befinden sich weiter unten bei der Auflistung der einzel-
nen Zauber. Wie unter Punkt (1.2.) genauer erklärt wird angenommen, dass
die Initialisierungseinträge für Ikarus und LeGo bereits vorhanden sind.
//////////////////////////////////////////////////////////////////////////////
2. Inhalt (grobe Übersicht)
Enthalten sind a) fertige Zauber, b) einzelne Zauberanimationen und c) ein
Parrier-Feature (Blocken) für Zauber.
Unten habe ich zu jedem einzelnen Feature etwas geschrieben und empfehle
dringlichst, diese Informationen zu lesen. Hier aber erst einmal ein grober
Überblick.
2.1. Zauber ohne Ikarus
Befreiungsschlag (SPL_Extricate) [2010] (Defensiv, AOE)
Blutrausch (SPL_Rage) [2007] (Taktisch, gezielt)
Erdbeben (SPL_Quake) [2010] (Offensiv, AOE)
Explosion (SPL_Explosion) [2007] (Offensiv, gezielt)
Fremdenheilung (SPL_HealOther) [2007] (Taktisch, gezielt)
Magiekäfig (SPL_MagicCage) [2007] (Taktisch, gezielt)
Manasucht (SPL_ManaForLife) [2016] (Taktisch, neutral)
Säurefluch (SPL_Acid) [2010] (Offensiv, gezielt)
Zerfleischen (SPL_Lacerate) [2007] (Offensiv, gezielt)
Zorn Adanos (SPL_AdanosBall) [2007] (Offensiv, gezielt)
2.2. Zauber mit Ikarus/LeGo
Erheben (SPL_Elevate) [2010] (Taktisch, neutral)
Magie Parade / Blocken [2010] (kein Zauber)
Schnellfeuer Feuerpfeil (SPL_RapidFirebolt) [2010] (Offensiv, gezielt)
Schnellfeuer Eispfeil (SPL_RapidIcbolt) [2016] (Offensiv, gezielt)
2.3. Einzelne Zauberanimationen
Explosion Zauberanimation (wird beim Befreiungschlagzauber verwendet)
Opfern Zauberanimation (wird beim Manasuchtzauber verwendet)
Stampfen Zauberanimation (wird beim Erdbebenzauber verwendet)
Schnellfeuer Zauberanimation (wird bei den Schnellfeuerzaubern verwendet)
Zauber wird abwechselnd von der linken und rechten Hand abgefeuert
Steuerung ist wie die Gothic-Schwertkampfsteuerung: Wenn man in einem
bestimmten Zeitfenster noch einmal drückt kommt die nächste Animation.
Die Implementierung als Zauberanimation erfordert Ikarus.
2.4. Hintergrund und Infos
Die Zauber gekennzeichnet mit [2007] stammen von der nicht vervollständigten
Mod "Colors of Magic" (gothiccer, mud-freak). Die Mod sollte zum Grossteil mit
Zaubern als Waffen auskommen und sollte viele Quests mit Begleitern beinhal-
ten. Deshalb sind dort auch Zauber wie "Fremdenheilung" zu finden.
Die Zauber/Features gekennzeichnet mit [2010] stammen aus einem späteren Mod-
projekt. Dieses sollte zu einer Magie-Arena-Mod (mud-freak) heranwachsen. An-
statt einer Story oder Dialogen wurde dort ausschliesslich Wert auf Duellzau-
ber gelegt, die auch teilweise in die KI eingebaut wurden (provisorisches Aus-
eichen, Benutzung des Erhebenzaubers, etc - nicht hier enthalten).
Fast alle Zauber/Features der Kategorie [2010] bauen auf Ikarus auf.
Zauber mit gekennzeichnet mit [2016] sind beim Aufarbeiten dieses Pakets aus
alten Ideen kurzerhand entstanden.
//////////////////////////////////////////////////////////////////////////////
3. Informationen zu den einzelnen Zaubern
Die Zauber sind hier einfach in alphabetischer Reihenfolge erläutert.
------------------------------------------------------
3.1. BEFREIUNGSSCHLAG
Fakten:
- Neue Animation
- Neuer visueller Effekt
- Neuer Soundeffekt
- Integration in die KI möglich (teilweise enthalten)
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Hier kann sich der Caster Raum verschaffen wenn die Gegner zu nahe kommen.
Bei diesem Zauber ist zu bedenken, dass die Gegner mittels Kollision erfasst
werden. Das heikle daran: Dazu gefiel es mir am Besten, wenn der Befreiungs-
schlag an sich keinen visuellen Effekt hat. Da eine Kollision nur von sicht-
baren Partikeln ermittelt werden kann, haben die Partikel in diesem Fall eine
sehr kurze Lebenszeit. Das zieht einerseits mit sich, dass es zu visuellen
Artefakten kommen kann, andererseits kann ich nicht garantieren, dass die
Kollision immer zu 100% verlässlich ist. In meinen spärlichen Tests - auch mit
mehreren Gegnern gleichzeitig - hat es aber IMMER geklappt. Eine weitere Pro-
blematik besteht noch mit der inkonsistenten Schadensverteilung im Zusammen-
hang mit DAMAGE_FLY. Siehe dazu B_AssessMagic.
Im Moment ist der Kollisionsschaden ziemlich klein, damit die Gegner nicht so-
fort sterben. Das bedeutet aber, dass Gegner mit protection[PROT_FLY] nicht
wegfliegen. Am besten wäre es temporär PROT_FLY auszuschalten BEVOR der Zauber
trifft. Alternativ, kann das aber durchaus Teil der Balance sein: Harte Gegner
fliegen halt nicht weg.
Ein Eintrag in der B_SelectSpell.d ist bereits vorgenommen und beigelegt, mit
dem Magier-NPCs Gegner im Nahkampf-Radius zurückschlagen. Sollen NPCs diesen
Zauber nicht benutzen, sind diese Einträge zu entfernen.
Anpassungsmöglichkeiten:
keine
------------------------------------------------------
3.2. BLUTRAUSCH
Fakten:
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Dieser Zauber ist inspiriert vom Berserkzauber aus Gothic 1 und aus Gothic 3.
Kurz: Der getroffene Gegner greift nach einander umstehende Charaktere an
(ausschliesslich dem Spieler).
Wirkt er auf einen Menschen, gibt es noch unterhaltsame Animationen, bzw.
Sprachausgabe. Die kann man aber auch in der ZS_Rage.d ausschalten.
Achtung: Der ZS_Rage geht davon aus, dass nur der Spieler (hero) den Zauber
benutzt.
Anpassungsmöglichkeiten:
Die Anzahl der anzugreifenden Charaktere kann in der Spell_Rage.d eingestellt
werden. Default ist zwei.
------------------------------------------------------
3.3. ERDBEBEN
Fakten:
- Neue Animation
- Neuer visueller Effekt
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Ein Erdbebenzauber, wie es ihn sicher schon einige Male gegeben hat. Diesen
Zauber hebt allerdings die speziell erstellte Cast-Animation ab.
Ähnlich wie beim Befreiungsschlag erfolgt der Schaden über Kollision. Das ist
verlässlicher als von Skriptseite. Die Kollisionspartikel ist eine dünne
Staubwolke. Es gäbe sicher hübschere Alternativen.
Anpassungsmöglichkeiten:
keine
------------------------------------------------------
3.4. ERHEBEN
Fakten:
- Neuer visueller Effekt
- Neue Soundeffekte
- Verschiede Visuals
- Grosse Anpassungsmgölichkeiten
- Integration in die KI möglich (teilweise enthalten)
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
- Ikarus
- LeGo (FrameFunctions)
Dies ist einer der innovativsten aber auch zu gleich gefährlichsten Zauber in
diesem Paket. Mittels Gedrückt halten des Zaubers kann der Spieler auf gewün-
schte Höhe herauffahren. Durch erneutes Zaubern fährt er dann weiter hoch.
Der Zauber ist nützlich um z.B. dem Nahkampf zu entgehen.
Das geschieht über eine Erdsäule, Steinsäule oder animierte Erdplatte (weitere
Visuals problemlos erweiterbar). Die visuellen Effekte für diesen Zauber sind
wie ich finde extrem gut gelungen und enthalten Qualm, herausbrechenden Steine
aus dem Boden und herunterfallende, bröckelnde Steine.
Natürlich ist die maximale Höhe beschränkt. Nach 15 Sekunden fährt die Säule
von selbst wieder herunter. Der Zauberer kann sie aber auch selbst herunter-
fahren wenn er oben draufsteht oder davon herunter springt und erneut zaubert.
Der Zauber macht schweren Gebrauch von Ikarus. Es wird ein Mover unter den
Caster erstellt, der diesen hochfährt. Ein Workaround bedarf sowohl Mover als
auch ein Childvob, da das Visual sonst flackert: Mover hat Kollision aber kein
Visual, Childvob hat Viusal aber keine Kollision. Beim Modifizieren des
Zaubers muss man sich darüber aber keine weiteren Gedanken machen, sondern
sich nur um das Visual des Childvobs kümmern - den Mover aber unbedingt in
Ruhe lassen. Das Visual des Movers ist eine unsichtbare Säule. Das ist deshalb
auch bei der schwebenden Plattform wichtig, weil sich sonst angreifende Gegner
UNTER den Mover stellen und das gibt Problem beim herunterfahren.
Wie man sich vorstellen kann ist das ganze etwas gefährlich. Sowohl für die
Spielbalance (einfach immer hochfahren wenn jemand einen angreift?), als auch
für unschöne Nebeneffekte oder unvorhersehbare Fehler.
Ich habe versucht die Fehler so gut wie möglich einzugrenzen und in die Atmos-
phäre des Spiels zu integrieren. So wird zum Beispiel, wenn der Spieler sich
unter einer Hausdecke erhöht der Mover zerstört, der Spieler fällt herunter
und es ertönt ein dämonisch klingendes Stöhnen, als sei etwas in der unsicht-
baren Zauberwelt in Konflikt geraten: Die Immersion wird nicht gebrochen.
Um anderen Problemen aus dem Weg zugehen, z.B. dass der Mover nach Gebrauch in
einem vermeintlichen tieferen Stockwerk aus der Decke ragt, habe ich den Zau-
ber noch einmal stark überarbeitet. Zuvor war es von Nöten, dass jeder NPC der
diesen Spell benutzen könnte einen individuellen Mover in der Welt brauchte.
Das ist jetzt nicht mehr so! Nun wird der Mover zur Laufzeit erstellt
und anschliessend wieder aus der Welt entfernt. Das ermöglicht zu dem weitere
Flexibilität und Anpassungsmöglichkeit (siehe unten).
Einige If-Abfragen in der B_SelectSpell.d erlauben eine einfache KI-Implemen-
tierung in der ein NPC auf Erhöhung des Gengers reagiert und sich selbst um
ein Stück weiter erhöht. Diese Implementierung ist sporadisch in diesem Paket
mit einbegriffen und sollte herausgelöscht werden, falls NPCs den Zauber nicht
benutzen dürfen.
Für die Benutzung des Zaubers von NPCs habe ich eine spärliche Implementierung
beigefügt (B_SelectSpell). Die ist nicht sehr umfangreich und umfasst
nur, dass Magier-NPCs auf die Erhöhung des Gegners reagieren und sich selbst
auch erhöhen (nur soweit wie der Gegner, damit man sich gegenseitig über-
trumpfen kann). Die betreffenden Zeilen in de B_SelectSpell sollten herausge-
löscht werden, falls NPCs den Zauber nicht benutzen dürfen. Leider verhindert
die FAI, dass ein NPC einen Zauber casten kann, wenn er seinen Gegner nicht
im Fokus hat. Andernfalls würde er meiner Implementierung nach herunterfahren,
wenn sich der Gegner unten zu nah am Mover "versteckt".
Allerdings ist das nicht alles, was man mit diesem Zauber in den Händen von
NPCs machen kann. Beispielsweise könnten sie vor Nahkämpfern fliehen oder sich
Raum verschaffen zum Heilen, usw.
Achtung: Von Seiten der Balance und Absicherung ist meine spärliche Implemen-
tierung nicht ausreichend! Wer diesen Zauber in die Hände von NPCs geben will
hat noch ein grosses Stück Arbeit vor sich.
Was passiert, wenn ein Magier sich innerhalb eines Hauses mit niedriger Decke
erhöhen will? Was ist, wenn der NPC von der Säule runterrennt/fällt? Was ist,
wenn der Gegner ein Nahkämpfer ist und sich immer am Fuss des Movers aufhält,
der Magier-NPC ihn von oben nicht treffen kann und beim automatischen Herun-
terfahren sofort wieder hochfahren will - es kommt kein Kampf zu Stande!
Sollte sich jemand mit diesen Fragen auseinandersetzen, würde ich es sehr be-
grüssen, täte er seine Erkenntnise im genannten Forenthread (1.1.) teilen.
Anpassungsmöglichkeinten:
NPCs haben eine AIVar in dem das Visual für den NPC zugewiesen werden kann.
Damit kann man verschiedenen NPCs verschiedene Säulen geben oder auch dem
Spieler die möglichkeit im Spiel neue Säulenvisuals zu "erlernen".
Das Ganze habe ich möglichst offen implementiert, sodass man ohne grosses ein-
greifen seine eigenen Visuals hinzufügen kann. Dazu genügt ein Blick in die
AI_Constants.d. Dort trägt man die *.3ds oder *.MMS (ja, es werden animierte
Meshes untersützt!) in die Liste 'Elevator_Visual' ein und verpasst dem ganzen
eines der bestehenden Soundsets (die auch einfach erweiterbar sind).
Einem NPC verpasst man ein Visual mit:
self.aivar[AIV_Elevator] = Elevator_Platform;
Wobei 'Elevator_Platform' der Index in der 'Elevator_Visual'-Liste ist.
------------------------------------------------------
3.5. EXPLOSION
Fakten:
- Neuer visueller Effekt
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Dies war einer meiner ersten Zauber - allerdings in dieser Form noch einmal
überarbeitet. Es handelt sich um einen einfachen Angriffszauber.
Anpassungsmöglichkeiten:
keine
------------------------------------------------------
3.6. FREMDENHEILUNG
Fakten:
- Neuer visueller Effekt
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Dieser Zauber heilt einen NPC. Nichts aufregendes, allerdings bestimmt inter-
essant für Mods mit vielen Gruppenquests.
Anpassungsmöglichkeiten:
keine
------------------------------------------------------
3.7. MAGIE PARADE / BLOCKEN
Fakten:
- Neues Feature
- Neuer visueller Effekt
Voraussetzungen:
- Ikarus
- LeGo (FrameFunctions)
Dies hier ist eine innovative Implementierung, um, wie beim Schwertkampf, wäh-
rend dem Magiekampf zu blocken. Genau so funktioniert sie auch:
Mittels dem Parieren der Gothic 1 Kampfsteuerung (meist STRG+S, wird aber aus
der den aktuellen Tastenbelegungen ausgelesen), formt der Spieler - wenn er
gerade einen Zauber gezogen hat - ein Magieschild vor sich und blockt somit.
Folgendes ist zu beachten: Um das Blocken zu realisieren, wird einfach die
Kollision des Spielers temporär ausgeschaltet. Das ist eine sehr unschöne Lös-
ung, denn dann ist der Spieler sowohl von allen Seiten als auch gegen bspw.
Schwerter immun. Da könnte man sich sicherlich noch etwas besseres einfallen
lassen.
Da nicht jeder die dekompilierten Animationen in seinem Modkit hat, ist die
Humans_MagDisable.mds schon (z.T.) in kompilierter Form enthalten
(HUMANS_MAGDISABLE.MDH).
Der Schild ist nur ein Platzhalter PFX. Ich finde der könnte schöner sein.
Aber das Blocksystem ist ansonsten fertig und abgerundet implementiert.
Es könnte in der Form auch für Fernkampfwaffen (den Bogen in beide Hände neh-
men und blocken) übernommen werden.
Für NPCs ist das ganze natürlich NICHT implementiert. Wäre interessant, ob
sich jemand damit beschäftigen will (Projektil und dessen Position und Ge-
schwindigkeit des Zaubers vom Gegner ermitteln, Blickrichtung beachten, Parade
starten und während der gesamten Zeit die FAI aushebeln, damit der NPC nicht
gleichzeitig casten oder rennen will.)
Anpassungsmöglichkeiten:
Keine, aber ich würde mich freuen, wenn man dem Ganzen ein schöneres Visual
verpasst (sieht z.B. von der Seite total blöd aus).
------------------------------------------------------
3.8. MAGIEKÄFIG
Fakten:
- Neuer visueller Effekt
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
kein
Dieser Zauber hält den Gegner, wie beim Eisblock, für bestimmte Zeit gefangen.
Das der NPC sich im Käfig nicht bewegt, sondern eingefroren ist, macht viel-
leicht nicht so viel Sinn und könnte verbessert werden.
Der PFX bedient sich eines Meshes. Das ist eigentlich unnötig, denn man kann
auch eine BOX-Shape erstellen. Allerdings sieht das ziemlich hässlich aus.
Anpassungsmöglichkeiten:
keine
Bemerkungen: Nicht die "Einfrier"-Zeit ändern, denn diese muss mit dem visuellen
Effekt abgestimmt sein.
------------------------------------------------------
3.9. MANASUCHT
Fakten:
- Neue Animation
- Neuer (sehr innovativer) visueller Effekt
- Neuer Soundeffekt
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Ich habe mal Gothic 2 komplett als Magier durchspielen wollen und habe jeden
noch so kleinen Kampf mit Magie geklärt bis ich zu dem Punkt kam, an dem es
keinen einzigen Manatrank im ganzen Spiel mehr gab und ich nicht mehr weiter-
spielen konnte. Daher kommt die Idee zu diesem Zauber. Hier macht der Spieler,
mit womöglich Beliar, einen Deal und tauscht sein Leben gegen Mana. Dabei kann
der Spieler durch gedrückt halten des Zaubers bestimmen wie viel er tauscht.
Das besondere an diesem Zauber ist der Effekt. Der Effekt ist eine Doppel-
spirale um den Caster die sich nach oben dreht. PFX-Begeisterte können sich
gern anschauen, wie das realisiert ist.
Die Animation ist von HUM_SUCKENERGY_VICTIM_K01.ASC abgewandelt.
Achtung: Leider benötigt der Zauber minimal einen Manapunkt. Um das zu lösen
wollte ich nicht extra Ikarus integrieren.
Achtung: Zu beachten bei diesem Zauber ist, dass wenn der Zauber bei voll be-
setzter Umgebung gecastet wird (also wenn viele NPCs in der Nähe sind), es
passieren kann, dass die Spiralen-Partikel nicht vernünftig gerendert werden.
Ich schätze das ist eine Art automatischer Ressourcenverwaltung. In diesem
Fall sieht die sonst flüssige Spirale aus wie eine billige Lichterkette. Wenn
das häufiger der Fall ist gibt es einen alternativen Effekt.
Um diesen zu benutzen muss man lediglich die Zeile
vistexcolorstart_s = "100 100 255";
in MFX_ManaForLife_RING_LARGE1 (in PfxInstMagic.d) durch diese ersetzen
vistexcolorstart_s = "0 0 255";
Das gleiche mit dieser Zeile hier
vistexcolorstart_s = "255 100 100";
in MFX_ManaForLife_RING_LARGE2 (in PfxInstMagic.d) ersetzen durch
vistexcolorstart_s = "255 0 0";
Das ändert die Farbe der neu generierten Partikel in die gleiche Farbe der
älteren Partikel. Damit sind die Partikel der Spiralen komplett einfarbig, so-
dass keine lichterketten-/Kugelartigen Artefakte auftreten. Ganz so schön wie
der originale Effekt sieht es dann nicht mehr aus.
Achtung: Zwar können NPCs den Zauber benutzen, aber die haben immer automat-
isch für volles Mana. Da müsste man sich an der B_ReadySpell.d betätigen, aber
dann muss sichergestellt werden, dass genug Mana da ist bevor ein Spell gezo-
gen wird, sonst gibt es arge Probleme.
Anpassungsmöglichkeiten:
Minimal benötigte, sowie maximal investierbare Lebensenergie lassen sich ein-
stellen. Auch wie viel Lebensenergie wie vielen Manapunkten entspricht. Man
kann auch einstellen in welchem Interval (und ob) der Caster stöhnen soll.
------------------------------------------------------
3.10. SÄUREFLUCH
Fakten:
- Neuer visueller Effekt
- Implementierung von Schaden-über-Zeit
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Dieser Zauber ist in dem Sinne besonders, dass er durch wenig Aufwand Schaden-
über-Zeit macht - und das ohne ZS oder Ikarus o.ä.! Ein Blick in die
VisualFXInst.d lohnt sich. Ausserdem sind die Partikel, die man abfeuert, hüb-
sch.
Weitere Infos zu Damage-over-Time: Um DoT auch universell (unabhängig von Zau-
bern) zu verwenden, kann man sich einen VisualFX erstellen, der in etwa so
aussieht:
INSTANCE DoT (CFx_Base_Proto) { // Dummy Effekt (muss existieren)
secsPerDamage = 1; // 1 Schaden pro Sekunde (= 1/DoT)
emFXLifeSpan = 10; }; // Länge des FX (Totale DMG = Länge * DoT)
INSTANCE DoT_L1 (CFx_Base_Proto) { // Level 1: Einen Schaden pro Sekunde
secsPerDamage = 1;
emFXLifeSpan = 10; };
INSTANCE DoT_L2 (CFx_Base_Proto) { // Level 2: Zwei Schaden pro Sekunde
secsPerDamage = 0.5;
emFXLifeSpan = 10; };
INSTANCE DoT_L3 (CFx_Base_Proto) { // Level 3: Drei Schaden pro Sekunde
secsPerDamage = 0.333;
emFXLifeSpan = 10; };
/* usw ... _L4, _L5 je nach Bedarf */
Und folgende Funktion:
fund void ApplyDoT(var C_NPC slf, var int dmgPerSec) {
Wld_PlayEffect("DoT", slf, slf, dmgPerSec, 0, 0, FALSE);
};
Diese haftet man dann einfach bspw. über die B_AssessDamage einer gewünschten
Waffe an (wie das auch mit der Klaue Beliars gemacht wird, siehe
B_BeliarsWeaponSpecialDamage).
Das ist alles! Schon erhält der Angegriffene dmgPerSec Schaden pro Sekunde
über eine Dauer von zehn Sekunden. Kein Ikarus oder Frame-Schleifen nötig!
Achtung: Ganz so einfach ist es nicht. Ich habe es einmal kurz getestet und
B_AssessDamage wird leider manchmal mehrere Male pro Treffer aufgerufen.
Selbst Wld_StopEffect("DoT") hilft da nicht, denn es passiert zu schnell hin-
tereinander. Da müsste man sich noch etwas einfallen lassen, sonst ist der Ge-
gner im Nu tot. Eine Idee wäre wie bei der Klaue Beliars eine Trefferwahr-
scheinlichkeit einzubauen. Benutzt man aber nur die ApplyDoT() direkt (z.B.
nach Trinken eines Trankes oder über einen Dialog), dann funktioniert es sehr
gut und macht sicher eine coole Story.
Anpassungsmöglichkeinten:
Man könnte für bessere Stabilität die DoT-Implementierung durch Buffs von LeGo
ersetzen.
------------------------------------------------------
3.11. SCHNELLFEUER EISPFEIL
siehe Schnellfeuer Feuerpfeil
------------------------------------------------------
3.12. SCHNELLFEUER FEUERPFEIL
Fakten:
- Neue Animation
- Neues Feature
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
- Ikarus
- LeGo (FrameFunctions)
Dieser Zauber ist der gleiche wie ein normaler Feuerpfeil (bzw. Eispfeil) mit
einer Schnellfeuerkombination.
Achtung: Dieser Zauber ist im Grunde nur ein Platzhalter und soll das Schnell-
feuer Feature demonstrieren. Es handelt sich dabei um eine neue Cast-Ani-
mation, die allerdings über Ikarus ausgehebelt wird, sodass man wie beim
Schwertkampf (Gothic 1 Steuerung) Kombos auslösen kann. Diese müssen dann in
einem bestimmten Zeitfenster aktiviert werden, sonst kehrt die Animation wie-
der zum Ausgangspunkt zurück.
Dies ähnelt den Schnellfeuerzaubern aus Risen 1. Der Zauber wird abwechselnd
von der linken und rechten Hand abgefeuert. Damit lässt sich der Zauber extrem
schnell abfeuern. Es gibt zu Beginn des Zaubers eine längere Investphase (ist
keine Investphase auf Skriptebene, sondern rein visuell), um richtiges Timing
mit schnelleren Schüssen zu belohnen.
Achtung: Diesen Zauber kann nur der Spieler benutzen, da die spellFxAniLetters
in der Constants.d verändert werden. Um den Zauber für NPCs zu implementieren,
müsste man für jeden NPC im Spiel einen eigenen Zauber erstellen.
Anpassungsmöglichkeiten:
keine
------------------------------------------------------
3.13. ZERFLEISCHEN
Fakten:
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Dieser Zauber ist einfach nur eine blutige Umfärbung des Gysierzaubers aus
Gothic 2 dNdR. Zusätzlich ist ein grosses Probelm des Gysierzaubers gefixt,
unter dem dieser manchmal keinen Schaden auslöst (Stichwort: zu kleines Pro-
jektil).
Anpassungsmöglichkeiten:
keine
------------------------------------------------------
3.14. ZORN ADANOS
Fakten:
- Neues Runen- und Schriftrollenvisual
Voraussetzungen:
keine
Dieser Zauber ist einfach nur eine "Adonosige" Umfärbung von Zorn Beliars' aus
Gothic 2 dNdR, die Textur dafür lag schon im Textures-Ordner bereit.
Anpassungsmöglichkeiten:
keine
//////////////////////////////////////////////////////////////////////////////
4. Weitere Bemerkungen
4.1. Datenstruktur im Paket
Alle Daten zu den Zaubern sind alle in einzelne entsprechend gekennzeichnete
Ordner verteilt (auch die Zauberanimationen). Das macht es umständlich ALLE
Zauber einzufügen, aber sehr übersichtlich, wenn man nur an einem einzelnen
interessiert ist. Allerdings habe ich ja extra das Tool geschrieben, das alles
automatisch einpflegt (1.2.)
Die Ordner enthalten die Skriptdateien mit nur den nötigsten Zeilen, die in
die existierenden Dateien im vermerkten Pfad eingefügt werden müssen. Zeilen-
angaben ggf. beachten. Andere Skriptdateien können einfach kopiert werden.
Dazu die Information in den Datein beachten.
Zusätzlich enthalten die Ordner teilweise auch Binärdateien (Animationen,
Sounds, Meshes, Texturen). Diese sind in Unterordnern:
Anims: _work\data\Anims\
MeshesItems: _work\data\Meshes\Items\IT_Runen\ bzw. \IT_Scrolls\
MeshesMagic: _work\data\Meshes\Magic\
SoundSFX: _work\data\Sound\SFX\
TexturesEffectsMagic: _work\data\Textures\Effects\Magic\
TexturesItems: _work\data\Textures\Items\
Das Einfügen in die Welt ist sehr einfach. Es ist ein Beutel-Item (ItSe_allZP)
enthalten, dass alle Items entpackt für noch einfachereres testen (siehe
IT_Zauberpaket_alle.d).
Die Zauberanimationen habe ich im Grunde doppelt in diesem Paket. Einmal in-
nerhalb der fertigen Zauber und der Übersicht halber auch separat im Ordner
"CastAnisEinzeln". Dort finden sich die ASC-Dateien und auch die entsprechen-
den Einträge für die Humans.MDS. Nicht vergessen die Humans.MSB zu löschen.
Bemerkung: Das Tool löscht die Humans.MSB automatisch (macht aber natürlich
ein Backup).
4.2. Danke
Das hier ist kein all zu grosses Ding, vergleicht man es mit fertigen Modifi-
kationen, und ich möchte mich nicht zu wichtig nehmen, ganz im Gegenteil mö-
chte ich deshalb hier, als meine einzige substantielle Kontribution, meinen
Dank aussprechen an all diejenigen, die mir in der Zeit zwischen 2005-2007 und
in 2010 geholfen haben.
Gothiccer hat mich zum Gothic-Editing gebracht und einige Modprojekte mit mir
bestritten. Viele Menschen haben die Editing-Szene unglaublich bereichert. Da-
runter möchte ich Sektenspinner namentlich nennen, da mich sein Ikaruspaket in
2010 erneut ins WoG gezogen hat und daraus einiges entstanden ist. Darunter
vier Teile hier enthalten. Viele meiner Beiträge im Editingforum waren Fragen,
die immer hilfsbereit beantwortet wurden. Vielen Dank an alle für diese lehr-
reiche Zeit!
Ich möchte mich auch bei Fisk2033 bedanken, der dafür verantwortlich ist, dass
dieses Paket überhaupt zusammen gestellt wurde.
//////////////////////////////////////////////////////////////////////////////
Viel Spass wünscht mud-freak!
//////////////////////////////////////////////////////////////////////////////
Was bleibt: Ich hoffe das Paket trifft auf Begeisterung und/oder Gebrauch und kann den ein oder anderen inspirieren!
Und damit habe ich endlich der Modderszene etwas zurückgegeben und sage Tschüss!
SPL_Extricate, SPL_ManaForLife, SPL_Quake für die Benutzung von NPCs stabiler gemacht
SPL_Extricate beispielhaft in die B_SelectSpell eingebunden (Magier-NPCs benutzen den Befreiungsschlag wenn der Gegner in Nahkampfnähe ist)
SPL_Elevate grosse Bugfixes, auch in die B_SelectSpell eingebunden (Magier-NPCs regieren auf Erhöhung des Gegners und erhöhen sich auch)
Veränderte Dateien: Spell_Elevate.d, Spell_Extricate.d, Spell_ManaForLife.d, Spell_ProcessMana_Release.d, B_SelectSpell.d, readme.txt
Um ein bereits in Gothic eingepflegtes Zauberpaket zu aktualisieren nicht das Zauberpaket (v1.0) Tool drüber laufen lassen, sondern diesen kleinen Patch: ZauberpaketUpdate1.0.rar
Geändert von mud-freak (19.06.2016 um 17:19 Uhr)
Grund: Update 1.0
Wirklich tolle Arbeit...die Idee mit dem Rückstoßzauber und den Säulen hatte ich auch schon mal...hatte aber keine Zeit, mich intensiv damit auseinanderzusetzen.
Scheint ja wirklich gut zu funktionieren...da hast du bestimmt viel Zeit und Mühe investiert(insgesamt meine ich).
Ein tolles Paket. Ich wünschte, das wäre früher rausgekommen^^
Magieblock und aoe zurückwerfen ist besonders praktisch und hatten wir uns auch schon gewünscht.
Die Idee mit den Säulen, für Unantastbarkeit find ich auch ne klasse Idee.
Danke für all deine Mühen und das teilen mit der Community
Man sollte meinen, dass mich das gar nicht mehr so flashen sollte, nachdem ich alles schon Ingame und per Bildschirmübertragung gesehen habe, aber mit dem Trailer übertriffst du dich gleich nochmal selber. Alle Zauber perfekt eingebunden, die Möglichkeiten werden super aufgezeigt (meine Lieblingsszene ist die mit den 3 Freunden, die auf Säulen gegen Orks kämpfen, man stelle sich das mal in einer Mod vor - Weltklasse).
Vor allem dein Tool wird vielen hier einen Bärendienst erweisen. Keine 10 Dateien öffnen, irgendwelche IDs anpassen und dann in die vorhandene Struktur einfügen - in der Hoffnung es läuft dann alles. Ne, einfach Tool starten, Pfad auswählen, Zauber auswählen und ab geht die wilde Fahrt - habe ich bereits getestet, klappt vorzüglich.
Vielen Dank für die Zauber, hätte nicht gedacht, dass ich dich nochmal "reaktivieren" kann. Wirklich toller Einsatz von dir für die Community!
Ich glaub ich seh nicht richtig Echt coole Zauber! Danke, dass du dir noch einmal so viel Mühe gemacht hast, das für uns bereitzustellen und dann sogar noch so benutzerfreundlich. Danke
Danke für das positive Feedback! Es freut mich, dass es so gut aufgenommen wird.
Zitat von TheBigLeBRUCEky
...die Idee mit dem Rückstoßzauber und den Säulen hatte ich auch schon mal...
Zitat von TheEternal
Ich wünschte, das wäre früher rausgekommen^^
Wenn man bedenkt, dass die Zauber schon in 2010 komplett fertig waren, ist das tatsächlich echt schade, dass sie erst sechs Jahre später kommen. Um genau zu sein, habe ich festgestellt, dass sie damals sogar besser funktioniert haben:
Ich habe jetzt in 2016 in der Absicht die Zauber aufzuarbeiten, aufzuräumen und leserlicher und zu machen, einiges rausgeschmissen, von dem ich dachte es sei redundant. Es stellt sich aber heraus, dass ich dadurch den Erhebenzauber (der mit den Säulen) komplett zerschossen habe. Zwar sieht es so aus als würde er gut klappen, aber einiges an der Benutzung ist sehr instabil und weniger "responsive" als in der originalen Version. Der Zauber ist ein Aufrechterhaltungszauber, sprich, man fährt nur soweit hoch wie man gedrückt hält - das klappt aber nicht mehr so präzise wie früher einmal. Auch NPCs können ihn nicht mehr vernünftig benutzen.
Wer sich mit ihm befassen will, sollte noch das Wochenende abwarten. Ich werde ihn noch einmal dem früheren Stand anpassen und auch eine kleine Implementation für die AI von damals zur Verfügung stellen (mit der NPCs auf die Erhöhung ihres Gegners reagieren und sich selbst dem entsprechend erhöhen).
Des Weiteren hat sich beim Überarbeiten die falsche Überzeugung eingeschlichen, NPC könnten keine Aufrechterhaltungszauber. (Hätte ich genauer in die Skripte von früher geguckt, hätte ich gemerkt, dass das Quatsch ist). Die Zauber Manasucht, Befreiungsschlag und Erdbeben leiden in Stabilität darunter. Funktional ändert sich dabei allerdings nichts. Wird aber gefixt.
Entschuldigung, dass ich da noch einmal etwas überarbeiten muss. Ich stelle es dann hier so schnell wie möglich zur Verfügung.
Also: Wochenende abwarten, dann kommt ein Fix für die oben unterstrichenen Zauber.
Zitat von Neconspictor
und dann sogar noch so benutzerfreundlich.
Ja, das war mir wirklich wichtig. Man soll sich nicht so verdrehen müssen, um etwas zu benutzen was schon spielbereit ist. Schön, dass das Anerkennung findet Mich würde interessieren, wie verlässlich das Einpflege-Tool funktioniert. Falls jemand sich die Zauber schon in sein Gothic hat einfügen lassen würde mich interessieren, ob das problemlos geklappt hat.
Was ich in dem Zusammenhang aber in diesem Thread nicht erwähnt habe ist, dass - obwohl es in dem Video alles so schön fertig aussieht - fast alle Zauber unfertig sind. Was fehlt ist genaues Balancing. Ich rede nicht davon, wie viel Mana ein Spruch zieht oder viel Schaden er macht, sondern viele der Zauber verändern die Spielmechanik:
Erheben: Man muss sich was für die AI einfallen lassen usw. sonst kann der Spieler ja einfach in jedem Kampf hochfahren und in Ruhe alles mit Fernkampf vernichten während Nicht-Magier-Gegner keine Chance haben und 0 Schaden anrichten können.*
Oder Säurefluch mit dem Schaden-über-Zeit: Man sollte es nicht so häufig hinter einander casten dürfen sonst multipliziert sich der Schaden-über-Zeit und der Gegener ist im Nu tot. Ausserdem: Wenn ein menschlicher NPC bewusstlos zu Boden geht, also wenn es passiert, dass ein NPC nur noch genau einen Lebenspunkt übrig hat, dann kommt beim nächsten Dmg-over-time-Tick die Gnadenstossanimation.
Befreiungsschlag hat auch seine Tücken: Gegner mit zu viel DAM_FLY-Rüstungsschutz sind unberührt, andere bei zu hohem DAM_FLY sofort tot.
...usw. (siehe Readme)
Gut aussehen und funktionieren tut alles, nur der Schritt, die Zauber in die Spielmechanik einzubauen fehlt noch.
*Dazu möchte ich eine Idee loswerden:
Es könnte auch eine Art Sperre sein, wie bei Gothic 1 im Schläfertempel, wo man den Untoten Orkwächter bei der Brücke ohne Uriziel nicht besiegen kann.
Anstatt dem Spieler den Zauber zu geben, könnte ein NPC den besitzen und für einen Spieler unerreichbar sein. So muss der dann nochmal zurück und sich eine besondere Waffe beschaffen.
Wenn man nur NPCs diesen Zauber gibt (und die AI entsprechend anpasst), müsste man sich um solche Balancing-Probleme keine Gedanken machen. Wäre aber auch schade, wenn der Spieler ihn nicht benutzen dürfte.
Wenn sich jemand tatsächlich näher mit dem Integrieren vom Erhebenzauber in die Spielmechanik beschäftigt, würde ich es sehr begrüssen, solche Ansätze hier zu teilen.
Sehr gute Arbeit!
Schade, dass du dich zurückziehen wirst - du scheinst eine Menge über Partikeleffekte etc. zu wissen und auch sonst ein sehr fähiger Scripter zu sein, sowas können wir hier eigentlich immer gebrauchen
Ich habe mal versucht, die Zauber zu installieren, aber (vermutlich) da ich nur das kleine Modkit installiert habe, schlagen alle Operationen fehl (File not Found), die irgendwelche nicht-kompilierten Meshes oder Texturen referenzieren. Das solltest du wohl mindestens in der Readme erwähnen Die bereinigten Scripte hingegen stellen wohl kein Problem da, aber das hätte mich auch gewundert.
Könntest du uns die Source deines Installations-Tools bereitstellen (und etwaige Dokumentation)? Das scheint so, als könnte es sich noch als nützlich erweisen.
Was ich jetzt nicht getestet habe, wo ich aber potentielle Fehlerquellen sehe: Die Initialisierung von LeGo steht nur bei MagParade, aber ein-zwei andere Spells benötigen das afaik ebenfalls (und mindestens Ikarus), hast du darauf geachtet? Wie sieht's aus, wenn in der INIT_Global() LeGo schon initialisiert wird? Pflegst du das dann in den Parameter ein? Nachfolgende Initialisierungen werden einfach ignoriert, es könnte also sein, dass die FrameFunctions dann nicht funktionieren (oder du einem User alle anderen Sachen zerschießt).
Ich habe jetzt u.a. einige schwere Bugs im Erhöhen-Zauber gefixt (SPL_Elevate) und den Eintrag in der Modderdatenbank aktualisiert. Man kann die neue Version vom Zauberpaket nicht über die alte Version drüber-entpacken, sonst ist alles doppelt. Einen entsprechenden Patch, zum Aktualisieren der bereits eingepflegten letzten Version ist hier: ZauberpaketUpdate1.0.rar.
Im Anfangspost sind die betroffenen Dateien und die Änderungen aufgelistet.
Zum Erhöhen sei gesagt:
Ich habe die KI-Unterstüzung aus 2010 wieder eingebunden und angepasst. Nun können NPC den Zauber auch benutzen:
Zitat von Readme.txt
Für die Benutzung des Zaubers von NPCs habe ich eine spärliche Implementierung beigefügt (B_SelectSpell). Die ist nicht sehr umfangreich und umfasst nur, dass Magier-NPCs auf die Erhöhung des Gegners reagieren und sich selbst auch erhöhen (nur soweit wie der Gegner, damit man sich gegenseitig übertrumpfen kann). Die betreffenden Zeilen in de B_SelectSpell sollten herausgelöscht werden, falls NPCs den Zauber nicht benutzen dürfen. Leider verhindert die FAI, dass ein NPC einen Zauber casten kann, wenn er seinen Gegner nicht im Fokus hat. Andernfalls würde er meiner Implementierung nach herunterfahren, wenn sich der Gegner unten zu nah am Mover "versteckt".
Allerdings ist das nicht alles, was man mit diesem Zauber in den Händen von NPCs machen kann. Beispielsweise könnten sie vor Nahkämpfern fliehen oder sich Raum verschaffen zum Heilen, usw.
Achtung: Von Seiten der Balance und Absicherung ist meine spärliche Implementierung nicht ausreichend! Wer diesen Zauber in die Hände von NPCs geben will hat noch ein grosses Stück Arbeit vor sich. Was passiert, wenn ein Magier sich innerhalb eines Hauses mit niedriger Decke erhöhen will? Was ist, wenn der NPC von der Säule runterrennt/fällt? Was ist, wenn der Gegner ein Nahkämpfer ist und sich immer am Fuss des Movers aufhält, der Magier-NPC ihn von oben nicht treffen kann und beim automatischen Herunterfahren sofort wieder hochfahren will - es kommt kein Kampf zu Stande!
Sollte sich jemand mit diesen Fragen auseinandersetzen, würde ich es sehr begrüssen, täte er seine Erkenntnise im genannten Forenthread (1.1.) teilen.
Ich habe mal versucht, die Zauber zu installieren, aber (vermutlich) da ich nur das kleine Modkit installiert habe, schlagen alle Operationen fehl (File not Found), die irgendwelche nicht-kompilierten Meshes oder Texturen referenzieren. Das solltest du wohl mindestens in der Readme erwähnen Die bereinigten Scripte hingegen stellen wohl kein Problem da, aber das hätte mich auch gewundert.
Danke für den Hinweis. Ich habe einen entsprechenden Vermerk in der Readme gemacht.
Zitat von Lehona
Was ich jetzt nicht getestet habe, wo ich aber potentielle Fehlerquellen sehe: Die Initialisierung von LeGo steht nur bei MagParade, aber ein-zwei andere Spells benötigen das afaik ebenfalls (und mindestens Ikarus), hast du darauf geachtet? Wie sieht's aus, wenn in der INIT_Global() LeGo schon initialisiert wird? Pflegst du das dann in den Parameter ein? Nachfolgende Initialisierungen werden einfach ignoriert, es könnte also sein, dass die FrameFunctions dann nicht funktionieren (oder du einem User alle anderen Sachen zerschießt).
Tatsächlich übernimmt das Einpflege-Tool keinerlei Initialisierung. Das habe ich mal vorausgesetzt. In die INIT_Global() wird vom Tool nur ein FrameFunctions-Aufruf für die MagParade eingetragen. Einen Hinweis dazu habe ich auch in der Readme hinzugefügt.
Zitat von Lehona
Könntest du uns die Source deines Installations-Tools bereitstellen (und etwaige Dokumentation)? Das scheint so, als könnte es sich noch als nützlich erweisen.
Ich war mir nicht sicher, ob an so einem Einpflege-Tool Bedarf besteht, aber da ich von mehreren Seiten Interesse vernommen habe, werde ich es vielleicht noch in universellerer Version releasen (inkl Sourcecode). Im Moment ist ziemlich viel bezüglich dem Zauberpaket hardgecoded, aber ich denke ich könnte das generalisieren.
Die meisten Mod-Teams benutzen sicherlich Versionsverwaltungssoftware und nach aussen dringt ja dann nur die fertige *.mod. Mir ist nicht ganz klar wo man so ein Tool einsetzen könnte?
ich bin mal so frei und stelle hier die frage statt einem seperaten thread aufzumachen
hast du eig all die effekte von hand geschrieben oder gibt es eine art tool.. oder testumgebung die mir anzeigt wie mein fertiger pfx aussieht?
ich wollte mich schon lange mal damit beschäftigen.. aber ein pfx zu schreiben.. und dann jedesmal ingame zu schauen wie es aussieht.. fänd ich etwas arg schwerfällig^^
ich bin mal so frei und stelle hier die frage statt einem seperaten thread aufzumachen
hast du eig all die effekte von hand geschrieben oder gibt es eine art tool.. oder testumgebung die mir anzeigt wie mein fertiger pfx aussieht?
ich wollte mich schon lange mal damit beschäftigen.. aber ein pfx zu schreiben.. und dann jedesmal ingame zu schauen wie es aussieht.. fänd ich etwas arg schwerfällig^^
"Mittlerweile" gibt es das Tool DOPA-PARTER von Sumpfkrautjunkie und Sektenspinner. Das bietet eine Umgebung um sich PFX anzuschauen und zu verändern ohne jedes mal Gothic starten zu müssen.
Ich habe allerdings meistens trotzdem alles über Gothic gemacht, weil die PFX etwas komplexer waren, wo DOPA-PARTER an seine Grenzen stösst.
Einiges wird auch nicht 1:1 wiedergegeben, wie z.B. Geschwindigkeit.
Für den Anfang oder für einen groben Start eines neuen Effektes kann ich das Tool wärmstens empfehlen (auch wenn ich das erst seit 2016 kenne und alle PFX aus dem Zauberpaket ohne erstellt wurden).
Das immer wieder Neustarten von Gothic war für mich kein Problem, weil irgendwann so eine Art Intuition entstand, wie ein Effekt aussehen wird und was ich einstellen müsse um ihn so aussehen zu lassen wie ich es wollte. Das ist ja mit fast allem so.
Hier noch etwas anderes: Ich habe in diese Youtube-Playlist noch einige weitere Videos hinzugefügt. Einige als Demonstrationen was möglich ist, andere als Previews und dann noch eine Art Tutorial, das zeigt wie einfach es ist neue Visuals dem Erheben-Zauber hinzuzufügen.
Noch nicht leider, Ikarus habe ich soeben installiert. Aber ich weis noch nicht, wie ich LeGo installiere. Gibts dazu ein Tutorial?
Ja dazu gibt es einige Informationen.
Hier ist der Thread zu Ikarus.
Hier ist der Thread zu LeGo. Dort ist auch die aktuellste Version verlinkt. Dazu hier noch die Anweisung zum Installieren.
Ich hoffe das hilft dir erst einmal weiter.
Wenn die Installation geschafft ist, solltest du auch beachten, dass das Zauberpaket erwartet, dass Ikarus und LeGo initialisiert werden. Dazu trägst du in die Startup.d in die Init_Global() in etwa folgendes ein:
Code:
func void INIT_GLOBAL()
{
// wird fuer jede Welt aufgerufen (vor INIT_<LevelName>)
Game_InitGerman();
// ...
// Ikarus initialisieren
MEM_InitAll();
// LeGo initialisieren
LeGo_Init(LeGo_All); // Hier kannst du wie hier erklärt die LeGo Pakete auswählen. Das Zauberpaket braucht lediglich das Paket LeGo_FrameFunctions
// ...
};
Das ganze ist allerdings alles nur nötig, wenn du Ikarus-Zauber aus dem Paket installieren willst. Das sind die Zauber
Erheben (SPL_Elevate.feat)
Magie Parade / Blocken (SPL_MagParade.feat)
Schnellfeuer Feuerpfeil (SPL_RapidFirebolt.feat)
Schnellfeuer Eispfeil (SPL_RapidIcbolt.feat)
Alle anderen Zauber laufen ohne Ikarus und die solltest du einfach so verwenden können.
Hey, mal eine Frage der anderen Art.
Ist es möglich basierend auf dem Spell Elevate einen Telekinese Zauber erschafft?
Also ausgewähltes Item holen, Mover einfügen, Item als ChildVob dranhängen und dann den Mover auf den Spieler zu fahren lassen?(und währenddessen den Telekinese Effekt auf dem Item aller Gothic(I) ?
Hey, mal eine Frage der anderen Art.
Ist es möglich basierend auf dem Spell Elevate einen Telekinese Zauber erschafft?
Also ausgewähltes Item holen, Mover einfügen, Item als ChildVob dranhängen und dann den Mover auf den Spieler zu fahren lassen?(und währenddessen den Telekinese Effekt auf dem Item aller Gothic(I) ?
Ich denke ein Mover sollte nicht notwendig sein. Man kann das Objekt ja einfach im Weltkoordinatensystem verschieben.
Beim Elevate-Zauber war ein Mover deshalb notwendig, weil er den NPC mit bewegen soll (kontinuierliche Kollision).
Mir fallen aber ein paar Vorteile/Nachteile ein, wenn man für einen Telekinese-Zauber einen Mover benutzt, so wie du es beschrieben hast:
+ Man braucht nur die Start- und Endkoordinaten festlegen. Der Mover wird das Item dann sowohl horizontal als auch vertikal Richtung Zielposition verschieben. Das erspart viel Arbeit, da man eine flüssige X- und Y-Bewegung nicht selbst errechnen muss. Sicherlich ist ein Mover auch besser für die Performance.
+ Man kann über den Mover die Art der Bewegung festlegen (linear, erst schnell dann langsam, usw.). Auch Geschwindigkeit ist im Nachhinein einfacher anzupassen.
- Beim Anhängen an einen Mover und übernehmen der Startposition des Items ist es sehr wahrscheinlich, dass sich das Item ungewollt dreht bevor es "losfliegt". Das fände ich sehr hässlich. Das liegt daran, dass die Keyframes eines Movers nur die X-,Y-,Z-Position annimmt und die Rotation separat behandelt. Um das zu verhindert bedarf es m.E. nach das Auseinanderesetzen mit Quaternionen. (Sehr komplex - für den Elevate-Zauber habe ich mich damit abgefunden, dass die Rotation des Movers nicht am NPC ausgerichtet ist. Das ist nicht weiter schlimm, weil man den Mover bei Entstehung nicht sieht. Das ist bei Telekinese anders -> Item springt plötzlich in eine andere Rotation!)
- Mover können bei verändern der Keyframes zur Laufzeit etwas eigenwillig sein. Beim Elevate-Zauber gibt es immer noch Situation in denen der Mover nicht das macht was er soll. Das habe ich dort so geregelt, dass ich den Mover und dessen Bewegung manuell überprüfe und den Mover dann zerstöre und den Zauber "scheitern" lasse.
Generell denke ich sollte es aber sehr gut klappen. Mit manueller kontinuierlicher Verschiebung in den Weltkoordinaten habe ich keine Erfahrung, vielleicht kann jemand anderes dazu sagen wie aufwendig das im Verhältnis zum Benutzen eines Movers wäre.
Eine weitere Idee wäre die Benutzung von einem VisualFX (das ist bei mir immer der erste Gedanke). Das sollte am elegantesten sein. Denn mit einem VisualFX kann man Flugrichtung eines "Projektils" (von -> nach, Geschwindigkeit, etc.) ganz einfach einstellen (siehe spellFX_SuckEnergy_BloodFly[1], der machte genau das nur ohne Items). Was man dort machen müsste und ich weiss nicht ob das so einfach geht: Bevor die Telekinese beginnt, den VisualFX zur Laufzeit verändern und visname_s durch die 3ds des Items ersetzen und das Item aus der Welt entfernen. Ich weiss allerdings nicht, wie leicht man auf VisualFX mit Ikarus zugreifen und verändern kann.
Das wäre meine Lieblingsvariante, weil der VFX dann die komplette Flugphase übernimmt und man sich da um nichts kümmern muss.
[1] Siehe hier den Code-Ausschnitt:
Code:
instance spellFX_SuckEnergy_BloodFly (CFx_Base_Proto){
visname_S = "MFX_SUCKENERGY_FLYTOPLAYER"; // Hier könnte man die 3DS des Items einsetzen
emtrjeasevel = 0.01;
emtrjmode_s = "TARGET LINE";
emTrjOriginNode = "Bip01 Spine2";
emTrjTargetNode = "ZS_RIGHTHAND";
emtrjdynupdatedelay = 0.01;
};