forging black sword running TFL mod

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Gordar

forging black sword running TFL mod

Post by Gordar »

I was wondering if anyone has already solved the following problem.

I'm running Ultima 7 BG + FoV on exult 1.4.05svn + snapshot and until a certain point in the game everything works fine.

Eventually, when I try to forge the black sword, which I need to kill the dragon (forgot his name) I keep getting the message that The edge of the sword has improved, but it won't progress.

I tried the solution Achile Dragon tried in the following thread,

http://exult.info/forum/viewtopic.php?p=323487#p323487

but just like him, I then cannot attach whatshisname to the sword, since I'm still working with the sword black instead of the partially finished black sword (all that it changes are the dialog options).

So I was wondering if the people working on TFL have found a solution or if anyone else has found a way to work around it.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by Dominus »

In addition to posting here you can try the tfl mods own forum as well - the link is on our links page
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by Malignant Manor »

With the flags set, you should be able to change the blank frame to 15 and its quality to 1 and get the daemon to bond with the sword.



For some reason, in misc\blacksmithing\functions.uc void temperSword object#() (), the quality of the blank is not being read or set.

There's also a global flag that isn't being set. The sword should also change to frame 15 and quality 1 when finished.


It should be something like this but the changing frame and quality doesn't work.

Code: Select all

--- C:/tfl/bg_gflags2.uc	Wed Mar 24 20:45:26 2010
+++ C:/tfl/bg_gflags2~.uc	Wed Mar 24 20:30:26 2010
@@ -32,6 +32,7 @@
 	SCROLL_OF_INFINITY				= 0x030E,
 	MET_ERETHIAN					= 0x0310,
 	MET_ARCADION					= 0x0313,
+	IMPROVED_BLADE					= 0x032D,
 	BROKE_MIRROR					= 0x032F,
 	COMMANDED_BOND					= 0x0330,
 	REFUSED_HELP_ARCADION			= 0x0331,

Code: Select all

--- C:/tfl/functions.uc	Wed Mar 24 20:45:14 2010
+++ C:/tfl/functions_test.uc	Wed Mar 24 20:46:51 2010
@@ -217,23 +217,24 @@
 	if (isBlackSword(swordblank))
 	{
 		//Sword is as good as it gets
-		if (quality == SWORDBLANK_READY)
+		if (gflags[FINISHED_BLADE_FORGING])
 		{
 			avatarSay("The blade has been worked as well as it can be. It will take some form of magic to make this sword blank into a usable weapon.");
 		}
 		//Sword has been improved
-		else if (quality == SWORDBLANK_IMPROVED)
+		else if (gflags[IMPROVED_BLADE])
 		{
 			if (rand > 66)
 			{
-				swordblank->set_item_quality(SWORDBLANK_READY);
 				gflags[FINISHED_BLADE_FORGING] = true;
+				swordblank->set_item_frame(15);
+				swordblank->set_item_quality(1);
 				avatarSay("You feel that you've done the best job that you can, but the sword doesn't feel quite right. It's much too heavy and cumbersome to wield as a weapon.");
 			}
 			//Whoops! There goes your hard work!
 			else if (rand set_item_quality(0);
+				gflags[IMPROVED_BLADE] = false;
 				avatarSay("That last blow was perhaps a bit too hard, It'll take a while to hammer out the flaws.");
 			}
 		}
@@ -242,7 +243,7 @@
 		{
 			if (rand > 66)
 			{
-				swordblank->set_item_quality(SWORDBLANK_IMPROVED);
+				gflags[IMPROVED_BLADE] = true;
 				avatarSay("After a short while you notice that the edge has definitely improved.");
 			}
 		}
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by Malignant Manor »

After actually getting a chance to look at the code more, I realized that quality change wasn't needed for keyring/TFL and saw where the frame change for cooling was. Here's a patch that works for The Keyring Mod. TFL is in cvs so I don't want to mess with it.

Code: Select all

Index: content/bgkeyring/src/headers/bg/bg_gflags2.uc
===================================================================
--- content/bgkeyring/src/headers/bg/bg_gflags2.uc	(revision 6295)
+++ content/bgkeyring/src/headers/bg/bg_gflags2.uc	(working copy)
@@ -32,6 +32,7 @@
 	SCROLL_OF_INFINITY				= 0x030E,
 	MET_ERETHIAN					= 0x0310,
 	MET_ARCADION					= 0x0313,
+	IMPROVED_BLADE					= 0x032D,
 	BROKE_MIRROR					= 0x032F,
 	COMMANDED_BOND					= 0x0330,
 	REFUSED_HELP_ARCADION			= 0x0331,
Index: content/bgkeyring/src/misc/blacksmithing/functions.uc
===================================================================
--- content/bgkeyring/src/misc/blacksmithing/functions.uc	(revision 6295)
+++ content/bgkeyring/src/misc/blacksmithing/functions.uc	(working copy)
@@ -52,9 +52,9 @@
 
 	if (isBlackSword(item))
 	{
-		if (quality == SWORDBLANK_READY)
+		if (gflags[FINISHED_BLADE_FORGING])
 			target_frame = 15;
-		else if (quality >= SWORDBLANK_IMPROVED)
+		else if (gflags[IMPROVED_BLADE])
 			target_frame = 14;
 		else
 			target_frame = 13;
@@ -217,23 +217,22 @@
 	if (isBlackSword(swordblank))
 	{
 		//Sword is as good as it gets
-		if (quality == SWORDBLANK_READY)
+		if (gflags[FINISHED_BLADE_FORGING])
 		{
 			avatarSay("The blade has been worked as well as it can be. It will take some form of magic to make this sword blank into a usable weapon.");
 		}
 		//Sword has been improved
-		else if (quality == SWORDBLANK_IMPROVED)
+		else if (gflags[IMPROVED_BLADE])
 		{
 			if (rand > 66)
 			{
-				swordblank->set_item_quality(SWORDBLANK_READY);
 				gflags[FINISHED_BLADE_FORGING] = true;
 				avatarSay("You feel that you've done the best job that you can, but the sword doesn't feel quite right. It's much too heavy and cumbersome to wield as a weapon.");
 			}
 			//Whoops! There goes your hard work!
 			else if (rand set_item_quality(0);
+				gflags[IMPROVED_BLADE] = false;
 				avatarSay("That last blow was perhaps a bit too hard, It'll take a while to hammer out the flaws.");
 			}
 		}
@@ -242,7 +241,7 @@
 		{
 			if (rand > 66)
 			{
-				swordblank->set_item_quality(SWORDBLANK_IMPROVED);
+				gflags[IMPROVED_BLADE] = true;
 				avatarSay("After a short while you notice that the edge has definitely improved.");
 			}
 		}

DC128
Posts: 4
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by DC128 »

Can someone please explain how to use this mod (for someone who doesn't have ANY programming skills).
DC128
Posts: 4
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by DC128 »

Specifically, how to use the patch to fix the forge issue.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by Dominus »

Download the tfl source code, the exult tools, apply the patch to the source and build the mod.
For applying the patch use patch utiluty if it exists for your OS or do it manually (not the file to patch is written in the patch and of that file which lines to delete (-) and which to add (+))
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
DC128
Posts: 4
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by DC128 »

Thanks for the info Dominus, but that is still a bit beyond my technical scope. I have TFL downloaded... can you explain step by step (like which file folders to open, which files to modify). I love the mods but I don't know much beyond downloading them.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: forging black sword running TFL mod

Post by Dominus »

Reading again through it, the working patch is for our keyring mod - not for tfl. You would need to figure it out yourself AND you would need to do this for the tfl source not the installable, precompiled mod.
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
PL

Re: forging black sword running TFL mod

Post by PL »

Has anyone time to give more clear instructions on how to make this work?
Locked