From 2181120567655ebacf5c73708a8770168b782feb Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Tue, 22 Jul 2025 21:35:53 -0400 Subject: [PATCH] 2025/07/22 Update Updated ruleset.2da. Drug Resistance should be able to target the caster. Changed crafting constants for better compatibility with nwn_script_comp. Made Mirror Image work better. --- nwn/nwnprc/trunk/2das/ruleset.2da | 7 +- nwn/nwnprc/trunk/2das/spells.2da | 26 +- nwn/nwnprc/trunk/2das/vfx_persistent.2da | 512 +++++++------- nwn/nwnprc/trunk/include/inc_switch_setup.nss | 10 +- nwn/nwnprc/trunk/include/nw_inc_gff.nss | 623 ++++++++++++++++++ nwn/nwnprc/trunk/include/prc_inc_switch.nss | 15 +- nwn/nwnprc/trunk/include/prc_x2_craft.nss | 22 +- .../trunk/newspellbook/moi_ft_aztalent.nss | 2 +- nwn/nwnprc/trunk/scripts/mirror_image_sa.nss | 94 +++ nwn/nwnprc/trunk/scripts/prc_rest.nss | 18 + nwn/nwnprc/trunk/spells/sp_mirror.nss | 212 +++++- 11 files changed, 1217 insertions(+), 324 deletions(-) create mode 100644 nwn/nwnprc/trunk/include/nw_inc_gff.nss create mode 100644 nwn/nwnprc/trunk/scripts/mirror_image_sa.nss diff --git a/nwn/nwnprc/trunk/2das/ruleset.2da b/nwn/nwnprc/trunk/2das/ruleset.2da index ed4170b9..47fae40f 100644 --- a/nwn/nwnprc/trunk/2das/ruleset.2da +++ b/nwn/nwnprc/trunk/2das/ruleset.2da @@ -25,7 +25,7 @@ 21 GOOD_AIM_MODIFIER 1 22 STUNNING_FIST_TO_HIT_MODIFIER -4 23 STUNNING_FIST_DAMAGE_MODIFIER -4 -24 STUNNING_FIST_EFFECT_DURATION 6 +24 STUNNING_FIST_EFFECT_DURATION 6.0 25 STUNNING_FIST_BASE_SAVE_DC 10 26 CRIPPLING_STRIKE_STRENGTH_MODIFIER 2 27 **** **** @@ -336,12 +336,12 @@ 332 SKILL_EXAMINE_TRAP_DURATION 4.5f 333 SKILL_OPEN_LOCK_DURATION 4.5f 334 SKILL_LOCK_DURATION 4.5f -335 SKILL_HIDE_IN_PLAIN_SIGHT_COOLDOWN 6 +335 SKILL_HIDE_IN_PLAIN_SIGHT_COOLDOWN 3000 336 SKILL_TAUNT_COOLDOWN 6000 337 SKILL_PICKPOCKET_COOLDOWN 6000 338 SKILL_ANIMAL_EMPATHY_COOLDOWN 6000 339 ENCOUNTERS_ON_ENTER_FIRE_BEFORE_SPAWN 0 -340 **** **** +340 MONK_SPELL_RESISTANCE_CAN_BE_LOWERED 0 341 **** **** 342 **** **** 343 **** **** @@ -522,3 +522,4 @@ 518 CHARGEN_ENABLE_RECOMMENDED_BUTTON 0 519 MULTICLASS_LIMIT 8 520 ALL_ASSOCIATES_CAN_INTERACT 0 +521 EMOTE_ANIMATIONS_USE_MDL_TIMINGS 0 diff --git a/nwn/nwnprc/trunk/2das/spells.2da b/nwn/nwnprc/trunk/2das/spells.2da index b286ce2d..345d1f68 100644 --- a/nwn/nwnprc/trunk/2das/spells.2da +++ b/nwn/nwnprc/trunk/2das/spells.2da @@ -2545,7 +2545,7 @@ 2541 DEVILS_EYE 16829518 is_devils_eye D P vs 0x38 0x09 sp_devils_eye **** 3 **** **** **** 3 3 1500 head VCO_MEHEDEVIL01 **** **** SCO_MEGRDEVIL01 VS_CHANT_EVOC_HM VS_CHANT_EVOC_HF self 1000 **** **** **** c_devil_hit1 0 **** **** **** **** **** **** **** **** **** **** **** **** 10 **** 1 16829519 1 0 **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2 **** **** **** **** **** **** **** 2542 DEVILS_TAIL 16829520 **** T **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 16829521 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2543 DREAD_WORD 16829522 is_dread_word V S v 0x1d 0x0a sp_dread_word **** **** **** **** **** 3 3 1500 hand **** VCO_MEHANEVIL02 **** SCO_MEHANEVIL02 VS_CHANT_EVOC_LM VS_CHANT_EVOC_LF out 1000 **** VCA_OUTNEG **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 2 **** 1 16829523 1 0 **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -2544 DRUG_RESISTANCE 16829524 is_drug_resist E T v 0x18 0x0a sp_drug_resist **** 1 **** **** **** 1 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** +2544 DRUG_RESISTANCE 16829524 is_drug_resist E T v 0x18 0x0b sp_drug_resist **** 1 **** **** **** 1 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 2545 ECTOPLASMIC_ENCHANCEMENT 16829526 is_ecto_enhnc N S vs 0x38 0x0c sp_ecto_enhnc **** **** **** **** **** 6 6 1500 hand **** VCO_MEHANEVIL01 **** SCO_MEGRDEVIL01 VS_CHANT_NECR_HM vs_chant_necr_hf Area 1000 **** VCA_OUTNEG **** SDR_GLOBEMAX 0 **** **** **** **** **** **** **** **** **** **** **** **** 8 **** 1 16829527 1 0 **** 0 **** **** **** **** sphere 6.67 **** 4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2546 ETERNITY_OF_TORTURE 16829528 is_etern_tortr N S vs 0x38 0x0a sp_etern_tortr **** **** **** **** **** **** 9 1500 head VCO_MEHEDEVIL01 **** VCO_LGRINEVIL01 SCO_LGSPREVIL01 VS_CHANT_NECR_LM VS_CHANT_NECR_LF out 1000 **** **** **** SCA_OUTNEG 0 **** **** **** **** **** **** 1 **** **** **** **** **** 2 **** 1 16829529 1 0 **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2547 EVIL_EYE 16829530 is_evil_eye E S s 0x28 0x0a sp_evil_eye **** **** **** **** **** 3 3 1500 hand **** VCO_MEHANEVIL01 **** SCO_MEHANEVIL01 VS_CHANT_ENCH_HM VS_CHANT_ENCH_HF out 1000 **** VCA_OUTEVIL01 **** SCA_OUTNEG 0 **** **** **** **** **** **** 1 **** **** **** **** **** 2 **** 1 16829531 1 0 **** 1 **** **** **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -4402,7 +4402,7 @@ 4398 Sorcerer_Disguise_Self_QS1 16830731 is_Disguise1 I P vs 0x3a 0x01 prc_SORC_sp_gen **** **** **** **** **** **** 1 1528 head vco_smhannatr01 **** **** sco_mehannatr01 **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 4395 3 16822661 1 0 **** 0 460597177 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4399 Sorcerer_Disguise_Self_QS2 16830732 is_Disguise2 I P vs 0x3a 0x01 prc_SORC_sp_gen **** **** **** **** **** **** 1 1528 head vco_smhannatr01 **** **** sco_mehannatr01 **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 4395 3 16822661 1 0 **** 0 460662713 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4400 Sorcerer_Disguise_Self_QS3 16830733 is_Disguise3 I P vs 0x3a 0x01 prc_SORC_sp_gen **** **** **** **** **** **** 1 1528 head vco_smhannatr01 **** **** sco_mehannatr01 **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 4395 3 16822661 1 0 **** 0 460728249 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -4401 Sorcerer_DRUG_RESISTANCE 16830734 is_drug_resist E T v 0x18 0x0a prc_SORC_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10170 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +4401 Sorcerer_DRUG_RESISTANCE 16830734 is_drug_resist E T v 0x18 0x0b prc_SORC_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10170 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4402 Sorcerer_Endure_Elements 16830735 is_EndElem A T vs 0x3a 0x2B prc_SORC_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 10171 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4403 Sorcerer_ENLARGE_PERSON 16830736 is_Enlarge T S vs 0x3a 0x0B prc_SORC_sp_gen **** **** **** **** **** **** 1 1500 head **** **** **** **** vs_chant_ench_hm vs_chant_ench_hf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 1 16829173 1 0 **** 0 10172 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4404 Sorcerer_Expeditious_Retreat 16830737 is_X1ExpRet T P vs 0x3a 0x09 prc_SORC_sp_gen **** **** **** **** **** **** 1 1500 head **** **** vco_megrdodd01 sco_megrdodd01 vs_chant_ench_hm vs_chant_ench_hf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 **** 1 2676 1 0 **** 0 10173 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -5308,9 +5308,9 @@ 5304 Ocular_Adept_Quickened_Doom 16831637 is_Doom E M vs 0x3a 0x2A prc_OCU_qu_gen **** **** **** **** **** **** 5 0 head vco_mehedodd01 **** **** sco_mehedodd01 vs_chant_ench_lm vs_chant_ench_lf touch 0 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 10882 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 5305 Ocular_Adept_Silent_Doom 16831638 is_Doom E M vs 0x3a 0x2A prc_OCU_si_gen **** **** **** **** **** **** 2 1500 head vco_mehedodd01 **** **** **** **** **** touch 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 10883 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 5306 Ocular_Adept_Still_Doom 16831639 is_Doom E M vs 0x3a 0x2A prc_OCU_st_gen **** **** **** **** **** **** 2 1500 **** vco_mehedodd01 **** **** sco_mehedodd01 vs_chant_ench_lm vs_chant_ench_lf **** 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 10884 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -5307 Ocular_Adept_DRUG_RESISTANCE 16831640 is_drug_resist E T v 0x18 0x0a prc_OCU_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10885 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -5308 Ocular_Adept_Quickened_DRUG_RESISTANCE 16831641 is_drug_resist E T v 0x18 0x0a prc_OCU_qu_gen **** **** **** **** **** **** 5 0 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 0 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10886 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -5309 Ocular_Adept_Silent_DRUG_RESISTANCE 16831642 is_drug_resist E T v 0x18 0x0a prc_OCU_si_gen **** **** **** **** **** **** 2 1500 hand **** VCO_MEHANHEAL02 **** **** **** **** touch 1000 **** VCA_OUTHOLY01 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10887 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +5307 Ocular_Adept_DRUG_RESISTANCE 16831640 is_drug_resist E T v 0x18 0x0b prc_OCU_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10885 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +5308 Ocular_Adept_Quickened_DRUG_RESISTANCE 16831641 is_drug_resist E T v 0x18 0x0b prc_OCU_qu_gen **** **** **** **** **** **** 5 0 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 0 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10886 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +5309 Ocular_Adept_Silent_DRUG_RESISTANCE 16831642 is_drug_resist E T v 0x18 0x0b prc_OCU_si_gen **** **** **** **** **** **** 2 1500 hand **** VCO_MEHANHEAL02 **** **** **** **** touch 1000 **** VCA_OUTHOLY01 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 10887 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 5310 Ocular_Adept_Endure_Elements 16831643 is_EndElem A T vs 0x3a 0x2B prc_OCU_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 10888 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 5311 Ocular_Adept_Exteneded_Endure_Elements 16831644 is_EndElem A T vs 0x3a 0x2B prc_OCU_ex_gen **** **** **** **** **** **** 2 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 10889 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 5312 Ocular_Adept_Quickened_Endure_Elements 16831645 is_EndElem A T vs 0x3a 0x2B prc_OCU_qu_gen **** **** **** **** **** **** 5 0 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 10890 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -6575,8 +6575,8 @@ 6571 CultistShatteredP_Rouse 16840207 is_mscharm E S vs 0x38 0x0c prc_CULTS_sp_gen **** **** **** **** **** **** 1 1500 hand **** **** **** **** vs_chant_ench_hm vs_chant_ench_hf up 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 0 **** **** **** **** **** 23 **** 1 16826684 1 0 **** 0 11993 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6572 CultistShatteredP_Silent_Rouse 16840208 is_mscharm E S vs 0x38 0x0c prc_CULTS_si_gen **** **** **** **** **** **** 2 1500 hand **** **** **** **** **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 0 **** **** **** **** **** 23 **** 1 16826684 1 0 **** 0 11994 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6573 CultistShatteredP_Still_Rouse 16840209 is_mscharm E S vs 0x38 0x0c prc_CULTS_st_gen **** **** **** **** **** **** 2 1500 **** **** **** **** **** vs_chant_ench_hm vs_chant_ench_hf **** 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 0 **** **** **** **** **** 23 **** 1 16826684 1 0 **** 0 11995 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -6574 CultistShatteredP_DRUG_RESISTANCE 16840210 is_drug_resist E T v 0x18 0x0a prc_CULTS_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 11996 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -6575 CultistShatteredP_Silent_DRUG_RESISTANCE 16840211 is_drug_resist E T v 0x18 0x0a prc_CULTS_si_gen **** **** **** **** **** **** 2 1500 hand **** VCO_MEHANHEAL02 **** **** **** **** touch 1000 **** VCA_OUTHOLY01 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 11997 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +6574 CultistShatteredP_DRUG_RESISTANCE 16840210 is_drug_resist E T v 0x18 0x0b prc_CULTS_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 11996 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +6575 CultistShatteredP_Silent_DRUG_RESISTANCE 16840211 is_drug_resist E T v 0x18 0x0b prc_CULTS_si_gen **** **** **** **** **** **** 2 1500 hand **** VCO_MEHANHEAL02 **** **** **** **** touch 1000 **** VCA_OUTHOLY01 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 11997 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6576 CultistShatteredP_Nybors_Gentle_Reminder 16840212 is_nybgentrem E S vs 0x3a 0x0a prc_CULTS_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehanmind01 **** sco_mehanmind01 vs_chant_ench_lm vs_chant_ench_lf out 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830442 1 0 **** 1 11998 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6577 CultistShatteredP_Exteneded_Nybors_Gentle_Reminder 16840213 is_nybgentrem E S vs 0x3a 0x0a prc_CULTS_ex_gen **** **** **** **** **** **** 2 1500 hand **** vco_mehanmind01 **** sco_mehanmind01 vs_chant_ench_lm vs_chant_ench_lf out 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830442 1 0 **** 1 11999 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6578 CultistShatteredP_Silent_Nybors_Gentle_Reminder 16840214 is_nybgentrem E S vs 0x3a 0x0a prc_CULTS_si_gen **** **** **** **** **** **** 2 1500 hand **** vco_mehanmind01 **** **** **** **** out 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830442 1 0 **** 1 12000 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -6667,7 +6667,7 @@ 6663 Beguiler_Disguise_Self_QS1 16840299 is_Disguise1 I P vs 0x3a 0x01 prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1528 head vco_smhannatr01 **** **** sco_mehannatr01 **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 6660 3 16822661 1 0 **** 0 484781857 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6664 Beguiler_Disguise_Self_QS2 16840300 is_Disguise2 I P vs 0x3a 0x01 prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1528 head vco_smhannatr01 **** **** sco_mehannatr01 **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 6660 3 16822661 1 0 **** 0 484847393 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6665 Beguiler_Disguise_Self_QS3 16840301 is_Disguise3 I P vs 0x3a 0x01 prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1528 head vco_smhannatr01 **** **** sco_mehannatr01 **** **** up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 6660 3 16822661 1 0 **** 0 484912929 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -6666 Beguiler_DRUG_RESISTANCE 16840302 is_drug_resist E T v 0x18 0x0a prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 12066 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +6666 Beguiler_DRUG_RESISTANCE 16840302 is_drug_resist E T v 0x18 0x0b prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 12066 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6667 Beguiler_Expeditious_Retreat 16840303 is_X1ExpRet T P vs 0x3a 0x09 prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1500 head **** **** vco_megrdodd01 sco_megrdodd01 vs_chant_ench_hm vs_chant_ench_hf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 **** 1 2676 1 0 **** 0 12067 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6668 Beguiler_Mage_Armor 16840304 is_MageArm C T vs 0x3a 0x2B prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 16830210 1 0 **** 0 12068 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 6669 Beguiler_Nybors_Gentle_Reminder 16840305 is_nybgentrem E S vs 0x3a 0x0a prc_BEGUI_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehanmind01 **** sco_mehanmind01 vs_chant_ench_lm vs_chant_ench_lf out 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830442 1 0 **** 1 12069 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -8009,7 +8009,7 @@ 8005 ****_DETECT_UNDEAD 16841641 is_detect_evil D M vs 0x3a 0x09 prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 head **** **** **** **** **** **** out 1000 **** vco_gazeevil **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 1 16832271 1 0 **** 0 13269 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8006 ****_Divine_Favor 16841642 is_X1DivFav V P vs 0x3a 0x09 prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_smhanholy01 **** sco_mehanholy01 vs_chant_ench_lm vs_chant_ench_lf area 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 0 **** **** **** **** **** 9 **** 1 54 1 0 **** 0 13270 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8007 ****_Doom 16841643 is_Doom E M vs 0x3a 0x2A prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 head vco_mehedodd01 **** **** sco_mehedodd01 vs_chant_ench_lm vs_chant_ench_lf touch 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 13271 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -8008 ****_DRUG_RESISTANCE 16841644 is_drug_resist E T v 0x18 0x0a prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13272 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +8008 ****_DRUG_RESISTANCE 16841644 is_drug_resist E T v 0x18 0x0b prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13272 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8009 ****_Endure_Elements 16841645 is_EndElem A T vs 0x3a 0x2B prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 13273 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8010 ****_Entropic_Shield 16841646 is_X1EShield A P vs 0x3a 0x09 prc_MYST_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 521 1 0 **** 0 13274 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8011 ****_EXTRACT_DRUG 16841647 is_extract_drug C P vs 0x38 0x09 prc_radialbug **** **** **** **** **** **** 1 1500 hand **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 8012 8013 8014 8015 **** **** **** **** 16829541 **** **** **** **** 13275 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -8548,9 +8548,9 @@ 8544 Archivist_Quickened_Doom 16842180 is_Doom E M vs 0x3a 0x2A prc_ARCHV_qu_gen **** **** **** **** **** **** 5 0 head vco_mehedodd01 **** **** sco_mehedodd01 vs_chant_ench_lm vs_chant_ench_lf touch 0 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 13699 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8545 Archivist_Silent_Doom 16842181 is_Doom E M vs 0x3a 0x2A prc_ARCHV_si_gen **** **** **** **** **** **** 2 1500 head vco_mehedodd01 **** **** **** **** **** touch 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 13700 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8546 Archivist_Still_Doom 16842182 is_Doom E M vs 0x3a 0x2A prc_ARCHV_st_gen **** **** **** **** **** **** 2 1500 **** vco_mehedodd01 **** **** sco_mehedodd01 vs_chant_ench_lm vs_chant_ench_lf **** 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 13701 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -8547 Archivist_DRUG_RESISTANCE 16842183 is_drug_resist E T v 0x18 0x0a prc_ARCHV_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13702 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -8548 Archivist_Quickened_DRUG_RESISTANCE 16842184 is_drug_resist E T v 0x18 0x0a prc_ARCHV_qu_gen **** **** **** **** **** **** 5 0 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 0 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13703 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -8549 Archivist_Silent_DRUG_RESISTANCE 16842185 is_drug_resist E T v 0x18 0x0a prc_ARCHV_si_gen **** **** **** **** **** **** 2 1500 hand **** VCO_MEHANHEAL02 **** **** **** **** touch 1000 **** VCA_OUTHOLY01 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13704 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +8547 Archivist_DRUG_RESISTANCE 16842183 is_drug_resist E T v 0x18 0x0b prc_ARCHV_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13702 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +8548 Archivist_Quickened_DRUG_RESISTANCE 16842184 is_drug_resist E T v 0x18 0x0b prc_ARCHV_qu_gen **** **** **** **** **** **** 5 0 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 0 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13703 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +8549 Archivist_Silent_DRUG_RESISTANCE 16842185 is_drug_resist E T v 0x18 0x0b prc_ARCHV_si_gen **** **** **** **** **** **** 2 1500 hand **** VCO_MEHANHEAL02 **** **** **** **** touch 1000 **** VCA_OUTHOLY01 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 13704 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8550 Archivist_Endure_Elements 16842186 is_EndElem A T vs 0x3a 0x2B prc_ARCHV_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 13705 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8551 Archivist_Exteneded_Endure_Elements 16842187 is_EndElem A T vs 0x3a 0x2B prc_ARCHV_ex_gen **** **** **** **** **** **** 2 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 13706 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 8552 Archivist_Quickened_Endure_Elements 16842188 is_EndElem A T vs 0x3a 0x2B prc_ARCHV_qu_gen **** **** **** **** **** **** 5 0 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 13707 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** @@ -12360,7 +12360,7 @@ 12356 Favoured_Soul_DETECT_UNDEAD 16845992 is_detect_evil D M vs 0x3a 0x09 prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 head **** **** **** **** **** **** out 1000 **** vco_gazeevil **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 1 16832271 1 0 **** 0 16792 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 12357 Favoured_Soul_Divine_Favor 16845993 is_X1DivFav V P vs 0x3a 0x09 prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_smhanholy01 **** sco_mehanholy01 vs_chant_ench_lm vs_chant_ench_lf area 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 0 **** **** **** **** **** 9 **** 1 54 1 0 **** 0 16793 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 12358 Favoured_Soul_Doom 16845994 is_Doom E M vs 0x3a 0x2A prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 head vco_mehedodd01 **** **** sco_mehedodd01 vs_chant_ench_lm vs_chant_ench_lf touch 1000 **** **** **** **** 0 **** **** **** **** **** Mind_Affecting 1 **** **** **** **** **** 2 **** 1 16830215 1 0 **** 1 16794 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -12359 Favoured_Soul_DRUG_RESISTANCE 16845995 is_drug_resist E T v 0x18 0x0a prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 16795 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +12359 Favoured_Soul_DRUG_RESISTANCE 16845995 is_drug_resist E T v 0x18 0x0b prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 16795 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 12360 Favoured_Soul_Endure_Elements 16845996 is_EndElem A T vs 0x3a 0x2B prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_mehannatr02 **** sco_mehannatr02 vs_chant_conj_lm vs_chant_conj_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 6147 1 0 **** 0 16796 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 12361 Favoured_Soul_Entropic_Shield 16845997 is_X1EShield A P vs 0x3a 0x09 prc_FAVSO_sp_gen **** **** **** **** **** **** 1 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 13 **** 1 521 1 0 **** 0 16797 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 12362 Favoured_Soul_EXTRACT_DRUG 16845998 is_extract_drug C P vs 0x38 0x09 prc_radialbug **** **** **** **** **** **** 1 1500 hand **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 12363 12364 12365 12366 **** **** **** **** 16829541 **** **** **** **** 16798 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** diff --git a/nwn/nwnprc/trunk/2das/vfx_persistent.2da b/nwn/nwnprc/trunk/2das/vfx_persistent.2da index 2d573799..fc8ea3bb 100644 --- a/nwn/nwnprc/trunk/2das/vfx_persistent.2da +++ b/nwn/nwnprc/trunk/2das/vfx_persistent.2da @@ -1,258 +1,258 @@ 2DA V2.0 - LABEL SHAPE RADIUS WIDTH LENGTH ONENTER ONEXIT HEARTBEAT OrientWithGround DurationVFX MODEL01 MODEL02 MODEL03 NUMACT01 NUMACT02 NUMACT03 DURATION01 DURATION02 DURATION03 EDGEWGHT01 EDGEWGHT02 EDGEWGHT03 SoundImpact SoundDuration SoundCessation SoundOneShot SoundOneShotPercentage MODELMIN01 MODELMIN02 MODELMIN03 -0 VFX_PER_FOGACID C 5 **** **** NW_S0_AcidFogA sp_gen_exit NW_S0_AcidFogC 0 **** vps_fogacid vps_fogacid vps_fogacid 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogacid_L vps_fogacid_L vps_fogacid_L -1 VFX_PER_FOGFIRE C 5 **** **** NW_S0_IncCloudA sp_gen_exit NW_S0_IncCloudC 0 **** vps_fogfire vps_fogfire vps_fogfire 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fogfire 0.3 vps_fogfire_L vps_fogfire_L vps_fogfire_L -2 VFX_PER_FOGSTINK C 6.7 **** **** NW_S0_StinkCldA **** NW_S0_StinkCldC 0 **** vps_fogstink vps_fogstink vps_fogstink 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogstink_L vps_fogstink_L vps_fogstink_L -3 VFX_PER_FOGKILL C 5 **** **** NW_S0_CloudKillA sp_gen_exit NW_S0_CloudKillC 0 **** vps_fogkill vps_fogkill vps_fogkill 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogkill_L vps_fogkill_L vps_fogkill_L -4 VFX_PER_FOGMIND C 5 **** **** NW_S0_MindFogA NW_S0_MindFogB **** 0 **** vps_fogmind vps_fogmind vps_fogmind 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogmind_L vps_fogmind_L vps_fogmind_L -5 VFX_PER_WALLFIRE R **** 10 2 NW_S0_WallFireA **** NW_S0_WallFireC 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -6 VFX_PER_WALLWIND R **** 10 1 **** **** **** 0 **** vpr_gas vpr_gas vpr_gas 1 1 1 2000 2000 2000 0.5 0.5 0.5 **** **** **** **** **** vpr_gas_L vpr_gas_L vpr_gas_L -7 VFX_PER_WALLBLADE R **** 10 1 NW_S0_BladeBarA **** NW_S0_BladeBarC 0 **** vps_sword_01 vps_sword_02 vps_sword_03 5 5 5 2000 1500 2900 0 0 0 **** sps_sword01 **** **** **** **** **** **** -8 VFX_PER_WEB C 6.7 **** **** NW_S0_WebA sp_gen_exit NW_S0_WebC 0 230 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -9 VFX_PER_ENTANGLE C 5 **** **** NW_S0_EntangleA sp_gen_exit NW_S0_EntangleC 0 **** vps_entangle vps_entangle vps_entangle 5 5 5 2000 1500 2900 0 0 0 **** sps_entangle **** **** **** vps_entangle_L vps_entangle_L vps_entangle_L -10 VFX_PER_CHAOS C 5 **** **** NW_S0_SphChaosA NW_S0_SphChaosB NW_S0_SphChaosC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -11 VFX_PER_DARKNESS C 6.7 **** **** NW_S0_DarknessA NW_S0_DarknessB **** 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** -12 VFX_MOB_CIRCEVIL C 3.3 **** **** NW_S0_CircGoodA NW_S0_CircGoodB **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -13 VFX_MOB_CIRCGOOD C 3.3 **** **** NW_S0_CircEvilA NW_S0_CircEvilB **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -14 VFX_MOB_CIRCLAW C 3.3 **** **** NW_S0_CircLawA NW_S0_CircLawB **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -15 VFX_MOB_CIRCCHAOS C 3.3 **** **** NW_S0_CircChaosA NW_S0_CircChaosB **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -16 VFX_MOB_FEAR C 4 **** **** NW_S1_AuraFearA **** **** 0 275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -17 VFX_MOB_BLINDING C 4 **** **** NW_S1_AuraBlndA **** **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -18 VFX_MOB_UNEARTHLY C 4 **** **** NW_S1_AuraUnEaA **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -19 VFX_MOB_MENACE C 4 **** **** NW_S1_AuraMencA **** **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -20 VFX_MOB_UNNATURAL C 4 **** **** NW_S1_AuraUnatA **** **** 0 275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -21 VFX_MOB_STUN C 4 **** **** NW_S1_AuraStunA **** **** 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -22 VFX_MOB_PROTECTION C 4 **** **** NW_S1_AuraProtA NW_S1_AuraProtB **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -23 VFX_MOB_FIRE C 4 **** **** **** **** NW_S1_AuraFireC 0 268 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -24 VFX_MOB_FROST C 4 **** **** **** **** NW_S1_AuraColdC 0 267 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -25 VFX_MOB_ELECTRICAL C 4 **** **** **** **** NW_S1_AuraElecC 0 267 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -26 VFX_PER_FOGGHOUL C 1.65 **** **** NW_S0_GhoulTchA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 3 3 3 3400 1100 1900 0 0.25 0.25 **** fs_floatexhale **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L -27 VFX_MOB_TYRANT_FOG C 3 **** **** NW_S1_TyrantFgA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L -28 VFX_PER_STORM C 10 **** **** **** **** NW_S0_StormVenC 0 248 vps_storm vps_storm vps_storm 15 15 15 3400 1100 1900 0 0 0.25 **** sps_storm **** **** **** vps_storm_L vps_storm_L vps_storm_L -29 VFX_PER_INVIS_SPHERE C 5 **** **** NW_S0_InvSphA NW_S0_InvSphB **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -30 VFX_MOB_SILENCE C 4 **** **** NW_S0_SilenceA NW_S0_SilenceB NW_S0_SilenceC 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -31 VFX_PER_DELAY_BLAST_FIREBALL C 2 **** **** NW_S0_DelFireA **** **** 0 **** vps_delfireb vps_delfireb vps_delfireb 5 5 5 3400 1100 1900 0 0 0.25 **** sps_delfireb **** **** **** vps_delfireb_L vps_delfireb_L vps_delfireb_L -32 VFX_PER_GREASE C 6 **** **** NW_S0_GreaseA sp_gen_exit NW_S0_GreaseC 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L -33 VFX_PER_CREEPING_DOOM C 6.7 **** **** NW_S0_CrpDoomA sp_gen_exit NW_S0_CrpDoomC 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L -34 VFX_PER_EVARDS_BLACK_TENTACLES C 5 **** **** NW_S0_EvardsA **** NW_S0_EvardsC 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -35 VFX_MOB_INVISIBILITY_PURGE C 10 **** **** NW_S0_InvPurgeA **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -36 VFX_MOB_DRAGON_FEAR C 10 **** **** NW_S1_DragFearA **** **** 0 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -37 VFX_CUSTOM C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -38 VFX_PER_GLYPH C 2.5 **** **** X2_S2_GlphwardA **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -39 VFX_PER_FOGBEWILDERMENT C 5 **** **** X2_S0_CldBewldA **** X2_S0_CldBewldC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -40 VFX_PER_CAMOUFLAGE C 6 **** **** X2_S0_VineMCamA X2_S0_VineMCamB **** 0 **** vdr_antilght vdr_antilght vdr_antilght 2 2 2 4000 2000 3000 **** 1 1 **** **** **** **** **** **** **** **** -41 VFX_MOB_BATTLETIDE C 3.3 **** **** X2_s0_BatttideA X2_s0_BatttideB **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -42 VFX_PER_STONEHOLD C 5 **** **** X2_S0_StneholdA **** X2_S0_StneholdC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 3 3 3 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -43 VFX_PER_VFX_OVERMIND C 5 **** **** **** **** **** 0 **** vwp_m_chunk_grn vwp_m_blood_grn vwp_m_blood_yel 6 6 6 3400 1100 1900 0 0 0 **** **** **** **** 0.3 **** **** **** -44 VFX_MOB_HORRIFICAPPEARANCE C 10 **** **** nw_s1_horrappra **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -45 VFX_MOB_TROGLODYTE_STENCH C 10 **** **** NW_S1_trogstinkA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L -46 VFX_MOB_NIGHTMARE_SMOKE C 6 **** **** **** **** DLA_S1_NMSMOKEC 0 **** vps_nmsmoke vps_nmsmoke vps_nmsmoke 6 5 4 2000 3000 4000 0 0 0 **** **** **** **** **** **** **** **** -47 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -48 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -49 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -50 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -51 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -52 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -53 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -54 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -55 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -56 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -57 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -58 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -59 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -60 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -61 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -62 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -63 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -64 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -65 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -66 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -67 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -68 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -69 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -70 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -71 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -72 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -73 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -74 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -75 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -76 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -77 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -78 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -79 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -80 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -81 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -82 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -83 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -84 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -85 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -86 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -87 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -88 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -89 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -90 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -91 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -92 CEP_RESERVED(47-92) **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -93 VFX_PER_VIOLET_RAIN C 1 **** **** **** **** sp_violet_rainC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -94 VFX_PER_RAIN_OF_FROGS C 1 **** **** **** **** sp_rain_ffishC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -95 VFX_PER_RAIN_OF_BLOOD C 1 **** **** **** **** sp_rain_bloodC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -96 VFX_PER_GREEN_FOG C 1 **** **** **** **** sp_green_fogC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -97 AOE_MOB_LUMINOUS_ARMOR C 6.096 **** **** **** **** sp_luminousA 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -98 AOE_PER_CRACKLEPOWDER C 1.65 **** **** sp_cracklepdrA sp_gen_exit **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -99 VFX_MOB_CLOUDY_CONJURATION C 3 **** **** prc_ft_cldconj **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L -100 VFX_PER_RAIN_OF_FIRE C 18 **** **** aoe_rainfire_ent **** aoe_rainfire_hb 0 **** vps_firerain vps_firerain vps_firerain 15 15 15 3400 1100 1900 0 0 0.25 **** sps_fogfire **** **** **** vps_firerain_L vps_firerain_L **** -101 USER **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -102 VFX_PER_PLAGUE_SHADOW C 5 **** **** shd_myst_plgshda **** shd_myst_plgshdc 0 **** vps_fogfreeze vps_fogfreeze vps_fogfreeze 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogfreeze_L vps_fogfreeze_L vps_fogfreeze_L -103 VFX_PER_FLOOD_SHADOW C 6.7 **** **** shd_myst_fldshda shd_myst_fldshdb **** 0 **** vps_fogpurp vps_fogpurp vps_fogpurp 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogpurp_L vps_fogpurp_L vps_fogpurp_L -104 VFX_PER_CURTAIN_SHADOWS R **** 10 2 shd_myst_crtshda **** shd_myst_crtshdc 0 **** vps_wallpurp vps_wallpurp vps_wallpurp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallpurp_L vps_wallpurp_L vps_wallpurp_L -105 VFX_PER_CLINGING_DARNESS C 6.7 **** **** shd_myst_clngdka **** shd_myst_clngdkc 0 **** vps_fogpurp vps_fogpurp vps_fogpurp 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogpurp_L vps_fogpurp_L vps_fogpurp_L -106 VFX_PER_BLACKFIRE R **** 10 2 shd_myst_blckfra **** shd_myst_blckfrc 0 **** vps_wallpurp vps_wallpurp vps_wallpurp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallpurp_L vps_wallpurp_L vps_wallpurp_L -107 VFX_PER_DUSK_AND_DAWN C 6 **** **** shd_myst_dskdwna shd_myst_dskdwnb shd_myst_dskdwnc 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** -108 VFX_PER_CARPET_SHADOW C 6 **** **** shd_myst_crpshda shd_myst_crpshdb **** 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L -109 VFX_MOB_DAYLIGHT C 18 **** **** sp_daylightA sp_daylightB **** 0 920 smp_daylight smp_daylight smp_daylight **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_daylight smp_daylight **** -110 VFX_MOB_CIRCEVIL_NODIS C 3.3 **** **** fist_circevila fist_circevilb **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -111 VFX_AOE_DESECRATE_20 C 6.7 **** **** sp_desecratea sp_desecrateb **** 0 **** smp_desecrate20 smp_desecrate20 smp_desecrate20 **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_desecrate20 smp_desecrate20 **** -112 VFX_AOE_DESECRATE_100 C 30 **** **** prc_tn_des_a prc_tn_des_c **** 0 **** smp_desecrate100 smp_desecrate100 smp_desecrate100 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -113 VFX_MOB_COURHEAVN C 3.3 **** **** prc_s_courheavna prc_s_courheavnb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -114 VFX_MOB_CONSCAURA C 3.3 **** **** prc_s_conscauraa prc_s_conscaurb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -115 VFX_AOE_CONSECRATE_20 C 6.7 **** **** sp_consecratea sp_consecrateb sp_consecratec 0 803 smp_consecrate20 smp_consecrate20 smp_consecrate20 **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_consecrate20 smp_consecrate20 **** -116 VFX_PER_WALLDISPEL R **** 10 2 sp_WallDispelA **** sp_WallDispelC 0 **** vps_walldisp vps_walldisp vps_walldisp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -117 VFX_MOB_CARRION_STENCH C 3 **** **** prc_to_carrionA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L -118 VFX_MOB_PALLOR C 4 **** **** prc_to_pallorA **** **** 0 275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -119 VFX_AOE_DESECRATE C 6.7 **** **** sp_desecratea sp_desecrateb sp_desecratec 0 804 smp_desecrate smp_desecrate smp_desecrate **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_desecrate smp_desecrate **** -120 VFX_MOB_COURHEAVN C 3.3 **** **** prc_s_courheavna prc_s_courheavnb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -121 VFX_MOB_CONSCAURA C 3.3 **** **** prc_s_conscauraa prc_s_conscaurb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -122 VFX_CUSTOM3 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -123 VFX_CUSTOM4 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -124 VFX_CUSTOM5 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -125 VFX_CUSTOM6 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -126 VFX_PER_BEHOLD C 50 **** **** z217_beholda z217_beholdb z217_beholdc 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -127 VFX_MOB_BLACK_PLAGUE C 5 **** **** DF_T0_BlckPlagueA DF_T0_BlckPlagueB DF_T0_BlckPlagueC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -128 VFX_MOB_PIT_TRAP C 1.28 **** **** DF_T0_CamoPitA DF_T0_CamoPitB DF_T0_CamoPitC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** as_sw_clothop1 **** as_sw_clothcl1 **** **** **** **** **** -129 VFX_MOB_PIT_TRAP2 R **** 3.72 2.65 DF_T0_DeepPitA DF_T0_DeepPitB DF_T0_DeepPitC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** as_dr_metlmedop2 **** as_dr_metmedcr2 **** **** **** **** **** -130 VFX_MOB_WHIRLING_BLADE C 5 **** **** DF_T0_WhirlBldA DF_T0_WhirlBldB DF_T0_WhirlBldC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** sps_sword01 **** **** **** **** **** **** -131 VFX_PER_PSIGREASE C 6 **** **** psi_pow_GreaseA psi_pow_GreaseB psi_pow_GreaseC 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L -132 VFX_PER_ESHAMBLER C 10 **** **** psi_pow_eshamA psi_pow_eshamB psi_pow_eshamC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 10 10 10 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -133 VFX_PER_ENERGYWALL R **** 10 2 psi_pow_enwall1 **** psi_pow_enwall2 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -134 VFX_MOB_CATAPSI C 10 **** **** psi_pow_catapsia psi_pow_catapsib psi_pow_catapsic 0 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -135 VFX_PER_NULLPSIONICS C 3.3 **** **** psi_pow_npfent psi_pow_npfext **** 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -136 VFX_MOB_FORM_DOOM C 6.7 **** **** psi_pow_frmdment **** **** 0 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -137 VFX_PER_ENERGYWALL_WIDENED R **** 20 4 psi_pow_enwall1 **** psi_pow_enwall2 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -138 VFX_PER_ESHAMBLER_WIDENED C 20 **** **** psi_pow_eshamA psi_pow_eshamB psi_pow_eshamC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 15 15 15 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -139 VFX_PER_NULLPSIONICS_WIDENED C 6.7 **** **** psi_pow_npfent psi_pow_npfext **** 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -140 VFX_PER_NEW_TIMESTOP C 50 **** **** pt_enter pt_exit **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -141 VFX_PER_OBSCURING_MIST C 5 **** **** sp_obscmist_ent sp_obscmist_exit **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -142 AOE_PER_FOG_VOID_CLOUD C 6 **** **** true_utr_fogvoda true_utr_fogvodc **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -143 AOE_PER_FOG_VOID_SOLID C 6 **** **** true_utr_fogvodb true_utr_fogvodc **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -144 AOE_PER_SHIELD_LANDSCAPE C 6 **** **** true_utr_sldlnda true_utr_sldlndb **** 0 **** vps_entangle vps_entangle vps_entangle 5 5 5 2000 1500 2900 0 0 0 **** sps_entangle **** **** **** vps_entangle_L vps_entangle_L vps_entangle_L -145 AOE_PER_ENERGY_VORTEX C 6 **** **** true_utr_envrtxa **** true_utr_envrtxb 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 10 10 10 2000 2000 2000 0.5 0.5 0.5 **** **** **** **** **** vpr_gas_L vpr_gas_L vpr_gas_L -146 AOE_PER_SPEAK_ROCK_MUD C 6 **** **** true_utr_rckmuda true_utr_rckmudb **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -147 AOE_PER_TRANSFORM_LANDSCAPE C 6 **** **** true_utr_trnlnda **** true_utr_trnlndb 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L -148 AOE_PER_DENY_PASSAGE C 6 **** **** true_utr_dnypasa true_utr_dnypasb **** 0 20 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -149 AOE_PER_MOUNTAIN_FORTRESS C 3.3 **** **** tob_dpst_mntfrta **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -150 VFX_MOB_PESTILENCE C 1.65 **** **** sp_pest_aura_oe **** sp_pest_aura_hb 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -151 AOE_PER_TELEPORTATIONCIRCLE C 1.524 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -152 VFX_PER_WALLBREATH R **** 10 2 prc_wallbreatha **** prc_wallbreathc 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -153 VFX_DRACONIC_AURA_1 C 10 **** **** prc_dracaura_in prc_dracaura_out **** 0 763 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -154 USER **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -155 VFX_MARSH_MIN1 C 20 **** **** prc_marsh_min1a prc_marsh_min1b **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -156 VFX_MARSH_MAJ1 C 20 **** **** prc_marsh_maj1a prc_marsh_maj1b **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -157 AOE_PER_SALAMANDER_CHARGE R **** 2 10 tob_dw_salchrga **** tob_dw_salchrgb 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -158 AOE_PER_IRON_GUARD_GLARE C 3.3 **** **** tob_dvsp_igglra tob_dvsp_igglrb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -159 AOE_PER_STANCE_OF_CLARITY C 3.3 **** **** **** **** tob_dmnd_stnclra 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -160 AOE_PER_BOLSTERING_VOICE C 13.2 **** **** tob_wtrn_blsrvca tob_wtrn_blsrvcb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -161 AOE_PER_LEADING_CHARGE C 13.2 **** **** tob_wtrn_ldchrga tob_wtrn_ldchrgb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -162 AOE_MOB_BULWARK_DEFENSE C 3.3 **** **** prc_knght_blwrka prc_knght_blwrkb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -163 AOE_MOB_VIGILANT_DEFENDER C 3.3 **** **** prc_knght_vigila prc_knght_vigilb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -164 AOE_PER_ROOT_MOUNTAIN C 3.3 **** **** tob_stdr_rtmntna tob_stdr_rtmntnb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -165 AOE_PER_TACTICS_WOLF C 3.3 **** **** **** **** tob_wtrn_tctwlfb 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -166 AOE_PER_DESERT_TEMPEST C 1.3 **** **** tob_dw_dsttmpta **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -167 AOE_MOB_MOUNTAIN_AVALANCHE C 1 **** **** tob_stdr_mtavlA **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -168 VFX_PER_SNARE C 3.048 **** **** sp_snareA **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -169 AOE_PER_PYROTECHNICS_SMOKE C 6.096 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -170 AOE_PER_FIRE_TRAP C 1.524 **** **** sp_fire_trapA **** **** 0 **** vps_delfireb vps_delfireb vps_delfireb 5 5 5 3400 1100 1900 0 0 0.25 **** sps_delfireb **** **** **** vps_delfireb_L vps_delfireb_L vps_delfireb_L -171 VFX_PER_PRISMATIC_WALL R **** 15 1 sp_prism_wallA **** **** **** 891 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -172 VFX_MOB_RING_OF_BLADES C 1.524 **** **** sp_ring_bldsa **** sp_ring_bldsC **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -173 VFX_PER_PRISMATIC_SPHERE C 3.048 **** **** sp_prismt_sphrA sp_prismt_sphrB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -174 VFX_PER_OTILUKES_RESILIENT_SPHERE C 3.048 **** **** sp_otiluke_rsA sp_otiluke_rsB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -175 VFX_PER_SLEET_STORM C 12.192 **** **** sp_sleet_stormA sp_sleet_stormB sp_sleet_stormC 0 248 vps_sstorm vps_sstorm vps_sstorm 15 15 15 3400 1100 1900 0 0 0.25 **** sps_storm **** **** **** vps_sstorm_L vps_sstorm_L vps_sstorm_L -176 VFX_PER_SICKEN_EVIL C 6.096 **** **** sp_sickn_evilA sp_sickn_evilB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -177 AOE_PER_CALM_EMOTIONS C 6.096 **** **** sp_calm_emotionA **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -178 AOE_PER_REPULSION C 18.288 **** **** sp_repulsionA sp_repulsionB sp_repulsionC **** 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -179 AOE_PER_SOLID_FOG C 6 **** **** sp_solid_fogA sp_solid_fogB **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 10 10 10 7300 4500 2500 0.5 0.5 0.5 **** **** **** **** **** **** **** **** -180 AOE_PER_REPEL_VERMIN C 6.096 **** **** sp_repel_verminA **** **** **** 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -181 VFX_AOE_RAIN_OF_ROSES C 24.38 **** **** sp_rain_roseA sp_rain_roseB sp_rain_roseC **** **** vff_explnature **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -182 VFX_AOE_RAIN_OF_BLACK_TULIPS C 24.38 **** **** sp_rain_btulA sp_rain_btulB **** **** **** vff_explnature **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -183 VFX_AOE_BLNDGLORY C 30.48 **** **** sp_blnd_gloryA sp_blnd_gloryB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -184 VFX_PER_5_FT_INVIS C 1.524 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -185 VFX_PER_10_FT_INVIS C 3.048 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -186 VFX_PER_15_FT_INVIS C 4.572 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -187 VFX_PER_20_FT_INVIS C 6.096 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -188 VFX_PER_25_FT_INVIS C 7.62 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -189 VFX_PER_30_FT_INVIS C 9.144 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -190 5mInvisAOE C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -191 10mInvisAOE C 10 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -192 15mInvisAOE C 15 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -193 20mInvisAOE C 20 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -194 25mInvisAOE C 25 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -195 30mInvisAOE C 30 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -196 35mInvisAOE C 35 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -197 40mInvisAOE C 40 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -198 45mInvisAOE C 45 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -199 50mInvisAOE C 50 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -200 VFX_PER_FOGFREEZE C 5 **** **** **** **** **** 0 **** vps_fogfreeze vps_fogfreeze vps_fogfreeze 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogfreeze_L vps_fogfreeze_L vps_fogfreeze_L -201 VFX_PER_FOGYELLOW C 5 **** **** **** **** **** 0 **** vps_fogyell vps_fogyell vps_fogyell 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogyell_L vps_fogyell_L vps_fogyell_L -202 VFX_PER_FOGPURPLE C 5 **** **** **** **** **** 0 **** vps_fogpurp vps_fogpurp vps_fogpurp 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogpurp_L vps_fogpurp_L vps_fogpurp_L -203 AOE_PER_DAMNDARK C 6.7 **** **** sp_damn_darkA sp_damn_darkB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -204 VFX_MOB_BRILLIANT_EMANATION C 30.48 **** **** sp_brill_emanA sp_brill_emanB **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -205 VFX_PER_UTTERDARK C 50 **** **** sp_utterdarkA sp_utterdarkB **** 0 844 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** -206 VFX_PER_ACHAIERAI C 3.048 **** **** sp_cloud_achai sp_cloud_achaiB **** 0 845 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -207 VFX_PER_WALLFROST R **** 10 2 sp_wallfrosta **** sp_wallfrostc 0 **** vps_wallfrost vps_wallfrost vps_wallfrost 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfrost_L vps_wallfrost_L vps_wallfrost_L -208 VFX_PER_WALLGRN R **** 10 2 **** **** **** 0 **** vps_wallgrn vps_wallgrn vps_wallgrn 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallgrn_L vps_wallgrn_L vps_wallgrn_L -209 VFX_PER_WALLYELLOW R **** 10 2 **** **** **** 0 **** vps_wallyello vps_wallyello vps_wallyello 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallyello_L vps_wallyello_L vps_wallyello_L -210 VFX_PER_WALLPURPLE R **** 10 2 **** **** **** 0 **** vps_wallpurp vps_wallpurp vps_wallpurp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallpurp_L vps_wallpurp_L vps_wallpurp_L -211 VFX_PER_WALLRED R **** 10 2 **** **** **** 0 **** vps_wallred vps_wallred vps_wallred 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallred_L vps_wallred_L vps_wallred_L -212 VFX_PER_WALLBLUE R **** 10 2 **** **** **** 0 **** vps_wallblue vps_wallblue vps_wallblue 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallblue_L vps_wallblue_L vps_wallblue_L -213 VFX_PER_DEEPERDARKNESS C 20 **** **** NW_S0_DarknessA NW_S0_DarknessB **** 0 843 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** -214 5mInvisAOE R **** 5 5 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -215 10mInvisAOE R **** 10 10 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -216 15mInvisAOE R **** 15 15 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -217 20mInvisAOE R **** 20 20 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -218 25mInvisAOE R **** 25 25 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -219 30mInvisAOE R **** 30 30 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -220 35mInvisAOE R **** 35 35 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -221 40mInvisAOE R **** 40 40 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -222 45mInvisAOE R **** 45 45 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -223 50mInvisAOE R **** 50 50 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -224 INVOKE_AOE_CHILLFOG C 6 **** **** inv_dra_chilfoga inv_dra_chilfogb inv_dra_chilfogc 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -225 AOE_PER_NYMPH_BLINDING C 10 **** **** race_blindbeauta **** **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -226 INVOKE_AOE_COLD_COMFORT C 10 **** **** inv_coldcmfrta inv_coldcmfrtb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -227 INVOKE_VFX_CHILLING_TENTACLES C 5 **** **** inv_chilltenta **** inv_chilltentc 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -228 INVOKE_VFX_PER_WALLPERILFIRE R **** 10 2 inv_wallperlflma **** inv_wallperlflmc 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L -229 INVOKE_AOE_MIASMIC_CLOUD C 3.33 **** **** inv_miasmicclda inv_miasmiccldc **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** -230 INVOKE_AOE_CAUSTIC_MIRE C 6.66 **** **** inv_causticmirea inv_causticmireb inv_causticmirec 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L -231 INVOKE_AOE_ENERVATING_SHADOW C 3.3 **** **** inv_enervshdwa inv_enervshdwb inv_enervshdwc 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -232 INVOKE_VFX_NIGHTMARE_TERRAIN_1 R **** 6.66 10 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -233 INVOKE_VFX_NIGHTMARE_TERRAIN_4 R **** 10 10 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -234 INVOKE_VFX_NIGHTMARE_TERRAIN_7 R **** 10 13.3 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -235 INVOKE_VFX_NIGHTMARE_TERRAIN_11 R **** 13.3 13.3 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -236 INVOKE_VFX_NIGHTMARE_TERRAIN_15 R **** 13.3 16.6 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -237 INVOKE_VFX_NIGHTMARE_TERRAIN_21 R **** 16.6 16.6 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -238 INVOKE_VFX_NIGHTMARE_TERRAIN_25 R **** 16.6 20 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -239 INVOKE_VFX_NIGHTMARE_TERRAIN_31 R **** 20 20 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -240 INVOKE_VFX_NIGHTMARE_TERRAIN_37 R **** 20 23.3 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L -241 INVOKE_AOE_SWARMDMG C 2 **** **** **** **** inv_swarmdmgc 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -242 INVOKE_VFX_HUNGRY_DARKNESS C 6.7 **** **** NW_S0_DarknessA NW_S0_DarknessB inv_swarmdmgc 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** -243 INVOKE_AOE_SWARMDMG_2 C 3 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L -244 INVOKE_AOE_SWARMDMG_3 C 4 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L -245 INVOKE_AOE_SWARMDMG_4 C 5 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L -246 INVOKE_AOE_SWARMDMG_5 C 6 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L -247 INVOKE_AOE_SWARMDMG_6 C 7 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L -248 INVOKE_VFX_DARK_DISCORPORATION C 3 **** **** **** **** inv_swarmdmgc 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** -249 INVOKE_VFX_PER_WALL_OF_GLOOM R **** 40 2 inv_wallglooma inv_wallgloomb **** 0 **** vdr_antilght vdr_antilght vdr_antilght 2 2 2 4000 2000 3000 **** 1 1 **** **** **** **** **** **** **** **** -250 INVOKE_AOE_EARTHEN_GRASP_GRAPPLE C 2 **** **** inv_earthgraspa **** inv_earthgraspc 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -251 AOE_PER_THICKET_BLADES C 1 **** **** tob_dvsp_thkblda **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -252 AOE_PER_AURA_TYRANNY C 3.3 **** **** **** **** tob_dvsp_tyrnnya 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -253 AOE_PER_SWARM_TACTICS C 24.38 **** **** tob_wtrn_swarmta tob_wtrn_swarmtb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** -254 AOE_MOB_DN_FEAR_AURA C 3.3 **** **** prc_dnc_frauraa **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** + LABEL SHAPE RADIUS WIDTH LENGTH ONENTER ONEXIT HEARTBEAT OrientWithGround DurationVFX MODEL01 MODEL02 MODEL03 NUMACT01 NUMACT02 NUMACT03 DURATION01 DURATION02 DURATION03 EDGEWGHT01 EDGEWGHT02 EDGEWGHT03 SoundImpact SoundDuration SoundCessation SoundOneShot SoundOneShotPercentage MODELMIN01 MODELMIN02 MODELMIN03 +0 VFX_PER_FOGACID C 5 **** **** NW_S0_AcidFogA sp_gen_exit NW_S0_AcidFogC 0 **** vps_fogacid vps_fogacid vps_fogacid 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogacid_L vps_fogacid_L vps_fogacid_L +1 VFX_PER_FOGFIRE C 5 **** **** NW_S0_IncCloudA sp_gen_exit NW_S0_IncCloudC 0 **** vps_fogfire vps_fogfire vps_fogfire 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fogfire 0.3 vps_fogfire_L vps_fogfire_L vps_fogfire_L +2 VFX_PER_FOGSTINK C 6.7 **** **** NW_S0_StinkCldA **** NW_S0_StinkCldC 0 **** vps_fogstink vps_fogstink vps_fogstink 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogstink_L vps_fogstink_L vps_fogstink_L +3 VFX_PER_FOGKILL C 5 **** **** NW_S0_CloudKillA sp_gen_exit NW_S0_CloudKillC 0 **** vps_fogkill vps_fogkill vps_fogkill 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogkill_L vps_fogkill_L vps_fogkill_L +4 VFX_PER_FOGMIND C 5 **** **** NW_S0_MindFogA NW_S0_MindFogB **** 0 **** vps_fogmind vps_fogmind vps_fogmind 5 5 5 3400 1100 1900 0 0 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogmind_L vps_fogmind_L vps_fogmind_L +5 VFX_PER_WALLFIRE R **** 10 2 NW_S0_WallFireA **** NW_S0_WallFireC 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +6 VFX_PER_WALLWIND R **** 10 1 **** **** **** 0 **** vpr_gas vpr_gas vpr_gas 1 1 1 2000 2000 2000 0.5 0.5 0.5 **** **** **** **** **** vpr_gas_L vpr_gas_L vpr_gas_L +7 VFX_PER_WALLBLADE R **** 10 1 NW_S0_BladeBarA **** NW_S0_BladeBarC 0 **** vps_sword_01 vps_sword_02 vps_sword_03 5 5 5 2000 1500 2900 0 0 0 **** sps_sword01 **** **** **** **** **** **** +8 VFX_PER_WEB C 6.7 **** **** NW_S0_WebA sp_gen_exit NW_S0_WebC 0 230 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +9 VFX_PER_ENTANGLE C 5 **** **** NW_S0_EntangleA sp_gen_exit NW_S0_EntangleC 0 **** vps_entangle vps_entangle vps_entangle 5 5 5 2000 1500 2900 0 0 0 **** sps_entangle **** **** **** vps_entangle_L vps_entangle_L vps_entangle_L +10 VFX_PER_CHAOS C 5 **** **** NW_S0_SphChaosA NW_S0_SphChaosB NW_S0_SphChaosC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +11 VFX_PER_DARKNESS C 6.7 **** **** NW_S0_DarknessA NW_S0_DarknessB **** 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** +12 VFX_MOB_CIRCEVIL C 3.3 **** **** NW_S0_CircGoodA NW_S0_CircGoodB **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +13 VFX_MOB_CIRCGOOD C 3.3 **** **** NW_S0_CircEvilA NW_S0_CircEvilB **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +14 VFX_MOB_CIRCLAW C 3.3 **** **** NW_S0_CircLawA NW_S0_CircLawB **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +15 VFX_MOB_CIRCCHAOS C 3.3 **** **** NW_S0_CircChaosA NW_S0_CircChaosB **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +16 VFX_MOB_FEAR C 4 **** **** NW_S1_AuraFearA **** **** 0 275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +17 VFX_MOB_BLINDING C 4 **** **** NW_S1_AuraBlndA **** **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +18 VFX_MOB_UNEARTHLY C 4 **** **** NW_S1_AuraUnEaA **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +19 VFX_MOB_MENACE C 4 **** **** NW_S1_AuraMencA **** **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +20 VFX_MOB_UNNATURAL C 4 **** **** NW_S1_AuraUnatA **** **** 0 275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +21 VFX_MOB_STUN C 4 **** **** NW_S1_AuraStunA **** **** 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +22 VFX_MOB_PROTECTION C 4 **** **** NW_S1_AuraProtA NW_S1_AuraProtB **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +23 VFX_MOB_FIRE C 4 **** **** **** **** NW_S1_AuraFireC 0 268 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +24 VFX_MOB_FROST C 4 **** **** **** **** NW_S1_AuraColdC 0 267 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +25 VFX_MOB_ELECTRICAL C 4 **** **** **** **** NW_S1_AuraElecC 0 267 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +26 VFX_PER_FOGGHOUL C 1.65 **** **** NW_S0_GhoulTchA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 3 3 3 3400 1100 1900 0 0.25 0.25 **** fs_floatexhale **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L +27 VFX_MOB_TYRANT_FOG C 3 **** **** NW_S1_TyrantFgA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L +28 VFX_PER_STORM C 10 **** **** **** **** NW_S0_StormVenC 0 248 vps_storm vps_storm vps_storm 15 15 15 3400 1100 1900 0 0 0.25 **** sps_storm **** **** **** vps_storm_L vps_storm_L vps_storm_L +29 VFX_PER_INVIS_SPHERE C 5 **** **** NW_S0_InvSphA NW_S0_InvSphB **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +30 VFX_MOB_SILENCE C 4 **** **** NW_S0_SilenceA NW_S0_SilenceB NW_S0_SilenceC 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +31 VFX_PER_DELAY_BLAST_FIREBALL C 2 **** **** NW_S0_DelFireA **** **** 0 **** vps_delfireb vps_delfireb vps_delfireb 5 5 5 3400 1100 1900 0 0 0.25 **** sps_delfireb **** **** **** vps_delfireb_L vps_delfireb_L vps_delfireb_L +32 VFX_PER_GREASE C 6 **** **** NW_S0_GreaseA sp_gen_exit NW_S0_GreaseC 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L +33 VFX_PER_CREEPING_DOOM C 6.7 **** **** NW_S0_CrpDoomA sp_gen_exit NW_S0_CrpDoomC 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L +34 VFX_PER_EVARDS_BLACK_TENTACLES C 5 **** **** NW_S0_EvardsA **** NW_S0_EvardsC 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +35 VFX_MOB_INVISIBILITY_PURGE C 10 **** **** NW_S0_InvPurgeA **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +36 VFX_MOB_DRAGON_FEAR C 10 **** **** NW_S1_DragFearA **** **** 0 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +37 VFX_CUSTOM C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +38 VFX_PER_GLYPH C 2.5 **** **** X2_S2_GlphwardA **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +39 VFX_PER_FOGBEWILDERMENT C 5 **** **** X2_S0_CldBewldA **** X2_S0_CldBewldC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +40 VFX_PER_CAMOUFLAGE C 6 **** **** X2_S0_VineMCamA X2_S0_VineMCamB **** 0 **** vdr_antilght vdr_antilght vdr_antilght 2 2 2 4000 2000 3000 **** 1 1 **** **** **** **** **** **** **** **** +41 VFX_MOB_BATTLETIDE C 3.3 **** **** X2_s0_BatttideA X2_s0_BatttideB **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +42 VFX_PER_STONEHOLD C 5 **** **** X2_S0_StneholdA **** X2_S0_StneholdC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 3 3 3 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +43 VFX_PER_VFX_OVERMIND C 5 **** **** **** **** **** 0 **** vwp_m_chunk_grn vwp_m_blood_grn vwp_m_blood_yel 6 6 6 3400 1100 1900 0 0 0 **** **** **** **** 0.3 **** **** **** +44 VFX_MOB_HORRIFICAPPEARANCE C 10 **** **** nw_s1_horrappra **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +45 VFX_MOB_TROGLODYTE_STENCH C 10 **** **** NW_S1_trogstinkA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L +46 VFX_MOB_NIGHTMARE_SMOKE C 6 **** **** **** **** DLA_S1_NMSMOKEC 0 **** vps_nmsmoke vps_nmsmoke vps_nmsmoke 6 5 4 2000 3000 4000 0 0 0 **** **** **** **** **** **** **** **** +47 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +48 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +49 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +50 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +51 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +52 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +53 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +54 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +55 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +56 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +57 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +58 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +59 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +60 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +61 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +62 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +63 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +64 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +65 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +66 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +67 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +68 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +69 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +70 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +71 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +72 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +73 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +74 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +75 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +76 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +77 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +78 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +79 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +80 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +81 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +82 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +83 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +84 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +85 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +86 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +87 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +88 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +89 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +90 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +91 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +92 CEP_RESERVED(47-92) **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +93 VFX_PER_VIOLET_RAIN C 1 **** **** **** **** sp_violet_rainC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +94 VFX_PER_RAIN_OF_FROGS C 1 **** **** **** **** sp_rain_ffishC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +95 VFX_PER_RAIN_OF_BLOOD C 1 **** **** **** **** sp_rain_bloodC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +96 VFX_PER_GREEN_FOG C 1 **** **** **** **** sp_green_fogC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +97 AOE_MOB_LUMINOUS_ARMOR C 6.096 **** **** **** **** sp_luminousA 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +98 AOE_PER_CRACKLEPOWDER C 1.65 **** **** sp_cracklepdrA sp_gen_exit **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +99 VFX_MOB_CLOUDY_CONJURATION C 3 **** **** prc_ft_cldconj **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L +100 VFX_PER_RAIN_OF_FIRE C 18 **** **** aoe_rainfire_ent **** aoe_rainfire_hb 0 **** vps_firerain vps_firerain vps_firerain 15 15 15 3400 1100 1900 0 0 0.25 **** sps_fogfire **** **** **** vps_firerain_L vps_firerain_L **** +101 USER **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +102 VFX_PER_PLAGUE_SHADOW C 5 **** **** shd_myst_plgshda **** shd_myst_plgshdc 0 **** vps_fogfreeze vps_fogfreeze vps_fogfreeze 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogfreeze_L vps_fogfreeze_L vps_fogfreeze_L +103 VFX_PER_FLOOD_SHADOW C 6.7 **** **** shd_myst_fldshda shd_myst_fldshdb **** 0 **** vps_fogpurp vps_fogpurp vps_fogpurp 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogpurp_L vps_fogpurp_L vps_fogpurp_L +104 VFX_PER_CURTAIN_SHADOWS R **** 10 2 shd_myst_crtshda **** shd_myst_crtshdc 0 **** vps_wallpurp vps_wallpurp vps_wallpurp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallpurp_L vps_wallpurp_L vps_wallpurp_L +105 VFX_PER_CLINGING_DARNESS C 6.7 **** **** shd_myst_clngdka **** shd_myst_clngdkc 0 **** vps_fogpurp vps_fogpurp vps_fogpurp 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogpurp_L vps_fogpurp_L vps_fogpurp_L +106 VFX_PER_BLACKFIRE R **** 10 2 shd_myst_blckfra **** shd_myst_blckfrc 0 **** vps_wallpurp vps_wallpurp vps_wallpurp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallpurp_L vps_wallpurp_L vps_wallpurp_L +107 VFX_PER_DUSK_AND_DAWN C 6 **** **** shd_myst_dskdwna shd_myst_dskdwnb shd_myst_dskdwnc 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** +108 VFX_PER_CARPET_SHADOW C 6 **** **** shd_myst_crpshda shd_myst_crpshdb **** 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L +109 VFX_MOB_DAYLIGHT C 18 **** **** sp_daylightA sp_daylightB **** 0 920 smp_daylight smp_daylight smp_daylight **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_daylight smp_daylight **** +110 VFX_MOB_CIRCEVIL_NODIS C 3.3 **** **** fist_circevila fist_circevilb **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +111 VFX_AOE_DESECRATE_20 C 6.7 **** **** sp_desecratea sp_desecrateb **** 0 **** smp_desecrate20 smp_desecrate20 smp_desecrate20 **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_desecrate20 smp_desecrate20 **** +112 VFX_AOE_DESECRATE_100 C 30 **** **** prc_tn_des_a prc_tn_des_c **** 0 **** smp_desecrate100 smp_desecrate100 smp_desecrate100 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +113 VFX_MOB_COURHEAVN C 3.3 **** **** prc_s_courheavna prc_s_courheavnb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +114 VFX_MOB_CONSCAURA C 3.3 **** **** prc_s_conscauraa prc_s_conscaurb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +115 VFX_AOE_CONSECRATE_20 C 6.7 **** **** sp_consecratea sp_consecrateb sp_consecratec 0 803 smp_consecrate20 smp_consecrate20 smp_consecrate20 **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_consecrate20 smp_consecrate20 **** +116 VFX_PER_WALLDISPEL R **** 10 2 sp_WallDispelA **** sp_WallDispelC 0 **** vps_walldisp vps_walldisp vps_walldisp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +117 VFX_MOB_CARRION_STENCH C 3 **** **** prc_to_carrionA **** **** 0 **** vps_fogstink vps_fogstink vps_fogstink 1 1 1 3400 1100 1900 0 0.25 0.25 **** fs_floatmoan **** **** **** vps_fogstink_L vps_fogstink_L vps_fogstink_L +118 VFX_MOB_PALLOR C 4 **** **** prc_to_pallorA **** **** 0 275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +119 VFX_AOE_DESECRATE C 6.7 **** **** sp_desecratea sp_desecrateb sp_desecratec 0 804 smp_desecrate smp_desecrate smp_desecrate **** **** **** **** **** **** **** **** **** **** **** **** **** **** smp_desecrate smp_desecrate **** +120 VFX_MOB_COURHEAVN C 3.3 **** **** prc_s_courheavna prc_s_courheavnb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +121 VFX_MOB_CONSCAURA C 3.3 **** **** prc_s_conscauraa prc_s_conscaurb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +122 VFX_CUSTOM3 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +123 VFX_CUSTOM4 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +124 VFX_CUSTOM5 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +125 VFX_CUSTOM6 C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +126 VFX_PER_BEHOLD C 50 **** **** z217_beholda z217_beholdb z217_beholdc 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +127 VFX_MOB_BLACK_PLAGUE C 5 **** **** DF_T0_BlckPlagueA DF_T0_BlckPlagueB DF_T0_BlckPlagueC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +128 VFX_MOB_PIT_TRAP C 1.28 **** **** DF_T0_CamoPitA DF_T0_CamoPitB DF_T0_CamoPitC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** as_sw_clothop1 **** as_sw_clothcl1 **** **** **** **** **** +129 VFX_MOB_PIT_TRAP2 R **** 3.72 2.65 DF_T0_DeepPitA DF_T0_DeepPitB DF_T0_DeepPitC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** as_dr_metlmedop2 **** as_dr_metmedcr2 **** **** **** **** **** +130 VFX_MOB_WHIRLING_BLADE C 5 **** **** DF_T0_WhirlBldA DF_T0_WhirlBldB DF_T0_WhirlBldC 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** sps_sword01 **** **** **** **** **** **** +131 VFX_PER_PSIGREASE C 6 **** **** psi_pow_GreaseA psi_pow_GreaseB psi_pow_GreaseC 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L +132 VFX_PER_ESHAMBLER C 10 **** **** psi_pow_eshamA psi_pow_eshamB psi_pow_eshamC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 10 10 10 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +133 VFX_PER_ENERGYWALL R **** 10 2 psi_pow_enwall1 **** psi_pow_enwall2 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +134 VFX_MOB_CATAPSI C 10 **** **** psi_pow_catapsia psi_pow_catapsib psi_pow_catapsic 0 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +135 VFX_PER_NULLPSIONICS C 3.3 **** **** psi_pow_npfent psi_pow_npfext **** 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +136 VFX_MOB_FORM_DOOM C 6.7 **** **** psi_pow_frmdment **** **** 0 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +137 VFX_PER_ENERGYWALL_WIDENED R **** 20 4 psi_pow_enwall1 **** psi_pow_enwall2 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +138 VFX_PER_ESHAMBLER_WIDENED C 20 **** **** psi_pow_eshamA psi_pow_eshamB psi_pow_eshamC 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 15 15 15 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +139 VFX_PER_NULLPSIONICS_WIDENED C 6.7 **** **** psi_pow_npfent psi_pow_npfext **** 0 272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +140 VFX_PER_NEW_TIMESTOP C 50 **** **** pt_enter pt_exit **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +141 VFX_PER_OBSCURING_MIST C 5 **** **** sp_obscmist_ent sp_obscmist_exit **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +142 AOE_PER_FOG_VOID_CLOUD C 6 **** **** true_utr_fogvoda true_utr_fogvodc **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +143 AOE_PER_FOG_VOID_SOLID C 6 **** **** true_utr_fogvodb true_utr_fogvodc **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +144 AOE_PER_SHIELD_LANDSCAPE C 6 **** **** true_utr_sldlnda true_utr_sldlndb **** 0 **** vps_entangle vps_entangle vps_entangle 5 5 5 2000 1500 2900 0 0 0 **** sps_entangle **** **** **** vps_entangle_L vps_entangle_L vps_entangle_L +145 AOE_PER_ENERGY_VORTEX C 6 **** **** true_utr_envrtxa **** true_utr_envrtxb 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 10 10 10 2000 2000 2000 0.5 0.5 0.5 **** **** **** **** **** vpr_gas_L vpr_gas_L vpr_gas_L +146 AOE_PER_SPEAK_ROCK_MUD C 6 **** **** true_utr_rckmuda true_utr_rckmudb **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +147 AOE_PER_TRANSFORM_LANDSCAPE C 6 **** **** true_utr_trnlnda **** true_utr_trnlndb 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L +148 AOE_PER_DENY_PASSAGE C 6 **** **** true_utr_dnypasa true_utr_dnypasb **** 0 20 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +149 AOE_PER_MOUNTAIN_FORTRESS C 3.3 **** **** tob_dpst_mntfrta **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +150 VFX_MOB_PESTILENCE C 1.65 **** **** sp_pest_aura_oe **** sp_pest_aura_hb 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +151 AOE_PER_TELEPORTATIONCIRCLE C 1.524 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +152 VFX_PER_WALLBREATH R **** 10 2 prc_wallbreatha **** prc_wallbreathc 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +153 VFX_DRACONIC_AURA_1 C 10 **** **** prc_dracaura_in prc_dracaura_out **** 0 763 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +154 USER **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +155 VFX_MARSH_MIN1 C 20 **** **** prc_marsh_min1a prc_marsh_min1b **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +156 VFX_MARSH_MAJ1 C 20 **** **** prc_marsh_maj1a prc_marsh_maj1b **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +157 AOE_PER_SALAMANDER_CHARGE R **** 2 10 tob_dw_salchrga **** tob_dw_salchrgb 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +158 AOE_PER_IRON_GUARD_GLARE C 3.3 **** **** tob_dvsp_igglra tob_dvsp_igglrb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +159 AOE_PER_STANCE_OF_CLARITY C 3.3 **** **** **** **** tob_dmnd_stnclra 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +160 AOE_PER_BOLSTERING_VOICE C 13.2 **** **** tob_wtrn_blsrvca tob_wtrn_blsrvcb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +161 AOE_PER_LEADING_CHARGE C 13.2 **** **** tob_wtrn_ldchrga tob_wtrn_ldchrgb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +162 AOE_MOB_BULWARK_DEFENSE C 3.3 **** **** prc_knght_blwrka prc_knght_blwrkb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +163 AOE_MOB_VIGILANT_DEFENDER C 3.3 **** **** prc_knght_vigila prc_knght_vigilb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +164 AOE_PER_ROOT_MOUNTAIN C 3.3 **** **** tob_stdr_rtmntna tob_stdr_rtmntnb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +165 AOE_PER_TACTICS_WOLF C 3.3 **** **** **** **** tob_wtrn_tctwlfb 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +166 AOE_PER_DESERT_TEMPEST C 1.3 **** **** tob_dw_dsttmpta **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +167 AOE_MOB_MOUNTAIN_AVALANCHE C 1 **** **** tob_stdr_mtavlA **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +168 VFX_PER_SNARE C 3.048 **** **** sp_snareA **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +169 AOE_PER_PYROTECHNICS_SMOKE C 6.096 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +170 AOE_PER_FIRE_TRAP C 1.524 **** **** sp_fire_trapA **** **** 0 **** vps_delfireb vps_delfireb vps_delfireb 5 5 5 3400 1100 1900 0 0 0.25 **** sps_delfireb **** **** **** vps_delfireb_L vps_delfireb_L vps_delfireb_L +171 VFX_PER_PRISMATIC_WALL R **** 15 1 sp_prism_wallA **** **** **** 891 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +172 VFX_MOB_RING_OF_BLADES C 1.524 **** **** sp_ring_bldsa **** sp_ring_bldsc **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +173 VFX_PER_PRISMATIC_SPHERE C 3.048 **** **** sp_prismt_sphrA sp_prismt_sphrB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +174 VFX_PER_OTILUKES_RESILIENT_SPHERE C 3.048 **** **** sp_otiluke_rsA sp_otiluke_rsB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +175 VFX_PER_SLEET_STORM C 12.192 **** **** sp_sleet_stormA sp_sleet_stormB sp_sleet_stormC 0 248 vps_sstorm vps_sstorm vps_sstorm 15 15 15 3400 1100 1900 0 0 0.25 **** sps_storm **** **** **** vps_sstorm_L vps_sstorm_L vps_sstorm_L +176 VFX_PER_SICKEN_EVIL C 6.096 **** **** sp_sickn_evilA sp_sickn_evilB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +177 AOE_PER_CALM_EMOTIONS C 6.096 **** **** sp_calm_emotionA **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +178 AOE_PER_REPULSION C 18.288 **** **** sp_repulsionA sp_repulsionB sp_repulsionC **** 291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +179 AOE_PER_SOLID_FOG C 6 **** **** sp_solid_fogA sp_solid_fogB **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 10 10 10 7300 4500 2500 0.5 0.5 0.5 **** **** **** **** **** **** **** **** +180 AOE_PER_REPEL_VERMIN C 6.096 **** **** sp_repel_verminA **** **** **** 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +181 VFX_AOE_RAIN_OF_ROSES C 24.38 **** **** sp_rain_roseA sp_rain_roseB sp_rain_roseC **** **** vff_explnature **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +182 VFX_AOE_RAIN_OF_BLACK_TULIPS C 24.38 **** **** sp_rain_btulA sp_rain_btulB **** **** **** vff_explnature **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +183 VFX_AOE_BLNDGLORY C 30.48 **** **** sp_blnd_gloryA sp_blnd_gloryB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +184 VFX_PER_5_FT_INVIS C 1.524 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +185 VFX_PER_10_FT_INVIS C 3.048 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +186 VFX_PER_15_FT_INVIS C 4.572 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +187 VFX_PER_20_FT_INVIS C 6.096 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +188 VFX_PER_25_FT_INVIS C 7.62 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +189 VFX_PER_30_FT_INVIS C 9.144 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +190 5mInvisAOE C 5 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +191 10mInvisAOE C 10 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +192 15mInvisAOE C 15 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +193 20mInvisAOE C 20 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +194 25mInvisAOE C 25 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +195 30mInvisAOE C 30 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +196 35mInvisAOE C 35 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +197 40mInvisAOE C 40 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +198 45mInvisAOE C 45 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +199 50mInvisAOE C 50 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +200 VFX_PER_FOGFREEZE C 5 **** **** **** **** **** 0 **** vps_fogfreeze vps_fogfreeze vps_fogfreeze 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogfreeze_L vps_fogfreeze_L vps_fogfreeze_L +201 VFX_PER_FOGYELLOW C 5 **** **** **** **** **** 0 **** vps_fogyell vps_fogyell vps_fogyell 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogyell_L vps_fogyell_L vps_fogyell_L +202 VFX_PER_FOGPURPLE C 5 **** **** **** **** **** 0 **** vps_fogpurp vps_fogpurp vps_fogpurp 5 10 5 3400 1100 1900 0 0.25 0.25 **** sps_fog_loop **** sps_fog 0.3 vps_fogpurp_L vps_fogpurp_L vps_fogpurp_L +203 AOE_PER_DAMNDARK C 6.7 **** **** sp_damn_darkA sp_damn_darkB **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +204 VFX_MOB_BRILLIANT_EMANATION C 30.48 **** **** sp_brill_emanA sp_brill_emanB **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +205 VFX_PER_UTTERDARK C 50 **** **** sp_utterdarkA sp_utterdarkB **** 0 844 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** +206 VFX_PER_ACHAIERAI C 3.048 **** **** sp_cloud_achai sp_cloud_achaiB **** 0 845 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +207 VFX_PER_WALLFROST R **** 10 2 sp_wallfrosta **** sp_wallfrostc 0 **** vps_wallfrost vps_wallfrost vps_wallfrost 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfrost_L vps_wallfrost_L vps_wallfrost_L +208 VFX_PER_WALLGRN R **** 10 2 **** **** **** 0 **** vps_wallgrn vps_wallgrn vps_wallgrn 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallgrn_L vps_wallgrn_L vps_wallgrn_L +209 VFX_PER_WALLYELLOW R **** 10 2 **** **** **** 0 **** vps_wallyello vps_wallyello vps_wallyello 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallyello_L vps_wallyello_L vps_wallyello_L +210 VFX_PER_WALLPURPLE R **** 10 2 **** **** **** 0 **** vps_wallpurp vps_wallpurp vps_wallpurp 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallpurp_L vps_wallpurp_L vps_wallpurp_L +211 VFX_PER_WALLRED R **** 10 2 **** **** **** 0 **** vps_wallred vps_wallred vps_wallred 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallred_L vps_wallred_L vps_wallred_L +212 VFX_PER_WALLBLUE R **** 10 2 **** **** **** 0 **** vps_wallblue vps_wallblue vps_wallblue 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallblue_L vps_wallblue_L vps_wallblue_L +213 VFX_PER_DEEPERDARKNESS C 20 **** **** NW_S0_DarknessA NW_S0_DarknessB **** 0 843 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** +214 5mInvisAOE R **** 5 5 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +215 10mInvisAOE R **** 10 10 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +216 15mInvisAOE R **** 15 15 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +217 20mInvisAOE R **** 20 20 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +218 25mInvisAOE R **** 25 25 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +219 30mInvisAOE R **** 30 30 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +220 35mInvisAOE R **** 35 35 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +221 40mInvisAOE R **** 40 40 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +222 45mInvisAOE R **** 45 45 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +223 50mInvisAOE R **** 50 50 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +224 INVOKE_AOE_CHILLFOG C 6 **** **** inv_dra_chilfoga inv_dra_chilfogb inv_dra_chilfogc 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +225 AOE_PER_NYMPH_BLINDING C 10 **** **** race_blindbeauta **** **** 0 271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +226 INVOKE_AOE_COLD_COMFORT C 10 **** **** inv_coldcmfrta inv_coldcmfrtb **** 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +227 INVOKE_VFX_CHILLING_TENTACLES C 5 **** **** inv_chilltenta **** inv_chilltentc 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +228 INVOKE_VFX_PER_WALLPERILFIRE R **** 10 2 inv_wallperlflma **** inv_wallperlflmc 0 **** vps_wallfire vps_wallfire vps_wallfire 3 3 3 300 450 530 0 0 0 **** sps_wallfire **** **** **** vps_wallfire_L vps_wallfire_L vps_wallfire_L +229 INVOKE_AOE_MIASMIC_CLOUD C 3.33 **** **** inv_miasmicclda inv_miasmiccldc **** 0 **** vim_mentcloud vim_mentcloud vim_mentcloud 7 5 6 2000 1500 2900 0 0 0 **** sps_fog_loop **** sps_fog 0.3 **** **** **** +230 INVOKE_AOE_CAUSTIC_MIRE C 6.66 **** **** inv_causticmirea inv_causticmireb inv_causticmirec 0 **** vps_grease vps_grease vps_grease 7 7 7 2000 1500 2900 0 0 0 sps_grease **** **** **** **** vps_grease_L vps_grease_L vps_grease_L +231 INVOKE_AOE_ENERVATING_SHADOW C 3.3 **** **** inv_enervshdwa inv_enervshdwb inv_enervshdwc 0 273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +232 INVOKE_VFX_NIGHTMARE_TERRAIN_1 R **** 6.66 10 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +233 INVOKE_VFX_NIGHTMARE_TERRAIN_4 R **** 10 10 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +234 INVOKE_VFX_NIGHTMARE_TERRAIN_7 R **** 10 13.3 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +235 INVOKE_VFX_NIGHTMARE_TERRAIN_11 R **** 13.3 13.3 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +236 INVOKE_VFX_NIGHTMARE_TERRAIN_15 R **** 13.3 16.6 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +237 INVOKE_VFX_NIGHTMARE_TERRAIN_21 R **** 16.6 16.6 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +238 INVOKE_VFX_NIGHTMARE_TERRAIN_25 R **** 16.6 20 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +239 INVOKE_VFX_NIGHTMARE_TERRAIN_31 R **** 20 20 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +240 INVOKE_VFX_NIGHTMARE_TERRAIN_37 R **** 20 23.3 inv_nightmarea inv_nightmareb inv_nightmarec 0 **** vps_tentacle vps_tentacle vps_tentacle 3 3 3 7300 4500 2500 0 0 0 **** sps_tentacles **** **** **** vps_tentacle_L vps_tentacle_L vps_tentacle_L +241 INVOKE_AOE_SWARMDMG C 2 **** **** **** **** inv_swarmdmgc 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +242 INVOKE_VFX_HUNGRY_DARKNESS C 6.7 **** **** NW_S0_DarknessA NW_S0_DarknessB inv_swarmdmgc 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** +243 INVOKE_AOE_SWARMDMG_2 C 3 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L +244 INVOKE_AOE_SWARMDMG_3 C 4 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L +245 INVOKE_AOE_SWARMDMG_4 C 5 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L +246 INVOKE_AOE_SWARMDMG_5 C 6 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L +247 INVOKE_AOE_SWARMDMG_6 C 7 **** **** **** **** inv_swarmdmgc 0 **** vps_bugs vps_bugs vps_bugs 10 10 10 7300 4500 2500 0 0 0 **** sps_bugs **** **** **** vps_bugs_L vps_bugs_L vps_bugs_L +248 INVOKE_VFX_DARK_DISCORPORATION C 3 **** **** **** **** inv_swarmdmgc 0 1 **** **** **** **** **** **** **** **** **** **** **** **** sps_darkness **** **** **** **** **** **** **** +249 INVOKE_VFX_PER_WALL_OF_GLOOM R **** 40 2 inv_wallglooma inv_wallgloomb **** 0 **** vdr_antilght vdr_antilght vdr_antilght 2 2 2 4000 2000 3000 **** 1 1 **** **** **** **** **** **** **** **** +250 INVOKE_AOE_EARTHEN_GRASP_GRAPPLE C 2 **** **** inv_earthgraspa **** inv_earthgraspc 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +251 AOE_PER_THICKET_BLADES C 1 **** **** tob_dvsp_thkblda **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +252 AOE_PER_AURA_TYRANNY C 3.3 **** **** **** **** tob_dvsp_tyrnnya 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +253 AOE_PER_SWARM_TACTICS C 24.38 **** **** tob_wtrn_swarmta tob_wtrn_swarmtb **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +254 AOE_MOB_DN_FEAR_AURA C 3.3 **** **** prc_dnc_frauraa **** **** 0 274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** diff --git a/nwn/nwnprc/trunk/include/inc_switch_setup.nss b/nwn/nwnprc/trunk/include/inc_switch_setup.nss index 95e378bc..e8384a2b 100644 --- a/nwn/nwnprc/trunk/include/inc_switch_setup.nss +++ b/nwn/nwnprc/trunk/include/inc_switch_setup.nss @@ -1069,11 +1069,11 @@ void CreateSwitchNameArray() array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_ROD_CASTER_LEVEL); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_STAFF_CASTER_LEVEL); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_BASE_ITEMS); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_BREWPOTION_MAXLEVEL); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_BREWPOTION_COSTMODIFIER); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_SCRIBESCROLL_COSTMODIFIER); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_CRAFTWAND_MAXLEVEL); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_CRAFTWAND_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_BREWPOTION_MAXLEVEL); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_BREWPOTION_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_SCRIBESCROLL_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_CRAFTWAND_MAXLEVEL); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_CRAFTWAND_COSTMODIFIER); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_ARBITRARY); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_COST_SCALE); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_TIME_SCALE); diff --git a/nwn/nwnprc/trunk/include/nw_inc_gff.nss b/nwn/nwnprc/trunk/include/nw_inc_gff.nss new file mode 100644 index 00000000..533cf218 --- /dev/null +++ b/nwn/nwnprc/trunk/include/nw_inc_gff.nss @@ -0,0 +1,623 @@ +// This is a helper library for advanced use: It allows constructing arbitrary gff data. +// You can then spawn your object via JsonToObject(). +// +// The data format is the same as https://github.com/niv/neverwinter.nim@1.4.3+. +// +// Example: +// +// json j = GffCreateObject(OBJECT_TYPE_ITEM); +// j = GffAddInt(j, "BaseItem", BASE_ITEM_BELT); +// j = GffAddInt(j, "ModelPart1", 12); +// j = GffAddLocString(j, "LocalizedName", "hi!"); +// object belt = JsonToObject(j, GetLocation(OBJECT_SELF)); + + +const string GFF_FIELD_TYPE_STRUCT = "struct"; +const string GFF_FIELD_TYPE_LIST = "list"; +const string GFF_FIELD_TYPE_BYTE = "byte"; +const string GFF_FIELD_TYPE_CHAR = "char"; +const string GFF_FIELD_TYPE_WORD = "word"; +const string GFF_FIELD_TYPE_SHORT = "short"; +const string GFF_FIELD_TYPE_DWORD = "dword"; +const string GFF_FIELD_TYPE_INT = "int"; +const string GFF_FIELD_TYPE_DWORD64 = "dword64"; +const string GFF_FIELD_TYPE_INT64 = "int64"; +const string GFF_FIELD_TYPE_FLOAT = "float"; +const string GFF_FIELD_TYPE_DOUBLE = "double"; +const string GFF_FIELD_TYPE_RESREF = "resref"; +const string GFF_FIELD_TYPE_STRING = "cexostring"; +const string GFF_FIELD_TYPE_LOC_STRING = "cexolocstring"; + + +// Create a empty object of the given type. You need to manually fill in all +// GFF data with GffAddXXX. This will require understanding of the GFF file format +// and what data fields each object type requires. +json GffCreateObject(int nObjectType); +// Create a combined area format(CAF) object. You need to manually create the ARE and GIT objects with their required data fields. +json GffCreateArea(json jARE, json jGIT); + +// Returns the OBJECT_TYPE_* of jGff. +// Note: Will return 0 for invalid object types, including areas. +int GffGetObjectType(json jGff); +// Returns TRUE if jGff is a combined area format(CAF) object. +int GffGetIsArea(json jGff); + +// Returns TRUE if a field named sLabel of sType exists in jGff. +// * sLabel: Can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// * sType: An optional GFF_FIELD_TYPE_*, leave empty to check if sLabel exists regardless of type. +int GffGetFieldExists(json jGff, string sLabel, string sType = ""); + + +// Add a new field, will overwrite any existing fields with the same label even if the type is different. +// Returns a json null value on error with GetJsonError() filled in. +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to add the tag of an area to an empty combined area format(CAF) object you can do the following: +// json jArea = GffCreateArea(JsonObject(), JsonObject()); +// jArea = GffAddString(jArea, "ARE/value/Tag", "AREA_TAG"); + +json GffAddStruct(json jGff, string sLabel, json jStruct, int nType = -1); +json GffAddList(json jGff, string sLabel, json jList); +json GffAddByte(json jGff, string sLabel, int v); +json GffAddChar(json jGff, string sLabel, int v); +json GffAddWord(json jGff, string sLabel, int v); +json GffAddShort(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffAddDword(json jGff, string sLabel, int v); +json GffAddInt(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffAddDword64(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffAddInt64(json jGff, string sLabel, int v); +json GffAddFloat(json jGff, string sLabel, float v); +// Note: Only data of type float will fit, because that's all that NWScript supports. +json GffAddDouble(json jGff, string sLabel, float v); +json GffAddResRef(json jGff, string sLabel, string v); +json GffAddString(json jGff, string sLabel, string v); +json GffAddLocString(json jGff, string sLabel, string v, int nStrRef = -1); + + +// Replace a field, the type must match and the field must exist. +// Returns a json null value on error with GetJsonError() filled in. +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to replace the name of an area in a combined area format(CAF) object you can do the following: +// json jArea = ObjectToStruct(GetFirstArea()); +// jArea = GffReplaceLocString(jArea, "ARE/value/Name", "New Area Name"); + +json GffReplaceStruct(json jGff, string sLabel, json jStruct); +json GffReplaceList(json jGff, string sLabel, json jList); +json GffReplaceByte(json jGff, string sLabel, int v); +json GffReplaceChar(json jGff, string sLabel, int v); +json GffReplaceWord(json jGff, string sLabel, int v); +json GffReplaceShort(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffReplaceDword(json jGff, string sLabel, int v); +json GffReplaceInt(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffReplaceDword64(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffReplaceInt64(json jGff, string sLabel, int v); +json GffReplaceFloat(json jGff, string sLabel, float v); +// Note: Only data of type float will fit, because that's all that NWScript supports. +json GffReplaceDouble(json jGff, string sLabel, float v); +json GffReplaceResRef(json jGff, string sLabel, string v); +json GffReplaceString(json jGff, string sLabel, string v); +json GffReplaceLocString(json jGff, string sLabel, string v, int nStrRef = -1); + + +// Remove a field, the type must match and the field must exist. +// Returns a json null value on error with GetJsonError() filled in. +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to remove all placeables from an area in a combined area format(CAF) object you can do the following: +// json jArea = ObjectToStruct(GetFirstArea()); +// jArea = GffRemoveList(jArea, "GIT/value/Placeable List"); + +json GffRemoveStruct(json jGff, string sLabel); +json GffRemoveList(json jGff, string sLabel); +json GffRemoveByte(json jGff, string sLabel); +json GffRemoveChar(json jGff, string sLabel); +json GffRemoveWord(json jGff, string sLabel); +json GffRemoveShort(json jGff, string sLabel); +json GffRemoveDword(json jGff, string sLabel); +json GffRemoveInt(json jGff, string sLabel); +json GffRemoveDword64(json jGff, string sLabel); +json GffRemoveInt64(json jGff, string sLabel); +json GffRemoveFloat(json jGff, string sLabel); +json GffRemoveDouble(json jGff, string sLabel); +json GffRemoveResRef(json jGff, string sLabel); +json GffRemoveString(json jGff, string sLabel); +json GffRemoveLocString(json jGff, string sLabel); + + +// Get a field's value as json object. +// Returns a json null value on error with GetJsonError() filled in. +// +// Note: Json types do not implicitly convert between types, this means you cannot convert a JsonInt to a string with JsonGetString(), etc. +// You may need to check the type with JsonGetType() and then do the appropriate cast yourself. +// For GffGet*() functions the json type returned is noted in the function description. +// +// Example: +// INCORRECT: string s = JsonGetString(GffGetInt()); +// CORRECT: string s = IntToString(JsonGetInt(GffGetInt())); +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to get the resref of an area in a combined area format(CAF) object you can do the following: +// json jResRef = GffGetResRef(ObjectToStruct(GetFirstArea()), "ARE/value/ResRef"); +// if (jResRef != JsonNull()) +// { +// string sResRef = JsonGetString(jResRef); +// } +// else +// WriteTimestampedLogEntry("Failed to get area ResRef: " + JsonGetError(jResRef)); + +// Returns the struct as JsonObject() on success. +json GffGetStruct(json jGff, string sLabel); +// Returns a JsonArray() with all the list elements on success. +json GffGetList(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetByte(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetChar(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetWord(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetShort(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetDword(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetInt(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetDword64(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetInt64(json jGff, string sLabel); +// Returns a JsonFloat() on success. +json GffGetFloat(json jGff, string sLabel); +// Returns a JsonFloat() on success. +json GffGetDouble(json jGff, string sLabel); +// Returns a JsonString() on success. +json GffGetResRef(json jGff, string sLabel); +// Returns a JsonString() on success. +json GffGetString(json jGff, string sLabel); +// Returns a JsonObject() on success. +// Key "0" will have a JsonString() with the string, if set. +// Key "id" will have a JsonInt() with the strref, if set. +json GffGetLocString(json jGff, string sLabel); + + +// *** Internal Helper Functions +json AddPatchOperation(json jPatchArray, string sOp, string sPath, json jValue) +{ + json jOperation = JsonObject(); + jOperation = JsonObjectSet(jOperation, "op", JsonString(sOp)); + jOperation = JsonObjectSet(jOperation, "path", JsonString(sPath)); + jOperation = JsonObjectSet(jOperation, "value", jValue); + return JsonArrayInsert(jPatchArray, jOperation); +} + +json GffAddField(json jGff, string sLabel, string sType, json jValue, int nType = -1) +{ + json jField = JsonObject(); + jField = JsonObjectSet(jField, "type", JsonString(sType)); + jField = JsonObjectSet(jField, "value", jValue); + if (sType == GFF_FIELD_TYPE_STRUCT && nType != -1) + jField = JsonObjectSet(jField, "__struct_id", JsonInt(nType)); + + return JsonPatch(jGff, AddPatchOperation(JsonArray(), "add", "/" + sLabel, jField)); +} + +json GffReplaceField(json jGff, string sLabel, string sType, json jValue) +{ + json jPatch = JsonArray(); + jPatch = AddPatchOperation(jPatch, "test", "/" + sLabel + "/type", JsonString(sType)); + jPatch = AddPatchOperation(jPatch, "replace", "/" + sLabel + "/value", jValue); + return JsonPatch(jGff, jPatch); +} + +json GffRemoveField(json jGff, string sLabel, string sType) +{ + json jPatch = JsonArray(); + jPatch = AddPatchOperation(jPatch, "test", "/" + sLabel + "/type", JsonString(sType)); + jPatch = AddPatchOperation(jPatch, "remove", "/" + sLabel, JsonNull()); + return JsonPatch(jGff, jPatch); +} + +json GffGetFieldType(json jGff, string sLabel) +{ + return JsonPointer(jGff, "/" + sLabel + "/type"); +} + +json GffGetFieldValue(json jGff, string sLabel) +{ + return JsonPointer(jGff, "/" + sLabel + "/value"); +} + +json GffGetField(json jGff, string sLabel, string sType) +{ + json jType = GffGetFieldType(jGff, sLabel); + if (jType == JsonNull()) + return jType; + else if (jType != JsonString(sType)) + return JsonNull("field type does not match"); + else + return GffGetFieldValue(jGff, sLabel); +} + +json GffLocString(string v, int nStrRef = -1) +{ + json jLocString = JsonObject(); + if (v != "") + jLocString = JsonObjectSet(jLocString, "0", JsonString(v)); // english/any + if (nStrRef != -1) + jLocString = JsonObjectSet(jLocString, "id", JsonInt(nStrRef)); + + return jLocString; +} +//*** + +json GffCreateObject(int nObjectType) +{ + string ot; + if (nObjectType == OBJECT_TYPE_CREATURE) ot = "UTC "; + else if (nObjectType == OBJECT_TYPE_ITEM) ot = "UTI "; + else if (nObjectType == OBJECT_TYPE_TRIGGER) ot = "UTT "; + else if (nObjectType == OBJECT_TYPE_DOOR) ot = "UTD "; + else if (nObjectType == OBJECT_TYPE_WAYPOINT) ot = "UTW "; + else if (nObjectType == OBJECT_TYPE_PLACEABLE) ot = "UTP "; + else if (nObjectType == OBJECT_TYPE_STORE) ot = "UTM "; + else if (nObjectType == OBJECT_TYPE_ENCOUNTER) ot = "UTE "; + + if (ot == "") return JsonNull("invalid object type"); + + json ret = JsonObject(); + ret = JsonObjectSet(ret, "__data_type", JsonString(ot)); + return ret; +} + +json GffCreateArea(json jARE, json jGIT) +{ + json jCAF = JsonObject(); + jCAF = JsonObjectSet(jCAF, "__data_type", JsonString("CAF ")); + jCAF = GffAddStruct(jCAF, "ARE", jARE, 0); + jCAF = GffAddStruct(jCAF, "GIT", jGIT, 1); + return jCAF; +} + + +int GffGetObjectType(json jGff) +{ + json jDataType = JsonObjectGet(jGff, "__data_type"); + if (jDataType == JsonNull()) + return 0; + else + { + string sObjectType = JsonGetString(jDataType); + + if (sObjectType == "UTC ") return OBJECT_TYPE_CREATURE; + else if (sObjectType == "UTI ") return OBJECT_TYPE_ITEM; + else if (sObjectType == "UTT ") return OBJECT_TYPE_TRIGGER; + else if (sObjectType == "UTD ") return OBJECT_TYPE_DOOR; + else if (sObjectType == "UTW ") return OBJECT_TYPE_WAYPOINT; + else if (sObjectType == "UTP ") return OBJECT_TYPE_PLACEABLE; + else if (sObjectType == "UTM ") return OBJECT_TYPE_STORE; + else if (sObjectType == "UTE ") return OBJECT_TYPE_ENCOUNTER; + } + + return 0; +} + +int GffGetIsArea(json jGff) +{ + return JsonObjectGet(jGff, "__data_type") == JsonString("CAF "); +} + +int GffGetFieldExists(json jGff, string sLabel, string sType = "") +{ + json jFieldType = GffGetFieldType(jGff, sLabel); + return sType == "" ? jFieldType != JsonNull() : jFieldType == JsonString(sType); +} + + +json GffAddStruct(json jGff, string sLabel, json jStruct, int nType = -1) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT, jStruct, nType); +} + +json GffAddList(json jGff, string sLabel, json jList) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_LIST, jList); +} + +json GffAddByte(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_BYTE, JsonInt(v)); +} + +json GffAddChar(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_CHAR, JsonInt(v)); +} + +json GffAddWord(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_WORD, JsonInt(v)); +} + +json GffAddShort(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_SHORT, JsonInt(v)); +} + +json GffAddDword(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_DWORD, JsonInt(v)); +} + +json GffAddInt(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_INT, JsonInt(v)); +} + +json GffAddDword64(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64, JsonInt(v)); +} + +json GffAddInt64(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_INT64, JsonInt(v)); +} + +json GffAddFloat(json jGff, string sLabel, float v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT, JsonFloat(v)); +} + +json GffAddDouble(json jGff, string sLabel, float v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE, JsonFloat(v)); +} + +json GffAddResRef(json jGff, string sLabel, string v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_RESREF, JsonString(v)); +} + +json GffAddString(json jGff, string sLabel, string v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_STRING, JsonString(v)); +} + +json GffAddLocString(json jGff, string sLabel, string v, int nStrRef = -1) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING, GffLocString(v, nStrRef)); +} + + +json GffReplaceStruct(json jGff, string sLabel, json jStruct) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT, jStruct); +} + +json GffReplaceList(json jGff, string sLabel, json jList) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_LIST, jList); +} + +json GffReplaceByte(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_BYTE, JsonInt(v)); +} + +json GffReplaceChar(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_CHAR, JsonInt(v)); +} + +json GffReplaceWord(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_WORD, JsonInt(v)); +} + +json GffReplaceShort(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_SHORT, JsonInt(v)); +} + +json GffReplaceDword(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_DWORD, JsonInt(v)); +} + +json GffReplaceInt(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_INT, JsonInt(v)); +} + +json GffReplaceDword64(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64, JsonInt(v)); +} + +json GffReplaceInt64(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_INT64, JsonInt(v)); +} + +json GffReplaceFloat(json jGff, string sLabel, float v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT, JsonFloat(v)); +} + +json GffReplaceDouble(json jGff, string sLabel, float v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE, JsonFloat(v)); +} + +json GffReplaceResRef(json jGff, string sLabel, string v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_RESREF, JsonString(v)); +} + +json GffReplaceString(json jGff, string sLabel, string v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_STRING, JsonString(v)); +} + +json GffReplaceLocString(json jGff, string sLabel, string v, int nStrRef = -1) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING, GffLocString(v, nStrRef)); +} + + +json GffRemoveStruct(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT); +} + +json GffRemoveList(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_LIST); +} + +json GffRemoveByte(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_BYTE); +} + +json GffRemoveChar(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_CHAR); +} + +json GffRemoveWord(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_WORD); +} + +json GffRemoveShort(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_SHORT); +} + +json GffRemoveDword(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_DWORD); +} + +json GffRemoveInt(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_INT); +} + +json GffRemoveDword64(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64); +} + +json GffRemoveInt64(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_INT64); +} + +json GffRemoveFloat(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT); +} + +json GffRemoveDouble(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE); +} + +json GffRemoveResRef(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_RESREF); +} + +json GffRemoveString(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_STRING); +} + +json GffRemoveLocString(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING); +} + + +json GffGetStruct(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT); +} + +json GffGetList(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_LIST); +} + +json GffGetByte(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_BYTE); +} + +json GffGetChar(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_CHAR); +} + +json GffGetWord(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_WORD); +} + +json GffGetShort(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_SHORT); +} + +json GffGetDword(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_DWORD); +} + +json GffGetInt(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_INT); +} + +json GffGetDword64(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64); +} + +json GffGetInt64(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_INT64); +} + +json GffGetFloat(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT); +} + +json GffGetDouble(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE); +} + +json GffGetResRef(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_RESREF); +} + +json GffGetString(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_STRING); +} + +json GffGetLocString(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING); +} diff --git a/nwn/nwnprc/trunk/include/prc_inc_switch.nss b/nwn/nwnprc/trunk/include/prc_inc_switch.nss index 4913e3d5..8819a4b6 100644 --- a/nwn/nwnprc/trunk/include/prc_inc_switch.nss +++ b/nwn/nwnprc/trunk/include/prc_inc_switch.nss @@ -1961,45 +1961,46 @@ const string PRC_CRAFTING_BASE_ITEMS = "PRC_CRAFTING_BASE_ITEMS"; * Max level of spells brewed into potions * defaults to 3 */ -const string X2_CI_BREWPOTION_MAXLEVEL = "X2_CI_BREWPOTION_MAXLEVEL"; +//const string X2_CI_BREWPOTION_MAXLEVEL = "X2_CI_BREWPOTION_MAXLEVEL"; +const string PRC_X2_BREWPOTION_MAXLEVEL = "PRC_X2_BREWPOTION_MAXLEVEL"; /* * cost modifier of spells brewed into poitions * defaults to 50 */ -const string X2_CI_BREWPOTION_COSTMODIFIER = "X2_CI_BREWPOTION_COSTMODIFIER"; +const string PRC_X2_BREWPOTION_COSTMODIFIER = "PRC_X2_BREWPOTION_COSTMODIFIER"; /* * cost modifier of spells scribed into scrolls * defaults to 25 */ -const string X2_CI_SCRIBESCROLL_COSTMODIFIER = "X2_CI_SCRIBESCROLL_COSTMODIFIER"; +const string PRC_X2_SCRIBESCROLL_COSTMODIFIER = "PRC_X2_SCRIBESCROLL_COSTMODIFIER"; /* * Max level of spells crafted into wands * defaults to 4 */ -const string X2_CI_CRAFTWAND_MAXLEVEL = "X2_CI_CRAFTWAND_MAXLEVEL"; +const string PRC_X2_CRAFTWAND_MAXLEVEL = "PRC_X2_CRAFTWAND_MAXLEVEL"; /* * cost modifier of spells crafted into wands * defaults to 750 */ -const string X2_CI_CRAFTWAND_COSTMODIFIER = "X2_CI_CRAFTWAND_COSTMODIFIER"; +const string PRC_X2_CRAFTWAND_COSTMODIFIER = "PRC_X2_CRAFTWAND_COSTMODIFIER"; /* * cost modifier of spells crafted into rods * note that adding a second spell costs 75% and 3 or more costs 50% * defaults to 750 */ -const string X2_CI_CRAFTROD_COSTMODIFIER = "X2_CI_CRAFTROD_COSTMODIFIER"; +const string PRC_X2_CRAFTROD_COSTMODIFIER = "PRC_X2_CRAFTROD_COSTMODIFIER"; /* * cost modifier of spells crafted into staffs * note that adding a second spell costs 75% and 3 or more costs 50% * defaults to 750 */ -const string X2_CI_CRAFTSTAFF_COSTMODIFIER = "X2_CI_CRAFTSTAFF_COSTMODIFIER"; +const string PRC_X2_CRAFTSTAFF_COSTMODIFIER = "PRC_X2_CRAFTSTAFF_COSTMODIFIER"; /** * Allows the use of arbitrary itemproperties and uses NWN item costs diff --git a/nwn/nwnprc/trunk/include/prc_x2_craft.nss b/nwn/nwnprc/trunk/include/prc_x2_craft.nss index 5834f632..ddcaf9a4 100644 --- a/nwn/nwnprc/trunk/include/prc_x2_craft.nss +++ b/nwn/nwnprc/trunk/include/prc_x2_craft.nss @@ -44,14 +44,14 @@ const string X2_CI_CRAFTSKILL_CONV ="x2_p_craftskills"; /* moved to be code switches const int X2_CI_BREWPOTION_MAXLEVEL = 3; // Max Level for potions -const int X2_CI_BREWPOTION_COSTMODIFIER = 50; // gp Brew Potion XPCost Modifier +const int PRC_X2_BREWPOTION_COSTMODIFIER = 50; // gp Brew Potion XPCost Modifier // Scribe Scroll related constants -const int X2_CI_SCRIBESCROLL_COSTMODIFIER = 25; // Scribescroll Cost Modifier +const int PRC_X2_SCRIBESCROLL_COSTMODIFIER = 25; // Scribescroll Cost Modifier // Craft Wand related constants -const int X2_CI_CRAFTWAND_MAXLEVEL = 4; -const int X2_CI_CRAFTWAND_COSTMODIFIER = 750; +const int PRC_X2_CRAFTWAND_MAXLEVEL = 4; +const int PRC_X2_CRAFTWAND_COSTMODIFIER = 750; */ const int X2_CI_BREWPOTION_FEAT_ID = 944; // Brew Potion feat simulation const int X2_CI_SCRIBESCROLL_FEAT_ID = 945; @@ -593,7 +593,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // check if spell is below maxlevel for brew potions // ------------------------------------------------------------------------- - int nPotionMaxLevel = GetPRCSwitch(X2_CI_BREWPOTION_MAXLEVEL); + int nPotionMaxLevel = GetPRCSwitch(PRC_X2_BREWPOTION_MAXLEVEL); if(nPotionMaxLevel == 0) nPotionMaxLevel = 3; @@ -624,7 +624,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // XP/GP Cost Calculation // ------------------------------------------------------------------------- - int nCostModifier = GetPRCSwitch(X2_CI_BREWPOTION_COSTMODIFIER); + int nCostModifier = GetPRCSwitch(PRC_X2_BREWPOTION_COSTMODIFIER); if(nCostModifier == 0) nCostModifier = 50; int nCost = CIGetCraftGPCost(nLevel, nCostModifier, PRC_BREW_POTION_CASTER_LEVEL); @@ -728,7 +728,7 @@ int CICraftCheckScribeScroll(object oSpellTarget, object oCaster, int nID = 0) // XP/GP Cost Calculation // ------------------------------------------------------------------------- int nLevel = CIGetSpellInnateLevel(nID,TRUE); - int nCostModifier = GetPRCSwitch(X2_CI_SCRIBESCROLL_COSTMODIFIER); + int nCostModifier = GetPRCSwitch(PRC_X2_SCRIBESCROLL_COSTMODIFIER); if(nCostModifier == 0) nCostModifier = 25; int nCost = CIGetCraftGPCost(nLevel, nCostModifier, PRC_SCRIBE_SCROLL_CASTER_LEVEL); @@ -884,7 +884,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // check if spell is below maxlevel for craft want // ------------------------------------------------------------------------- - int nMaxLevel = GetPRCSwitch(X2_CI_CRAFTWAND_MAXLEVEL); + int nMaxLevel = GetPRCSwitch(PRC_X2_CRAFTWAND_MAXLEVEL); if(nMaxLevel == 0) nMaxLevel = 4; if (nLevel > nMaxLevel) @@ -896,7 +896,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // XP/GP Cost Calculation // ------------------------------------------------------------------------- - int nCostMod = GetPRCSwitch(X2_CI_CRAFTWAND_COSTMODIFIER); + int nCostMod = GetPRCSwitch(PRC_X2_CRAFTWAND_COSTMODIFIER); if(nCostMod == 0) nCostMod = 750; int nCost = CIGetCraftGPCost(nLevel, nCostMod, PRC_CRAFT_WAND_CASTER_LEVEL); @@ -1027,7 +1027,7 @@ int CICraftCheckCraftStaff(object oSpellTarget, object oCaster, int nSpellID = 0 These dont work as IPs since they are hardcoded */ } } - int nCostMod = GetPRCSwitch(X2_CI_CRAFTSTAFF_COSTMODIFIER); + int nCostMod = GetPRCSwitch(PRC_X2_CRAFTSTAFF_COSTMODIFIER); if(!nCostMod) nCostMod = 750; int nLvlRow = IPGetIPConstCastSpellFromSpellID(nSpellID); int nCLevel = StringToInt(Get2DACache("iprp_spells","CasterLvl",nLvlRow)); @@ -1175,7 +1175,7 @@ int CICraftCheckCraftRod(object oSpellTarget, object oCaster, int nSpellID = 0) These dont work as IPs since they are hardcoded */ } } - int nCostMod = GetPRCSwitch(X2_CI_CRAFTROD_COSTMODIFIER); + int nCostMod = GetPRCSwitch(PRC_X2_CRAFTROD_COSTMODIFIER); if(!nCostMod) nCostMod = 750; int nLvlRow = IPGetIPConstCastSpellFromSpellID(nSpellID); int nCLevel = StringToInt(Get2DACache("iprp_spells","CasterLvl",nLvlRow)); diff --git a/nwn/nwnprc/trunk/newspellbook/moi_ft_aztalent.nss b/nwn/nwnprc/trunk/newspellbook/moi_ft_aztalent.nss index bbdeeb56..1ddab812 100644 --- a/nwn/nwnprc/trunk/newspellbook/moi_ft_aztalent.nss +++ b/nwn/nwnprc/trunk/newspellbook/moi_ft_aztalent.nss @@ -8,4 +8,4 @@ void main() if (GetCanBindChakra(oMeldshaper, CHAKRA_CROWN)) nEssentia += 2; GainPowerPoints(oMeldshaper, nEssentia, TRUE, TRUE); -} +} \ No newline at end of file diff --git a/nwn/nwnprc/trunk/scripts/mirror_image_sa.nss b/nwn/nwnprc/trunk/scripts/mirror_image_sa.nss new file mode 100644 index 00000000..97e99a95 --- /dev/null +++ b/nwn/nwnprc/trunk/scripts/mirror_image_sa.nss @@ -0,0 +1,94 @@ +#include "inc_debug" +#include "prc_inc_spells" + +void main() +{ + object oSummoned = OBJECT_SELF; + + // Get the caster of the potential dispel + object oCaster = GetLastSpellCaster(); + int nCasterLevel = GetCasterLevel(oCaster); + + if(DEBUG) DoDebug("mirror_image_sa: EVENT_NPC_ONSPELLCASTAT triggered."); + + // Get the spell ID + int nSpellId = GetLastSpell(); + if(DEBUG) DoDebug("mirror_image_sa: Dispel spell ID: " + IntToString(nSpellId)); + + // Check if the spell ID is a dispel spell + if (nSpellId == SPELL_DISPEL_MAGIC || nSpellId == SPELL_LESSER_DISPEL || nSpellId == SPELL_GREATER_DISPELLING || nSpellId == SPELL_MORDENKAINENS_DISJUNCTION + || nSpellId == SPELL_SLASHING_DISPEL || nSpellId == SPELL_DISPELLING_TOUCH || nSpellId == SPELL_PIXIE_DISPEL || nSpellId == SPELL_GREAT_WALL_OF_DISPEL) + { + // Get the target of the spell + object oTarget = OBJECT_SELF; + if(DEBUG) DoDebug("mirror_image_sa: Spell targeted at: " + GetName(oTarget)); + + // Check if the target is OBJECT_SELF + if (oTarget == OBJECT_SELF) + { + // Retrieve the original caster of the Spiritual Weapon spell from oSummon + object oSummon = OBJECT_SELF; + object oOriginalCaster = GetLocalObject(oSummon, "oMaster"); + + // Ensure oOriginalCaster is valid + if (GetIsObjectValid(oOriginalCaster)) + { + if(DEBUG) DoDebug("mirror_image_sa: Original caster found. Caster level: " + IntToString(GetCasterLevel(oOriginalCaster))); + + // Determine the DC for the dispel check + int nDispelDC = 11 + GetCasterLevel(oOriginalCaster); + if(DEBUG) DoDebug("mirror_image_sa: Dispel DC: " + IntToString(nDispelDC)); + + // Determine the maximum cap for the dispel check + int nDispelCap = 0; + if (nSpellId == SPELL_LESSER_DISPEL) + nDispelCap = 5; + else if (nSpellId == SPELL_DISPEL_MAGIC || nSpellId == SPELL_SLASHING_DISPEL || nSpellId == SPELL_DISPELLING_TOUCH || nSpellId == SPELL_PIXIE_DISPEL || nSpellId == INVOKE_VORACIOUS_DISPELLING) + nDispelCap = 10; + else if (nSpellId == SPELL_GREATER_DISPELLING || nSpellId == SPELL_GREAT_WALL_OF_DISPEL) + nDispelCap = 15; + else if (nSpellId == SPELL_MORDENKAINENS_DISJUNCTION) + nDispelCap = 0; // No cap for Disjunction + + // Roll for the dispel check + int nDispelRoll = d20(); + int nCappedCasterLevel = nCasterLevel; + + if (nDispelCap > 0 && nCasterLevel > nDispelCap) + nCappedCasterLevel = nDispelCap; + + nDispelRoll += nCappedCasterLevel; + + if(DEBUG) DoDebug("mirror_image_sa: Dispel roll: " + IntToString(nDispelRoll) + " (Caster Level: " + IntToString(nCappedCasterLevel) + ", Cap: " + IntToString(nDispelCap) + ")"); + + // Compare the dispel result to the DC + if (nDispelRoll >= nDispelDC) + { + if(DEBUG) DoDebug("mirror_image_sa: Dispel check succeeded."); + + // Dispel succeeded, destroy oSummon + if(DEBUG) DoDebug("mirror_image_sa: Dispel Magic succeeded. Destroying Mirror Image."); + + // Set flags and destroy objects with delays + SetPlotFlag(oSummon, FALSE); + SetImmortal(oSummon, FALSE); + + ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_DISPEL), oSummon); + + DelayCommand(1.0f, DestroyObject(oSummon)); + + if(DEBUG) DoDebug("mirror_image_sa: Mirror Image destruction scheduled."); + } + else + { + if(DEBUG) DoDebug("mirror_image_sa: Dispel check failed."); + } + } + else + { + if(DEBUG) DoDebug("mirror_image_sa: Original caster not found."); + } + } + } + return; +} diff --git a/nwn/nwnprc/trunk/scripts/prc_rest.nss b/nwn/nwnprc/trunk/scripts/prc_rest.nss index 6eb59e77..f79614b2 100644 --- a/nwn/nwnprc/trunk/scripts/prc_rest.nss +++ b/nwn/nwnprc/trunk/scripts/prc_rest.nss @@ -21,6 +21,22 @@ #include "shd_inc_myst" #include "prc_inc_template" +void RemoveExtraImages(object oPC) +{ + string sImage1 = "PC_IMAGE"+ObjectToString(oPC)+"mirror"; + string sImage2 = "PC_IMAGE"+ObjectToString(oPC)+"flurry"; + + object oCreature = GetFirstObjectInArea(GetArea(oPC)); + while (GetIsObjectValid(oCreature)) + { + if(GetTag(oCreature) == sImage1 || GetTag(oCreature) == sImage2) + { + DestroyObject(oCreature, 0.0); + } + oCreature = GetNextObjectInArea(GetArea(oPC)); + } +} + void PrcFeats(object oPC) { if(DEBUG) DoDebug("prc_rest: Evaluating PC feats for " + DebugObject2Str(oPC)); @@ -349,6 +365,8 @@ void RestStarted(object oPC) } */ + RemoveExtraImages(oPC); + if (GetIsPC(oPC)) SetLocalInt(oPC, "PnP_Rest_InitialHP", GetCurrentHitPoints(oPC)); SetLocalInt(oPC, "PnP_Rest_InitialMax", GetMaxHitPoints(oPC)); if(DEBUG) DoDebug("prc_rest: HPs for " + DebugObject2Str(oPC)+"n/n/"+" nCurrent: "+IntToString(GetCurrentHitPoints(oPC))+" nMax: "+IntToString(GetMaxHitPoints(oPC))); diff --git a/nwn/nwnprc/trunk/spells/sp_mirror.nss b/nwn/nwnprc/trunk/spells/sp_mirror.nss index de97b0fe..fd714e58 100644 --- a/nwn/nwnprc/trunk/spells/sp_mirror.nss +++ b/nwn/nwnprc/trunk/spells/sp_mirror.nss @@ -40,9 +40,127 @@ dead after being hit by a fireball). //:: Created By: Stratovarius //:: Created On: August 20, 2004 //::////////////////////////////////////////////// - +#include "nw_inc_gff" #include "prc_inc_spells" +// Validates and tracks mirror image alignment with master +void TrackMirrorImage(object oSummoned) +{ + DoDebug("sp_mirror >> TrackMirrorImage: Running."); + + if (!GetIsObjectValid(oSummoned)) + { + DoDebug("sp_mirror >> TrackMirrorImage: oSummoned invalid."); + //SendMessageToPC(GetFirstPC(), "TrackMirrorImage >> oSummon or oMaster invalid."); + return; + } + + object oMaster = GetLocalObject(oSummoned, "oMaster"); + if (!GetIsObjectValid(oMaster)) + { + DoDebug("sp_mirror >> TrackMirrorImage: oMaster invalid."); + //SendMessageToPC(GetFirstPC(), "TrackMirrorImage >> oSummon or oMaster invalid."); + return; + } + + float fRelX = GetLocalFloat(oSummoned, "rel_x"); + float fRelY = GetLocalFloat(oSummoned, "rel_y"); + + vector vMaster = GetPosition(oMaster); + float fFacing = GetFacing(oMaster); + float fRadians = fFacing * 3.14159 / 180.0; + + // Apply facing-based 2D rotation to the stored offset + float fX = vMaster.x + fRelX * cos(fRadians) - fRelY * sin(fRadians); + float fY = vMaster.y + fRelX * sin(fRadians) + fRelY * cos(fRadians); + + location lTarget = Location(GetArea(oMaster), Vector(fX, fY, vMaster.z), fFacing); + + // Ensure these commands only execute under needed context + AssignCommand(oSummoned, ClearAllActions()); + AssignCommand(oSummoned, ActionJumpToLocation(lTarget)); + + // Schedule next update in 0.25 seconds + DelayCommand(0.1, TrackMirrorImage(oSummoned)); +} + +// Initializes the summoning and tracking system +void StartMirrorImageTracking(object oSummoned, object oMaster) +{ + if (!GetIsObjectValid(oMaster)) + { + DoDebug("sp_mirror >> StartMirrorImageTracking: oMaster invalid."); + //SendMessageToPC(GetFirstPC(), "TrackMirrorImage >> oSummon or oMaster invalid."); + return; + } + + vector vMaster = GetPosition(oMaster); + vector vSummoned = GetPosition(oSummoned); + + float fRelX = vSummoned.x - vMaster.x; + float fRelY = vSummoned.y - vMaster.y; + + SetLocalFloat(oSummoned, "rel_x", fRelX); + SetLocalFloat(oSummoned, "rel_y", fRelY); + SetLocalObject(oSummoned, "summoner", oMaster); + + SetLocalObject(oSummoned, "oMaster", oMaster); + + DoDebug("sp_mirror >> StartMirrorImageTracking: Firing TrackMirrorImage()."); + TrackMirrorImage(oSummoned); +} + +void SetMirrorImageScripts(object oImage) +{ + + string sTag = GetTag(oImage); + + if(DEBUG) DoDebug("sp_mirror >> SetMirrorImageScripts: Setting OnSpellCastAt script on "+ sTag +"."); + + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_BLOCKED_BY_DOOR, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_DAMAGED, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_DEATH, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_DIALOGUE, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_DISTURBED, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_END_COMBATROUND, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_MELEE_ATTACKED, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_NOTICE, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_RESTED, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_SPAWN_IN, ""); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_SPELLCASTAT, "mirror_image_sa"); + SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT, ""); +} + +json JsonModifyRacialType(json jCreature, int nNewRacialType) +{ + if(DEBUG)DoDebug("sp_mirror >> JsonModifyRacialType: Entering function"); + + // Retrieve the RacialType field + json jRacialTypeField = JsonObjectGet(jCreature, "Race"); + + if (JsonGetType(jRacialTypeField) == JSON_TYPE_NULL) + { + DoDebug("sp_mirror >> JsonModifyRacialType: JsonGetType error 1: " + JsonGetError(jRacialTypeField)); + //SpeakString("JsonGetType error 1: " + JsonGetError(jRacialTypeField)); + return JsonNull(); + } + + // Retrieve the value to modify + json jRacialTypeValue = JsonObjectGet(jRacialTypeField, "value"); + + if (JsonGetType(jRacialTypeValue) != JSON_TYPE_INTEGER) + { + DoDebug("sp_mirror >> JsonModifyRacialType: JsonGetType error 2: " + JsonGetError(jRacialTypeValue)); + //SpeakString("JsonGetType error 2: " + JsonGetError(jRacialTypeValue)); + return JsonNull(); + } + + jCreature = GffReplaceByte(jCreature, "Race", nNewRacialType); + + // Return the new creature object + return jCreature; +} void CleanCopy(object oImage) { @@ -107,22 +225,38 @@ void CleanCopy(object oImage) void MakeMoreImages(object oImage, int iImages, int nDuration) { string sImage = "PC_IMAGE"+ObjectToString(OBJECT_SELF)+"mirror"; + + object oMaster = OBJECT_SELF; - effect eImage = EffectCutsceneParalyze(); + if (!GetIsObjectValid(oMaster)) + { + DoDebug("sp_mirror >> MakeMoreImages: oMaster invalid."); + return; + } + + SetLocalObject(oImage, "oMaster", oMaster); + + effect //eImage = EffectCutsceneParalyze(); eImage = SupernaturalEffect(eImage); effect eGhost = EffectCutsceneGhost(); eGhost = SupernaturalEffect(eGhost); effect eNoSpell = EffectSpellFailure(100); eNoSpell = SupernaturalEffect(eNoSpell); + effect eSpeed = EffectMovementSpeedIncrease(200); + eSpeed = SupernaturalEffect(eSpeed); + int iPlus; for (iPlus = 0; iPlus < iImages; iPlus++) { object oImage2 = CopyObject(oImage, GetLocation(OBJECT_SELF), OBJECT_INVALID, sImage); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImage, oImage2); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eNoSpell, oImage2); + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSpeed, oImage2); ChangeFaction(oImage2, oImage); SetIsTemporaryFriend(OBJECT_SELF, oImage2, FALSE); - DelayCommand(3.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, oImage2)); + DelayCommand(0.0f, SetMirrorImageScripts(oImage2)); + DelayCommand(0.5f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, oImage2)); + StartMirrorImageTracking(oImage2, OBJECT_SELF); DestroyObject(oImage2, TurnsToSeconds(nDuration)); // they dissapear after a minute per level } } @@ -145,7 +279,9 @@ void RemoveExtraImages() void main2() { - int iLevel = PRCGetCasterLevel(OBJECT_SELF); + object oCaster = OBJECT_SELF; + + int iLevel = PRCGetCasterLevel(oCaster); int iAdd = iLevel/3; int iImages = d4(1) + iAdd; if(iImages >8) @@ -156,37 +292,64 @@ void main2() if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND)) { nDuration = nDuration *2; //Duration is +100% - } - + } - string sImage = "PC_IMAGE"+ObjectToString(OBJECT_SELF)+"mirror"; + string sImage = "PC_IMAGE"+ObjectToString(oCaster)+"mirror"; - effect eImage = EffectCutsceneParalyze(); + effect //eImage = EffectCutsceneParalyze(); eImage = SupernaturalEffect(eImage); effect eGhost = EffectCutsceneGhost(); eGhost = SupernaturalEffect(eGhost); effect eNoSpell = EffectSpellFailure(100); eNoSpell = SupernaturalEffect(eNoSpell); - + effect eSpeed = EffectMovementSpeedIncrease(200); + eSpeed = SupernaturalEffect(eSpeed); + + //:: Convert to a construct. + object oImage; + json jImage = ObjectToJson(oCaster); + + jImage = JsonModifyRacialType(jImage, RACIAL_TYPE_CONSTRUCT); + + oImage = JsonToObject(jImage, GetLocation(oCaster)); + + if (!GetIsObjectValid(oImage)) + { + DoDebug("sp_mirror: Image failed to spawn"); + //SpeakString("Image failed to spawn."); + return; + } + // make, then clean up, first image and copy it, not the PC for subsequent images - object oImage = CopyObject(OBJECT_SELF, GetLocation(OBJECT_SELF), OBJECT_INVALID, sImage); - CleanCopy(oImage); + //object oImage = CopyObject(OBJECT_SELF, GetLocation(OBJECT_SELF), OBJECT_INVALID, sImage); + + SetTag(oImage, sImage); + + CleanCopy(oImage); - // images will have only 1 HP + // images will have only 1 HP int iHP = GetCurrentHitPoints(oImage); --iHP; - effect eDamage = PRCEffectDamage(oImage, iHP); // reduces image to 1 hp + effect eDamage = PRCEffectDamage(oImage, iHP); // reduces image to 1 hp // these need to be applied to every image ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImage, oImage); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eNoSpell, oImage); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDamage, oImage); - if(!GetIsPC(OBJECT_SELF)) - ChangeFaction(oImage, OBJECT_SELF); + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDamage, oImage); + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSpeed, oImage); + + SetMirrorImageScripts(oImage); + + DelayCommand(0.0, SetLocalObject(oImage, "oMaster", oCaster)); + + if(!GetIsPC(oCaster)) + ChangeFaction(oImage, oCaster); else ChangeToStandardFaction(oImage, STANDARD_FACTION_DEFENDER); - SetIsTemporaryFriend(OBJECT_SELF, oImage, FALSE); - DelayCommand(3.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, oImage)); + + SetIsTemporaryFriend(oCaster, oImage, FALSE); + DelayCommand(0.5f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, oImage)); + StartMirrorImageTracking(oImage, OBJECT_SELF); DestroyObject(oImage, TurnsToSeconds(nDuration)); // they dissapear after a minute per level --iImages; // made one already @@ -195,15 +358,8 @@ void main2() void main() { -DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); -SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION); -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ + DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); + SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION); if (!X2PreSpellCastCode()) { @@ -216,6 +372,6 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION); DelayCommand(0.0, RemoveExtraImages()); DelayCommand(0.1, main2()); -DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); + DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); // Getting rid of the local integer storing the spellschool name }