Page 1 of 1

forging black sword running TFL mod

Posted: Wed Mar 24, 2010 9:48 pm
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.

Re: forging black sword running TFL mod

Posted: Wed Mar 24, 2010 11:25 pm
by Dominus
In addition to posting here you can try the tfl mods own forum as well - the link is on our links page

Re: forging black sword running TFL mod

Posted: Thu Mar 25, 2010 12:54 am
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.");
 			}
 		}

Re: forging black sword running TFL mod

Posted: Thu Mar 25, 2010 3:04 am
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.");
 			}
 		}


Re: forging black sword running TFL mod

Posted: Tue Jun 03, 2014 8:00 am
by DC128
Can someone please explain how to use this mod (for someone who doesn't have ANY programming skills).

Re: forging black sword running TFL mod

Posted: Tue Jun 03, 2014 8:01 am
by DC128
Specifically, how to use the patch to fix the forge issue.

Re: forging black sword running TFL mod

Posted: Tue Jun 03, 2014 7:02 pm
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 (+))

Re: forging black sword running TFL mod

Posted: Wed Jun 04, 2014 1:05 am
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.

Re: forging black sword running TFL mod

Posted: Wed Jun 04, 2014 5:30 am
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.

Re: forging black sword running TFL mod

Posted: Wed Jan 04, 2017 6:18 pm
by PL
Has anyone time to give more clear instructions on how to make this work?