|
-
[Skript] Entriegeln-Zauber
Ich habe im Modifikationsforum den Patch Magie Hilfe Kasten (engl. First Mage Kit) veröffentlicht. Darin befindet sich unter anderem ein Schlösserknackenzauber ("Entriegeln"). Laut Forensuche gab es schon einige Versuche so einen Zauber zu realisieren, der meistversprechende davon dieser hier. Dabei gab es noch Probleme mit der Fokussieren von Mobs. Diese und andere ausstehende Probleme habe ich in meiner Implementierung behoben.
Weil der Zauber in dem Patch sicher auch für Mods (in die Einbindung in die Story/Quests) interessant ist, möchte ich das Skript dazu teilen.
Viel dazu zu sagen gibt es nicht. Die Skripte funktionieren sowohl für Gothic 1 als auch Gothic 2. Texte (Bezeichnug des Zaubers usw.) sind in deutsch aber auch in englisch, polnisch und russisch jeweils daneben kommentiert.
Einbindung in eine Mod läuft wie mit anderen Zaubern auch. Zusätzlich müssen die Skripte in der Init_Global (bei jedem Spielstart und Levelwechsel) initialisiert werden, mit: Spell_PickLock_Init();.
Dies ist ein Aufrechterhaltungszauber, der über Zeit nach und nach alle Riegel des Schlosses öffnet (5 Manapunkte und durchschnittlich 1.5 Sekunden pro Riegel). Geht das Mana vor Öffnen der Truhe/Tür aus, bleiben die Riegel offen, die schon geknackt wurden, sodass man bei erneutem Zaubern dort fortsetzt, wo man unterbrochen hatte.
Creditseintrag wäre wünschswert. Dabei zu beachten ist, dass einige Teile des Skripts auf Vorarbeit von Sektenspinner (siehe Link oben) basieren.
Viel Spaß damit.
Download
Geändert von mud-freak (19.12.2020 um 21:05 Uhr)
-
In Exodus war der Zauber schon umgesetzt (kann dir die Scripte bei Bedarf hochladen). Allerdings gabs auch da das Problem mit dem Fokus. Man musste die Truhe vorher anvisieren und dann den Zauber wählen.
Dort wurde auch eine sehr schöne Animation (glaube Pyrokinese aus G1?) genutzt. Zu sehen ab: 6:37
[Video]
Ich habe eine Quest in Serima, daher freue ich mich umso mehr über deine Lösung. Das behebt scheinbar jegliche Probleme mit dem blöden Fokus! Danke!
-
 Zitat von Fisk2033
In Exodus war der Zauber schon umgesetzt (kann dir die Scripte bei Bedarf hochladen). Allerdings gabs auch da das Problem mit dem Fokus. Man musste die Truhe vorher anvisieren und dann den Zauber wählen.
Ja, das ist in meinem Skript behoben.
 Zitat von Fisk2033
Dort wurde auch eine sehr schöne Animation (glaube Pyrokinese aus G1?) genutzt.
Ich weiß :) hier wird die gleiche Animation verwendet.
-
Toll! Sowas habe ich mir schon länger gewünscht. Danke fürs Teilen.
-
In der Mod VarusBiker Edition gibt es so einen Zauber auch.
-
Good work, thank you
-
Ich habe die Skripte (und entsprechenden den Downloadlink im Einleitungspost) aktualisiert. Mit den Änderungen wird der Zauber nun auch mit anderen Zaubern kompatibel sein, die auch den Magie-Fokus verändern, bswp. Telekinese. Außerdem ist ein Fehler behoben, der unter gewissen Umständen zu einem Spielabsturz führen konnte (Danke an Falugify für den Fehlerbericht).
-
In Returning ist das Ding auch drinnen, gibt auch keine Probleme, aber bin froh, dass es nun anscheinend auch so verfügbar ist :-)
-
 Zitat von Niko5511
In Returning ist das Ding auch drinnen, gibt auch keine Probleme, aber bin froh, dass es nun anscheinend auch so verfügbar ist :-)
Ist das in Returning denn überhaupt die selbe Implementierung? Ich gehe davon aus, dass es sich dabei um ein anderes Skript handelt, oder irre ich da?
-
 Zitat von mud-freak
Ist das in Returning denn überhaupt die selbe Implementierung? Ich gehe davon aus, dass es sich dabei um ein anderes Skript handelt, oder irre ich da?
Nein die ist ganz anders. Man öffnet die Truhe direkt mit einem Cast, also keine Aufrechterhaltung, etc.
-
Ich habe die Skripte (und entsprechenden den Downloadlink im Einleitungspost) aktualisiert. Wechseln des Fokuses während des Entriegelnzaubers konnte zu Abstürzen führen. (Danke an Falugify für den Fehlerbericht).
Hier die Änderungen als unified diff.
Code:
--- a/_work\Data\Scripts\Content\Spell_Picklock.d
+++ b/_work\Data\Scripts\Content\Spell_Picklock.d
@@ -45,6 +45,7 @@
func int Spell_Logic_PickLock(var int manaInvested) {
var oCNpc slf; slf = Hlp_GetNpc(self);
var oCMobLockable mob;
+ var int mobPtr;
if (Npc_GetActiveSpellLevel(self) <= MEMINT_SwitchG1G2(2, 1)) { // Gothic 1 needs one level more for starting the FX
if (!Hlp_Is_oCMobLockable(slf.focus_vob)) {
@@ -72,12 +73,20 @@
return SPL_SENDSTOP;
};
+ // Remember verified focus
+ mobPtr = slf.focus_vob;
+
// Change in FX
return SPL_NEXTLEVEL;
} else if (!(manaInvested % SPL_Cost_PickLock)) {
mob = _^(slf.focus_vob);
+ // Ensure focus was not changed
+ if (slf.focus_vob != mobPtr) {
+ return SPL_SENDSTOP;
+ };
+
//Für die Wahrnehmung so tun, als würde der Spieler das Mob benutzen
slf.interactMob = slf.focus_vob;
//Die anderen Npcs informieren:
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|