I have totally re-written the socket item system and the way it works.
You now target the socket items with the gem's unique power (Just as it should be) instead of vice versa.
You can use the item's unique power to check how many socket slots are left on the item.
Becase so much of the code has been optimized and modified, it is no longer compatible with the old socket items and gems, however this one is far superior and has alot more options so it's in your best interest ti change over.
You can use both this and the old version together, but I would recommend just using this one.
For those of you who don't know what socketed items are I will explain... A socketed item is a normal item like a sword for example; except it has sockets in it that special gems can be placed into for adding bonuses to it (i.e. Keen, Enhancement Bonus etc...).
Items that can be socketed:
Armour
Melee Weapons
Cloaks
Bracers
Gloves
Helmets
Boots
Shields
Rings
Amulets
Staffs
Bows and Crossbows
Gems you can make for socketing
Attack Bonus
Damage Bonuses
Enhancement Bonuses
Keen
Bonus Spell Slots
Mighty
Extra Ranged Damage
Unlimitted Ammo
AC Bonus
Bonus Feats
Cast Spell
On-Hit Cast Spell
Damage Resistance
Haste
Freedom
Improved Evasion
Spell Resistance
Saving Throws
Skill Points
Regeneration
Ability Bonuses
Holy Avenger
True seeing
Massive Criticals
Vampiric Regeneration
More to come soon :)
Damage types for Damage Bonuses and Damage Resistances are: Acid, Bludgeioning, cold, Divine, Electrical, Fire, Magical, Negative, Piercing, Positive, Slashing, Sonic. Other customizable options:
Allow gems of the same bonus type to be stacked (i.e. +2 regen & +2 regen = +4 regen)
If you set the stackable gems switch then there is another switch that allows you to decide if you want gems of the same type to take up a seperate socket or if you want them to occupy the same socket as a gem already socketed with the same bonus type.
Set the maximum amount of each bonus allowed on an item... for example you could set it to only allow a maximum of +8 Attack Bonus, or a maximum of +12 AC Bonus etc...
You just create your socketed items and gems, add some simple local variables onto them via toolset; customize the constants in the include script and you are ready to go.
WARNING!!
Variables on items are automatically deleted when sold from standard merchants that have their inventory items set to "Infinite" (blame Bioware for that). If items are NOT set to "Infinite"; then they will retain their variables and the system will work; please bare that in mind when using this system.
There me be other possible compatibility problems with some scripts that use CopyItem(). If you use any scripts that involve socket items and the CopyItem() function, be sure to make sure the last paramter bCopyVars = TRUE otherwise vars are lost and socket items and gems will break. Some armour dying kits and crafting can cause this issue, but it is an easy fix by doing as suggested above.
Compiled Previous Updates:
Fixed incorrect variables on pre-made damage bonus gems.
Fixed function that allows limiting of damage bonus & massive criticals.
Added a new function to display maximum dice roll damage allowed on a weapon.
Added function to allow skill points gems.
Added functions to allow cast spells to be added to items.
Added functions to allow On-Hit cast spells to be added to items.
Update 7th August 07:
Added functions to socket ranged weapons.
Added functions for mighty.
Added functions for Extra Ranged Damage.
Added functions for Unlimited Ammo.
Added functions for Bonus Spell Slots.
Fixed broken variable on Acid damage pre-made gem.
Created a heap more socketed items, gems and weapons.
Added a new function for checks to be made that will now allow the user to use other types of items as gems instead of just "Misc Small".
Fixed variables small bugs.
Update 18th September 07:
Fixed a bug where damage resistance was stacking over the maximum specified in the config script.
Myths And Lies All Answered Here:
Please do not believe the utter nonsense being spread by a certain troll on Bioware forums, this system has NO dupe bugs, and does NOT lag servers, a well known expert in scripting Looked at the code, and couldn't find ANYTHING that would allow duping (Check link in my comments), you can also have this proven if you want to log onto my fairly popular PW server and try it out for yourself. As for efficiency, here is my proof:
NWNX and the Profiler plugin was left running on my PW for 2 hours with 15 players (early morning).
Average Results:
sf_sockets - 4 msec - 56 calls
This is calls per profiler update, this is extremely fast, lets compare it to an unmodified default Bioware spell:
NW_S0_AcidArrow - 31 msec - 28 calls
Now let's face it, Acid arrow isn't exactly a laggy spell is it, it has low visual effects and the code is very small in size yet it's read time is 15 times slower than my socket scripts.
What does this mean? It means trolls can't be trusted :)
The reason I posted this in the description is to clear up any misinformation being spread by trolls who know very little about scripting.
Please post REAL bugs found; on our forums. the forum link is in the forum link box above, thanks.
To this:
int nSockets = GetLocalInt(oTarget, "SOCKET_SLOTS");
string s = nSockets == 1 ? "" : "s";
FloatingTextStringOnCreature(IntToString(nSockets) + " socket" + s + " left", oPC);
Silly, I know, but the "(s)" annoyed me.
Posted by louisc at 2011-04-18 00:08:36 Voted 10.00 on 04/18/11
great job, it's exactly what I need.
But I have a problem with the system. I added it to my mod but I can't change constants. For example it doesn't matter what I set for MAX_ATTACK_BONUS - I tried to set 5, 8 and 10 but nothing happend still I was able to upgrade weapon to +20. I use patch 1.69 and CEP 2.1 (HOTU and SOU). any ideas what to do?
Posted by louisc at 2011-04-18 00:07:07 Voted 10.00 on 04/18/11
great job, it's exactly what I need.
But I have a problem with the system. I added it to my mod but I can't change constants. For example it doesn't matter what I set for MAX_ATTACK_BONUS - I tried to set 5, 8 and 10 but nothing happend still I was able to upgrade weapon to +20. I use patch 1.69 and CEP 2.1 (HOTU and SOU). any ideas what to do?
Posted by eviljason at 2010-12-04 15:37:50 Voted 10.00 on 12/04/10
I like this system... however... I can't really use it in my PW (thanks to Bioware, :-P), because I want some of them gems to spawn, etc..
I did tinker with it a bit, & I think I've come up with a way to get around that whole "sf_sockets" tag that everything has to have, but I need some help from you Scarface, (though I'm getting better, my scripting skills aren't polished yet).
Since all of the items used in this system req. a tag of "sf_sockets", why use a line (like below) where the system does call a specific tag, but make it one that is "universal".
i.e.
if (GetStringRight(GetTag(oItem), 7) == "_socket")
This way, the scripts can still function with the "universal" tag that they all need, but give developers the option to name their items (& gems) anything they want... leaving all of the variables, on each item, unchanged whenever they're sold at vendors or spawned.
I'm not sure if this would work 100% in your system or not, it's just an idea that I had recently, (& am still toying with in the scripts).
You are most alive when you're staring DEATH in the FACE!!!!!
Posted by BloodGodxXx at 2009-09-18 10:06:06 Voted 10.00 on 09/18/09
+10 Forgot to vote.
Posted by BloodGodxXx at 2009-09-18 09:59:27 Voted 10.00 on 09/18/09
Nevermind on my last post. I was looking for a Documentation file among the erf files lol. Imported it and I see the commented style doc script. ;) - Thanks!
Posted by BloodGodxXx at 2009-09-18 09:56:31 Voted 10.00 on 09/18/09
Truely an amazing edition to any server no matter what the category!
Scarface if you can can you link me to the DOC as it was not included in the download. I'm sure I wont need it but I like to understand everything thoroughly and I cannot register on forums linked in your signature.
Thanks,
|Meph|
Posted by maddogfargo at 2009-04-03 16:30:38 Voted 10.00 on 03/23/09
PPS - Triple-post anyone? (* Sorry I'm getting OLD and SENILE)
I did need to add additional variables to the item and include ONE of them them in your custom functions to Decrement Sockets before I could make this a dynamic system. Other than that...everything else in your scripts was left as-is.
Posted by maddogfargo at 2009-04-03 16:23:10 Voted 10.00 on 03/23/09
PS - There are currently NO CAPS on the number of bonus sockets gained from skills, but it would be easy enough to add an 'IF' statement to handle that if you wanted to cap them.
Posted by maddogfargo at 2009-04-03 16:20:27 Voted 10.00 on 03/23/09
If anyone's interested...
I liked this system so much I tweaked it and added event scripts to a new PW project I'm working on to really beef it up.
Items only need to have a local variable set to identify them as socketable. The rest is handles automatically via on-acquire item scripts and levelup scripts.
Players get 1 free socket on all socketable items.
Players gain 1 additional socket slot per 10 levels (Max 5 sockets at level 40)
Players gain 1 additional socket on weapons for every 10 ranks in Craft Weapon
Players gain 1 additional socket on armor for every 10 ranks in Craft Armor
The scripts that handle these and more are built into the core of my PW project...which isn't released publicly yet (* still some work to do...)
BUT...if you'd liketo see it in action or use the scripts, feel free to e-mail me and I will reply with the mod for you to examine.
maddogfargo AT carolina DOT rr DOT com
A GREAT system Scarface! Hope you like my add-ons. :)
Posted by maddogfargo at 2009-03-23 15:46:02 Voted 10.00 on 03/23/09
Bravo, Scarface! Very nice, VERY clean, just 3 scripts and VERY well documented. Love that!
I have a question though if you'll indulge me. This system is almost DEAD on the same system I was preparing to create for a project of my own. The only difference is that I planned to have the number of mods a player could apply be dependent on their rank in Craft Armor and Craft Weapon skills.
Here's my question:
If I were to tag the base items as socketable with a default value of 1 socket, and then bump that value up depending on the player's skill level, perhaps even re-checking their inventory for socketable items on levelup, do you think that would work OK with your system? I'm guessing it would, but wanted to consult with you before I start changing things.
Thanks again for a great and simple crafting system.
I'm glad your issue was resoved with the Trials of Newcastle server, I expect they realize they cannot expect players not to play elsewhere through fear of being an outcast to their community, how rediculous... _________________________ §çà®Fãçë�
Posted by CAP 9fires at 2008-12-24 10:37:01 Voted 10.00 on 12/24/08
Hands down this is one of the BEST item enchanting scripts out there.
Thanks Scarface ... oh and that thing, I was talking about on your forums... don't worry, its all good. _________________________ Vox Populi. Vox Dei The Community Adventure Project
Im not sure if i can explain my problem correctly but when i use a gem on a weapon nothing happens.
I reintegrated the system in the PW. I checked all tags. Double checked. I checked all the variables, double checked.
Do i need to put an include or a line of text/code in one of the script under module properties?
Anything else that could mess with your system?
Example:
GreatAxe Takes: +6 Dex, +6 Char, +20 Hide, +20 Concentration, + 2d6 Bludge and +2d6 Piercing.
BastardSword Takes: +20 concentration, +20 Discipline, +20 Hide and +20 Move Silently.
but shortsword will only take damage type gems, any other gem we recieve a (this type of gem cannot be socketed into this type of weapon) Considering that the two weapons above fall into the Melee Weapon catagory , which ShortSword does too, but shortsword does not take any of the gems that the weapons above do. It only started to work when I omitted your security settings to make sure certain types of gems don't work on certain types of weapons.
Sorry, maybe I didn't word it correctly, Short swords are the ONLY Weapon type that doesn't take anything besides attack/damage bonus gems, while all the other types of weapons do, including gloves.
Hey, love the script, a problem I found is that the short swords do not take skill type gems example: Concentration, Discipline.. stuff like that.. looked over the script seems to be fine. Just thought you'd like to know.
Sure it is, easy, open up the script named sf_sockets, and insert this piece of code finto line 20, like so:
void main() {
if (GetUserDefinedItemEventNumber() != X2_ITEM_EVENT_ACTIVATE) { return; }
object oPC = GetItemActivator();
// if no wizard class
if ( !GetLevelByClass ( CLASS_TYPE_WIZARD, oPC ) )
{
// display a message, and exit the script
FloatingTextStringOnCreature ( "Thi sitem is only usable by Wizards!", oPC );
return;
}
oniyen, this is a known issue and will be fixed in the next update, although I can't say when that will be.
DarK WulF, include files do not compile directly, they are compiled when a script that includes it is compiled, use the toolset feature "Build Module" and make sure "Compile Scripts" is checked. _________________________ §çà®Fãçë�
HEY DUDE GREAT SYSTEM! do they use your system on the pw shadow mountain? anyways the thing is i cant tweak the settings in your settings script cuz it wont save and compile afterward it says your missing the void main thing and then asks if you want to save it as a conditional script instead but when you do that it fails to compile do to no starting thing so whats wrong there?