I contemplated something similar, but I'd really rather not have an NPC required to ID things. There ends up being no risk for using an unidentified item, just the inconvenience of having to ID it to get the bonuses.
I also thought about having my zone manager npc pop groundspawns that could determine cursed status using EVENT_PLAYER_PICKUP. A quest popup shows the player the generic item name and if they go ahead and pick up an item that turns out to be cursed, I cast a nasty spell on them.
At that point I could have loot just drop on the ground when an NPC dies instead of using traditional loot tables. I have some pretty major issues with that as well, I just need to put some more thought into it.
Compromises are going to have to be made in any case, I just want to carefully consider what and where.
I've been poking around in the source looking at inventory functions and I think I might be able simulate the behavior I want. It would essentially be what you suggested, but instead of swapping items through an NPC it would be done by the server after Identify is cast, or on equip. At that point I think I could also do cursed items by preventing the client from unequipping a cursed item. A remove curse spell could just iterate through player inventory and swap cursed for uncursed items.
Of course, for all of this to work I'll need an item for every possible variation and status, but I'm already writing scripts to generate those. I'll also need to keep a record of the player's knowledge of items in a table somewhere.
Before I go too deep into any of that though, I'm completing more readily achievable goals. The transition into the dungeon is complete and the zone manager NPC is working out very well.
Next I'll probably play around with Trevius' randomroam script and see if I can use some of the logic therein to automate the generation of spawn coordinates, rather than #loc'ing all over each and every map.
I've been enjoying the atmosphere so far, and wands are good fun. If identified and cursed/uncursed items just don't work out I think it will still be pretty enjoyable.
|