in this topic (when finished), i will post what i know about magic modifiers, what file they are located in, and what changing each value does (again, when i get around to it)
to use this tutorial, you need to know how to use a tank viewer, and know where to find one for ds2.
inside \resources\logic.ds2res
world\contentdb\pcontent.gas
one thing to know before looking at the modifiers is that the type of codeing used to load the values is "if new modifier has new value, list it, if not, assume previous". what this means is that you can list 100 variables (if they all are strenth) and only list the name, screen name, level available, stat modified, and value of modification instead of the whole thing. example:
[ofhardiness] 'first in line of modifiers, must list everything here
{
type = suffix; 'prefex or suffex, pre = before the item name, suf= after the item name
screen_name = "of Hardiness"; 'text displayed to the end user
level = 2; 'level item is available to player (players uber level)
object_types = weapon,armor,ring,amulet; 'item the modifier can spwan on
skill_types = fighter,ranger,mage,nmage,cmage; 'skill types allowed to use this modifier
[strength]
{
alteration = alter_strength; 'selected stat to modify
value = 1; 'value to modify stat
description = "+<value> Strength"; 'text to display to the end user
duration = #infinite; 'duration of modification (same thing with reagents)
is_permanent = true; '2nd step of a 2 step confirmation of if the effect is permanent
is_single_instance = false;
custom_effect = "stat_strength"; // must be unique to effect
custom_effect_skrit = world\global\enchantments\weapon_enchant.skrit
?weapon_ffx = ffx_spell_str_bonus_sword
&projectile_ffx = ffx_spell_str_bonus_arrow;
}
}
[ofsturdiness] 'next modifier in strength enhancement line, lists only variables that change from above to this one
{
specializes = ofhardiness;
screen_name = "of Sturdiness"; 'text displayed to the end user
level = 10; 'level mod becomes available to spwan
[strength]
{
value = 3; 'value strenth is increased (remember, alteration= alter_strength is assumed because it is not mentioned
description = "+<value> Strength"; 'text displayed to the end user
}
}
one thing to note when looking through pcontent.gas are the commented out modifiers. i have no idea if they work and will post around the garage to see if anyone knows about them
when you open pcontent.gas, search for:
X Percent Chance to Cast Level Y Encase when hit
this line of text is the start of the cast level y spell when hit, and all of them are comented out. feel free to speculate on how they work
// [oflesserencase]
// {
// type = suffix;
// screen_name = "of Lesser Encase";
// level = 4;
// object_types = armor,shield; // All classes of armor $$ REVISIT $$
//
// [proc_encase]
// {
// alteration = <alter chance to fire spell>; // $$ REVISIT $$
// value = 4; // chance
// // value_2 = 5; // spell level
// description = "<value>% Chance to Cast Level <value_2> Encase at Attacker";
// duration = #infinite;
// is_permanent = true;
// is_single_instance = false;
// }
// }
// [oflesserfirebolt]
// {
// type = suffix;
// screen_name = "of Lesser Firebolt";
// level = 4;
// object_types = armor,shield; // All classes of armor $$ REVISIT $$
//
// [proc_firebolt]
// {
// alteration = <alter chance to fire spell>; // $$ REVISIT $$
// value = 5; // chance
// // value_2 = 5; // spell level
// description = "<value>% Chance to Cast Level <value_2> Firebolt at Attacker";
// duration = #infinite;
// is_permanent = true;
// is_single_instance = false;
// }
// }
from the other modifiers listed, it apears that only 2 lines are missing from them under the description line:
custom_effect =
custom_effect_skrit =
also in this grouping are these spells:
// X Percent Chance to Cast Level Y Cold Snap when hit
// X Percent Chance to Cast Level Y Fireball when hit
// X Percent Chance to Cast Level Y Grave Beam when hit
// X Percent Chance to Cast Level Y Soul Lance when hit
// X Percent Chance to Cast Level Y Jolt when hit
// X Percent Chance to Cast Level Y Multispark when hit
at the end of the file, this is found:
// Special modifiers (too high lvl to drop - i.e. can only be forced)
[blundered]
{
type = prefix;
screen_name = "Blundered";
level = 1000000;
object_types = armor;
skill_types = fighter,ranger,mage,nmage,cmage;
[strength]
{
alteration = alter_armor;
value = -2;
description = "<value> Armor";
duration = #infinite;
is_permanent = true;
is_single_instance = false;
}
}
}
so this means negative modifiers are possible, which opens up a lot of posibilities. This specific modifier "blundered" is a quest item (thanks sharkskull and savante)
I believe the "Blundered" entry is used when you answer the dryad apprentice's recipe question wrong... Reference: world\contentdb\pcontent\macros\act1_macros.gas...
If you find out how Rare item's names & enchantments are generated I'd be interested in reading about it...
I have made negitive modifiers work. The problem is that the gold formula does not take the - into account. I have also figured out way back how to make skill suites for skill bonus or cursed modifiers. I also know about rares (far as I can recall they are set stats). The blunder is a quest item. I don't play the game to know which one but level = 1000000; cannot drop. The macro does point to the quest making me 100% sure it is of the stated quest /lol. Before custom pets I was working on items. I should add this later on gotta go to bed.
edit: Cannot recall if [oflesserencase] works. Think it might have been broken but dont' remember.