Finished Most of the conversions. Everything works great. The only thing I haven't converted to ServUO 56.1 is the BOD Books. You can still add the new BOD's with the new Ores and woods to the BOD Books, it may just show up as the wrong resource type right now. I'm still working on those but everything else is working fine. I tested some of it but not all of it.
Another thing is that the DAAT99 Turn in Process has been left out and kept as the ServUO Default BOD Turn in. It all seems to work with the new Ores anyways.
Here is the Zip of all the Modifications for OWLTR for ServUO 56.1.

All other items from OWLTR have been left out of this Zip. You will need to grab the rest from the Original Zip.

I will answer any questions I can.
Post automatically merged:

Forgot to add:
All the files are stock ServUO 56.1 files. No other modifications were made to them besides the Daat99 mergers.


Rar file is broken. Can't open it.
 
I am able to download it without any issues. The RAR still works. You need to use WinRAR to open it if you haven't tried already. I haven't had much time to look into this issue yet, but I know Cody has been working on it. I will look into it further later tonight if I have time.
 
I got boards working again and so far no crashes or bugs with crafting still testing before release
Very good news ! Thank you man for your efforts on that one. I was looking too, since my last post. Does it lead you too to iResource ?
Thx anyway !
 
Id have to look again what changed but i will possbily post tonight a clean copy with fs ats 2.0 and owltr 4.0 with repo changes up to most recent dev copy
 
Wow ! That would really be appreciated. Thanks a lot for sharing your work. You’re the man ^^

I didn’t think about looking in the FS-ATS scripts... actually changes in OWLTR and core/distro ServUO shouldn’t interfere, but I didn’t think about it as a whole.

Do you know about the ServUORepack ? That’s basically an update to it that you are working on. Demented did an awesome job on this one a few years ago.
I am glad someone could achieve updating OWLTR and FS-ATS with the updated releases of ServUO ;)
You don’t know how many times I tried, ending with many hidden bugs that reveal themselves too late ...

Sooooooo : BIG thank you !
 
Hello everyone think i have most everything working just this crash log when mining stone


Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Engines.Harvest.HarvestSystem.FinishHarvesting(Mobile from, Item tool, HarvestDefinition def, Object toHarvest, Object locked) in C:\Users\codya\Documents\DoomsDayUpdate\Scripts\Services\Harvest\HarvestSystem.cs:line 168
at Server.Engines.Harvest.HarvestSoundTimer.OnTick() in C:\Users\codya\Documents\DoomsDayUpdate\Scripts\Services\Harvest\Core\HarvestSoundTimer.cs:line 31
at Server.Timer.Slice() in C:\Users\codya\Documents\DoomsDayUpdate\Server\Timer.cs:line 409
at Server.Core.Main(String[] args) in C:\Users\codya\Documents\DoomsDayUpdate\Server\Main.cs:line 673
 

Attachments

  • HarvestSystem.cs
    30.5 KB · Views: 7
Hello everyone think i have most everything working just this crash log when mining stone


Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Engines.Harvest.HarvestSystem.FinishHarvesting(Mobile from, Item tool, HarvestDefinition def, Object toHarvest, Object locked) in C:\Users\codya\Documents\DoomsDayUpdate\Scripts\Services\Harvest\HarvestSystem.cs:line 168
at Server.Engines.Harvest.HarvestSoundTimer.OnTick() in C:\Users\codya\Documents\DoomsDayUpdate\Scripts\Services\Harvest\Core\HarvestSoundTimer.cs:line 31
at Server.Timer.Slice() in C:\Users\codya\Documents\DoomsDayUpdate\Server\Timer.cs:line 409
at Server.Core.Main(String[] args) in C:\Users\codya\Documents\DoomsDayUpdate\Server\Main.cs:line 673


But we can disable this until you post a fix?
 
If i just comment said line out it would probably break mining all together
Post automatically merged:


Post automatically merged:

Post automatically merged:

Here it is and its super late enjoy everyone!

56.1 with FS ATS 2.0 & OWLTR 4.0
Added a token drop system with champs (mimics gold) can be disabled/adjusted in config
 
Last edited:
If anyone that has worked this system before could do the community a favor and double check the work put into this and verify it possibly make a new post to raise awareness?
 
Thanks for "56.1 with FS ATS 2.0 & OWLTR 4.0 "

Unfortunately I still have a problem with some items, the names are double, where can the error be? "CraftItem.cs"?
 

Attachments

  • 5.png
    5.png
    73.3 KB · Views: 25
  • 4.png
    4.png
    59.5 KB · Views: 25
  • 3.png
    3.png
    52.8 KB · Views: 21
  • 2.png
    2.png
    69.5 KB · Views: 16
  • 1.png
    1.png
    104.6 KB · Views: 17
  • CraftItem.cs
    77.4 KB · Views: 0
i believe that would be in your basearmor baseweapon etc reforgesuffix/GetNameString might have forgotten to comment one out
 
I think it's working as designed. I'm running it on the last ServUO version since all the major changes were released just after I finished integrating it and I refuse to do it again!

If it's a regular item the name is repeated. If it's a special version of that item, the main yellow text is the item and the second descriptor is the name of the special item.

owltr example.jpg
 
Nice but i dont think thats with owltr i think thats just the repo magic items
Post automatically merged:

I am however interested in what you did to fix this
 
Does this example help more? The two lines of the description do vary depending on the item being displayed, enough that I considered it normal and not an issue to resolve.


example 2.jpg
Post automatically merged:

Setting the material from platinum to iron results in a "double name" like meex's post showed. Since the two values do change depending on material and/or being a special "named" weapon, I decided that was normal and didn't go any further in trying to remove one of them for normal items.

example 3.jpg
 
Last edited:
Ah yea i removed that because i thought it was bugged too i still think it might be, does it double name items on a clean repo??
 
This might help with the carpentry issue if anyone has an issue getting the boards to work right.

So, I was having an issue with my servuo not wanting to play nice with Daat99. The issue I was banging my head against my desk about. My carpentry menu was popping out items made with the wood but not using the right wood. I found an old sort of thing and I figured... This could help people.

The issue is really you need to replace board with log for the script of defcarpentry.cs and replace the line defining the sorts of boards with "Logs" instead of the number defining board.

This script right here helped me out quite a bit as a reference...

Example of New script
C#:
            this.AddCraft(typeof(BarrelStaves), 1044294, 1027857, 00.0, 25.0, typeof(Log), 1044041, 5, 1044351);
            this.AddCraft(typeof(BarrelLid), 1044294, 1027608, 11.0, 36.0, typeof(Log), 1044041, 4, 1044351);
            this.AddCraft(typeof(ShortMusicStand), 1044294, 1044313, 78.9, 103.9, typeof(Log), 1044041, 15, 1044351);
            this.AddCraft(typeof(TallMusicStand), 1044294, 1044315, 81.5, 106.5, typeof(Log), 1044041, 20, 1044351);
            this.AddCraft(typeof(Easle), 1044294, 1044317, 86.8, 111.8, typeof(Log), 1044041, 20, 1044351);
            if (Core.SE)
C#:
            this.SetSubRes(typeof(Log), "Logs");
          
            //daat99 OWLTR start - custom Wood
            daat99.ResourceHelper.AddWoodResources(this);
            //daat99 OWLTR end - custom Wood

            // Add every material you want the player to be able to choose from
            // This will override the overridable material    TODO: Verify the required skill amount
            AddSubRes(typeof(Log), "Log", 00.0, 0);
            AddSubRes(typeof(AshLog), "Ash", 20.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(YewLog), "Yew", 30.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(OakLog), "Oak", 40.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(EbonyLog), "Ebony", 50.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(BambooLog), "Bamboo", 60.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(HeartwoodLog), "Heartwood", 70.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(BloodwoodLog), "Bloodwood", 80.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(FrostwoodLog), "Frostwood", 90.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(PurpleHeartLog), "PurpleHeart", 100.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(RedwoodLog), "Redwood", 110.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(PetrifiedLog), "Petrified", 115.0, "You have no idea how to work this type of lumber.");

Example of old script

C#:
            AddCraft(typeof(BarrelStaves), 1044294, 1027857, 00.0, 25.0, typeof(Board), 1044041, 5, 1044351);
            AddCraft(typeof(BarrelLid), 1044294, 1027608, 11.0, 36.0, typeof(Board), 1044041, 4, 1044351);
            AddCraft(typeof(ShortMusicStandLeft), 1044294, 1044313, 78.9, 103.9, typeof(Board), 1044041, 15, 1044351);
            AddCraft(typeof(ShortMusicStandRight), 1044294, 1044314, 78.9, 103.9, typeof(Board), 1044041, 15, 1044351);
            AddCraft(typeof(TallMusicStandLeft), 1044294, 1044315, 81.5, 106.5, typeof(Board), 1044041, 20, 1044351);
            AddCraft(typeof(TallMusicStandRight), 1044294, 1044316, 81.5, 106.5, typeof(Board), 1044041, 20, 1044351);
            AddCraft(typeof(EasleSouth), 1044294, 1044317, 86.8, 111.8, typeof(Board), 1044041, 20, 1044351);
            AddCraft(typeof(EasleEast), 1044294, 1044318, 86.8, 111.8, typeof(Board), 1044041, 20, 1044351);
            AddCraft(typeof(EasleNorth), 1044294, 1044319, 86.8, 111.8, typeof(Board), 1044041, 20, 1044351);
C#:
            SetSubRes(typeof(Board), 1072643);

            // Add every material you want the player to be able to choose from
            // This will override the overridable material    TODO: Verify the required skill amount
            AddSubRes(typeof(Board), 1072643, 00.0, 1044041, 1072652);
            AddSubRes(typeof(OakBoard), 1072644, 65.0, 1044041, 1072652);
            AddSubRes(typeof(AshBoard), 1072645, 75.0, 1044041, 1072652);
            AddSubRes(typeof(YewBoard), 1072646, 85.0, 1044041, 1072652);
            AddSubRes(typeof(HeartwoodBoard), 1072647, 95.0, 1044041, 1072652);
            AddSubRes(typeof(BloodwoodBoard), 1072648, 95.0, 1044041, 1072652);
            AddSubRes(typeof(FrostwoodBoard), 1072649, 95.0, 1044041, 1072652);
        }
    }
}
You will need to replace all the board with Log. You have scrutinize it though as you do so as there are 2 items that contain the word board. Then at the bottom, you will need to replace "SetSubRes(Typeof(Board), 1072643" to "AddSubRes(typeof(Log), "Log", 00.0, 0);"

This made it work for me with Daat99 on the old server build where it is consuming the logs of the build I already had, along with adding boards as well. I changed the required skill as well to what i felt would be right for my server.

I felt this would help anyone who is scratching their head about Daat99's Carpentry system not working for them.
 
I had fixed these issues i thought? Ill have to share again cause this doesnt look like what i did
Post automatically merged:

I had fixed these issues i thought? Ill have to share again cause this doesnt look like what i did
Ah it looks different because you dont have the custom resources listed
 
I had fixed these issues i thought? Ill have to share again cause this doesnt look like what i did
Post automatically merged:


Ah it looks different because you dont have the custom resources listed
I looked at the defcarpentry and on my version of servuo (it's probably outdated, but I was having issues with your version not implementing into my version and my version looked almost exactly like yours) and the issue it decided to have was not crafting properly. It would color the wood the right way but refuse to consume anything but regular boards. The version of my 'build' that I grabbed was doing the same thing. I had a lucky find in finding that script from 2011 and integrating it into the version of servuo I have. I wanted to share this to help with those who wanted to integrate.
 
Im not saying it wasnt messed up im just saying i dont think i updated it yet but i remember playing around with alot of the craft system.
 
And possibly? I know I downloaded the rar available and it says board instead of log. My first example is the one that helped my pub of servuo. Now crafters are consuming boards and logs of that specific good.

With board listed, it's consuming... well regular plain old boards.
C#:
            //daat99 OWLTR start - custom resources
            daat99.ResourceHelper.AddWoodResources(this);
            //daat99 OWLTR end - custom resources
        }
    }
}

//Vs
          this.SetSubRes(typeof(Log), "Logs");
            
            //daat99 OWLTR start - custom Wood
            daat99.ResourceHelper.AddWoodResources(this);
            //daat99 OWLTR end - custom Wood

            // Add every material you want the player to be able to choose from
            // This will override the overridable material    TODO: Verify the required skill amount
            AddSubRes(typeof(Log), "Log", 00.0, 0);
            AddSubRes(typeof(AshLog), "Ash", 20.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(YewLog), "Yew", 30.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(OakLog), "Oak", 40.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(EbonyLog), "Ebony", 50.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(BambooLog), "Bamboo", 60.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(HeartwoodLog), "Heartwood", 70.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(BloodwoodLog), "Bloodwood", 80.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(FrostwoodLog), "Frostwood", 90.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(PurpleHeartLog), "PurpleHeart", 100.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(RedwoodLog), "Redwood", 110.0, "You have no idea how to work this type of lumber.");
            AddSubRes(typeof(PetrifiedLog), "Petrified", 115.0, "You have no idea how to work this type of lumber.");
           // AddSubRes(typeof(HeartwoodLog), "Heartwood", 120.5, "You have no idea how to work this type of lumber.");
          //  AddSubRes(typeof(BloodwoodLog), "Bloodwood", 131.0, "You have no idea how to work this type of lumber.");
           // AddSubRes(typeof(FrostwoodLog), "Frostwood", 146.0, "You have no idea how to work this type of lumber.")
        }
    }
}
Post automatically merged:

Im not saying it wasnt messed up im just saying i dont think i updated it yet but i remember playing around with alot of the craft system.
:D well I hope this helps. I had a player who was telling me and i was like O!O Must set to work. ^_^ You did a good job at integrating most of the stuff.
 
No thats the log job that was supposed to consume boards and logs but really think it just did logs i think i actually have it set and consuming boards and also have daats edit commented out for resource helper
Post automatically merged:

You also have it there twice which isnt necessary i believe.
 
No thats the log job that was supposed to consume boards and logs but really think it just did logs i think i actually have it set and consuming boards and also have daats edit commented out for resource helper
Post automatically merged:

You also have it there twice which isnt necessary i believe.
The first part was showing a difference in the code. Sorry for the confusion. I am using an older verion of ServUO Due to our client not playing nice with the more recent pub. UOP multis don't fit the build I'm wanting and when we went for the build, we had issues with the 2018 version of servuo not doing well with the version of the UO client we needed. We then found we had issues with the only pub we could find being someone else custom server that we had to gut to get it as closer to what we needed as an older verion of the servuo as the version of 2018 wasn't being kind with what we needed it to do. Stuck between a hard place and a rock, we chose to gut the custom server, but de-integrating daat99 is just as hard if not harder than integrating daat99 OWLTR's system.
 
im getting this error
+ custom/MasterStorage/MasterStorage.cs:
CS1520: Line 29: Method must have a return type
CS1002: Line 29: ; expected
CS1519: Line 30: Invalid token ':' in class, struct, or interface member
laration
CS1519: Line 30: Invalid token ')' in class, struct, or interface member
laration
Scripts: One or more scripts failed to compile or no script files were found
C#:
/*
 created by:
     /\            888                   888     .d8888b.   .d8888b. 
____/_ \____       888                   888    d88P  Y88b d88P  Y88b
\  ___\ \  /       888                   888    888    888 888    888
 \/ /  \/ /    .d88888  8888b.   8888b.  888888 Y88b. d888 Y88b. d888
 / /\__/_/\   d88" 888     "88b     "88b 888     "Y888P888  "Y888P888
/__\ \_____\  888  888 .d888888 .d888888 888           888        888
    \  /      Y88b 888 888  888 888  888 Y88b.  Y88b  d88P Y88b  d88P
     \/        "Y88888 "Y888888 "Y888888  "Y888  "Y8888P"   "Y8888P" 
*/
//comment the USE_TOKENS line if you don't have daat99 tokens system (1.0) or daat99 OWLTR system
#define USE_TOKENS
//comment the USE_OWLTR3 line if you don't have OWLTR 2.0+
#define USE_OWLTR3

using Server;
using Server.Mobiles;
using Server.Items;
using System;
using Server.ContextMenus;
using System.Collections.Generic;
using System.Collections;
using daat99;
namespace Daat99MasterLooterSystem
{
    public sealed class MasterLooterSystem : MasterStorage
    {
      public MasterLootersystem(Serial serial)
            : base(serial)
         {
         }
        public override void Serialize(GenericWriter writer)
         {
            base.Serialize(writer);
         }
        public override void Deserialize(GenericReader reader)
         {
            base.Deserialize(reader);
         }
    }
}
 
after it loads i get this error
Error: Type 'Daat99MasterLooterSystem.MasterLooterGoldLedgerDeed' was not found
Delete all of those types? (y/n)
Types will not be deleted. An exception will be thrown.
Error:
System.Exception: Bad type 'Daat99MasterLooterSystem.MasterLooterGoldLedgerDeed

at Server.World.ReadTypes(BinaryReader tdbReader) in c:\Documents and Settin
s\Owner\Desktop\JustUO\Server\World.cs:line 311
at Server.World.Load() in c:\Documents and Settings\Owner\Desktop\JustUO\Ser
er\World.cs:line 436
at Server.Core.Main(String[] args) in c:\Documents and Settings\Owner\Deskto
\JustUO\Server\Main.cs:line 608
This exception is fatal, press return to exit
 
my 2 new errors i reinstalled it

Errors:
+ daat99 system/MasterStorage/MasterStorage.cs:
CS1502: Line 1422: The best overloaded method match for 'daat99.ItemInform
ion.ItemInformation(string, Server.Items.SlayerName[], Server.Items.ItemQualit
Server.Mobile, int)' has some invalid arguments
CS1503: Line 1422: Argument 3: cannot convert from 'Server.Items.Instrumen
uality' to 'Server.Items.ItemQuality'
+ daat99 system/MasterStorage/MasterStorageUtils.cs:
CS0266: Line 361: Cannot implicitly convert type 'Server.Items.ItemQuality
to 'Server.Items.InstrumentQuality'. An explicit conversion exists (are you mi
ing a cast?)
Scripts: One or more scripts failed to compile or no script files were found.
Post automatically merged:

my 2 new errors i reinstalled it

Errors:
+ daat99 system/MasterStorage/MasterStorage.cs:
CS1502: Line 1422: The best overloaded method match for 'daat99.ItemInform
ion.ItemInformation(string, Server.Items.SlayerName[], Server.Items.ItemQualit
Server.Mobile, int)' has some invalid arguments
CS1503: Line 1422: Argument 3: cannot convert from 'Server.Items.Instrumen
uality' to 'Server.Items.ItemQuality'
+ daat99 system/MasterStorage/MasterStorageUtils.cs:
CS0266: Line 361: Cannot implicitly convert type 'Server.Items.ItemQuality
to 'Server.Items.InstrumentQuality'. An explicit conversion exists (are you mi
ing a cast?)
Scripts: One or more scripts failed to compile or no script files were found.


BaseInstrument inst = (BaseInstrument)item;
ItemInformation iteminfo = new ItemInformation(inst.Name, new SlayerName[] { inst.Slayer, inst.Slayer2 }, inst.Quality, inst.Crafter, inst.UsesRemaining);


if (item is BaseInstrument)
{
((BaseInstrument)item).Name = info.Name;
((BaseInstrument)item).Slayer = info.Slayer;
((BaseInstrument)item).Slayer2 = info.Slayer2;
((BaseInstrument)item).Quality = info.Quality;
((BaseInstrument)item).Crafter = info.Crafter;
((BaseInstrument)item).UsesRemaining = info.UsesRemaining;
}

return item;
}
catch { }
 
Hello All,
i get an Error after start my Server.

Errors:
+ Engines/BulkOrders/LargeBOD.cs:
CS1519: Line 274: Ungültiges Token Else
CS1519: Line 276 Ungültiges Token (
CS1518 Klasse, Delegat, Enumeration
CS1518: Line 293: Klasse, Delegat, Enumeration
CS1022: Line 294: Typ- or Namespacedefination

I Need Help :)
 
Hello All,
i get an Error after start my Server.

Errors:
+ Engines/BulkOrders/LargeBOD.cs:
CS1519: Line 274: Ungültiges Token Else
CS1519: Line 276 Ungültiges Token (
CS1518 Klasse, Delegat, Enumeration
CS1518: Line 293: Klasse, Delegat, Enumeration
CS1022: Line 294: Typ- or Namespacedefination

I Need Help :)
You'll need to post the script
 
Hello everyone think i have most everything working just this crash log when mining stone


Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Engines.Harvest.HarvestSystem.FinishHarvesting(Mobile from, Item tool, HarvestDefinition def, Object toHarvest, Object locked) in C:\Users\codya\Documents\DoomsDayUpdate\Scripts\Services\Harvest\HarvestSystem.cs:line 168
at Server.Engines.Harvest.HarvestSoundTimer.OnTick() in C:\Users\codya\Documents\DoomsDayUpdate\Scripts\Services\Harvest\Core\HarvestSoundTimer.cs:line 31
at Server.Timer.Slice() in C:\Users\codya\Documents\DoomsDayUpdate\Server\Timer.cs:line 409
at Server.Core.Main(String[] args) in C:\Users\codya\Documents\DoomsDayUpdate\Server\Main.cs:line 673
you may have already fixed it by now, and this file prolly needs to be straighten up but I got it to call and send correctly when mining stone and gems. I know nothing about this language or anything I figured it out with a little trail and error.
 

Attachments

  • HarvestSystem.cs
    30.9 KB · Views: 13
So I have incorporated this onto my server recently and the main issue I am having now is with the Gargoyle Axe. When someone who's skill is below 120 uses it and a wood elemental above their level spawns it crashes the server. So like if their skill is 110 and a purpleheart spawns it crashes.

Server Crash Report
===================

ServUO Version 0.5, Build 7468.31112
Operating System: Microsoft Windows NT 6.2.9200.0
.NET Framework: 4.0.30319.42000
Time: 8/23/2020 3:49:20 PM
Mobiles: 36988
Items: 225884
Exception:
System.ArgumentNullException: Key cannot be null.
Parameter name: key
at System.Collections.Hashtable.get_Item(Object key)
at Server.Items.CraftResources.GetFromType(Type resourceType)
at Server.Engines.Harvest.Lumberjacking.OnHarvestFinished(Mobile from, Item tool, HarvestDefinition def, HarvestVein vein, HarvestBank bank, HarvestResource resource, Object harvested, Type type)
at Server.Engines.Harvest.HarvestSystem.FinishHarvesting(Mobile from, Item tool, HarvestDefinition def, Object toHarvest, Object locked)
at Server.Engines.Harvest.HarvestSoundTimer.OnTick()
at Server.Timer.Slice()
at Server.Core.Main(String[] args)
 
Hi I am trying to make a server for my house hold. The problem I have with OWLTR is that I have the option set to use the master storage for crating resources and reagents. But it is not pulling regs when I cast a spell, it will pull for crafting.
 
I have an issue with runic sewing kits that spawn from using gargoyle knives to create leather elementals. They appear and drop correctly, but when using them, they don't add any properties to crafted items. It looks like they are created here from RunicSewingKit.cs. Any ideas?
C#:
case 104: { PackItem(new RunicSewingKit(CraftResource.BarbedLeather, 5)); break; }

Also, does anyone know what to change within Imbuing.cs to allow imbuing from keys? I think it's an edit here:
C#:
if (success >= Utility.RandomDouble() || id < 0 || id > 180)
                {
                    if (from.AccessLevel == AccessLevel.Player)
                    {
                        from.Backpack.ConsumeTotal(gem, gemAmount);
                        from.Backpack.ConsumeTotal(primary, primResAmount);

                        if (specResAmount > 0)
                            from.Backpack.ConsumeTotal(special, specResAmount);
                    }


                    ImbueItem(from, i, id, value);
                }
                else
                {
                    // This is consumed regardless of success/fail
                    if (from.AccessLevel == AccessLevel.Player)
                    {
                        from.Backpack.ConsumeTotal(primary, primResAmount);
                    }

                    from.SendLocalizedMessage(1079774); // You attempt to imbue the item, but fail.
                    from.PlaySound(0x1E4);
                }
 
Back