|
-
Lehrling
 Originally Posted by mud-freak
Solltest du auf Steam spielen; dort konnte ich auf die vorherige Version zurücksetzen. Auf Steam sollte Ninja zumindest wieder laufen. Bei Spine ist das nicht so einfach. Und bei manueller Installation kannst du ja auf GitHub zur vorherigen Version (2.9.15) zurückgreifen.
Blöde frage, bin da nicht so affine, spiele über Spine, kann ich das da auch selbst manuell auf den Stand der alten Version bringen?
-
 Originally Posted by Energybreiti
Blöde frage, bin da nicht so affine, spiele über Spine, kann ich das da auch selbst manuell auf den Stand der alten Version bringen?
Ich kann es nicht empfehlen bei Spine manuell herum zu tüfteln, da es darauf ausgelegt ist alles selbst zu verwalten.
Allerdings kannst du in den entsprechenden Downloadordner von Ninja und dort die alte Ninja.dll hineinlegen. Der Standadpfad ist %APPDATA%\Clockwork Origins\Spine\mods\314\System. Das kannst du einfach so in die Adressleiste des Explorers kopieren und Enter drücken. Dort solltest du eine Ninja.dll finden die du mit dieser aus diesem ZIP-Archiv ersetzen kannst.
Damit du in Zukunft Spine gut nutzen kannst, solltest du (sobald ich das Problem behoben habe) Ninja innerhalb von Spine einmal deinstallieren und darin neu installieren.
-
I checked on the current version of the new balance. After saving and loading the game, humans breaks down, it is no longer possible to get a weapon/ spell. There is no problem on 2.9.15.
breaks down forever in saving, deleting ninja won't help. I haven't tested it on the vanilla. (maybe there is this problem there too)
-
 Originally Posted by N1kX
I checked on the current version of the new balance. After saving and loading the game, humans breaks down, it is no longer possible to get a weapon/ spell. There is no problem on 2.9.15.
breaks down forever in saving, deleting ninja won't help. I haven't tested it on the vanilla. (maybe there is this problem there too)
Thanks! Yes as discussed above, it's best to revert back to 2.9.15 for now. I am working on a fix. If I will not manage by tonight, I will rollback to 2.9.15 in a "new" version.
-
Version 3.1.15
Dies ist ein Hotfix zu dem kritischen Bug in Ninja 3.0.15.
Hier wird einfach ein Teil des Updates wieder herausgenommen. Dabei handelte es sich, um den Versuch einen selten Absturz zu verhindern.
Danke für die Geduld! Ich konnte mit der neuen Version die Speicherstände wieder laden. Ich hoffe, dass das bei den Betroffenen auch der Fall ist. Sonst bitte ich um Entschuldigung und hoffe es wurde auf mehreren Saveslots gespeichert.
Aktueller Download über Spine, im Steam Workshop von Gothic 1 und Gothic 2 oder auf GitHub.
Der Changelog findet sich hier.
Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung finden sich im GitHub Repository.
-
Hallo ,
I started to test the your patch template. I want to report that my code passed all test even though, I didn't pass an argument to LeGo_MergeFlags function.
Since I don't need additional LeGo packages, then I understood the "/* DESIRED LEGO PACKAGES */" phrase in the way, that I don't have to write here anything. : P
Was LeGo_MergeFlags function available in any version of LeGo? As I got an error about an syntax error, because of not providing an argument to LeGo_MergeFlags I guessed, that I have simply to provide a flag(s) here, but I wanted to see a definition of this function.
And I found it, but in Ninja.dll.
And how can I get .vdf file with the my plugin? The repository passed build test.
Gladiator – fully German localized, total-conversion modification with original game flow [link]
-
Gut dann wissen wir ja wo der Fehler auf einmal her kommt, war natürlich bestes Timing, das es das Returning Update gab und dann Ninja und keiner 100% weis was nun schuld war xD
-
 Originally Posted by Damianut
Hallo  ,
I started to test the your patch template. I want to report that my code passed all test even though, I didn't pass an argument to LeGo_MergeFlags function.
Hi!
Yes, both the syntax check and validator do not check the integrity of the scripts. The syntax check only checks for valid syntax and the validator focuses on compatible scripts.
 Originally Posted by Damianut
Since I don't need additional LeGo packages, then I understood the "/* DESIRED LEGO PACKAGES */" phrase in the way, that I don't have to write here anything. : P
In cases where you need LeGo, but don't need to initialize any LeGo packages (like in your case with HookDaedalus), then you don't need to initialize LeGo. So you can remove that function call. Instead you will have to initialize Ikarus explicitly (MEM_InitAll();).
 Originally Posted by Damianut
Was LeGo_MergeFlags function available in any version of LeGo?
That function is not part of native LeGo. It is specific to script patches to initialize LeGo in a safe way (i.e. "merge" the remaining flags). The function is not documented anywhere aside from an explanation in the Ninja documentation. This is deliberate: The patch-specific version of LeGo is not meant for the public to avoid confusion and catastrophic effects if used in a normal modding environment. Best not to dig it up 
 Originally Posted by Damianut
And how can I get .vdf file with the my plugin? The repository passed build test.
In the log of the build-action you will find the VDF for download. Once you are ready to "release" your patch, you can also produce the VDF by either creating and pushing a tag (e.g. v1.0.0) to your GitHub or by creating a new release in GitHub. The VDF will be automatically be attached to a published release for download.
-
Lehrling
Funktioniert wieder alles .
Danke und Große Klasse das du das so schnell behoben hast 
Kann ich nur den Hut ziehen wer bei sowas durchsieht
-
 Originally Posted by neocromicon
Gut dann wissen wir ja wo der Fehler auf einmal her kommt, war natürlich bestes Timing, das es das Returning Update gab und dann Ninja und keiner 100% weis was nun schuld war xD
Ja, das Timing war ansonsten ziemlich glücklich, weil wahrscheinlich nicht allzu viele Spieler online waren um die Uhrzeit. Und von Plazmatic auf Steam habe ich nur wenige Minuten nach dem Release die erste Rückmeldung dazu bekommen und konnte zumindest auf Steam das Update zügig zurückrollen.
-
Vielen lieben Dank!
Jetzt mag G Data auch wieder Ninja :-)
Danke für Deine Mühe!
-
 Originally Posted by mud-freak
Das ist ziemlich einfach möglich und erfordert effektiv nur eine Zeile Code:
Code:
instance ItMw_ShortSword1(C_Item) {
effect = "SPELLFX_FIRESWORD";
};
wobei ItMw_ShortSword1 hier die Waffeninstanz ist.
Hier als kompletter Patch zum austesten und reinschauen: Ninja_FireSword.vdf
Setzt man den Patch ein, wird jedes "Kurzschwert der Miliz" mit einem Feuereffekt versehen. Nimmt man den Patch wieder heraus, verschwindet auch der Effekt.
I dig out a quite old post and could be not update, but how it is possible, that by writing with Ninja:
Code:
instance ItMw_ShortSword1 (C_Item) {
effect = "SPELLFX_FIRESWORD";
};
the another properties are not overwritten. So the original name remains etc.
but when I write:
Code:
func int DIA_Addon_Ramon_FirstWarn_Condition()
{
return true;
};
it overwrites entire function?
Gladiator – fully German localized, total-conversion modification with original game flow [link]
-
Yes, correct. Gothic merges instance functions. That means new code is executed after the original. Callable functions are replaced.
-
 Originally Posted by Damianut
I dig out a quite old post  and could be not update, but how it is possible, that by writing with Ninja:
[...]
it overwrites entire function?
On a technical level it's somewhat like "instances are just actions that apply values to a certain INSTANCE", their body consists of assignments (name = "value")
Thus overriding "instance functions" is merely adding additonal assignments, thus overriding previous values.
whereas functions contain logic, when should your overridden function be called? At the start? at the end? when should the game evaluate the result?
functions can theoretically contain very expensive code, having 10 "overrides" that all do the expensive things, just so that the last one wins, would be a huge waste of resources and cause of FPS drops
-
 Originally Posted by Kirides
having 10 "overrides" that all do the expensive things, just so that the last one wins, would be a huge waste of resources and cause of FPS drops
Thanks for the further explanation. 
Ninja in Poland
Using the patches for Ninja is common in German Gothic community, but a situation is quite different abroad. When in Polish community you chat about the plugins, you know, that they are generally for Union.
That's why I wrote the article about Ninja – I briefly explained what Ninja is, and why you should install it. I also presented a list of the patches, which the most probably haven't an equivalent for Union.
I prepared English translation of the article. So you can read about Ninja from Polish perspective: Gothic Up.
And here the original, if Polish players will read this post: Gothic Up.
Last edited by Damianut; 09.09.2024 at 18:48.
-
Thank you again for this article. It's a good read! And thanks for sharing the link here, too!
-
Neuling
Hi zusammen,
ich bin aktuell dabei einen kleinen Patch zu erstellen, tue mich allerdings mit der Validierung und Kompatibilität schwer. (Ich nutze den GitHub Workflow für den PatchValidator)
Zum einen wundere ich mich, dass vom Validator selbst TRUE als Symbol(richtiges Wort?) erkannt wird, vielleicht kann mich ja jemand erleuchten?
Zum anderen baut mein Script auf recht vielen Symbolen(?) aus dem Original auf, was man ja eigentlich nicht voraussetzen sollte. Leider gelingt es mir aber nicht Script-eigene Variablen zu nutzen, da ich keine gültige Zuweisung von PC_Hero zu meiner variable hinbekomme.
Ich hoffe jemand erkennt meinen Fehler und kann mir den richtigen Ansatz zeigen. 
Eine andere Frage ist auch noch woher ich den Variablen Typen z.B. für PC_Hero meiner Variable kennen soll?
Vermutlich stell ich mich da einfach blöd an, aber kann man diese irgendwo nachschlagen, ohne gleich alle Spieldateien durchwühlen zu müssen ?
Oder ist meine Herangehensweise vlt. gar keine gute Idee für einen Patch?
Für ein Feedback oder sogar Verbesserungsvorschläge wäre ich echt dankbar. 
Hier der aktuelle Code :
Code:
//*******************************************************
// Validation of Symbols
//*******************************************************
//var string FP_PC_Hero;
//Func void Ultimate validation (){
// if (MEM_FindParserSymbol("PC_Hero") != -1) {
// var zCPar_Symbol symb; symb = _^(MEM_GetSymbol("PC_Hero"));
// value = symb.content;
// }
//}
//*******************************************************
// Das Stoßgebet für Zwischendurch
//*******************************************************
INSTANCE FastPray_PC_PrayShrine_Pray_Better (C_Info)
{
npc = PC_Hero;
nr = 15;
condition = FastPray_PC_PrayShrine_Pray_Better_Condition;
information = FastPray_PC_PrayShrine_Pray_Better_Info;
permanent = 1;
description = "Beten - Besser";
};
FUNC INT FastPray_PC_PrayShrine_Pray_Better_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_PRAYSHRINE)
{
return 1;
};
};
FUNC VOID FastPray_PC_PrayShrine_Pray_Better_Info()
{
if (ShrineIsObsessed == 1)
{
SC_IsObsessed = TRUE;
PrintScreen (PRINT_SCIsObsessed, -1,-1,FONT_Screen,2);
Snd_Play ("DEM_Die");
}
else
{
Info_ClearChoices (FastPray_PC_PrayShrine_Pray_Better);
Info_AddChoice (FastPray_PC_PrayShrine_Pray_Better,Dialog_Back,FastPray_PC_PrayShrine_Pray_Better_Back);
if (Npc_HasItems (hero,ItMi_Gold) >=1000)
{
Info_AddChoice (FastPray_PC_PrayShrine_Pray_Better,"Ich will beten und spende 1000 Goldstücke.",FastPray_PC_PrayShrine_Pray_UltimatePay);
};
};
};
FUNC VOID FastPray_PC_PrayShrine_Pray_Better_Back ()
{
Info_ClearChoices (FastPray_PC_PrayShrine_Pray_Better);
};
//****************
// 1000 Gold - Modded Version
//****************
func VOID FastPray_PC_PrayShrine_Pray_UltimatePay ()
{
var int zufall; zufall = Hlp_Random(100);
Npc_RemoveInvItems (hero,ItMi_Gold, 1000);
// ----- Heute Schon gebetet? -----
if (PrayDay == Wld_GetDay())
{
PrintScreen (Print_BlessNone, -1, -1, FONT_SCREEN, 2);
}
else//heute noch nicht gebetet
{
if (Shrine_STR_Bonus < 10)
&& (hero.guild != GIL_KDF)
&& (hero.guild != GIL_NOV)
&& (zufall < 50)
{
B_BlessAttribute (hero, ATR_STRENGTH, 10);
Shrine_STR_Bonus += 10;
}
else if (Shrine_DEX_Bonus < 10)
&& (hero.guild != GIL_KDF)
&& (hero.guild != GIL_NOV)
&& (zufall >= 50)
{
B_BlessAttribute (hero, ATR_DEXTERITY, 10);
Shrine_DEX_Bonus += 10;
}
else if (Shrine_MANA_Bonus < 20)
&& (hero.guild != GIL_SLD)
&& (hero.guild != GIL_DJG)
{
B_BlessAttribute (hero, ATR_MANA_MAX, 10);
Shrine_MANA_Bonus += 10;
}
else
{
B_BlessAttribute (hero, ATR_HITPOINTS_MAX, 30);
};
};
//PrayDay = Wld_GetDay (); // Keine Limitierung auf 1 mal täglich mehr
Info_ClearChoices (FastPray_PC_PrayShrine_Pray_Better);
};
func void FastPray_Init_Internal (){
};
Last edited by Sebtho; 05.10.2024 at 22:08.
Reason: Edit: Frage konkretisiert
-
 Originally Posted by Sebtho
Hi zusammen,
ich bin aktuell dabei einen kleinen Patch zu erstellen, tue mich allerdings mit der Validierung und Kompatibilität schwer. (Ich nutze den GitHub Workflow für den PatchValidator)
Zum einen wundere ich mich, dass vom Validator selbst TRUE als Symbol(richtiges Wort?) erkannt wird, vielleicht kann mich ja jemand erleuchten?
[...]
TRUE ist auch nur eine "const int TRUE = 1;" in den Scripten, es ist kein Sprachkonstrukt wie in modernen programmiersprachen (C hat auch kein true/false - älteres C zumindest)
 Originally Posted by Sebtho
Zum anderen baut mein Script auf recht vielen Symbolen(?) aus dem Original auf, was man ja eigentlich nicht voraussetzen sollte. Leider gelingt es mir aber nicht Script-eigene Variablen zu nutzen, da ich keine gültige Zuweisung von PC_Hero zu meiner variable hinbekomme.
Ich hoffe jemand erkennt meinen Fehler und kann mir den richtigen Ansatz zeigen. 
[...]
Wenn dem der Fall ist, kann dein Patch nur in wenigen Mods genutzt werden, und dann auch nur in Gothic 2 vermutlich.
 Originally Posted by Sebtho
Eine andere Frage ist auch noch woher ich den Variablen Typen z.B. für PC_Hero meiner Variable kennen soll?
Vermutlich stell ich mich da einfach blöd an, aber kann man diese irgendwo nachschlagen, ohne gleich alle Spieldateien durchwühlen zu müssen ?
[...]
(Shameless plug)
Mit Visual Studio Code und meiner Erweiterung https://forum.worldofplayers.de/foru...lus-Extension/
kann man sehr komfortabel durch den Quellcode navigieren und auch Symbole suchen.
z.B. mit der Tastenkombination STRG+T [Bild: attachment.php?s=a84fe08a75cc3709e54e70d1c4d5ac06&attachmentid=53973&d=1728203372&thumb=1]
Des weiteren kann man auch noch "zu den Definitionen" und anderen dingen springen, oder alle Verweise auf eine Variable anzeigen.
-
Version 3.1.16
Es gibt eine neue Version von Ninja.
Damit wird die neuste Version von Ikarus und die neuste Version von LeGo nun auch nach Versionsnummer unterstützt. Das ist nur eine Formalität, inhaltlich gibt es dort keine Änderungen.
Aktueller Download über Spine, im Steam Workshop von Gothic 1 und Gothic 2 oder auf GitHub.
Der Changelog findet sich hier.
Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung finden sich auch im GitHub Repository.
-
 Originally Posted by mud-freak
Es gibt eine neue Version von Ninja.
Damit wird die neuste Version von Ikarus und die neuste Version von LeGo nun auch nach Versionsnummer unterstützt. Das ist nur eine Formalität, inhaltlich gibt es dort keine Änderungen.
Aktueller Download über Spine, im Steam Workshop von Gothic 1 und Gothic 2 oder auf GitHub.
Der Changelog findet sich hier.
Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung finden sich auch im GitHub Repository.
Hey,
Ninja wird von allen Browsern aufgrund vom Microsoft Defender direkt als Virus markiert und in Quarantäne verschoben.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
|
|