|
||
|
|||||||
| Custom Script Release Archive This is a pre-script database archive of what our users had released. |
|
|
Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Forum Expert
Join Date: Oct 2003
Location: Spokane Valley, WA
Age: 24
Posts: 1,533
|
JEWEL CRAFT SYSTEM III by Ravenal of OrBSydia Version 3.0d http://jcs3.uniphix.com This system will ONLY Work for RunUO 1.0.0 Description Jewel crafting System was released 01-29-2004 and the 2nd Release was released sometimes a few months after the first. Jewel Craft System 1 and 2 were based off of the game called Everquest, but the whole system wasn't designed all off of Everquest, it had a bunch of different things from Everquest but didn't all come from Everquest. Jewel Craft System 3 is intearrly new, yes some parts of it is from Everquest, but with tons of new stuff into it, new bars, and new gems far more than the old System had, as you see below the Bars and the Gems, with the type of Value of each Bar and Gem, along with the what kind of Harvesting it comes from. The Jewel Craft System 3 has some new things such as on how to enchant a item and how to take a jewelry chisel and chip of the old rocks and see if you attcually receive some gems from the rocks you mine/crystals from. Jewel Craft System 3.1 and above will have more things such as Quest to obtain the EnchantedScrolls, JewelryChisel and such, you will be able to fight new bosses in the quests and also not only that, but the quest will at least be several game hours of fun to finally recieve the best stuff... NOTE: The Imbued stuff is working, this is part of the Quest which has NOT been developed yet. This System is completed, I just need shards to test this system out for me and tell me anything that needs changed on and I will consider it. Thanks. Change Log Version 3.0d - 6/24/2005 ( 10:46AM PST) Version awareness, whenever you see 3.0"letter" this means it is a fix and that you will need to update the file to be fixed. For those who already installed the system, you can just take those fixed files and override them in the correct folder... ==Bug==Version 3.0c - 6/18/2005 ( 4:26PM PST) Version awareness, whenever you see 3.0"letter" this means it is a fix and that you will need to update the file to be fixed. For those who already installed the system, you can just take those fixed files and override them in the correct folder... ==Bug==Version 3.0b - 6/9/2005 ( 4:41AM PST) Version awareness, whenever you see 3.0"letter" this means it is a fix and that you will need to update the file to be fixed. For those who already installed the system, you can just take those fixed files and override them in the correct folder... ==Bug==Version 3.0a - 6/2/2005 ( 11:40AM PST) Version awareness, whenever you see 3.0"letter" this means it is a fix and that you will need to update the file to be fixed. For those who already installed the system, you can just take those fixed files and override them in the correct folder... ==Fixed==Version 3.0 - 5/31/2005 ( 1:00AM PST ) There are currently no Bugs at this time, when the time comes I will fix those... Those that are italticized are future features... ==Edited==Installation To Install please read here
__________________
![]() |
|
|
|
|
#2 (permalink) |
|
Forum Expert
Join Date: Mar 2005
Location: Firmly Seated Infront of the Computer.
Age: 25
Posts: 429
|
Well were installing the new cpu in our new server - so there's not much i can do for the next day or so while everythings re-adjusted - ill give it a go if you like. Look's pretty interesting
![]() |
|
|
|
|
#4 (permalink) |
|
Newbie
Join Date: Jul 2004
Location: Louisiana
Age: 39
Posts: 74
|
- Error: Scripts\Engines\Harvest\CrystalMining.cs: CS0115: (line 343, column 24
) 'Server.Engines.JewelCraft.CrystalMining.OnHarvest Finished(Server.Mobile, Serv er.Item, Server.Engines.Harvest.HarvestDefinition, Server.Engines.Harvest.Harves tVein, Server.Engines.Harvest.HarvestBank, Server.Engines.Harvest.HarvestResourc e, object)': no suitable method found to override Any Ideas? ![]() |
|
|
|
|
#6 (permalink) |
|
Forum Expert
Join Date: Mar 2005
Location: Firmly Seated Infront of the Computer.
Age: 25
Posts: 429
|
We seem to be coming across a strange occurance at the moment, as i said we just drag and dropped over a custom install to see how that worked, well daat 99's one of our customs (and spellcrafting) and while it compile's perfectly, we do seem to be able to craft jewlery through the system, but, with my admin i cannot make ANYTHING with any sort of magical property's. Also we have no idea how this system works lol, pretty much were just [add''ing and praying lol.
Edit: ive gone through the scripts and seen how its all setup, another thing tho - even with maxed out skills i dont seem to be crafting ANY exceptional items, no msg about exceptional even at 100% success rate |
|
|
|
|
#7 (permalink) | |
|
Forum Expert
Join Date: Mar 2005
Location: Firmly Seated Infront of the Computer.
Age: 25
Posts: 429
|
Quote:
|
|
|
|
|
|
#8 (permalink) |
|
Forum Expert
Join Date: Oct 2003
Location: Spokane Valley, WA
Age: 24
Posts: 1,533
|
I am unsure how that error is being sent at this time, some others from OrBSydia are having issues too... Yes this was all built on a complete fresh install of RunUO 1.0.0
Note... IF YOu have edited the HarvestSystem.cs in anyway or even have the OLD Jewel Crafting System YOU MUST REMOVE that System otherwise YOU WILL have issues with the new system... It won't work EVER... The old system is OLD lol...
__________________
![]() |
|
|
|
|
#9 (permalink) | |
|
Forum Expert
Join Date: Oct 2003
Location: Spokane Valley, WA
Age: 24
Posts: 1,533
|
Quote:
This is exactly why you shouldn't ever edit the "Harvest System" Core stuff when most of it is overrided in the scripts... For example "OnHarvestFinished( from, tool, def, vein, bank, resource, toHarvest, type ); } public virtual void OnHarvestFinished( Mobile from, Item tool, HarvestDefinition def, HarvestVein vein, HarvestBank bank, HarvestResource resource, object harvested, Type type ) { }" he is missing a BIG thing in there that is supoose to be used on the OnHarvest Finished... Really the Attcuall DEFAULT OnHarvestFinished is this OnHarvestFinished( Mobile from, Item tool, HarvestDefinition def, HarvestVein vein, HarvestBank bank, HarvestResource resource, object harvested ) So for my system to work with that system, you will have to add "Type, type" to the end of the CrystalMining.cs 's OnHarvestFinished
__________________
![]() |
|
|
|
|
|
#13 (permalink) |
|
Forum Newbie
|
awakenlands,
When do you expect the new release of the Jewel Mining Script and all? I just downloaded today and installed on my server and been testing it out, I've had a few errors at the beginning, that in the next release you may want to include the additions to the code for the beginners. You've posted a quote earlier that said you needed to add Type type ) at the end of OnHarvestFinished, Yes which is true, but when done so, there accumulates another 6 errors in the Process, which was failed and not stated that you still are required to put type at the end of the rest of Harvest ) for it to compile without any errors, I will post the Code of the Changes I've done to the CrystalMining.cs file Other then that, Great Script so far.... I'm by far a Programmer or Scripter, and do't know my butt form a Hole in a ground when it comes to scripting... But I make my way when I have to... Thx for the Script, Very interesting! oh and I can't seem to get the EnchantedScroll to work yet either... Is it supposed to work? or will it only work Once the Enchanted Quest is Effective? |
|
|
|
|
#14 (permalink) |
|
Forum Newbie
|
Here is the Code Before the Additions I've made:
Code:
/**************************************************************/
/* Jewel Crafting System 3
/*
/* Scripted by Ravenal/awakenlands
/* Completed on: 5/31/2005
/*
/* This script is for anyone to use and edit, please be
/* considerate not to claim this as your script, thanks.
/*
/* Script Site: http://jcs3.uniphix.com
/* Shard's Site: http://www.paragonix.org
/* Developer's Site: http://www.orbsydia.com
/* Emulator's Site: http://www.runuo.com
/*
/* Script Version 3.0
/**************************************************************/
using System;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Targeting;
using Server.Engines.Harvest;
namespace Server.Engines.JewelCraft
{
public class CrystalMining : HarvestSystem
{
private static CrystalMining m_System;
public static CrystalMining System
{
get
{
if ( m_System == null )
m_System = new CrystalMining();
return m_System;
}
}
private HarvestDefinition m_MiningGems, m_Bars;
public HarvestDefinition MiningGems
{
get{ return m_MiningGems; }
}
public HarvestDefinition Bars
{
get{ return m_Bars; }
}
private CrystalMining()
{
HarvestResource[] res;
HarvestVein[] veins;
#region Crystal Mining for Gems
HarvestDefinition gems = m_MiningGems = new HarvestDefinition();
// Resource banks are every 8x8 tiles
gems.BankWidth = 8;
gems.BankHeight = 8;
// Every bank holds from 10 to 34 ore
gems.MinTotal = 10;
gems.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
gems.MinRespawn = TimeSpan.FromMinutes( 10.0 );
gems.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
gems.Skill = SkillName.Mining;
// Set the list of harvestable tiles
gems.Tiles = m_CrystalTiles;
// Players must be within 2 tiles to harvest
gems.MaxRange = 2;
// One ore per harvest action
gems.ConsumedPerHarvest = 1;
gems.ConsumedPerFeluccaHarvest = 2;
// The digging effect
gems.EffectActions = new int[]{ 11 };
gems.EffectSounds = new int[]{ 0x125, 0x126 };
gems.EffectCounts = new int[]{ 1 };
gems.EffectDelay = TimeSpan.FromSeconds( 1.6 );
gems.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
gems.NoResourcesMessage = "There is no gems here to mine.";
gems.DoubleHarvestMessage = "Someone has gotten to the gems before you.";
gems.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
gems.OutOfRangeMessage = 500446; // That is too far away.
gems.FailMessage = "You loosen some rocks but fail to find any useable gems.";
gems.PackFullMessage = "Your backpack is full, so the gem you mined is lost.";
gems.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 0.0, 0.0, 100.0, "You chip some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 20.0, 0.0, 50.0, "You chip some amber, and put it into your backpack.", typeof( Amber ) ),
new HarvestResource( 25.0, 5.0, 55.0, "You chip some emerald, and put it into your backpack.", typeof( Emerald ) ),
new HarvestResource( 30.0, 10.0, 60.0, "You chip some star rose, and put it into your backpack.", typeof( StarRose ) ),
new HarvestResource( 35.0, 15.0, 65.0, "You chip some amethyst, and put it into your backpack.", typeof( Amethyst ) ),
new HarvestResource( 40.0, 20.0, 70.0, "You chip some citrine, and put it into your backpack.", typeof( Citrine ) ),
new HarvestResource( 45.0, 25.0, 75.0, "You chip some turquoise, and put it into your backpack.", typeof( Turquoise ) ),
new HarvestResource( 50.0, 30.0, 80.0, "You chip some ruby, and put it into your backpack.", typeof( Ruby ) ),
new HarvestResource( 55.0, 35.0, 85.0, "You chip some sapphire, and put it into your backpack.", typeof( Sapphire ) ),
new HarvestResource( 60.0, 40.0, 90.0, "You chip some tourmaline, and put it into your backpack.", typeof( Tourmaline ) ),
new HarvestResource( 65.0, 45.0, 95.0, "You chip some star sapphire, and put it into your backpack.", typeof( StarSapphire ) ),
new HarvestResource( 70.0, 50.0, 105.0, "You chip some topaz, and put it into your backpack.", typeof( Topaz ) ),
new HarvestResource( 75.0, 60.0, 115.0, "You chip some jade, and put it into your backpack.", typeof( Jade ) ),
new HarvestResource( 80.0, 70.0, 125.0, "You chip some fire emerald, and put it into your backpack.", typeof( FireEmerald ) ),
new HarvestResource( 90.0, 80.0, 135.0, "You chip some star ruby, and put it into your backpack.", typeof( StarRuby ) ),
new HarvestResource( 95.0, 90.0, 145.0, "You chip some diamond, and put it into your backpack.", typeof( Diamond ) ),
new HarvestResource( 99.0, 95.0, 160.0, "You chip some blue diamond, and put it into your backpack.", typeof( BlueDiamond ) )
};
veins = new HarvestVein[]
{
new HarvestVein( 45.0, 0.0, res[0], null ), // Jewelry Rock
new HarvestVein( 8.8, 0.5, res[1], res[0] ), // Amber
new HarvestVein( 7.3, 0.5, res[2], res[0] ), // Emerald
new HarvestVein( 5.1, 0.5, res[3], res[0] ), // Star Rose
new HarvestVein( 4.8, 0.5, res[4], res[0] ), // Amethyst
new HarvestVein( 4.6, 0.5, res[5], res[0] ), // Citrine
new HarvestVein( 3.8, 0.5, res[6], res[0] ), // Turquoise
new HarvestVein( 3.5, 0.5, res[7], res[0] ), // Ruby
new HarvestVein( 3.1, 0.5, res[8], res[0] ), // Sapphire
new HarvestVein( 2.3, 0.5, res[9], res[0] ), // Tourmaline
new HarvestVein( 2.1, 0.5, res[10], res[0] ), // Star Sapphire
new HarvestVein( 1.9, 0.5, res[11], res[0] ), // Topaz
new HarvestVein( 1.6, 0.5, res[12], res[0] ), // Jade
new HarvestVein( 1.2, 0.5, res[13], res[0] ), // Fire Emerald
new HarvestVein( 0.9, 0.5, res[14], res[0] ), // Star Ruby
new HarvestVein( 0.7, 0.5, res[15], res[0] ), // Diamond
new HarvestVein( 0.6, 0.25, res[16], res[0] ) // Blue Diamond
};
gems.Resources = res;
gems.Veins = veins;
Definitions.Add( gems );
#endregion
#region Mining for Gems
HarvestDefinition mininggems = m_MiningGems = new HarvestDefinition();
// Resource banks are every 8x8 tiles
mininggems.BankWidth = 8;
mininggems.BankHeight = 8;
// Every bank holds from 10 to 34 ore
mininggems.MinTotal = 10;
mininggems.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
mininggems.MinRespawn = TimeSpan.FromMinutes( 10.0 );
mininggems.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
mininggems.Skill = SkillName.Mining;
// Set the list of harvestable tiles
mininggems.Tiles = m_MountainAndCaveTiles;
// Players must be within 2 tiles to harvest
mininggems.MaxRange = 2;
// One ore per harvest action
mininggems.ConsumedPerHarvest = 1;
mininggems.ConsumedPerFeluccaHarvest = 2;
// The digging effect
mininggems.EffectActions = new int[]{ 11 };
mininggems.EffectSounds = new int[]{ 0x125, 0x126 };
mininggems.EffectCounts = new int[]{ 1 };
mininggems.EffectDelay = TimeSpan.FromSeconds( 1.6 );
mininggems.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
mininggems.NoResourcesMessage = "There is no gems here to mine.";
mininggems.DoubleHarvestMessage = "Someone has gotten to the gems before you.";
mininggems.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
mininggems.OutOfRangeMessage = 500446; // That is too far away.
mininggems.FailMessage = "You loosen some rocks but fail to find any useable gems.";
mininggems.PackFullMessage = "Your backpack is full, so the gem you mined is lost.";
mininggems.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 45.0, 20.0, 80.0, "You dig some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 50.0, 25.0, 90.0, "You dig some onyx, and put it into your backpack.", typeof( Onyx ) ),
new HarvestResource( 90.0, 60.0, 120.0, "You dig some jasper, and put it into your backpack.", typeof( Jasper ) )
};
veins = new HarvestVein[]
{
new HarvestVein( 80.0, 0.0, res[0], null ), // Jewelry Rock
new HarvestVein( 18.5, 0.5, res[1], res[0] ), // Onyx
new HarvestVein( 1.5, 0.5, res[2], res[0] ) // Jasper
};
mininggems.Resources = res;
mininggems.Veins = veins;
Definitions.Add( mininggems );
#endregion
#region Mining for Bars
HarvestDefinition bars = m_Bars = new HarvestDefinition();
// Resource banks are every 8x8 tiles
bars.BankWidth = 8;
bars.BankHeight = 8;
// Every bank holds from 10 to 34 ore
bars.MinTotal = 10;
bars.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
bars.MinRespawn = TimeSpan.FromMinutes( 10.0 );
bars.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
bars.Skill = SkillName.Mining;
// Set the list of harvestable tiles
bars.Tiles = m_MountainAndCaveTiles;
// Players must be within 2 tiles to harvest
bars.MaxRange = 2;
// One ore per harvest action
bars.ConsumedPerHarvest = 1;
bars.ConsumedPerFeluccaHarvest = 2;
// The digging effect
bars.EffectActions = new int[]{ 11 };
bars.EffectSounds = new int[]{ 0x125, 0x126 };
bars.EffectCounts = new int[]{ 1 };
bars.EffectDelay = TimeSpan.FromSeconds( 1.6 );
bars.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
bars.NoResourcesMessage = "There is no metal here to mine.";
bars.DoubleHarvestMessage = "Someone has gotten to the metal before you.";
bars.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
bars.OutOfRangeMessage = 500446; // That is too far away.
bars.FailMessage = "You loosen some rocks but fail to find any useable metal.";
bars.PackFullMessage = "Your backpack is full, so the metal you mined is lost.";
bars.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 00.0, 00.0, 95.0, "You dig some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 55.0, 20.0, 100.0, "You dig some copper bar and put it in your backpack.", typeof( CopperBar ) ),
new HarvestResource( 60.0, 25.0, 105.0, "You dig some silver bar and put it in your backpack.", typeof( SilverBar ) ),
new HarvestResource( 70.0, 30.0, 110.0, "You dig some gold bar and put it in your backpack.", typeof( GoldBar ) ),
new HarvestResource( 75.0, 35.0, 115.0, "You dig some platinum bar and put it in your backpack.", typeof( PlatinumBar ) ),
new HarvestResource( 80.0, 40.0, 120.0, "You dig some velium bar and put it in your backpack.", typeof( VeliumBar ) ),
new HarvestResource( 85.0, 45.0, 125.0, "You dig some arycilan bar and put it in your backpack.", typeof( ArycilanBar ) ),
new HarvestResource( 90.0, 50.0, 130.0, "You dig some orbsydian bar and put it in your backpack.", typeof( OrbsydianBar ) ),
new HarvestResource( 95.0, 55.0, 135.0, "You dig some xulian bar and put it in your backpack.", typeof( XulianBar ) ),
new HarvestResource( 99.0, 60.0, 140.0, "You dig some paragon bar and put it in your backpack.", typeof( ParagonBar ) )
};
veins = new HarvestVein[]
{
new HarvestVein( 30.0, 0.0, res[0], null ), // Jewelry Rock
new HarvestVein( 20.0, 0.5, res[1], res[0] ), // Copper
new HarvestVein( 15.2, 0.5, res[2], res[0] ), // Silver
new HarvestVein( 11.6, 0.5, res[3], res[0] ), // Gold
new HarvestVein( 7.8, 0.5, res[4], res[0] ), // Platinum
new HarvestVein( 6.2, 0.5, res[5], res[0] ), // Velium
new HarvestVein( 3.7, 0.5, res[6], res[0] ), // Arycilan
new HarvestVein( 4.2, 0.5, res[7], res[0] ), // Orbsydian
new HarvestVein( 2.3, 0.5, res[8], res[0] ), // Xulian
new HarvestVein( 1.8, 0.5, res[9], res[0] ) // Paragon
};
bars.Resources = res;
bars.Veins = veins;
Definitions.Add( bars );
#endregion
}
public override bool BeginHarvesting( Mobile from, Item tool )
{
if ( !base.BeginHarvesting( from, tool ) )
return false;
from.SendLocalizedMessage( 503033 ); // Where do you wish to dig?
return true;
}
public override void SendSuccessTo( Mobile from, Item item, HarvestResource resource )
{
if ( item is BaseBars )
from.SendMessage( "You carefully extract some workable bars from the vein!" );
else
base.SendSuccessTo( from, item, resource );
}
public override bool CheckHarvest( Mobile from, Item tool )
{
if ( !base.CheckHarvest( from, tool ) )
return false;
if ( from.Mounted )
{
from.SendLocalizedMessage( 501864 ); // You can't mine while riding.
return false;
}
else if ( from.IsBodyMod && !from.Body.IsHuman )
{
from.SendLocalizedMessage( 501865 ); // You can't mine while polymorphed.
return false;
}
return true;
}
public override void OnBadHarvestTarget( Mobile from, Item tool, object toHarvest )
{
if( toHarvest is StaticTarget )
{
from.SendLocalizedMessage( 501862 ); // You can't mine there.
}
else if( toHarvest is LandTarget )
{
from.SendLocalizedMessage( 501862 ); // You can't mine there.
}
else
{
from.SendMessage( "You can't harvest that." );
}
}
public override void OnHarvestFinished(Mobile from, Item tool, HarvestDefinition def, HarvestVein vein, HarvestBank bank, HarvestResource resource, object harvested)
{
HarvestResource res = vein.PrimaryResource;
if( from.Map == Map.Ilshenar )
{
if( res == resource && res.Types[0] == typeof( ParagonBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested);
}
else if( res == resource && res.Types[0] == typeof( OrbsydianBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested);
}
}
else if( from.Map == Map.Malas )
{
if( res == resource && res.Types[0] == typeof( ArycilanBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested);
}
else if( res == resource && res.Types[0] == typeof( XulianBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested);
}
}
else
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested);
}
}
private static int[] m_MountainAndCaveTiles = new int[]
{
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, 236, 237, 238, 239, 240, 241, 242, 243,
244, 245, 246, 247, 252, 253, 254, 255, 256, 257,
258, 259, 260, 261, 262, 263, 268, 269, 270, 271,
272, 273, 274, 275, 276, 277, 278, 279, 286, 287,
288, 289, 290, 291, 292, 293, 294, 296, 296, 297,
321, 322, 323, 324, 467, 468, 469, 470, 471, 472,
473, 474, 476, 477, 478, 479, 480, 481, 482, 483,
484, 485, 486, 487, 492, 493, 494, 495, 543, 544,
545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
575, 576, 577, 578, 579, 581, 582, 583, 584, 585,
586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
596, 597, 598, 599, 600, 601, 610, 611, 612, 613,
1010, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1771, 1772,
1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782,
1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1801, 1802,
1803, 1804, 1805, 1806, 1807, 1808, 1809, 1811, 1812, 1813,
1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
1824, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839,
1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
1850, 1851, 1852, 1853, 1854, 1861, 1862, 1863, 1864, 1865,
1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875,
1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1981,
1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2028, 2029, 2030, 2031, 2032, 2033, 2100,
2101, 2102, 2103, 2104, 2105,
0x453B, 0x453C, 0x453D, 0x453E, 0x453F, 0x4540, 0x4541,
0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548,
0x4549, 0x454A, 0x454B, 0x454C, 0x454D, 0x454E, 0x454F
};
public static void Initialize()
{
Array.Sort( m_CrystalTiles );
}
private static int[] m_CrystalTiles = new int[]
{
0x2206, 0x2207, 0x2208, 0x2209, 0x220A, 0x220B, 0x220C,
0x220D, 0x220E, 0x220F, 0x2210, 0x2211, 0x2212, 0x2213,
0x2214, 0x2215, 0x2216, 0x2217, 0x2218, 0x2219, 0x221A,
0x221B, 0x221C, 0x221D, 0x221E, 0x221F, 0x2220, 0x2221,
0x2222, 0x2223, 0x2224, 0x2225, 0x2226, 0x2227, 0x2228,
0x2229, 0x222A, 0x222B, 0x222C,
0x223A, 0x223B, 0x223C, 0x223D, 0x223E, 0x223F, 0x2240,
0x2241, 0x2242, 0x2243, 0x2243, 0x2244, 0x2245, 0x2246,
0x2247, 0x2248, 0x2249
};
public override bool GetHarvestDetails( Mobile from, Item tool, object toHarvest, out int tileID, out Map map, out Point3D loc )
{
if ( toHarvest is Static && !((Static)toHarvest).Movable )
{
Static obj = (Static)toHarvest;
tileID = obj.ItemID;
map = obj.Map;
loc = obj.GetWorldLocation();
}
else if ( toHarvest is StaticTarget )
{
StaticTarget obj = (StaticTarget)toHarvest;
tileID = obj.ItemID;
map = from.Map;
loc = obj.Location;
}
else
{
return base.GetHarvestDetails( from, tool, toHarvest, out tileID, out map, out loc );
}
return ( map != null && map != Map.Internal );
}
}
}
Code:
/**************************************************************/
/* Jewel Crafting System 3
/*
/* Scripted by Ravenal/awakenlands
/* Completed on: 5/31/2005
/*
/* This script is for anyone to use and edit, please be
/* considerate not to claim this as your script, thanks.
/*
/* Script Site: http://jcs3.uniphix.com
/* Shard's Site: http://www.paragonix.org
/* Developer's Site: http://www.orbsydia.com
/* Emulator's Site: http://www.runuo.com
/*
/* Script Version 3.0
/**************************************************************/
using System;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Targeting;
using Server.Engines.Harvest;
namespace Server.Engines.JewelCraft
{
public class CrystalMining : HarvestSystem
{
private static CrystalMining m_System;
public static CrystalMining System
{
get
{
if ( m_System == null )
m_System = new CrystalMining();
return m_System;
}
}
private HarvestDefinition m_MiningGems, m_Bars;
public HarvestDefinition MiningGems
{
get{ return m_MiningGems; }
}
public HarvestDefinition Bars
{
get{ return m_Bars; }
}
private CrystalMining()
{
HarvestResource[] res;
HarvestVein[] veins;
#region Crystal Mining for Gems
HarvestDefinition gems = m_MiningGems = new HarvestDefinition();
// Resource banks are every 8x8 tiles
gems.BankWidth = 8;
gems.BankHeight = 8;
// Every bank holds from 10 to 34 ore
gems.MinTotal = 10;
gems.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
gems.MinRespawn = TimeSpan.FromMinutes( 10.0 );
gems.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
gems.Skill = SkillName.Mining;
// Set the list of harvestable tiles
gems.Tiles = m_CrystalTiles;
// Players must be within 2 tiles to harvest
gems.MaxRange = 2;
// One ore per harvest action
gems.ConsumedPerHarvest = 1;
gems.ConsumedPerFeluccaHarvest = 2;
// The digging effect
gems.EffectActions = new int[]{ 11 };
gems.EffectSounds = new int[]{ 0x125, 0x126 };
gems.EffectCounts = new int[]{ 1 };
gems.EffectDelay = TimeSpan.FromSeconds( 1.6 );
gems.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
gems.NoResourcesMessage = "There is no gems here to mine.";
gems.DoubleHarvestMessage = "Someone has gotten to the gems before you.";
gems.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
gems.OutOfRangeMessage = 500446; // That is too far away.
gems.FailMessage = "You loosen some rocks but fail to find any useable gems.";
gems.PackFullMessage = "Your backpack is full, so the gem you mined is lost.";
gems.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 0.0, 0.0, 100.0, "You chip some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 20.0, 0.0, 50.0, "You chip some amber, and put it into your backpack.", typeof( Amber ) ),
new HarvestResource( 25.0, 5.0, 55.0, "You chip some emerald, and put it into your backpack.", typeof( Emerald ) ),
new HarvestResource( 30.0, 10.0, 60.0, "You chip some star rose, and put it into your backpack.", typeof( StarRose ) ),
new HarvestResource( 35.0, 15.0, 65.0, "You chip some amethyst, and put it into your backpack.", typeof( Amethyst ) ),
new HarvestResource( 40.0, 20.0, 70.0, "You chip some citrine, and put it into your backpack.", typeof( Citrine ) ),
new HarvestResource( 45.0, 25.0, 75.0, "You chip some turquoise, and put it into your backpack.", typeof( Turquoise ) ),
new HarvestResource( 50.0, 30.0, 80.0, "You chip some ruby, and put it into your backpack.", typeof( Ruby ) ),
new HarvestResource( 55.0, 35.0, 85.0, "You chip some sapphire, and put it into your backpack.", typeof( Sapphire ) ),
new HarvestResource( 60.0, 40.0, 90.0, "You chip some tourmaline, and put it into your backpack.", typeof( Tourmaline ) ),
new HarvestResource( 65.0, 45.0, 95.0, "You chip some star sapphire, and put it into your backpack.", typeof( StarSapphire ) ),
new HarvestResource( 70.0, 50.0, 105.0, "You chip some topaz, and put it into your backpack.", typeof( Topaz ) ),
new HarvestResource( 75.0, 60.0, 115.0, "You chip some jade, and put it into your backpack.", typeof( Jade ) ),
new HarvestResource( 80.0, 70.0, 125.0, "You chip some fire emerald, and put it into your backpack.", typeof( FireEmerald ) ),
new HarvestResource( 90.0, 80.0, 135.0, "You chip some star ruby, and put it into your backpack.", typeof( StarRuby ) ),
new HarvestResource( 95.0, 90.0, 145.0, "You chip some diamond, and put it into your backpack.", typeof( Diamond ) ),
new HarvestResource( 99.0, 95.0, 160.0, "You chip some blue diamond, and put it into your backpack.", typeof( BlueDiamond ) )
};
veins = new HarvestVein[]
{
new HarvestVein( 45.0, 0.0, res[0], null ), // Jewelry Rock
new HarvestVein( 8.8, 0.5, res[1], res[0] ), // Amber
new HarvestVein( 7.3, 0.5, res[2], res[0] ), // Emerald
new HarvestVein( 5.1, 0.5, res[3], res[0] ), // Star Rose
new HarvestVein( 4.8, 0.5, res[4], res[0] ), // Amethyst
new HarvestVein( 4.6, 0.5, res[5], res[0] ), // Citrine
new HarvestVein( 3.8, 0.5, res[6], res[0] ), // Turquoise
new HarvestVein( 3.5, 0.5, res[7], res[0] ), // Ruby
new HarvestVein( 3.1, 0.5, res[8], res[0] ), // Sapphire
new HarvestVein( 2.3, 0.5, res[9], res[0] ), // Tourmaline
new HarvestVein( 2.1, 0.5, res[10], res[0] ), // Star Sapphire
new HarvestVein( 1.9, 0.5, res[11], res[0] ), // Topaz
new HarvestVein( 1.6, 0.5, res[12], res[0] ), // Jade
new HarvestVein( 1.2, 0.5, res[13], res[0] ), // Fire Emerald
new HarvestVein( 0.9, 0.5, res[14], res[0] ), // Star Ruby
new HarvestVein( 0.7, 0.5, res[15], res[0] ), // Diamond
new HarvestVein( 0.6, 0.25, res[16], res[0] ) // Blue Diamond
};
gems.Resources = res;
gems.Veins = veins;
Definitions.Add( gems );
#endregion
#region Mining for Gems
HarvestDefinition mininggems = m_MiningGems = new HarvestDefinition();
// Resource banks are every 8x8 tiles
mininggems.BankWidth = 8;
mininggems.BankHeight = 8;
// Every bank holds from 10 to 34 ore
mininggems.MinTotal = 10;
mininggems.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
mininggems.MinRespawn = TimeSpan.FromMinutes( 10.0 );
mininggems.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
mininggems.Skill = SkillName.Mining;
// Set the list of harvestable tiles
mininggems.Tiles = m_MountainAndCaveTiles;
// Players must be within 2 tiles to harvest
mininggems.MaxRange = 2;
// One ore per harvest action
mininggems.ConsumedPerHarvest = 1;
mininggems.ConsumedPerFeluccaHarvest = 2;
// The digging effect
mininggems.EffectActions = new int[]{ 11 };
mininggems.EffectSounds = new int[]{ 0x125, 0x126 };
mininggems.EffectCounts = new int[]{ 1 };
mininggems.EffectDelay = TimeSpan.FromSeconds( 1.6 );
mininggems.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
mininggems.NoResourcesMessage = "There is no gems here to mine.";
mininggems.DoubleHarvestMessage = "Someone has gotten to the gems before you.";
mininggems.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
mininggems.OutOfRangeMessage = 500446; // That is too far away.
mininggems.FailMessage = "You loosen some rocks but fail to find any useable gems.";
mininggems.PackFullMessage = "Your backpack is full, so the gem you mined is lost.";
mininggems.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 45.0, 20.0, 80.0, "You dig some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 50.0, 25.0, 90.0, "You dig some onyx, and put it into your backpack.", typeof( Onyx ) ),
new HarvestResource( 90.0, 60.0, 120.0, "You dig some jasper, and put it into your backpack.", typeof( Jasper ) )
};
veins = new HarvestVein[]
{
new HarvestVein( 80.0, 0.0, res[0], null ), // Jewelry Rock
new HarvestVein( 18.5, 0.5, res[1], res[0] ), // Onyx
new HarvestVein( 1.5, 0.5, res[2], res[0] ) // Jasper
};
mininggems.Resources = res;
mininggems.Veins = veins;
Definitions.Add( mininggems );
#endregion
#region Mining for Bars
HarvestDefinition bars = m_Bars = new HarvestDefinition();
// Resource banks are every 8x8 tiles
bars.BankWidth = 8;
bars.BankHeight = 8;
// Every bank holds from 10 to 34 ore
bars.MinTotal = 10;
bars.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
bars.MinRespawn = TimeSpan.FromMinutes( 10.0 );
bars.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
bars.Skill = SkillName.Mining;
// Set the list of harvestable tiles
bars.Tiles = m_MountainAndCaveTiles;
// Players must be within 2 tiles to harvest
bars.MaxRange = 2;
// One ore per harvest action
bars.ConsumedPerHarvest = 1;
bars.ConsumedPerFeluccaHarvest = 2;
// The digging effect
bars.EffectActions = new int[]{ 11 };
bars.EffectSounds = new int[]{ 0x125, 0x126 };
bars.EffectCounts = new int[]{ 1 };
bars.EffectDelay = TimeSpan.FromSeconds( 1.6 );
bars.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
bars.NoResourcesMessage = "There is no metal here to mine.";
bars.DoubleHarvestMessage = "Someone has gotten to the metal before you.";
bars.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
bars.OutOfRangeMessage = 500446; // That is too far away.
bars.FailMessage = "You loosen some rocks but fail to find any useable metal.";
bars.PackFullMessage = "Your backpack is full, so the metal you mined is lost.";
bars.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 00.0, 00.0, 95.0, "You dig some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 55.0, 20.0, 100.0, "You dig some copper bar and put it in your backpack.", typeof( CopperBar ) ),
new HarvestResource( 60.0, 25.0, 105.0, "You dig some silver bar and put it in your backpack.", typeof( SilverBar ) ),
new HarvestResource( 70.0, 30.0, 110.0, "You dig some gold bar and put it in your backpack.", typeof( GoldBar ) ),
new HarvestResource( 75.0, 35.0, 115.0, "You dig some platinum bar and put it in your backpack.", typeof( PlatinumBar ) ),
new HarvestResource( 80.0, 40.0, 120.0, "You dig some velium bar and put it in your backpack.", typeof( VeliumBar ) ),
new HarvestResource( 85.0, 45.0, 125.0, "You dig some arycilan bar and put it in your backpack.", typeof( ArycilanBar ) ),
new HarvestResource( 90.0, 50.0, 130.0, "You dig some orbsydian bar and put it in your backpack.", typeof( OrbsydianBar ) ),
new HarvestResource( 95.0, 55.0, 135.0, "You dig some xulian bar and put it in your backpack.", typeof( XulianBar ) ),
new HarvestResource( 99.0, 60.0, 140.0, "You dig some paragon bar and put it in your backpack.", typeof( ParagonBar ) )
};
veins = new HarvestVein[]
{
new HarvestVein( 30.0, 0.0, res[0], null ), // Jewelry Rock
new HarvestVein( 20.0, 0.5, res[1], res[0] ), // Copper
new HarvestVein( 15.2, 0.5, res[2], res[0] ), // Silver
new HarvestVein( 11.6, 0.5, res[3], res[0] ), // Gold
new HarvestVein( 7.8, 0.5, res[4], res[0] ), // Platinum
new HarvestVein( 6.2, 0.5, res[5], res[0] ), // Velium
new HarvestVein( 3.7, 0.5, res[6], res[0] ), // Arycilan
new HarvestVein( 4.2, 0.5, res[7], res[0] ), // Orbsydian
new HarvestVein( 2.3, 0.5, res[8], res[0] ), // Xulian
new HarvestVein( 1.8, 0.5, res[9], res[0] ) // Paragon
};
bars.Resources = res;
bars.Veins = veins;
Definitions.Add( bars );
#endregion
}
public override bool BeginHarvesting( Mobile from, Item tool )
{
if ( !base.BeginHarvesting( from, tool ) )
return false;
from.SendLocalizedMessage( 503033 ); // Where do you wish to dig?
return true;
}
public override void SendSuccessTo( Mobile from, Item item, HarvestResource resource )
{
if ( item is BaseBars )
from.SendMessage( "You carefully extract some workable bars from the vein!" );
else
base.SendSuccessTo( from, item, resource );
}
public override bool CheckHarvest( Mobile from, Item tool )
{
if ( !base.CheckHarvest( from, tool ) )
return false;
if ( from.Mounted )
{
from.SendLocalizedMessage( 501864 ); // You can't mine while riding.
return false;
}
else if ( from.IsBodyMod && !from.Body.IsHuman )
{
from.SendLocalizedMessage( 501865 ); // You can't mine while polymorphed.
return false;
}
return true;
}
public override void OnBadHarvestTarget( Mobile from, Item tool, object toHarvest )
{
if( toHarvest is StaticTarget )
{
from.SendLocalizedMessage( 501862 ); // You can't mine there.
}
else if( toHarvest is LandTarget )
{
from.SendLocalizedMessage( 501862 ); // You can't mine there.
}
else
{
from.SendMessage( "You can't harvest that." );
}
}
public override void OnHarvestFinished(Mobile from, Item tool, HarvestDefinition def, HarvestVein vein, HarvestBank bank, HarvestResource resource, object harvested, Type type )
{
HarvestResource res = vein.PrimaryResource;
if( from.Map == Map.Ilshenar )
{
if( res == resource && res.Types[0] == typeof( ParagonBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested, type);
}
else if( res == resource && res.Types[0] == typeof( OrbsydianBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested, type);
}
}
else if( from.Map == Map.Malas )
{
if( res == resource && res.Types[0] == typeof( ArycilanBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested, type);
}
else if( res == resource && res.Types[0] == typeof( XulianBar ) )
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested, type);
}
}
else
{
base.OnHarvestFinished (from, tool, def, vein, bank, resource, harvested, type);
}
}
private static int[] m_MountainAndCaveTiles = new int[]
{
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, 236, 237, 238, 239, 240, 241, 242, 243,
244, 245, 246, 247, 252, 253, 254, 255, 256, 257,
258, 259, 260, 261, 262, 263, 268, 269, 270, 271,
272, 273, 274, 275, 276, 277, 278, 279, 286, 287,
288, 289, 290, 291, 292, 293, 294, 296, 296, 297,
321, 322, 323, 324, 467, 468, 469, 470, 471, 472,
473, 474, 476, 477, 478, 479, 480, 481, 482, 483,
484, 485, 486, 487, 492, 493, 494, 495, 543, 544,
545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
575, 576, 577, 578, 579, 581, 582, 583, 584, 585,
586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
596, 597, 598, 599, 600, 601, 610, 611, 612, 613,
1010, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1771, 1772,
1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782,
1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1801, 1802,
1803, 1804, 1805, 1806, 1807, 1808, 1809, 1811, 1812, 1813,
1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
1824, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839,
1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
1850, 1851, 1852, 1853, 1854, 1861, 1862, 1863, 1864, 1865,
1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875,
1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1981,
1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2028, 2029, 2030, 2031, 2032, 2033, 2100,
2101, 2102, 2103, 2104, 2105,
0x453B, 0x453C, 0x453D, 0x453E, 0x453F, 0x4540, 0x4541,
0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548,
0x4549, 0x454A, 0x454B, 0x454C, 0x454D, 0x454E, 0x454F
};
public static void Initialize()
{
Array.Sort( m_CrystalTiles );
}
private static int[] m_CrystalTiles = new int[]
{
0x2206, 0x2207, 0x2208, 0x2209, 0x220A, 0x220B, 0x220C,
0x220D, 0x220E, 0x220F, 0x2210, 0x2211, 0x2212, 0x2213,
0x2214, 0x2215, 0x2216, 0x2217, 0x2218, 0x2219, 0x221A,
0x221B, 0x221C, 0x221D, 0x221E, 0x221F, 0x2220, 0x2221,
0x2222, 0x2223, 0x2224, 0x2225, 0x2226, 0x2227, 0x2228,
0x2229, 0x222A, 0x222B, 0x222C,
0x223A, 0x223B, 0x223C, 0x223D, 0x223E, 0x223F, 0x2240,
0x2241, 0x2242, 0x2243, 0x2243, 0x2244, 0x2245, 0x2246,
0x2247, 0x2248, 0x2249
};
public override bool GetHarvestDetails( Mobile from, Item tool, object toHarvest, out int tileID, out Map map, out Point3D loc )
{
if ( toHarvest is Static && !((Static)toHarvest).Movable )
{
Static obj = (Static)toHarvest;
tileID = obj.ItemID;
map = obj.Map;
loc = obj.GetWorldLocation();
}
else if ( toHarvest is StaticTarget )
{
StaticTarget obj = (StaticTarget)toHarvest;
tileID = obj.ItemID;
map = from.Map;
loc = obj.Location;
}
else
{
return base.GetHarvestDetails( from, tool, toHarvest, out tileID, out map, out loc );
}
return ( map != null && map != Map.Internal );
}
}
}
|
|
|
|
|
#15 (permalink) |
|
Forum Newbie
|
Here is the Code Before the Additions I've made: Code:
/**************************************************************/
/* Jewel Crafting System 3
/*
/* Scripted by Ravenal/awakenlands
/* Completed on: 5/31/2005
/*
/* This script is for anyone to use and edit, please be
/* considerate not to claim this as your script, thanks.
/*
/* Script Site: http://jcs3.uniphix.com
/* Shard's Site: http://www.paragonix.org
/* Developer's Site: http://www.orbsydia.com
/* Emulator's Site: http://www.runuo.com
/*
/* Script Version 3.0
/**************************************************************/
using System;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Targeting;
using Server.Engines.Harvest;
namespace Server.Engines.JewelCraft
{
public class CrystalMining : HarvestSystem
{
private static CrystalMining m_System;
public static CrystalMining System
{
get
{
if ( m_System == null )
m_System = new CrystalMining();
return m_System;
}
}
private HarvestDefinition m_MiningGems, m_Bars;
public HarvestDefinition MiningGems
{
get{ return m_MiningGems; }
}
public HarvestDefinition Bars
{
get{ return m_Bars; }
}
private CrystalMining()
{
HarvestResource[] res;
HarvestVein[] veins;
#region Crystal Mining for Gems
HarvestDefinition gems = m_MiningGems = new HarvestDefinition();
// Resource banks are every 8x8 tiles
gems.BankWidth = 8;
gems.BankHeight = 8;
// Every bank holds from 10 to 34 ore
gems.MinTotal = 10;
gems.MaxTotal = 34;
// A resource bank will respawn its content every 10 to 20 minutes
gems.MinRespawn = TimeSpan.FromMinutes( 10.0 );
gems.MaxRespawn = TimeSpan.FromMinutes( 20.0 );
// Skill checking is done on the Mining skill
gems.Skill = SkillName.Mining;
// Set the list of harvestable tiles
gems.Tiles = m_CrystalTiles;
// Players must be within 2 tiles to harvest
gems.MaxRange = 2;
// One ore per harvest action
gems.ConsumedPerHarvest = 1;
gems.ConsumedPerFeluccaHarvest = 2;
// The digging effect
gems.EffectActions = new int[]{ 11 };
gems.EffectSounds = new int[]{ 0x125, 0x126 };
gems.EffectCounts = new int[]{ 1 };
gems.EffectDelay = TimeSpan.FromSeconds( 1.6 );
gems.EffectSoundDelay = TimeSpan.FromSeconds( 0.9 );
gems.NoResourcesMessage = "There is no gems here to mine.";
gems.DoubleHarvestMessage = "Someone has gotten to the gems before you.";
gems.TimedOutOfRangeMessage = 503041; // You have moved too far away to continue mining.
gems.OutOfRangeMessage = 500446; // That is too far away.
gems.FailMessage = "You loosen some rocks but fail to find any useable gems.";
gems.PackFullMessage = "Your backpack is full, so the gem you mined is lost.";
gems.ToolBrokeMessage = 1044038; // You have worn out your tool!
res = new HarvestResource[]
{
new HarvestResource( 0.0, 0.0, 100.0, "You chip some sort of jewelry rock and put it in your backpack.", typeof( JewelRock ) ),
new HarvestResource( 20.0, 0.0, 50.0, "You chip some amber, and put it into your backpack.", typeof( Amber ) ),
new HarvestResource( 25.0, 5.0, 55.0, "You chip some emerald, and put it into your backpack.", typeof( Emerald ) ),
new HarvestResource( 30.0, 10.0, 60.0, "You chip some star rose, and put it into your backpack.", typeof( StarRose ) ),
new HarvestResource( 35.0, 15.0, 65.0, "You chip some amethyst, and put it into your backpack.", typeof( Amethyst ) ),
new HarvestResource( 40.0, 20.0, 70.0, "You chip some citrine, and put it into your backpack.", typeof( Citrine ) ),
new HarvestResource( 45.0, 25.0, 75.0, "You chip some turquoise, and put it into your backpack.", typeof( Turquoise ) ),
new Harv |