RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Spellcrafting version 2.3

X

Xanthos

Guest
Spellcrafting version 2.9

I see a lot of free shards deploying Spellcrafting, players really seem to enjoy it and I wanted to see some of the suggestions from myself and others make this great system written by TheOutkastDev even better. Here are my notes from the changelog.

Version 2.9
  • ConfigParser no longer halts shard start-up when a bad value is found in the xml file. Instead it displays the error on the console, leaving the default value untouched.
  • Added a ConfigParser option to halt the shard on bad values in the xml config file.
Version 2.8 - 1/14/06
  • Players with top Spell Crafting skills have a chance to mark the item.
  • A number of parameters are available for configuration in the file SpellCraftConfig.xml (place this in your RunUO\Data directory). This allows configuration parameters to be modified without code changes.
  • The package now unzips into a Xanthos directory - keeping the package files within the Xanthos directory in your customs directory is recommended.
Version 2.7 - 5/27/05
  • Sorry about this one! Fixed a botched scaling value that caused some properties to be inflated by a factor of 10.
Version 2.6 - 5/26/05
  • Added the capability to drop magic jewels onto the book giving the book charges with which to spellcraft. This feature can be enabled/disabled with a configuration variable.
  • Crafts and charges in the book are displayed as name properties; making buying and selling of of books less risky.
  • Created more configuration variables for things that spawn on the mobiles, max skills and intensity ranges.
  • Fixed an off by one value that caused the Durability craft (the last one) never to spawn.
  • Added headers to all files giving credit to the original author of the system.
  • Reworded a few user strings.

Version 2.5 - 5/22/05
  • Corrected a total skill value of 240 for alchemy + inscription, used to figure the skill scalar. The value should have been 200 since 100 is the cap for each skill.
  • Placed a check in the gump code to validate a minimum skill before allowing a craft to be applied.
  • Fixed a rounding error in scale that made it difficult reaching 100% intensity on a property.
  • Added an array to allow setting of individualy, per craft, the magic jewel consumption.
  • Added showing of the magic jewel usage next to each craft name if the player is holding a lit candle when the book is opened. In this mode, all craft names are show, and a distinctive tan hue denotes crafts not yet in the book.
  • Now checking that the book is in the player's backpack before allowing the book to be opened.
  • Set the graphic and hue of the magic jewels to the original values - these were changed inadvertantly in an earlier version. Spellcraft jewels are meant to have a new graphic so that they are easier to work with.
Version 2.4 - 4/22/05
  • Hats are now supported for all the crafts that can be applied to armor.
  • Instruments can now be Spellcrafted with the Slayer craft.
  • Added the Night Sight craft and jewel.
  • Added the Slayer craft and jewel. Applying this craft places a random Slayer on the instrument or weapon. Upon success there is a chance between 1% and 10%, depending on skill, that a super Slayer, rather than an ordinary Slayer, will be placed on the item.
  • Updated the Readme to reflect the new items and crafts in the craft table.
  • Percentage of maximum intensity for each craft is now linearly based on player skill - the higher the skill the higher the percentage of maximum intensity can be acheived. At 24 combined alchemy and inscribe the best that can be acheived is 10% intensity, below 20 combined skill there will be no effect. At 200 combined skill 100% intensity can be acheived. For example, the maximum Hit Chance Increase for the low skilled player is 2% HCI (thats 10% of the maximum of 15, or 1.5 rounded up). For the highly skilled player 15% would be the maximum HCI that can be acheived. This change was the result of a fix to an old math bug in the code that accounted for player skill.
  • The book will now remain open at the page last viewed when using a craft. Some pages and crafts were moved around in the book to facilitate this change. This may help cut down on those carpal tunnel cases.
  • Removed the somewhat gratuitous throw located directly inside and at the end of the try block in each of the callbacks. This was replaced with a string assignment and a subsequent check in the new finally block. Thanks to TheOutkastDev for pointing this out.
  • The book now displays the total Spellcrafts in the book as well as the total possible. The book will now show the names of the missing Spellcrafts as well, if the player holds a lit candle when opeing the book, the hidden text will be shown.
Version 2.3 - 4/18/05

  • Expanded the number of items that some of the crafts can be applied to (e.g. luck on shields). See the README file for a complete table of crafts and items they apply to.
  • Explosive failures will now consume magic jewels.
  • When attempting to apply a craft to an item not supported by the craft, the player is given a message stating what items the craft does apply to.
  • Graphic and audio effects now occurr on Successful spellcrafting attmepts.
  • The spellcrafting book now remains open until the user dismisses it. However it always resets to the first page upon spellcrafting attempts (still looking for a solution to this).
  • Some of the code and data has been factored resulting in a smaller assembly.
  • Added new configuration variables: kAlwaysEditExisting and kScPenaltyChance. See the README for a description of all the configuration variables.
  • Properties are no longer stackable due to many reports of players heavily stacking fc on items.
  • Changed the hue and image of the Spellcraft Jewels to make them easier to work with.
  • Changed the wording of many user messages.
Looking forward to your comments.
- Xan
 

Attachments

  • Utilities 1.2.zip
    6.8 KB · Views: 828
  • Spellcrafting 2.9.zip
    83.9 KB · Views: 1,006

Darkness_PR

Wanderer
awasome i did solve the "stacking" probs in my shard after awhile lol but hey thanks for this version...=D btw i know you did give props in the readme.txt but you should put in the description as well...not that you have to do but for respect =/ hehe but other than that awasome thanx
 
First off nice mods to Outcasts originaly great system! Now may I ask would it be hard to add nightsight as one of the gems? I added it to the original system but it never worked. It had no errors and ran fine but after collection 1000s of gems we never got a nightsight gem.

Any help is greatly appreciated
Thanks,
Dan
 

Darkness_PR

Wanderer
soldierfortune said:
First off nice mods to Outcasts originaly great system! Now may I ask would it be hard to add nightsight as one of the gems? I added it to the original system but it never worked. It had no errors and ran fine but after collection 1000s of gems we never got a nightsight gem.

Any help is greatly appreciated
Thanks,
Dan
Hehehe i was working on this also i havent finished it YET, since a player reuqested this on my shard, but what was ur prob. it didn't add it to the armor or jewl?
 
X

Xanthos

Guest
Adding nightsight is no problem - I will wait a day or two just in case there is anything else to add as well. BTW, I added my name to the only place outkast had his. I may get ambitious and add a proper header to every file, otherwise expect to only find credits in the README for now.
 

Darkness_PR

Wanderer
i got a nice suggestion it came from a player in my shard and it really sounds like a good one too! adding Slayers into the weapons through spell crafting =Þ
*Edit*
If you need help with it let me know drop a PM or email.
 

Protius73

Sorceror
I already loved the old system so ima give this a shot and see how it runs on my test shard. If it works out well ill upload it to my prod shard. :D
 

Darkness_PR

Wanderer
Protius73 said:
I already loved the old system so ima give this a shot and see how it runs on my test shard. If it works out well ill upload it to my prod shard. :D
i think it works the same way just dosnet stack attributes =/ havent used it yet thou
 
X

Xanthos

Guest
Darkness_PR said:
i got a nice suggestion it came from a player in my shard and it really sounds like a good one too! adding Slayers into the weapons through spell crafting =Þ
*Edit*
If you need help with it let me know drop a PM or email.
Great idea - I'm all for it now that night sight is done. My take on it would be to make a Slayer Craft that applies a random slayer to the weapon if it succeeds. As a variation, there could be a Super Slayer Craft which uses a larger number of magic jewels for the chance to produce a random Super Slayer attirbute.
 

Darkness_PR

Wanderer
Xanthos said:
Great idea - I'm all for it now that night sight is done. My take on it would be to make a Slayer Craft that applies a random slayer to the weapon if it succeeds. As a variation, there could be a Super Slayer Craft which uses a larger number of magic jewels for the chance to produce a random Super Slayer attirbute.
kk sounds good
 
X

Xanthos

Guest
Here is the list of crafts and items from the readme. I dont want to expand it so far that any craft applies to any item, and obviously some crafts just dont apply to certain items (e.g. hit fireball on jewelry). However, If you feel strongly that a craft in the table should be changed to include more/less item types, please post.

Hit Chance Increase: Shields Weapons Jewelry
Dexterity Bonus: Jewelry
Hitpoint Bonus: Armor
Intelligence Bonus: Jewelry
Mana Bonus: Armor
Stamina Bonus: Armor
Strength Bonus: Jewelry
Cast Recovery: Jewelry
Cast Speed: Shields Jewelry
Cold Resistance: Armor Shields Weapons Jewelry
Defense Chance Increase: Shields Weapons Jewelry
Energy Resistance: Armor Shields Weapons Jewelry
Enhance Potions: Jewelry
Fire Resistance: Armor Shields Weapons Jewelry
Hit Cold Area: Weapons
Hit Dispel: Weapons
Hit Energy Area: Weapons
Hit Fire Area: Weapons
Hit Fireball: Weapons
Hit Harm: Weapons
Hit Life Leech: Weapons
Hit Mana Leech: Weapons
Hit Stamina Leech: Weapons
Hit Lightning: Weapons
Hit Lower Attack: Weapons
Hit Lower Defense: Weapons
Hit Magic Arrow: Weapons
Hit Physical Area: Weapons
Hitpoint Regeneration: Armor
Hit Poison Area: Weapons
Lower Mana Cost: Armor Jewelry
Lower Reagent Cost: Armor Jewelry
Lower Requirements: Armor Shields Weapons
Luck: Armor Shields Weapons Jewelry
Mage Armor: Armor
Mage Weapon: Weapons
Mana Regeneration: Armor
Night Sight: Armor Shields Jewelry
Physical Resistance: Armor Shields Weapons Jewelry
Poison Resistance: Armor Shields Weapons Jewelry
Reflect Physical: Armor Shields
Self Repair: Armor Shields
Spell Channeling: Shields Weapons
Spell Damage Increase: Jewelry
Stamina Regeneration: Armor
Use Best Weapon Skill: Weapons
Weapon Damage Increase: Weapons Jewelry
Swing Speed Increase: Weapons
 

Darkness_PR

Wanderer
Voran said:
Suggestion: Allow spellcrafting of hats and spellbooks.
Hey voran this is easly solved...what i did on my server was this. I scripted for example the wizards hat as a basearmor and use the item id of the wizards hat, this way all the spellcrafts will apply to the hat since its no longer cloth its leather or plate what ever resource you choose to make it...i have a few scripts allready made like this ill post it when i get home.Hope that works for ya on how to do this...unless he modifies the script to allow craft on them??which will be awasome but for now i guess that will work for ya
 

Voran

Wanderer
That's the quick fix, but not a sensible thing on an established shard - especially since RunUO 1.0 supports AOS properties on clothing :)
It's not somethign I personally need, and I can change the scripts myself, but I feel it would be popular among players.
 
X

Xanthos

Guest
Ok, I have the Night Sight and Slayer crafts in as well as support for applying crafts to hats. I also found an old bug that affected property intensities - if you didnt have high skills you got really lousy intensities and if you had high skills, for most crafts, you would never acheive more than 96% intensity. Now I know why I have never been able to craft SSI higher than 25% onto a weapon!

For this next release I am also considering taking out support for pre-AoS properties. From my read of the code, they dont work so no one should miss them. The book keeps track of crafts it has with a ulong and there are 69 crafts in all (67 before my changes). Putting a craft into a book is done with a left shift by the craft number, and therefore many of the pre-AoS crafts (numbers 49 - 69) were never able to be stored in the book since a ulong is only 64 bits wide. I dont run pre-AoS and I dont want to release without testing those features, but changes will need to be made to support them. There's a good chunk of code that can be removed by doing this and this is one of those cases where less is more!

I will give it a few more days before I post this next release.
 
X

Xanthos

Guest
TheOutkastDev said:
No offense but, you seriously abused try{} catch{} blocks and throwing exceptions.
None taken. Actually its a misconception that Exceptions are only for errors or serious failures. They are to gracefully unwind the stack and report when something exceptional happened. I really prefer the more object oriented flow control in those cases, as opposed to the nested if approach of procedural programming. If you are talking about the throw at the end of the try block I agree it seems gratuitous at first, but I really did it for consistency. All the messages provided to the user in that code path come to them via exceptions and I didnt want to do a special case there and use send message instead at that level. I would have prefered to have the catch up a level but the caller is the server so that rules that out.

I really can't see any problem with using one try-catch in a block of code though I would love to hear your views on it.

Great system btw and nice coding - you made it pretty easy for me to come in and change things.
 
Xanthos said:
I really can't see any problem with using one try-catch in a block of code though I would love to hear your views on it.

IMO, The only time a try/catch should be used is when I have exceptional code that I can't already do null and argument checks for. So in other words, things like File reading/writing, async sockets like what RunUO has, Int32.Parse, ect. Those are some of the methods i know that WILL throw an exception if one thing goes wrong, and there isn't a lot I can do about it.

Try/catch does come with some performance drawbacks, which really don't come into play here as this is a relatively basic operation that has been placed inside the try catch block. Also, Null and Argument checking before executing any code can keep you from executing an entire block of code, only to get an exception thrown.
 
Top