I tried to start an artifact starting with the elfstone that cures black breath;
I had in my inventory the following:
One line: 1 magic essence (or in another attempt, 38)
Next line: 99 magic essences
The first stack of magic essences was consumed but never the second, but that's less magic essence that normal!!!
This is specific to artifact creation, and contining the XP gain after modifying the artifact. In both cases you can get away with paying only 1 magic essence.
-Da alchemist
P.S.: other people have been knowing for that one for ages, it's just they didn't want it fixed. (-;
NeilStevens: That's funny.
Considering it takes a week of *boring, riskless, repetitive* game time to get 50 magic essences from *ID* scrolls and misc. indestructibles, I considered not telling... (also where can I find the 43 filthy rags I need in less than a month's game time??)
Very funny indeed. Joke is on people who are too honest to cheat. (-;
-Da alchemist
NeilStevens: Well, this is just more proof that New Alchemy was never tested and finished correctly.
AndreyEgoshin: Seems that because heaps of Magic essences are going one after another, taking the first heap and eliminating it makes another heap go up one level, thus missing from FOR loop. Well, this bug is fixed too. Compiled, tested. Code:
--- cmd7.old 2005-07-27 13:13:14.000000000 +0400
+++ cmd7.c 2005-08-10 22:37:50.135294400 +0400
@@ -1914,7 +1914,14 @@
if (j >= num)
{
/* Consume them */
- for (i = 0; i < INVEN_WIELD; i++)
+
+ /* As magic essenses heaps are going one after another,
+ * I somewhat reworked the removing procedure.
+ * This should remove that 1-essence artifact trick (BugReport11)*/
+
+ i=0;
+ j=num;
+ while(i<INVEN_WIELD)
{
object_type *o_ptr = &p_ptr->inventory[i];
@@ -1923,9 +1930,18 @@
/* This can lead to invalid object pointer for objects that come after the magic
* essences. Therefore, every artifactable object should come before the essences
*/
+
+ j-=o_ptr->number;
inven_item_increase(i, -num);
inven_item_describe(i);
inven_item_optimize(i);
+ num=j;
+ if (num<=0)
+ break;
+ }
+ else
+ {
+ i++;
}
}
Actius: this is a close bug now, but I wanted to make a comment: there's better ways of getting magic essences. If I recall correctly, one of them involves empty bottles and certain dungeons with very large levels.
AndreyEgoshin:
Yeah, this reminds me of (something spoily)
NeilStevens: Spoiler removed from previous comment to remove table abuse (please see Style Guide for details)
AndreyEgoshin: As of current CVS, this fix has not been implemented. Anybody with CVS access, apply fix, please.
GreyCat: OK, I took another look at this. I've applied a modified version of this to my local tree, and I'm testing it now. Since I've never run an alchemist before, I need a bit of time to see how it's supposed to work....
GreyCat: Committed now in tome_230_branch.
ToME Wiki