Jump to content

Request: Weapon familiarity mod.


Xenavire

Recommended Posts

Before you go saying there is something like this already, I have done a few searches and found nothing, if you know something that does exactly what I am looking for, please link it.

 

Now the idea behind this is pretty simple, to show the effect of having trained with a specific weapon, rather than weapon type.

 

Say you love your old iron bow, and you find a shiny new silver bow. It looks nice, and is powerful, but it feels a little clunky to pull back that string, and your shots keep going a little wide. You decide you want to keep your old bow, and get rid of that annoying silver bow.

 

The problem with this idea, is simply that you don't gain anything from using an old weapon (or armor for that matter), and you are encouraged to upgrade at the first possible moment. In real life (a bad comparison to make, but bear with me) if you train with a bow for example, you get used to it, adjust to its quirks, and learn how to make the best of every shot. But if you change to an entirely new bow (say moving up to a composite version) you know in theory how to use it, but you have to learn it all over again.

 

The solution:

Have a script keeping track of how many times you have attacked with that weapon, and after X amount of uses you get a small upgrade, with only that weapon. This would be very difficult, but I have an idea that might work: the script uses your weapon ID to store the number of uses (this means going from one iron bow to another will keep your "training", but moving onto a silver bow would start from scratch.)

 

Possible issues with this might include enchantments, and possible save file bloating (I am not 100% sure how scripted effects work in this manner, but I assume your OBSE save file keeps tabs on it.)

 

Ideas for fixing the possible issues? Well for save file bloating, possible skill decay? After you have gained a "level" in a weapon of the same sort, your old skill decays (as you get used to the new weapon instead.)

I don't know about enchantments, it might be a sacrifice you have to make, if I recall enchantments use a different ID that thier un-enchanted equivelents (which is why BU armors can't be enchanted, and still break, unless I am mistaken?)

 

I am not sure what else to say for now, this is the base idea, if any nice modder thinks they can do this, be my guest, and add whatever features you feel like. I only request that you include a customisable ini, as sometimes modders have a different idea of balance to me, and they don't fit into my games... And I am sure I am not the only one!

 

Thanks for your time.

Link to comment
Share on other sites

That seems interesting, but I would prefer per attack if possible, because sometimes additional effects cause the kill instead of the weapon, and I dont know how it behaves with other mods.

 

For example, I use Conduit magic, which casts a spell while you attack with your weapon (I personally tweaked the ini for the cost to be much higher than tha normal spellcast), as I don't generally enjoy most normally enchanted weapons. I have other worries about Conduit magic (I don't know if it edits the weapon ID every time you swap spells, so it might be entirely incompatible anyway.)

 

The issue with conduit magic in this case though, is which kills the NPC, the weapon or the spell?

 

I also wonder about vanilla effects like poisons etc, and possibly even the enchantments on the weapons (do they count as weapon damage too?)

 

If everything counts as weapon damage though, and it wasn't going to conflict with other mods, then I imagine it would be perfect. Although you could train very quickly by using spells, then finishing with your weapon... Probably too much effort for a small reward though haha.

Link to comment
Share on other sites

I have another idea then, I'm not sure if it can be done, but I think something could be worked out. Firstly you'll need a quest script with a GameMode beginning. Also it'll need a reference variable called target and has to be set to GetSelf. Then you'll need another script on the bow (you'll have to add a scipt to all bows, just with a little difference) (You'll still need a global variable I suppose) and a global variable in it. This script should start with OnHitWith and the reference should be YourQuestName.target and in it you should add one to the global reference. Also you'll need another quest script which removes the previous item after X of the global reference and add a new one (which should still have this script on it). If you've done everything well it should work.

 

Some notes: - You should add the script to all the bows you want to use and the stronger bows aswell.

- I don't really know how the ingame enchantment works, as I've never tweaked with it, so I'm not sure if after enchanting the script would still work.

Link to comment
Share on other sites

That sounds like it could work, but would be problematic, if it works the way I think it does.

 

The idea I had should work with custom weapons, or modified vanilla weapons, to avoid mod conflict. I am not personally able to script this, nor do I know a lot of the scripting options/language used for oblivion, but IF it exists, could you not use something like GetActorWeaponID (or whatever equivalent works) and give the player (and possibly NPC's. for companions) an invisible token to handle the scripts for counting and modifying the weapon damage (possibly also how fast weapons take damage themselves, something I thought of just now).

 

There might be simpler ways of handling this, but with my limited knowledge I figure you make the script make a call to get the weapon ID, check it against the token, if the token has the same ID recorded, it modifies the weapon, if it is a different ID it causes the old ID values to decay, and starts recording the new ID and modifying stats. And of course if there is no ID it reverts to hand to hand (which should be handled by a different mod, UNLESS it is possible to keep track of the same way. Even though there is no other Hand to hand "weapon" to switch to.)

 

If this mod works, it could be extended to armor, shields, and it might be possible for spells (although that seems unlikely and largely unnecessary.)

Edited by Xenavire
Link to comment
Share on other sites

That indeed looks like a wonderful mod, but while the concept is right the execution is too rigid.

 

I might give it a go, but I personally dislike mods that add items to my inventory, my inventory is already clogged, and I am almost certian it would clash with conduit magic, as I saw he mentioned enchanting the item removes it from the list, making you start all over again.

 

Ideally I would love a mod that brings a weak weapon up to par of a higher level one with practice, but only in raw power, not by adding effects like +marksmanship. Straight damage boosts give a bit more freedom with other mods. If I had to settle for something like this though, maybe it could be granted through lesser powers, rather than items. I mean I have my own preferences, but if some modder would make this mod it has to appeal to more people than just me.

 

EDIT: I have tested Old friends, and it doesn't conflict with any mods, but the scaling is very odd. The end result also seems rather over the top. It gets the job done in an odd way, so perhaps the modder might be nice enough to make it open source for some other modder to make a version that doesn't need items (if possible) and auto-detected your weapons, and had a more passive scaling model, rather than having a small boosts to start, and a huge boost to end.

 

Going to request his permission and link him to this thread, I only hope he responds, his input would help a lot.

Edited by Xenavire
Link to comment
Share on other sites

Then you'll need another script on the bow and a global variable in it. This script should start with OnHitWith

 

Close, but not quite.

OnHitWith does not work on the weapon's script itself. It works on the actor's script, and the block runs when the actor is hit with the weapon mentioned.

 

 

 

I once started a project about something like this. The weapon's damage, speed and weight could be upgraded through kills, enchantments could be improved by feeding it soul gems and it gave bonuses to the player for their fame/infamy.

 

Then, before I really got into it, I got onto Terran Vampires. But not before I learned how I could go about making the mod...

 

 

There are two ways of going about this: static and dynamic. The static method is to create copies of weapons in the CS, each one getting gradually stronger as you swap them out. It's a lot of work and will only be compatible with vanilla weaponry. The dynamic method is to create a few scripts with OBSE to catch any and all weapons you use, and increment them based on their use. I will explain the dynamic method...

 

First, you will definitely need OBSE. It allows the cloning and modification of weapons through script, allows event modifiers and if we really need it will allow arrays. Do not worry if that sounds complicated, I will help you through this 8)

 

Second, you don't want to actually modify the weapon, because then all instances of the weapon are modified. Take your iron bow, for example - if you upgraded it from 5 damage to 10 damage, then even NPCs using Iron bows would deal 10 damage. What you actually want to do is clone the weapon, then modify the clone. This can be done with "CloneForm" and "ModAttackDamage" respectively.

 

The hit counter can be done with an event handler. if you don't know, an event handler is just a script that runs every time a specific event occurs. For example, you hit a target, the engine detects the event and reduces the targets health.

The event we will use is OnHit. Essentially, whenever the player hits a target, the weapon they are using will have their specific counter increased.

 

To avoid clogging up the game with clones, and to keep all of the hit counters separate, I think the best option is arrays. If you don't know, an array is like a database of variables, that can be added to and called upon at any time. It's like an Inception variable ;D

 

After that, the rest is just fluff. The only problem I can think of is when the player uses a weapon that is referenced in a script, like GetItemCount, because then the clone would not work. Only the original would work, but it may be possible to script the original back into the player's inventory.

 

 

Of course, I'm sure you care more about the end result. All of this effort will essentially allow you to pick up any weapon you like, and each hit (or kill, if you prefer) will increment a counter specific to that weapon. The weapon's damage (and speed/weight too, if you like) will increase with use, as the counter reaches a certain value.

Is this what you would want?

Edited by WarRatsG
Link to comment
Share on other sites

That sounds like EXACTLY what I want XD

On a technical side, without actually scripting it, do you think enchanting the weapons partway through levelling them would break the code or interfere? (Same goes for conduit magic, or other similar mods, your best guess is fine.)

 

Also, as I am sure people would want a choice, would it be possible in the ini files to cap/uncap the amount of damage, and possibly make it scale (say first increase is at 50 hits, but after +20 damage it is taking 1000+ hits for an upgrade). If that was possible, it could be basically universal, making it a very useful and intuitive mod.

 

(I am asking your opinion on conflicts because I have a very irritating one in my game right now, one of my mods if giving monsters 100% magic resist while I am sneaking and undetected, and I cannot pinpoint the mod causing it. As I lead with sneak attacks almost constantly, this breaks conduit magic for me, so I am very self aware about causing more conflicts in my game right now. After several re-installs and activating/deactivating countless mods has not fixed my issue, which sucks.)

Link to comment
Share on other sites

Enchanting the weapon would be a minor interference, but I think the script would correct itself.

 

Ini files would make it very possible. So you want the damage bonus to actually be exponential?

That can be arranged I guess.

 

 

I will get back to you sometime soon with first drafts for scripts. :)

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...