|
||
|
|
#1 (permalink) |
|
Forum Expert
|
Item ID System v1.0
UPDATED 9/17/2004 Updated Readme with full info on BaseJewel.cs (Thanks To Halciet) Updated Readme and BaseArmor.cs fixed Identifed Flag. If you Changed your BaseArmor.cs Flag from = 0x00000080, to= 0x00000400, Change it back to = 0x00000080, (Thanks To Halciet) I have always love the old school Unidentified items never understood why OSI took them out at the birth of AOS. So many people with tons of ID wands in the banks and worse the skill ItemID became pretty useless after that too. I have seen alot of ppl asking here how it can be done. and i have even asked my self so i hope you enjoy this system. This is nothing more than changes to your current scripts no new ones to add in. I have supplied stock scripts with the mods and a README on how to change your files if you have custom BaseWeapon.cs BaseArmor.cs BaseJewel.cs IDWand.cs LootPack.cs CraftItem.cs ItemIdentification.cs The system works as so. Any item with. Extra mods to it such as Swing Speed Inc, Mage Armor, All the extra Aos Attributes on it will come up as Unidentified untill someone uses an idwand or skill item id on them. Then it shall display its props. If a crafter makes an item with a runic and it has extra props on it It will auto id the item. I didnt make any changes to the NPC Vendors due to most shard they dont sell magic item however i do plan to add something in for it in a later release for those who do have shards that have NPC Vendos with magic items. LookPack has been changed to have a chance for IDWands to drop as loot they have the same chance as Magic Instruments. For a full list of changes see the README File. Here is what an item will look like before it has been identified If the item does not have any extra props it will not come up as Unidentified. This system has been tested ONLY on RunUO v1.0 RC0 Its good smooth running system i has been on my shard for awhile now without any problems other than the players wondering where they get IDWands lol. It seems to give players a bit more fun when finding items. For items you want to auto id when created see example below. Code:
using System;
using Server;
namespace Server.Items
{
public class ArcaneShield : WoodenKiteShield
{
public override int LabelNumber{ get{ return 1061101; } } // Arcane Shield
public override int ArtifactRarity{ get{ return 11; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public ArcaneShield()
{
Hue = 0x556;
// TODO: Night Sight
Attributes.SpellChanneling = 1;
Attributes.DefendChance = 15;
Attributes.CastSpeed = 1;
Identified = true;
}
public ArcaneShield( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
Code:
Identified = true; Any problems or comments post here and ill see what i can do to help you Ronin Install ALWAYS back up your files!!! Back up and replace. BaseWeapon.cs BaseJewel.cs BaseArmor.cs IDWand.cs LookPack.cs CraftItem.cs ItemIdentification.cs See README For detailed info on these scripts. and how to change your own if you have custom addons in these scripts. |
|
|
|
|
|
#6 (permalink) |
|
Forum Expert
Join Date: Jan 2003
Location: California
Age: 39
Posts: 3,260
|
Nice. Thanks!
__________________
My Scripts: HoodableRobe CellarAddon SeigeUpdates Refresh/CloneMe Commands VooDoo Dolls Lost Alchemy SVN 187 Updates: Bard System + Upgrade Ultima VII |
|
|
|
|
|
#7 (permalink) |
|
Shard Director: Britannia
|
Awesome work RoninGT!
![]() This is something I've been interested in looking into. I'm glad to see someone else has addressed this issue with care and grace. Thanks for all the hard work!
__________________
Coming Soon! §Britannia§ Roleplaying, Ultima-based shard. Professionally Staffed and Designed. Epic Quests and Storyline. Based on Ultima lore. Massive support for player communities of all sorts. |
|
|
|
|
|
#8 (permalink) |
|
Forum Novice
|
Now if only you could find some way of handling that resistance display thing.
I did want to note that in your instructions you mentioned needing to change the number for the Identified save flag from 0x00000080 to 0x00000400 or else it wouldn't save the state on reboot; I didn't change it and I havn't had that problem. I decided not to when I saw that 0x00000400 was the number used for Maker's Mark, thus it could lead to future problems. Similarly, I didn't have the m_Identified variable or get/set methods in BaseJewel.cs, which wasn't mention in the readme. I went in and added them myself, and it was no problem, but if the distro BaseJewel doesn't have them, you might want to mention that in the readme to help newer coders who have already replaced their default BaseJewel with something else. Good work, -Hal |
|
|
|
|
|
#9 (permalink) |
|
Forum Expert
|
Sorry ill double check the readme was sure i addressed basejewel, As far was base armor i had issues on my server of armor after reboot not staying identified. and when i change that it worked out ok and have had no issues with it. But thank you for the heads up on readme ill check and update it later today
Ronin |
|
|
|
|
|
#11 (permalink) | |
|
God of Pandora
Join Date: Jun 2003
Location: Gainesville GA
Age: 31
Posts: 2,000
|
Quote:
I plan to use this script as well... cause UO is crap without the unidentified stuff... it makes it much more fun. Players at this time will tend to leave all but the best stuff on monsters... now they will at least pick it up and ID it 1st.
__________________
The Den of KillerBeeZ...Kender's Komments, uncensored commentary from the Kender. Plus anything else the Kender might have in his pouches.
|
|
|
|
|
|
|
#12 (permalink) |
|
God of Pandora
Join Date: Jun 2003
Location: Gainesville GA
Age: 31
Posts: 2,000
|
I have converted this to work with b36
All seems to work with 1 exception The jewels dont get IDed right away because I had to change a bit of the code. Instead, you have to ID them, then put it on before it gets IDed. ** for B36 ** I have edited the README.txt for those with b36 The only thing is that I believe there to be a better way in regards to the Jewels... but it does work.
__________________
The Den of KillerBeeZ...Kender's Komments, uncensored commentary from the Kender. Plus anything else the Kender might have in his pouches.
|
|
|
|
|
|
#14 (permalink) | |
|
Forum Expert
|
Quote:
Ronin |
|
|
|
|
|
|
#15 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
I just coded this the other day. Great idea indeed. I must ask you, as I do not have time to check out the download. Are the properties actually applied even though its unidentified? They shouldn't be.. including lower requirements, durability increases, and damage increases. Hues should be changed to 0 (as artifacts like zyronic claw are hued, and its a give away), and the name should be changed to ItemData.Name or else its a give away as well.
I have had problems trying to get identification to apply the attributes to items worn... so I disabled it, if you do take that approach and suceed in that feature, I may have to find time for your variant of this great feature. My next step is to make the Identification skill fail rate based on the intensity and attribute count of the item. And make IDWands have (basically) a skill range which is equal to Item Identification, or something to that effect. Good work. If you need more brainstorming (expansion), testing, or want me to help in any way, please ICQ me at 3591886. |
|
|
|
|
|
#16 (permalink) | |
|
God of Pandora
Join Date: Jun 2003
Location: Gainesville GA
Age: 31
Posts: 2,000
|
Quote:
Also, some properties that are inherint to the ore type of something (like lower requirements), don't show up until IDed even though it was crafted, and since it was crafted, it doesn't have the Unidentified label. Even with this, its still great to have. It would be nice to work these issues out though, and if I can help, I will.
__________________
The Den of KillerBeeZ...Kender's Komments, uncensored commentary from the Kender. Plus anything else the Kender might have in his pouches.
|
|
|
|
|
|
|
#17 (permalink) |
|
Join Date: Oct 2002
Age: 23
Posts: 4,689
|
I have all of these issues resolved. Basically what you do is change AOS.cs so that AOS attributes return 0 (in the BaseAttributes).
I used an interface to determine what requires identification with the Identified property as the requirement, then added that to basearmor, baseweapon, basejewel. Also, for durability and other internallly calculated stats, you will need to make a return when not identified. Also for GetProperties, you will need to add an if Identified check. Set identified to true in the constructor, and set Identified to false if attributeCount is greater than 0 in the lootpack where aos attributes are added. Also set Identified to false where all artifacts are added as loot (look for CreateRandomArtifact). Another give away is elemental damage.. so you would have to go over all weapons which have elemental damages (inside of the SetDamageType) to check for identification first, then that can be avoided. Then if they are not identified, put 100% physical, else put the normal damage types in getproperties. Or you can override the SetDamageType in BaseWeapon, but that would require a call to base.SetDamageType for all weapons which have elemental damages. Either way is fine. All armor/weapons etc which have custom skillmods will need their respective checks, and AOSSkillBonuses will need a check to in order to return 0 when not identified. The only down-fall is that staff cannot see the actual properties when it is not identified, but if they set the value, it will be set in actuality. All crafted items should be identified automatically at the constructor, and not require the Identified = true line in the craft system. Problems fixed If anyone has a better solution to allow staff to edit the AOSProperties, maybe a dummy attribute list to edit via props or whatever, would be good. |
|
|
|
|
|
#18 (permalink) |
|
Forum Expert
|
Crafted items do auto id, as far as unidentified items still applies props yes they do. just dont show them. I have not gotten that far :P But i do like the ideas on hues/names/props. I do have a few updates to make here and there
.Ill get with you guys shortly if thats cool see if i can get some more suggestions/pointers on the system. Thanks Ronin
__________________
Let me out i am stuck in your pocket! |
|
|
|
|
|
#22 (permalink) |
|
Join Date: Nov 2003
Posts: 11
|
love your script, i always missed the itemid on OSI after the AOS update, and dropped my GM ItemId off of my Smith, which really irked me.
just one thing, after downloading had errors and warnings, with the personal bless deed, just had to add the lines form base armour and weapon .cs in order for it to work and runs like a charm now, anyways love your script, brings back memories of the old OSI days...... |
|
|
|
|
|
#23 (permalink) |
|
Join Date: Oct 2004
Posts: 16
|
This is a very nice script.
I never knew UO made ItemID obselete until I read this thread. Boy they screwed up again. First time was killing the thievery class and skills, second time was taking all the magic "STUFFS" out of the world, third time was destroying UO by splitting it into Felucca and Trammel, Quit shortly after Trammel came out, couldn't stand them ruining the game anymore.('96-'99). Just started UO again with all you kind folks out there writing fine scripts and RunUO is awesome. One HUGE request there is a population of about 50,000 lost souls that needs and Earth and Beyond Emulator someone please help. |
|
|
|
|
|
#24 (permalink) |
|
Join Date: Aug 2003
Posts: 77
|
Nice job really!
I tested it and saw that with 30.0 in the skill you can identify everything... there is a manner to increase a little the difficulty?
__________________
HellSpawn, the Mind Daemon Admin on Supremacy: Rise of the Dark Queen |
|
|
|
|
|
#25 (permalink) |
|
Forum Expert
Join Date: Jan 2004
Location: UK, Essex
Age: 19
Posts: 1,166
|
How would I do this in RUO 1.0.0
The CraftItem.cs has been changed and no longer contains the code Code:
if ( item is BaseWeapon )
{
BaseWeapon weapon = ( BaseWeapon )item;
weapon.Quality = (WeaponQuality)quality;
endquality = quality;
Code:
else if ( item is BaseArmor )
{
BaseArmor armor = ( BaseArmor )item;
armor.Quality = (ArmorQuality)quality;
endquality = quality;
Chz ,
__________________
It is not the hand that creates worlds, It is the mind controlling it ! The New Dawn Network |
|
|
|