generated from Jaysyn/ModuleTemplate
2025/12/25 Initial Upload
2025/12/25 Initial Upload
This commit is contained in:
@@ -1,19 +1,18 @@
|
|||||||
# Default Module Template
|
# Tortured Hearts I - Epilogue 1 [PRC8-CEP3]
|
||||||
|
|
||||||
Repository for the development of the PRC8 version of .....
|
Repository for the development of the PRC8 version of Tortured Hearts I.
|
||||||
|
|
||||||
[Discussion Thread on Discord](https://discord.gg/ca2ru3KxYd)
|
[Discussion Thread on Discord](https://discord.gg/ca2ru3KxYd)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
1.) [Nasher](https://github.com/squattingmonk/nasher), installed in your system path.
|
1.) [Nasher](https://github.com/squattingmonk/nasher), installed in your system path.
|
||||||
|
|
||||||
2.) [Original module resources]()
|
2.) [Original module resources](https://neverwintervault.org/project/nwn1/module/tortured-hearts-i)
|
||||||
|
|
||||||
3.) [PRC8](https://gitea.raptio.us/Jaysyn/PRC8/releases)
|
3.) [PRC8](https://gitea.raptio.us/Jaysyn/PRC8/releases)
|
||||||
|
|
||||||
3.) [CEP3](https://neverwintervault.org/project/nwnee/hakpak/combined/cep-3-community-expansion-pack)
|
3.) [CEP3](https://neverwintervault.org/project/nwnee/hakpak/combined/cep-3-community-expansion-pack)
|
||||||
|
|
||||||
4.) [CEP2](https://neverwintervault.org/cep)
|
|
||||||
|
|
||||||
## Instructions
|
## Instructions
|
||||||
|
|
||||||
|
|||||||
494
nasher.cfg
494
nasher.cfg
@@ -1,9 +1,9 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "Default Module"
|
name = "Tortured Hearts I"
|
||||||
description = "PRC8 version of ..."
|
description = "PRC8 version of Tortured Hearts I."
|
||||||
version = "1.01prc8"
|
version = "2.16prc8"
|
||||||
url = "https://discord.gg/ca2ru3KxYd"
|
url = "https://discord.gg/ca2ru3KxYd"
|
||||||
author = "Original Author"
|
author = "Zoltan Gonda"
|
||||||
author = "Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com>"
|
author = "Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com>"
|
||||||
|
|
||||||
[package.sources]
|
[package.sources]
|
||||||
@@ -15,10 +15,11 @@ author = "Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com>"
|
|||||||
|
|
||||||
[target]
|
[target]
|
||||||
name = "default"
|
name = "default"
|
||||||
file = "Default Module.mod"
|
group = "modules"
|
||||||
description = "PRC8 version of ..."
|
file = "Tortured Hearts I.mod"
|
||||||
|
description = "PRC8 version of Tortured Hearts I."
|
||||||
[target.sources]
|
[target.sources]
|
||||||
include = "src/module/**/*"
|
include = "src/module/default/**/*"
|
||||||
include = "src/include/**/*"
|
include = "src/include/**/*"
|
||||||
filter = "bnd_inc_bndfunc.nss"
|
filter = "bnd_inc_bndfunc.nss"
|
||||||
filter = "bnd_vestig_const.nss"
|
filter = "bnd_vestig_const.nss"
|
||||||
@@ -242,24 +243,479 @@ description = "PRC8 version of ..."
|
|||||||
filter = "nw_inc_gff.nss"
|
filter = "nw_inc_gff.nss"
|
||||||
filter = "inc_infusion.nss"
|
filter = "inc_infusion.nss"
|
||||||
[target.rules]
|
[target.rules]
|
||||||
"*" = "src/module/$ext"
|
"*" = "src/module/default/$ext"
|
||||||
|
|
||||||
[target]
|
[target]
|
||||||
name = "tlk"
|
name = "epilogue1"
|
||||||
file = "custom.tlk"
|
group = "modules"
|
||||||
description = "Merge tlk for the PRC8 version ..."
|
file = "Tortured Hearts I - Epilogue 1 [PRC8-CEP3].mod"
|
||||||
[target.sources]
|
description = "PRC8 version of Tortured Hearts I - Epilogue 1."
|
||||||
include = "src/tlk/*.json"
|
[target.sources]
|
||||||
|
include = "src/module/epilogue1/**/*"
|
||||||
|
include = "src/include/**/*"
|
||||||
|
filter = "bnd_inc_bndfunc.nss"
|
||||||
|
filter = "bnd_vestig_const.nss"
|
||||||
|
filter = "inc_2dacache.nss"
|
||||||
|
filter = "inc_abil_damage.nss"
|
||||||
|
filter = "inc_acp.nss"
|
||||||
|
filter = "inc_addragebonus.nss"
|
||||||
|
filter = "inc_area.nss"
|
||||||
|
filter = "inc_array_sort.nss"
|
||||||
|
filter = "inc_cache_setup.nss"
|
||||||
|
filter = "inc_debug.nss"
|
||||||
|
filter = "inc_dispel.nss"
|
||||||
|
filter = "inc_draw.nss"
|
||||||
|
filter = "inc_draw_prc.nss"
|
||||||
|
filter = "inc_draw_text.nss"
|
||||||
|
filter = "inc_draw_tools.nss"
|
||||||
|
filter = "inc_dynconv.nss"
|
||||||
|
filter = "inc_ecl.nss"
|
||||||
|
filter = "inc_epicspellai.nss"
|
||||||
|
filter = "inc_epicspelldef.nss"
|
||||||
|
filter = "inc_epicspellfnc.nss"
|
||||||
|
filter = "inc_epicspells.nss"
|
||||||
|
filter = "inc_eventhook.nss"
|
||||||
|
filter = "inc_heap.nss"
|
||||||
|
filter = "inc_item_props.nss"
|
||||||
|
filter = "inc_logmessage.nss"
|
||||||
|
filter = "inc_lookups.nss"
|
||||||
|
filter = "inc_metalocation.nss"
|
||||||
|
filter = "inc_newspellbook.nss"
|
||||||
|
filter = "inc_npc.nss"
|
||||||
|
filter = "inc_nwnx_funcs.nss"
|
||||||
|
filter = "inc_persistsql.nss"
|
||||||
|
filter = "inc_persist_loca.nss"
|
||||||
|
filter = "inc_pers_array.nss"
|
||||||
|
filter = "inc_poison.nss"
|
||||||
|
filter = "inc_prc_npc.nss"
|
||||||
|
filter = "inc_prc_poly.nss"
|
||||||
|
filter = "inc_rand_equip.nss"
|
||||||
|
filter = "inc_ravage.nss"
|
||||||
|
filter = "inc_rend.nss"
|
||||||
|
filter = "inc_sbr_readme.nss"
|
||||||
|
filter = "inc_set.nss"
|
||||||
|
filter = "inc_spirit_weapn.nss"
|
||||||
|
filter = "inc_sp_gain_mem.nss"
|
||||||
|
filter = "inc_sql.nss"
|
||||||
|
filter = "inc_switch_setup.nss"
|
||||||
|
filter = "inc_target_list.nss"
|
||||||
|
filter = "inc_threads.nss"
|
||||||
|
filter = "inc_time.nss"
|
||||||
|
filter = "inc_timestop.nss"
|
||||||
|
filter = "inc_uniqueid.nss"
|
||||||
|
filter = "inc_utility.nss"
|
||||||
|
filter = "inc_vfx_const.nss"
|
||||||
|
filter = "inv_inc_blast.nss"
|
||||||
|
filter = "inv_inc_invfunc.nss"
|
||||||
|
filter = "inv_inc_invknown.nss"
|
||||||
|
filter = "inv_inc_invoke.nss"
|
||||||
|
filter = "inv_invoc_const.nss"
|
||||||
|
filter = "inv_invokehook.nss"
|
||||||
|
filter = "lookup_2da_spell.nss"
|
||||||
|
filter = "moi_inc_moifunc.nss"
|
||||||
|
filter = "moi_meld_const.nss"
|
||||||
|
filter = "nw_o2_coninclude.nss"
|
||||||
|
filter = "pnp_lich_inc.nss"
|
||||||
|
filter = "pnp_shft_main.nss"
|
||||||
|
filter = "pnp_shft_poly.nss"
|
||||||
|
filter = "prcsp_archmaginc.nss"
|
||||||
|
filter = "prcsp_engine.nss"
|
||||||
|
filter = "prcsp_reputation.nss"
|
||||||
|
filter = "prc_add_spell_dc.nss"
|
||||||
|
filter = "prc_add_spl_pen.nss"
|
||||||
|
filter = "prc_allow_const.nss"
|
||||||
|
filter = "prc_alterations.nss"
|
||||||
|
filter = "prc_ccc_const.nss"
|
||||||
|
filter = "prc_ccc_readme.nss"
|
||||||
|
filter = "prc_class_const.nss"
|
||||||
|
filter = "prc_compan_inc.nss"
|
||||||
|
filter = "prc_craft_inc.nss"
|
||||||
|
filter = "prc_effect_inc.nss"
|
||||||
|
filter = "prc_feat_const.nss"
|
||||||
|
filter = "prc_getbest_inc.nss"
|
||||||
|
filter = "prc_inc_actions.nss"
|
||||||
|
filter = "prc_inc_array.nss"
|
||||||
|
filter = "prc_inc_assoc.nss"
|
||||||
|
filter = "prc_inc_breath.nss"
|
||||||
|
filter = "prc_inc_burn.nss"
|
||||||
|
filter = "prc_inc_castlvl.nss"
|
||||||
|
filter = "prc_inc_chat.nss"
|
||||||
|
filter = "prc_inc_chat_dm.nss"
|
||||||
|
filter = "prc_inc_chat_pow.nss"
|
||||||
|
filter = "prc_inc_chat_shf.nss"
|
||||||
|
filter = "prc_inc_clsfunc.nss"
|
||||||
|
filter = "prc_inc_combat.nss"
|
||||||
|
filter = "prc_inc_combmove.nss"
|
||||||
|
filter = "prc_inc_core.nss"
|
||||||
|
filter = "prc_inc_damage.nss"
|
||||||
|
filter = "prc_inc_descrptr.nss"
|
||||||
|
filter = "prc_inc_domain.nss"
|
||||||
|
filter = "prc_inc_dragsham.nss"
|
||||||
|
filter = "prc_inc_drugfunc.nss"
|
||||||
|
filter = "prc_inc_effect.nss"
|
||||||
|
filter = "prc_inc_factotum.nss"
|
||||||
|
filter = "prc_inc_fork.nss"
|
||||||
|
filter = "prc_inc_function.nss"
|
||||||
|
filter = "prc_inc_hextor.nss"
|
||||||
|
filter = "prc_inc_itmrstr.nss"
|
||||||
|
filter = "prc_inc_leadersh.nss"
|
||||||
|
filter = "prc_inc_listener.nss"
|
||||||
|
filter = "prc_inc_material.nss"
|
||||||
|
filter = "prc_inc_natweap.nss"
|
||||||
|
filter = "prc_inc_nat_hb.nss"
|
||||||
|
filter = "prc_inc_newip.nss"
|
||||||
|
filter = "prc_inc_nwscript.nss"
|
||||||
|
filter = "prc_inc_onhit.nss"
|
||||||
|
filter = "prc_inc_racial.nss"
|
||||||
|
filter = "prc_inc_sbheir.nss"
|
||||||
|
filter = "prc_inc_sb_const.nss"
|
||||||
|
filter = "prc_inc_scry.nss"
|
||||||
|
filter = "prc_inc_shifting.nss"
|
||||||
|
filter = "prc_inc_skills.nss"
|
||||||
|
filter = "prc_inc_skin.nss"
|
||||||
|
filter = "prc_inc_smite.nss"
|
||||||
|
filter = "prc_inc_sneak.nss"
|
||||||
|
filter = "prc_inc_spells.nss"
|
||||||
|
filter = "prc_inc_sp_tch.nss"
|
||||||
|
filter = "prc_inc_stunfist.nss"
|
||||||
|
filter = "prc_inc_switch.nss"
|
||||||
|
filter = "prc_inc_s_det.nss"
|
||||||
|
filter = "prc_inc_teleport.nss"
|
||||||
|
filter = "prc_inc_template.nss"
|
||||||
|
filter = "prc_inc_turning.nss"
|
||||||
|
filter = "prc_inc_unarmed.nss"
|
||||||
|
filter = "prc_inc_util.nss"
|
||||||
|
filter = "prc_inc_wpnrest.nss"
|
||||||
|
filter = "prc_ipfeat_const.nss"
|
||||||
|
filter = "prc_ip_srcost.nss"
|
||||||
|
filter = "prc_misc_const.nss"
|
||||||
|
filter = "prc_racial_const.nss"
|
||||||
|
filter = "prc_shifter_info.nss"
|
||||||
|
filter = "prc_spellf_inc.nss"
|
||||||
|
filter = "prc_spellhook.nss"
|
||||||
|
filter = "prc_spell_const.nss"
|
||||||
|
filter = "prc_sp_func.nss"
|
||||||
|
filter = "prc_template_con.nss"
|
||||||
|
filter = "prc_weap_apt.nss"
|
||||||
|
filter = "prc_x2_craft.nss"
|
||||||
|
filter = "prc_x2_itemprop.nss"
|
||||||
|
filter = "prgt_inc.nss"
|
||||||
|
filter = "prgt_inc_trap.nss"
|
||||||
|
filter = "psi_inc_ac_const.nss"
|
||||||
|
filter = "psi_inc_ac_convo.nss"
|
||||||
|
filter = "psi_inc_ac_manif.nss"
|
||||||
|
filter = "psi_inc_ac_spawn.nss"
|
||||||
|
filter = "psi_inc_augment.nss"
|
||||||
|
filter = "psi_inc_const.nss"
|
||||||
|
filter = "psi_inc_core.nss"
|
||||||
|
filter = "psi_inc_enrgypow.nss"
|
||||||
|
filter = "psi_inc_metapsi.nss"
|
||||||
|
filter = "psi_inc_onhit.nss"
|
||||||
|
filter = "psi_inc_powknown.nss"
|
||||||
|
filter = "psi_inc_ppoints.nss"
|
||||||
|
filter = "psi_inc_psicraft.nss"
|
||||||
|
filter = "psi_inc_psifunc.nss"
|
||||||
|
filter = "psi_inc_pwresist.nss"
|
||||||
|
filter = "psi_inc_soulkn.nss"
|
||||||
|
filter = "psi_power_const.nss"
|
||||||
|
filter = "psi_spellhook.nss"
|
||||||
|
filter = "sbr_include.nss"
|
||||||
|
filter = "shd_inc_metashd.nss"
|
||||||
|
filter = "shd_inc_myst.nss"
|
||||||
|
filter = "shd_inc_mystknwn.nss"
|
||||||
|
filter = "shd_inc_shdfunc.nss"
|
||||||
|
filter = "shd_mysthook.nss"
|
||||||
|
filter = "shd_myst_const.nss"
|
||||||
|
filter = "spinc_bolt.nss"
|
||||||
|
filter = "spinc_burst.nss"
|
||||||
|
filter = "spinc_cone.nss"
|
||||||
|
filter = "spinc_dimdoor.nss"
|
||||||
|
filter = "spinc_engimm.nss"
|
||||||
|
filter = "spinc_fdisk.nss"
|
||||||
|
filter = "spinc_greenfire.nss"
|
||||||
|
filter = "spinc_lessorb.nss"
|
||||||
|
filter = "spinc_maze.nss"
|
||||||
|
filter = "spinc_necro_cyst.nss"
|
||||||
|
filter = "spinc_orb.nss"
|
||||||
|
filter = "spinc_remeffct.nss"
|
||||||
|
filter = "spinc_telecircle.nss"
|
||||||
|
filter = "spinc_teleport.nss"
|
||||||
|
filter = "spinc_trans.nss"
|
||||||
|
filter = "tob_inc_martlore.nss"
|
||||||
|
filter = "tob_inc_move.nss"
|
||||||
|
filter = "tob_inc_moveknwn.nss"
|
||||||
|
filter = "tob_inc_recovery.nss"
|
||||||
|
filter = "tob_inc_tobfunc.nss"
|
||||||
|
filter = "tob_movehook.nss"
|
||||||
|
filter = "tob_move_const.nss"
|
||||||
|
filter = "true_inc_metautr.nss"
|
||||||
|
filter = "true_inc_truespk.nss"
|
||||||
|
filter = "true_inc_trufunc.nss"
|
||||||
|
filter = "true_inc_truknwn.nss"
|
||||||
|
filter = "true_inc_utter.nss"
|
||||||
|
filter = "true_utterhook.nss"
|
||||||
|
filter = "true_utter_const.nss"
|
||||||
|
filter = "utl_i_sqluuid.nss"
|
||||||
|
filter = "x0_i0_transport.nss"
|
||||||
|
filter = "x2_inc_cutscenep.nss"
|
||||||
|
filter = "x2_inc_spellhook.nss"
|
||||||
|
filter = "x3_inc_horse.nss"
|
||||||
|
filter = "prc_nui_sc_inc.nss"
|
||||||
|
filter = "prc_nui_scd_inc.nss"
|
||||||
|
filter = "prc_nui_consts.nss"
|
||||||
|
filter = "nw_inc_nui.nss"
|
||||||
|
filter = "xchst_inc.nss"
|
||||||
|
filter = "prc_string_inc.nss"
|
||||||
|
filter = "prc_nui_sb_inc.nss"
|
||||||
|
filter = "prc_nui_sbd_inc.nss"
|
||||||
|
filter = "prc_nui_lv_inc.nss"
|
||||||
|
filter = "prc_nui_com_inc.nss"
|
||||||
|
filter = "prc_inc_json.nss"
|
||||||
|
filter = "nw_inc_nui.nss"
|
||||||
|
filter = "nw_inc_gff.nss"
|
||||||
|
filter = "inc_infusion.nss"
|
||||||
|
[target.rules]
|
||||||
|
"*" = "src/module/epilogue1/$ext"
|
||||||
|
|
||||||
|
[target]
|
||||||
|
name = "epilogue2"
|
||||||
|
group = "modules"
|
||||||
|
file = "Tortured Hearts I - Epilogue 2 [PRC8-CEP3].mod"
|
||||||
|
description = "PRC8 version of Tortured Hearts I - Epilogue 2."
|
||||||
|
[target.sources]
|
||||||
|
include = "src/module/epilogue2/**/*"
|
||||||
|
include = "src/include/**/*"
|
||||||
|
filter = "bnd_inc_bndfunc.nss"
|
||||||
|
filter = "bnd_vestig_const.nss"
|
||||||
|
filter = "inc_2dacache.nss"
|
||||||
|
filter = "inc_abil_damage.nss"
|
||||||
|
filter = "inc_acp.nss"
|
||||||
|
filter = "inc_addragebonus.nss"
|
||||||
|
filter = "inc_area.nss"
|
||||||
|
filter = "inc_array_sort.nss"
|
||||||
|
filter = "inc_cache_setup.nss"
|
||||||
|
filter = "inc_debug.nss"
|
||||||
|
filter = "inc_dispel.nss"
|
||||||
|
filter = "inc_draw.nss"
|
||||||
|
filter = "inc_draw_prc.nss"
|
||||||
|
filter = "inc_draw_text.nss"
|
||||||
|
filter = "inc_draw_tools.nss"
|
||||||
|
filter = "inc_dynconv.nss"
|
||||||
|
filter = "inc_ecl.nss"
|
||||||
|
filter = "inc_epicspellai.nss"
|
||||||
|
filter = "inc_epicspelldef.nss"
|
||||||
|
filter = "inc_epicspellfnc.nss"
|
||||||
|
filter = "inc_epicspells.nss"
|
||||||
|
filter = "inc_eventhook.nss"
|
||||||
|
filter = "inc_heap.nss"
|
||||||
|
filter = "inc_item_props.nss"
|
||||||
|
filter = "inc_logmessage.nss"
|
||||||
|
filter = "inc_lookups.nss"
|
||||||
|
filter = "inc_metalocation.nss"
|
||||||
|
filter = "inc_newspellbook.nss"
|
||||||
|
filter = "inc_npc.nss"
|
||||||
|
filter = "inc_nwnx_funcs.nss"
|
||||||
|
filter = "inc_persistsql.nss"
|
||||||
|
filter = "inc_persist_loca.nss"
|
||||||
|
filter = "inc_pers_array.nss"
|
||||||
|
filter = "inc_poison.nss"
|
||||||
|
filter = "inc_prc_npc.nss"
|
||||||
|
filter = "inc_prc_poly.nss"
|
||||||
|
filter = "inc_rand_equip.nss"
|
||||||
|
filter = "inc_ravage.nss"
|
||||||
|
filter = "inc_rend.nss"
|
||||||
|
filter = "inc_sbr_readme.nss"
|
||||||
|
filter = "inc_set.nss"
|
||||||
|
filter = "inc_spirit_weapn.nss"
|
||||||
|
filter = "inc_sp_gain_mem.nss"
|
||||||
|
filter = "inc_sql.nss"
|
||||||
|
filter = "inc_switch_setup.nss"
|
||||||
|
filter = "inc_target_list.nss"
|
||||||
|
filter = "inc_threads.nss"
|
||||||
|
filter = "inc_time.nss"
|
||||||
|
filter = "inc_timestop.nss"
|
||||||
|
filter = "inc_uniqueid.nss"
|
||||||
|
filter = "inc_utility.nss"
|
||||||
|
filter = "inc_vfx_const.nss"
|
||||||
|
filter = "inv_inc_blast.nss"
|
||||||
|
filter = "inv_inc_invfunc.nss"
|
||||||
|
filter = "inv_inc_invknown.nss"
|
||||||
|
filter = "inv_inc_invoke.nss"
|
||||||
|
filter = "inv_invoc_const.nss"
|
||||||
|
filter = "inv_invokehook.nss"
|
||||||
|
filter = "lookup_2da_spell.nss"
|
||||||
|
filter = "moi_inc_moifunc.nss"
|
||||||
|
filter = "moi_meld_const.nss"
|
||||||
|
filter = "nw_o2_coninclude.nss"
|
||||||
|
filter = "pnp_lich_inc.nss"
|
||||||
|
filter = "pnp_shft_main.nss"
|
||||||
|
filter = "pnp_shft_poly.nss"
|
||||||
|
filter = "prcsp_archmaginc.nss"
|
||||||
|
filter = "prcsp_engine.nss"
|
||||||
|
filter = "prcsp_reputation.nss"
|
||||||
|
filter = "prc_add_spell_dc.nss"
|
||||||
|
filter = "prc_add_spl_pen.nss"
|
||||||
|
filter = "prc_allow_const.nss"
|
||||||
|
filter = "prc_alterations.nss"
|
||||||
|
filter = "prc_ccc_const.nss"
|
||||||
|
filter = "prc_ccc_readme.nss"
|
||||||
|
filter = "prc_class_const.nss"
|
||||||
|
filter = "prc_compan_inc.nss"
|
||||||
|
filter = "prc_craft_inc.nss"
|
||||||
|
filter = "prc_effect_inc.nss"
|
||||||
|
filter = "prc_feat_const.nss"
|
||||||
|
filter = "prc_getbest_inc.nss"
|
||||||
|
filter = "prc_inc_actions.nss"
|
||||||
|
filter = "prc_inc_array.nss"
|
||||||
|
filter = "prc_inc_assoc.nss"
|
||||||
|
filter = "prc_inc_breath.nss"
|
||||||
|
filter = "prc_inc_burn.nss"
|
||||||
|
filter = "prc_inc_castlvl.nss"
|
||||||
|
filter = "prc_inc_chat.nss"
|
||||||
|
filter = "prc_inc_chat_dm.nss"
|
||||||
|
filter = "prc_inc_chat_pow.nss"
|
||||||
|
filter = "prc_inc_chat_shf.nss"
|
||||||
|
filter = "prc_inc_clsfunc.nss"
|
||||||
|
filter = "prc_inc_combat.nss"
|
||||||
|
filter = "prc_inc_combmove.nss"
|
||||||
|
filter = "prc_inc_core.nss"
|
||||||
|
filter = "prc_inc_damage.nss"
|
||||||
|
filter = "prc_inc_descrptr.nss"
|
||||||
|
filter = "prc_inc_domain.nss"
|
||||||
|
filter = "prc_inc_dragsham.nss"
|
||||||
|
filter = "prc_inc_drugfunc.nss"
|
||||||
|
filter = "prc_inc_effect.nss"
|
||||||
|
filter = "prc_inc_factotum.nss"
|
||||||
|
filter = "prc_inc_fork.nss"
|
||||||
|
filter = "prc_inc_function.nss"
|
||||||
|
filter = "prc_inc_hextor.nss"
|
||||||
|
filter = "prc_inc_itmrstr.nss"
|
||||||
|
filter = "prc_inc_leadersh.nss"
|
||||||
|
filter = "prc_inc_listener.nss"
|
||||||
|
filter = "prc_inc_material.nss"
|
||||||
|
filter = "prc_inc_natweap.nss"
|
||||||
|
filter = "prc_inc_nat_hb.nss"
|
||||||
|
filter = "prc_inc_newip.nss"
|
||||||
|
filter = "prc_inc_nwscript.nss"
|
||||||
|
filter = "prc_inc_onhit.nss"
|
||||||
|
filter = "prc_inc_racial.nss"
|
||||||
|
filter = "prc_inc_sbheir.nss"
|
||||||
|
filter = "prc_inc_sb_const.nss"
|
||||||
|
filter = "prc_inc_scry.nss"
|
||||||
|
filter = "prc_inc_shifting.nss"
|
||||||
|
filter = "prc_inc_skills.nss"
|
||||||
|
filter = "prc_inc_skin.nss"
|
||||||
|
filter = "prc_inc_smite.nss"
|
||||||
|
filter = "prc_inc_sneak.nss"
|
||||||
|
filter = "prc_inc_spells.nss"
|
||||||
|
filter = "prc_inc_sp_tch.nss"
|
||||||
|
filter = "prc_inc_stunfist.nss"
|
||||||
|
filter = "prc_inc_switch.nss"
|
||||||
|
filter = "prc_inc_s_det.nss"
|
||||||
|
filter = "prc_inc_teleport.nss"
|
||||||
|
filter = "prc_inc_template.nss"
|
||||||
|
filter = "prc_inc_turning.nss"
|
||||||
|
filter = "prc_inc_unarmed.nss"
|
||||||
|
filter = "prc_inc_util.nss"
|
||||||
|
filter = "prc_inc_wpnrest.nss"
|
||||||
|
filter = "prc_ipfeat_const.nss"
|
||||||
|
filter = "prc_ip_srcost.nss"
|
||||||
|
filter = "prc_misc_const.nss"
|
||||||
|
filter = "prc_racial_const.nss"
|
||||||
|
filter = "prc_shifter_info.nss"
|
||||||
|
filter = "prc_spellf_inc.nss"
|
||||||
|
filter = "prc_spellhook.nss"
|
||||||
|
filter = "prc_spell_const.nss"
|
||||||
|
filter = "prc_sp_func.nss"
|
||||||
|
filter = "prc_template_con.nss"
|
||||||
|
filter = "prc_weap_apt.nss"
|
||||||
|
filter = "prc_x2_craft.nss"
|
||||||
|
filter = "prc_x2_itemprop.nss"
|
||||||
|
filter = "prgt_inc.nss"
|
||||||
|
filter = "prgt_inc_trap.nss"
|
||||||
|
filter = "psi_inc_ac_const.nss"
|
||||||
|
filter = "psi_inc_ac_convo.nss"
|
||||||
|
filter = "psi_inc_ac_manif.nss"
|
||||||
|
filter = "psi_inc_ac_spawn.nss"
|
||||||
|
filter = "psi_inc_augment.nss"
|
||||||
|
filter = "psi_inc_const.nss"
|
||||||
|
filter = "psi_inc_core.nss"
|
||||||
|
filter = "psi_inc_enrgypow.nss"
|
||||||
|
filter = "psi_inc_metapsi.nss"
|
||||||
|
filter = "psi_inc_onhit.nss"
|
||||||
|
filter = "psi_inc_powknown.nss"
|
||||||
|
filter = "psi_inc_ppoints.nss"
|
||||||
|
filter = "psi_inc_psicraft.nss"
|
||||||
|
filter = "psi_inc_psifunc.nss"
|
||||||
|
filter = "psi_inc_pwresist.nss"
|
||||||
|
filter = "psi_inc_soulkn.nss"
|
||||||
|
filter = "psi_power_const.nss"
|
||||||
|
filter = "psi_spellhook.nss"
|
||||||
|
filter = "sbr_include.nss"
|
||||||
|
filter = "shd_inc_metashd.nss"
|
||||||
|
filter = "shd_inc_myst.nss"
|
||||||
|
filter = "shd_inc_mystknwn.nss"
|
||||||
|
filter = "shd_inc_shdfunc.nss"
|
||||||
|
filter = "shd_mysthook.nss"
|
||||||
|
filter = "shd_myst_const.nss"
|
||||||
|
filter = "spinc_bolt.nss"
|
||||||
|
filter = "spinc_burst.nss"
|
||||||
|
filter = "spinc_cone.nss"
|
||||||
|
filter = "spinc_dimdoor.nss"
|
||||||
|
filter = "spinc_engimm.nss"
|
||||||
|
filter = "spinc_fdisk.nss"
|
||||||
|
filter = "spinc_greenfire.nss"
|
||||||
|
filter = "spinc_lessorb.nss"
|
||||||
|
filter = "spinc_maze.nss"
|
||||||
|
filter = "spinc_necro_cyst.nss"
|
||||||
|
filter = "spinc_orb.nss"
|
||||||
|
filter = "spinc_remeffct.nss"
|
||||||
|
filter = "spinc_telecircle.nss"
|
||||||
|
filter = "spinc_teleport.nss"
|
||||||
|
filter = "spinc_trans.nss"
|
||||||
|
filter = "tob_inc_martlore.nss"
|
||||||
|
filter = "tob_inc_move.nss"
|
||||||
|
filter = "tob_inc_moveknwn.nss"
|
||||||
|
filter = "tob_inc_recovery.nss"
|
||||||
|
filter = "tob_inc_tobfunc.nss"
|
||||||
|
filter = "tob_movehook.nss"
|
||||||
|
filter = "tob_move_const.nss"
|
||||||
|
filter = "true_inc_metautr.nss"
|
||||||
|
filter = "true_inc_truespk.nss"
|
||||||
|
filter = "true_inc_trufunc.nss"
|
||||||
|
filter = "true_inc_truknwn.nss"
|
||||||
|
filter = "true_inc_utter.nss"
|
||||||
|
filter = "true_utterhook.nss"
|
||||||
|
filter = "true_utter_const.nss"
|
||||||
|
filter = "utl_i_sqluuid.nss"
|
||||||
|
filter = "x0_i0_transport.nss"
|
||||||
|
filter = "x2_inc_cutscenep.nss"
|
||||||
|
filter = "x2_inc_spellhook.nss"
|
||||||
|
filter = "x3_inc_horse.nss"
|
||||||
|
filter = "prc_nui_sc_inc.nss"
|
||||||
|
filter = "prc_nui_scd_inc.nss"
|
||||||
|
filter = "prc_nui_consts.nss"
|
||||||
|
filter = "nw_inc_nui.nss"
|
||||||
|
filter = "xchst_inc.nss"
|
||||||
|
filter = "prc_string_inc.nss"
|
||||||
|
filter = "prc_nui_sb_inc.nss"
|
||||||
|
filter = "prc_nui_sbd_inc.nss"
|
||||||
|
filter = "prc_nui_lv_inc.nss"
|
||||||
|
filter = "prc_nui_com_inc.nss"
|
||||||
|
filter = "prc_inc_json.nss"
|
||||||
|
filter = "nw_inc_nui.nss"
|
||||||
|
filter = "nw_inc_gff.nss"
|
||||||
|
filter = "inc_infusion.nss"
|
||||||
|
[target.rules]
|
||||||
|
"*" = "src/module/epilogue2/$ext"
|
||||||
|
|
||||||
[target.rules]
|
|
||||||
"*" = "src/tlk/$ext"
|
|
||||||
|
|
||||||
[target]
|
[target]
|
||||||
name = "tophak"
|
name = "tophak"
|
||||||
file = "HAKNAME.hak"
|
file = "th1_prc8_top.hak"
|
||||||
description = "PRC8 merge hakpak for PRC8 version of ..."
|
description = "PRC8 merge hakpak for PRC8 version of Tortured Hearts I."
|
||||||
[target.sources]
|
[target.sources]
|
||||||
include = "src/hakpak/HAKNAME/**/*"
|
include = "src/hakpak/th1_prc8_top/**/*"
|
||||||
include = "src/include/**/*"
|
include = "src/include/**/*"
|
||||||
filter = "bnd_inc_bndfunc.nss"
|
filter = "bnd_inc_bndfunc.nss"
|
||||||
filter = "bnd_vestig_const.nss"
|
filter = "bnd_vestig_const.nss"
|
||||||
@@ -484,4 +940,4 @@ description = "PRC8 merge hakpak for PRC8 version of ..."
|
|||||||
filter = "inc_infusion.nss"
|
filter = "inc_infusion.nss"
|
||||||
|
|
||||||
[target.rules]
|
[target.rules]
|
||||||
"*" = "src/hakpak/HAKNAME/$ext"
|
"*" = "src/hakpak/th1_prc8_top/$ext"
|
||||||
@@ -1 +1 @@
|
|||||||
nasher pack default --verbose
|
nasher pack modules --verbose
|
||||||
258
src/hakpak/th1_prc8_top/2da/baseitems.2da
Normal file
258
src/hakpak/th1_prc8_top/2da/baseitems.2da
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
2DA V2.0
|
||||||
|
|
||||||
|
Name label InvSlotWidth InvSlotHeight EquipableSlots CanRotateIcon ModelType ItemClass GenderSpecific Part1EnvMap Part2EnvMap Part3EnvMap DefaultModel DefaultIcon Container WeaponWield WeaponType WeaponSize RangedWeapon PrefAttackDist MinRange MaxRange NumDice DieToRoll CritThreat CritHitMult Category BaseCost Stacking ItemMultiplier Description InvSoundType MaxProps MinProps PropColumn StorePanel ReqFeat0 ReqFeat1 ReqFeat2 ReqFeat3 ReqFeat4 AC_Enchant BaseAC ArmorCheckPen BaseItemStatRef ChargesStarting RotateOnGround TenthLBS WeaponMatType AmmunitionType QBBehaviour ArcaneSpellFailure %AnimSlashL %AnimSlashR %AnimSlashS StorePanelSort ILRStackSize WeaponFocusFeat EpicWeaponFocusFeat WeaponSpecializationFeat EpicWeaponSpecializationFeat WeaponImprovedCriticalFeat EpicWeaponOverwhelmingCriticalFeat EpicWeaponDevastatingCriticalFeat WeaponOfChoiceFeat IsMonkWeapon WeaponFinesseMinimumCreatureSize
|
||||||
|
0 106 shortsword 1 2 0x1C030 1 2 WSwSs 0 1 1 1 it_bag iwswss 0 **** 1 2 **** 1.2 10 255 1 6 2 2 1 10 1 2 1684 8 8 0 0 1 **** **** **** **** **** 4 0 0 5410 0 1 30 1 **** **** **** 35 35 65 19 1 103 633 141 671 65 723 509 925 **** 2
|
||||||
|
1 166 longsword 1 4 0x1C030 1 2 WSwLs 0 1 1 1 it_bag iwswls 0 **** 3 3 **** 1.5 10 255 1 8 2 2 1 15 1 2 1687 9 8 0 0 1 **** **** **** **** **** 4 0 0 5417 0 1 40 1 **** **** **** 50 50 50 70 1 106 636 144 674 68 726 512 928 **** ****
|
||||||
|
2 169 battleaxe 2 3 0x1C030 1 2 WAxBt 0 1 1 1 it_bag iwaxbt 0 **** 3 3 **** 1.2 10 255 1 8 1 3 1 10 1 2 1685 9 8 0 0 1 **** **** **** **** **** 4 0 0 5415 0 1 70 16 **** **** **** 100 100 0 41 1 110 640 148 678 72 730 516 931 **** ****
|
||||||
|
3 168 bastardsword 2 4 0x1C030 1 2 WSwBs 0 1 1 1 it_bag iwswbs 0 **** 3 3 **** 1.6 10 255 1 10 2 2 1 35 1 2 2288 9 8 0 0 1 **** **** **** **** **** 4 0 0 5434 0 1 100 11 **** **** **** 65 65 35 71 1 123 652 161 690 85 742 528 940 **** ****
|
||||||
|
4 176 lightflail 1 3 0x1C030 1 2 WBlFl 0 1 1 1 it_bag iwblfl 0 **** 2 3 **** 1.4 10 255 1 8 1 2 1 8 1 2 1686 11 8 0 0 1 **** **** **** **** **** 4 0 0 5416 0 1 50 3 **** **** **** 100 100 0 42 1 114 644 152 682 76 734 520 935 **** ****
|
||||||
|
5 178 warhammer 2 3 0x1C030 1 2 WBlHw 0 1 1 1 it_bag iwblhw 0 **** 2 3 **** 1.2 10 255 1 8 1 3 1 12 1 2 1690 14 8 0 0 1 **** **** **** **** **** 4 0 0 5420 0 1 80 12 **** **** **** 100 100 0 43 1 115 645 153 683 77 735 521 936 **** ****
|
||||||
|
6 173 heavycrossbow 2 4 0x1C010 1 2 WBwXh 0 1 1 1 it_bag iwbwxh 0 6 1 3 25 30 10 255 1 10 2 2 2 50 1 2 1679 20 8 0 1 1 **** **** **** **** **** 4 0 0 5414 0 2 90 15 2 **** **** **** **** **** 99 1 92 622 130 660 54 712 498 **** **** ****
|
||||||
|
7 174 lightcrossbow 2 3 0x1C010 1 2 WBwXl 0 1 1 1 it_bag iwbwxl 0 6 1 2 25 30 10 255 1 8 2 2 2 35 1 2 1674 19 8 0 1 1 **** **** **** **** **** 4 0 0 5402 0 2 60 9 2 **** **** **** **** **** 29 1 93 623 131 661 55 713 499 **** **** ****
|
||||||
|
8 170 longbow 2 4 0x1C010 1 2 WBwLn 0 0 0 0 it_bag iwbwln 0 5 1 3 20 30 10 255 1 8 1 3 2 75 1 2 1697 19 8 0 1 1 **** **** **** **** **** 4 0 0 5429 0 1 30 14 1 **** **** **** **** **** 72 1 101 631 139 669 63 721 507 **** **** ****
|
||||||
|
9 177 lightmace 1 2 0x1C030 1 2 WBlMl 0 0 0 1 it_bag iwblml 0 **** 2 2 **** 1.2 10 255 1 6 1 2 1 5 1 2 1668 13 8 0 0 1 **** **** **** **** **** 4 0 0 5399 0 1 60 2 **** **** **** 100 100 0 44 1 94 624 132 662 56 714 500 921 **** 2
|
||||||
|
10 175 halberd 2 5 0x1C030 1 2 WPlHb 0 0 0 1 it_bag iwplhb 0 4 4 3 **** 1.7 10 255 1 10 1 3 1 10 1 2 1694 15 8 0 0 1 **** **** **** **** **** 4 0 0 5428 0 1 150 17 **** **** **** 35 35 65 99 1 112 642 150 680 74 732 518 933 **** ****
|
||||||
|
11 171 shortbow 2 3 0x1C010 1 2 WBwSh 0 0 0 0 it_bag iwbwsh 0 5 1 3 20 30 10 255 1 6 1 3 2 30 1 2 1695 19 8 0 1 1 **** **** **** **** **** 4 0 0 5421 0 1 20 5 1 **** **** **** **** **** 25 1 102 632 140 670 64 722 508 **** **** ****
|
||||||
|
12 172 twobladedsword 2 5 0x1C010 1 2 WDbSw 0 1 1 1 it_bag iwdbsw 0 8 3 4 **** 1.5 10 255 1 8 2 2 1 100 1 2 1702 10 8 0 0 1 **** **** **** **** **** 4 0 0 5431 0 1 150 11 **** **** **** 50 50 50 99 1 127 655 165 693 89 745 531 943 **** ****
|
||||||
|
13 167 greatsword 2 5 0x1C030 1 2 WSwGs 0 1 1 1 it_bag iwswgs 0 **** 3 3 **** 1.8 10 255 2 6 2 2 1 50 1 2 1693 9 8 0 0 1 **** **** **** **** **** 4 0 0 5427 0 1 150 11 **** **** **** 65 65 35 99 1 107 637 145 675 69 727 513 929 **** ****
|
||||||
|
14 179 smallshield 2 2 0x00020 0 0 AShSw 0 1 1 1 it_bag iashsw 0 7 0 **** **** **** 10 255 **** **** **** **** 3 9 1 1 2287 16 8 0 6 0 32 4565 **** **** **** 3 1 -1 5443 0 1 60 **** **** **** 5 **** **** **** 7 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
15 180 torch 1 3 0x00020 1 0 it_torch 0 **** **** **** it_bag iit_torch_000 0 1 0 2 **** **** 0 255 **** **** **** **** 20 1 1 0.02 1725 17 8 0 20 4 **** **** **** **** **** **** 0 0 5444 0 1 1 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** 1 ****
|
||||||
|
16 335 armor 2 3 0x00002 0 3 AArCl 1 1 **** **** gifp iit_chest 0 **** 0 **** **** **** 0 255 **** **** **** **** 4 **** 1 1 **** 30 8 0 6 0 **** **** **** **** **** 2 0 0 **** 0 0 100 **** **** **** **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
17 182 helmet 2 2 0x00001 0 1 helm 0 1 **** **** it_bag ihelm 0 **** 0 **** **** **** 0 255 **** **** **** **** 5 3 1 1 1710 0 8 0 7 0 **** **** **** **** **** 4 0 0 5445 0 0 20 **** **** **** **** **** **** **** 5 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
18 515 greataxe 2 4 0x1C030 1 2 WAxGr 0 1 1 1 it_bag iwaxgr 0 **** 3 3 **** 1.4 10 255 1 12 1 3 1 20 1 2 1692 9 8 0 0 1 **** **** **** **** **** 4 0 0 5426 0 1 200 17 **** **** **** 100 100 0 73 1 111 641 149 679 73 731 517 932 **** ****
|
||||||
|
19 1516 amulet 1 2 0x00200 0 0 it_neck 0 1 **** **** doa_amulet iit_neck 0 **** 0 **** **** **** 0 255 **** **** **** **** 12 1 1 1 1715 25 8 0 16 3 **** **** **** **** **** 1 0 0 5446 0 0 5 **** **** **** **** **** **** **** 5 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
20 1517 arrow 1 2 0x00800 0 2 WAmAr 1 1 1 1 GI_WAmAr_001 iwamar 0 **** 0 **** **** **** 10 255 **** **** **** **** 6 1 99 0.01 1696 18 8 0 5 1 **** **** **** **** **** **** 0 0 5422 0 0 0 **** **** **** **** **** **** **** 0 99 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
21 1518 belt 2 1 0x00400 0 0 it_belt 0 1 **** **** doa_belt iit_belt 0 **** 0 **** **** **** 0 255 **** **** **** **** 12 1 1 1 1714 2 8 0 16 0 **** **** **** **** **** 4 0 0 5447 0 0 10 **** **** **** **** **** **** **** 3 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
22 191 dagger 1 1 0x1C030 0 2 WSwDg 0 1 1 1 it_bag iwswdg 0 **** 1 1 **** 1.1 10 255 1 4 2 2 1 2 1 2 1667 7 8 0 0 1 **** **** **** **** **** 4 0 0 5395 0 1 10 18 **** **** **** 65 65 35 9 1 90 620 128 658 52 710 496 920 **** 1
|
||||||
|
23 0 DELETED 2 1 0x00000 0 0 it_sbox 0 **** **** **** it_bag **** 1 **** 0 **** **** **** 0 255 **** **** **** **** 17 5 1 1 2285 30 8 0 15 **** **** **** **** **** **** **** 0 0 **** 0 1 100 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
24 192 miscsmall 1 1 0x00000 0 0 it_smlmisc 0 1 1 1 it_bag iinvalid_1x1 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 1726 28 8 0 15 4 **** **** **** **** **** **** 0 0 5448 0 0 3 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
25 1519 bolt 1 2 0x02000 1 2 WAmBo 0 1 1 1 GI_WAmBo_001 iwambo 0 **** 0 **** **** **** 0 255 **** **** **** **** 6 1 99 0.01 1675 18 8 0 5 1 **** **** **** **** **** **** 0 0 5403 0 0 0 **** **** **** **** **** **** **** 0 99 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
26 1520 boots 2 2 0x00004 0 2 it_boots 0 1 **** **** doa_boots iit_boots 0 **** 0 **** **** **** 0 255 **** **** **** **** 12 1 1 1 1713 2 8 0 16 0 **** **** **** **** **** 0 0 0 **** 0 0 5 **** **** **** **** **** **** **** 2 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
27 1521 bullet 1 1 0x01000 0 0 WAmBu 0 1 1 1 GI_WAmBu_001 iwambu 0 **** 0 **** **** **** 0 255 **** **** **** **** 6 1 99 0.01 1678 28 8 0 5 1 **** **** **** **** **** **** 0 0 5406 0 0 0 **** **** **** **** **** **** **** 0 99 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
28 1522 club 1 3 0x1C030 1 2 WBlCl 0 1 1 1 it_bag iwblcl 0 **** 2 3 **** 1.1 10 255 1 6 1 2 1 1 1 2 1670 17 8 0 0 1 **** **** **** **** **** 4 0 0 61890 0 1 30 4 **** **** **** 100 100 0 26 1 43 619 47 657 15 709 495 919 **** ****
|
||||||
|
29 1523 miscmedium 2 2 0x00000 0 0 it_midmisc 0 1 1 1 it_bag iinvalid_2x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 1726 29 8 0 15 4 **** **** **** **** **** **** 0 0 5449 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
30 0 DELETED 2 3 0x00030 1 2 WBwXr 0 1 1 1 it_bag iinvalid_2x3 0 6 0 3 **** **** 10 255 1 8 2 2 2 250 1 2 1706 4 8 0 1 **** **** **** **** **** **** 4 0 0 **** 0 1 100 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
31 1525 dart 1 1 0x00010 0 0 WThDt 0 1 1 1 it_dart_000 iwthdt 0 11 1 2 31 30 0 255 1 4 1 2 7 0.1 50 0.01 1676 18 8 0 2 1 **** **** **** **** **** **** 0 0 5404 0 1 1 7 4 **** **** **** **** **** 12 50 91 621 129 659 53 711 497 **** **** ****
|
||||||
|
32 1526 diremace 2 4 0x1C010 1 2 WDbMa 0 1 1 1 it_bag iwdbma 0 8 2 4 **** 2 10 255 1 8 1 2 1 40 1 2 1703 14 8 0 0 1 **** **** **** **** **** 4 0 0 5433 0 1 200 2 **** **** **** 65 65 35 99 1 125 653 163 691 87 743 529 941 **** ****
|
||||||
|
33 1527 doubleaxe 2 4 0x1C010 1 2 WDbAx 0 1 1 1 it_bag iwdbax 0 8 3 4 **** 1.5 10 255 1 8 1 3 1 30 1 2 1701 10 8 0 0 1 **** **** **** **** **** 4 0 0 5430 0 1 250 **** **** **** **** 100 100 0 99 1 126 654 164 692 88 744 530 942 **** ****
|
||||||
|
34 1528 misclarge 2 3 0x00000 0 0 it_talmisc 0 1 1 1 it_bag iinvalid_2x3 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 1726 30 8 0 15 4 **** **** **** **** **** **** 0 0 5450 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
35 1529 heavyflail 2 4 0x1C030 1 2 WBlFh 0 1 1 1 it_bag iwblfh 0 **** 2 3 **** 1.5 10 255 1 10 2 2 1 15 1 2 1691 12 8 0 0 1 **** **** **** **** **** 4 0 0 5424 0 1 200 13 **** **** **** 100 100 0 74 1 116 646 154 684 78 736 522 937 **** ****
|
||||||
|
36 1530 gloves 2 1 0x00008 0 0 it_glove 0 1 1 1 doa_glove iit_glove 0 **** 2 **** **** **** 0 255 **** **** **** **** 1 1 1 1 1712 3 8 0 21 0 **** **** **** **** **** 4 0 0 5451 0 0 10 **** **** **** **** **** **** **** 0 1 100 630 138 668 62 720 506 **** **** 1
|
||||||
|
37 1531 lighthammer 1 2 0x1C030 1 2 WBlHl 0 1 1 1 it_bag iwblhl 0 **** 2 2 **** 1.1 10 255 1 4 1 2 1 1 1 2 1681 13 8 0 0 1 **** **** **** **** **** 4 0 0 5408 0 1 20 2 **** **** **** 100 100 0 27 1 113 643 151 681 75 733 519 934 **** 2
|
||||||
|
38 1532 handaxe 1 2 0x1C030 1 2 WAxHn 0 1 1 1 it_bag iwaxhn 0 **** 3 2 **** 1.1 10 255 1 6 1 3 1 6 1 2 1682 8 8 0 0 1 **** **** **** **** **** 4 0 0 5409 0 1 50 17 **** **** **** 100 100 0 14 1 108 638 146 676 70 728 514 930 **** 2
|
||||||
|
39 1533 healerskit 2 1 0x00000 0 0 it_medkit 0 **** **** **** doa_healkit iit_medkit_001 0 **** 0 **** **** **** 0 255 **** **** **** **** 19 50 10 1 1720 29 8 0 19 4 **** **** **** **** **** **** 0 0 5452 0 0 5 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
40 1534 kama 2 2 0x1C030 0 2 WSpKa 0 1 1 1 it_bag iwspka 0 **** 3 2 **** 1.1 10 255 1 6 1 2 1 2 1 2 1699 8 8 0 0 1 **** **** **** **** **** 4 0 0 5396 0 1 10 18 **** **** **** 100 100 0 16 1 117 647 155 685 79 737 523 880 1 2
|
||||||
|
41 1535 katana 2 3 0x1C030 1 2 WSwKa 0 1 1 1 it_bag iwswka 0 **** 3 3 **** 1.3 10 255 1 10 2 2 1 40 1 2 1704 8 8 0 0 1 **** **** **** **** **** 4 0 0 5423 0 1 100 1 **** **** **** 50 50 50 75 1 122 651 160 689 84 741 527 939 **** ****
|
||||||
|
42 1536 kukri 1 2 0x1C030 1 2 WSpKu 0 1 1 1 it_bag iwspku 0 **** 3 1 **** 1.2 10 255 1 4 3 2 1 8 1 2 2284 8 8 0 0 1 **** **** **** **** **** 4 0 0 5442 0 1 30 18 **** **** **** 65 65 35 18 1 118 648 156 686 80 738 524 881 **** 1
|
||||||
|
43 **** DELETED **** **** 0x00000 **** **** **** **** **** **** **** it_bag **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
44 1538 magicrod 1 3 0x00000 1 2 WMgRd 0 1 1 1 it_bag iwmgrd 0 **** **** **** **** **** 10 255 **** **** **** **** 8 1 1 1 1708 16 8 0 4 3 **** **** **** **** **** **** 0 0 66197 50 1 20 **** **** 1 **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
45 1539 magicstaff 1 5 0x1C010 1 2 WMgSt 0 1 1 1 it_bag iwmgst 0 4 2 3 **** 1.6 10 255 1 6 1 2 8 1 1 1 1709 15 8 3 3 3 **** **** **** **** **** 4 0 0 76436 50 1 40 4 **** **** **** 50 50 50 10 1 96 626 134 664 58 716 502 923 1 ****
|
||||||
|
46 1540 magicwand 1 2 0x1C030 1 2 WMgWn 0 1 1 1 it_bag iwmgwn 0 1 2 1 **** **** 0 255 1 1 1 1 8 1 1 1 1707 16 1 1 10 3 **** **** **** **** **** **** 0 0 66196 50 1 10 4 **** 1 **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
47 1541 morningstar 1 3 0x1C030 1 2 WBlMs 0 1 1 1 it_bag iwblms 0 **** 5 3 **** 1.4 10 255 1 8 1 2 1 8 1 2 1671 11 8 0 0 1 **** **** **** **** **** 4 0 0 5412 0 1 80 3 **** **** **** 100 100 0 20 1 95 625 133 663 57 715 501 922 **** ****
|
||||||
|
48 0 DELETED 2 2 0x1C030 0 2 WSpNn 0 1 1 1 it_bag **** 0 **** 0 2 **** **** 10 255 1 6 1 2 **** 2 1 2 1700 30 8 0 0 **** **** **** **** **** **** 4 0 0 5397 0 1 20 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
49 1543 potions 1 2 0x00000 0 2 it_potion 0 **** **** **** it_potion_000 iit_potion 0 1 0 **** **** **** 10 255 **** **** **** **** 9 1 10 0.2 1719 24 1 0 8 2 **** **** **** **** **** **** 0 0 5455 0 2 1 **** **** 2 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
50 1544 quarterstaff 1 4 0x1C010 1 2 WDbQs 0 1 1 1 it_bag iwdbqs 0 4 2 3 **** 1.6 10 255 1 6 1 2 1 1 1 2 1673 15 8 0 0 1 **** **** **** **** **** 4 0 0 5413 0 1 40 4 **** **** **** 50 50 50 99 1 96 626 134 664 58 716 502 923 1 ****
|
||||||
|
51 1545 rapier 1 3 0x1C030 1 2 WSwRp 0 1 1 1 it_bag iwswrp 0 **** 1 3 **** 1.4 10 255 1 6 3 2 1 20 1 2 1688 7 8 0 0 1 **** **** **** **** **** 4 0 0 5418 0 1 30 18 **** **** **** 35 35 65 28 1 104 634 142 672 66 724 510 926 **** 3
|
||||||
|
52 1546 ring 1 1 0x00180 0 0 it_ring 0 **** **** **** doa_ring iit_ring 0 **** 0 **** **** **** 0 255 **** **** **** **** 12 1 1 1.25 1716 23 8 0 16 3 **** **** **** **** **** 4 0 0 5456 0 0 1 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
53 1547 scimitar 1 3 0x1C030 1 2 WSwSc 0 1 1 1 it_bag iwswsc 0 **** 3 3 **** 1.3 10 255 1 6 3 2 1 15 1 2 1689 8 8 0 0 1 **** **** **** **** **** 4 0 0 5419 0 1 40 1 **** **** **** 65 65 35 29 1 105 635 143 673 67 725 511 927 **** ****
|
||||||
|
54 0 DELETED 1 1 0x00000 0 0 it_spscroll 0 **** **** **** gi_scrl **** 0 1 0 **** **** **** 0 255 **** **** **** **** 10 1 10 0.25 5022 30 1 1 9 **** **** **** **** **** **** **** 0 0 5457 0 1 1 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
55 1549 scythe 2 4 0x1C030 1 2 WPlSc 0 1 1 1 it_bag iwplsc 0 4 4 3 **** 1.5 10 255 2 4 1 4 1 18 1 2 2290 9 8 0 0 1 **** **** **** **** **** 4 0 0 5425 0 1 120 17 **** **** **** 100 100 0 99 1 121 650 159 688 83 740 526 938 **** ****
|
||||||
|
56 1550 largeshield 2 3 0x00020 0 0 AShLw 0 1 1 1 it_bag iashlw 0 7 0 **** **** **** 10 255 **** **** **** **** 3 20 1 1 2286 30 8 0 6 0 32 **** **** **** **** 3 2 -2 5458 0 1 150 **** **** **** 15 **** **** **** 7 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
57 1551 towershield 2 4 0x00020 0 0 AShTo 0 1 1 1 it_bag iashto 0 7 0 **** **** **** 10 255 **** **** **** **** 3 30 1 1 1717 6 8 0 6 0 32 **** **** **** **** 3 3 -10 5459 0 1 450 **** **** **** 50 **** **** **** 7 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
58 16823549 shortspear 1 4 0x1C030 1 2 WPlSs 0 1 1 1 it_bag iwplss 0 **** 1 2 **** 1.4 10 255 1 6 1 2 1 1 1 2 16823550 15 8 0 0 1 **** **** **** **** **** 4 0 0 16823551 0 1 30 17 **** **** **** 35 35 65 76 1 97 627 135 665 59 717 503 924 **** ****
|
||||||
|
59 1553 shuriken 1 1 0x00010 0 0 WThSh 0 1 **** **** it_bag iwthsh 0 11 1 1 59 30 0 255 1 3 1 2 7 1 50 0.01 1705 7 8 0 2 1 **** **** **** **** **** **** 0 0 5398 0 1 0 7 5 **** **** **** **** **** 0 50 120 649 158 687 82 739 525 **** 1 ****
|
||||||
|
60 1554 sickle 2 2 0x1C030 0 2 WSpSc 0 1 1 1 it_bag iwspsc 0 **** 3 2 **** 1.1 10 255 1 6 1 2 1 6 1 2 1669 8 8 0 0 1 **** **** **** **** **** 4 0 0 5400 0 1 30 18 **** **** **** 100 100 0 22 1 98 628 136 666 60 718 504 879 **** 2
|
||||||
|
61 1555 sling 1 2 0x00030 0 0 WBwSl 0 **** **** **** it_bag iwbwsl 0 10 2 2 27 30 0 255 1 4 1 2 2 1 1 2 1677 3 8 0 1 1 **** **** **** **** **** 4 0 0 5405 0 1 1 6 3 **** **** **** **** **** 10 1 99 629 137 667 61 719 505 **** **** ****
|
||||||
|
62 1556 thievestools 1 2 0x00000 0 0 it_picks 0 **** **** **** doa_thtools iit_picks_001 0 1 0 **** **** **** 0 255 **** **** **** **** 11 1 10 0.25 1722 22 8 0 11 4 **** **** **** **** **** **** 0 0 5460 0 0 5 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
63 1557 throwingaxe 1 2 0x00010 1 2 WThAx 0 1 1 1 it_bag iwthax 0 11 3 2 63 30 10 255 1 6 1 2 7 1 50 0.01 1680 8 8 0 2 1 **** **** **** **** **** **** 0 0 5407 0 1 10 8 6 **** **** **** **** **** 24 50 109 639 147 677 71 729 515 **** **** ****
|
||||||
|
64 1558 trapkit 2 2 0x00000 0 0 it_trap 0 **** **** **** doa_trap iit_trap_009 0 1 0 **** **** **** 0 255 **** **** **** **** 15 1 1 1 1721 1 1 1 12 4 **** **** **** **** **** **** 0 0 5461 0 0 5 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
65 1560 key 1 2 0x00000 0 2 it_key 0 **** **** **** doa_key iit_key 0 **** 0 **** **** **** 10 255 **** **** **** **** 16 0 1 1 1723 22 8 0 15 4 **** **** **** **** **** **** 0 0 5462 0 0 1 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
66 1562 largebox 2 2 0x00000 0 0 it_bigbox 0 **** **** **** it_bag iit_bigbox_001 1 **** 0 **** **** **** 0 255 **** **** **** **** 17 15 1 1 2289 1 8 0 18 4 **** **** **** **** **** **** 0 0 5463 0 0 10 **** **** **** **** **** **** **** 5 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
67 0 DELETED 1 1 0x00000 0 0 it_bag 0 **** **** **** it_bag **** 1 **** 0 **** **** **** 0 255 **** **** **** **** 17 5 1 1 1724 30 8 0 15 **** **** **** **** **** **** **** 0 0 **** 0 0 100 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
68 **** DELETED **** **** 0x00000 **** **** **** **** **** **** **** it_bag **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
69 534 cslashweapon 2 2 0x1C000 0 0 it_cr_sla 0 1 1 1 it_bag iit_cr_sla_001 0 9 3 **** **** **** 0 255 0 0 1 2 **** **** 1 2 5027 30 8 0 14 1 **** **** **** **** **** 3 0 0 5465 0 0 1 1 **** **** **** 50 50 50 0 1 291 656 290 694 292 746 532 **** **** 1
|
||||||
|
70 2188 cpiercweapon 2 2 0x1C000 0 0 it_cr_prc 0 1 1 1 it_bag iit_cr_prc_001 0 9 1 **** **** **** 0 255 0 0 1 2 **** **** 1 2 5028 30 8 0 14 1 **** **** **** **** **** 3 0 0 5466 0 0 1 1 **** **** **** 50 50 50 0 1 291 656 290 694 292 746 532 **** **** 1
|
||||||
|
71 2189 cbludgweapon 2 2 0x1C000 0 0 it_cr_blud 0 1 1 1 it_bag iit_cr_blud_001 0 9 2 **** **** **** 0 255 0 0 1 2 **** **** 1 2 5029 30 8 0 14 1 **** **** **** **** **** 3 0 0 5467 0 0 1 4 **** **** **** 50 50 50 0 1 291 656 290 694 292 746 532 **** **** 1
|
||||||
|
72 2190 cslshprcweap 2 2 0x1C000 0 0 it_cr_bite 0 1 1 1 it_bag iit_cr_bite_001 0 9 4 **** **** **** 0 255 0 0 1 2 **** **** 1 2 5030 30 8 0 14 1 **** **** **** **** **** 3 0 0 5468 0 0 1 1 **** **** **** 50 50 50 0 1 291 656 290 694 292 746 532 **** **** 1
|
||||||
|
73 530 creatureitem 2 2 0x3C000 0 0 it_cr_item 0 1 1 1 it_bag iinvalid_2x2 1 1 0 **** **** **** 0 255 **** **** **** **** **** **** 1 0 5031 30 8 0 13 0 **** **** **** **** **** 0 0 0 5469 0 0 1 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
74 531 book 2 2 0x00000 0 0 IT_BOOK 0 **** **** **** doa_book iit_book_001 0 1 0 **** **** **** 0 255 **** **** **** **** 16 1 1 1 6726 1 8 0 15 4 **** **** **** **** **** **** 0 0 **** 0 0 10 **** **** **** **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
75 532 spellscroll 1 1 0x00000 0 0 IT_SCROLL 0 **** **** **** doa_scroll iit_scroll_001 0 1 0 **** **** **** 0 255 **** **** **** **** 10 1 10 0.36 1718 27 1 1 9 2 **** **** **** **** **** **** 0 0 5470 0 0 1 **** **** 1 **** **** **** **** 1 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
76 535 gold 2 2 0x00000 0 0 IT_GOLD 0 **** **** **** it_bag iit_gold_001 0 **** 0 **** **** **** 0 255 **** **** **** **** 17 **** 50000 **** 5025 26 8 0 17 4 **** **** **** **** **** **** 0 0 5471 0 0 0 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
77 965 gem 1 1 0x00000 0 0 IT_GEM 0 **** **** **** doa_gem iit_gem_001 0 1 0 **** **** **** 0 255 **** **** **** **** 17 0 10 1 5024 21 8 0 17 4 **** **** **** **** **** **** 0 0 5472 0 0 0 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
78 2194 bracer 2 1 0x00008 0 0 IT_BRACER 0 1 1 1 doa_bracer iit_bracer 0 **** 2 **** **** **** 0 255 **** **** **** **** 4 1 1 1 1711 0 8 0 16 0 **** **** **** **** **** 2 0 0 5473 0 0 10 **** **** **** **** **** **** **** 1 1 100 630 138 668 62 720 506 **** **** 1
|
||||||
|
79 2294 miscthin 1 2 0x00000 0 0 IT_THNMISC 0 1 1 1 it_bag iinvalid_1x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 1 1 1 1726 29 8 0 15 4 **** **** **** **** **** **** 0 0 5474 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
80 2220 cloak 2 3 0x00040 0 1 cloak 1 1 **** **** doa_cloak icloak_m_001 0 **** 0 **** **** **** 0 255 **** **** **** **** 4 1 1 1 5023 3 8 0 16 0 **** **** **** **** **** 4 0 0 5475 0 0 30 **** **** **** **** **** **** **** 15 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
81 2730 grenade 1 1 0x00000 0 0 it_x1_gren 0 1 1 1 it_bag iit_x1_gren_003 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 10 1 2731 28 8 0 15 4 **** **** **** **** **** **** 0 0 5448 0 0 3 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
82 7666 Encampment 10 6 0x00000 0 0 it_encamp 0 1 1 1 it_bag **** 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 7666 29 8 0 15 4 **** **** **** **** **** **** 0 0 5449 0 0 500 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
83 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
84 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
85 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
86 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
87 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
88 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
89 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
90 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
91 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
92 111697 Lance 1 4 0x1C030 1 2 WPlLc 0 1 1 1 it_bag **** 0 4 1 3 **** 1.4 10 255 1 6 1 3 1 1 1 2 16834106 15 8 0 0 1 **** **** **** **** **** 4 0 0 16834107 0 1 30 17 **** **** **** 0 0 100 76 1 24601 24613 24625 24637 24649 24661 24673 24685 **** ****
|
||||||
|
93 111698 Trumpet 1 3 0x1C030 1 0 it_horn 0 1 1 1 it_bag iit_horn_001 0 **** 2 3 **** 1.1 0 255 1 2 1 1 20 1 1 1 111700 17 8 0 20 4 **** **** **** **** **** **** 0 0 111704 0 1 5 17 **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
94 111701 MoonOnAStick 1 2 0x1C030 1 0 it_moon 0 **** **** **** it_moon iit_moon_001 0 **** 2 2 **** **** 0 255 **** **** **** **** 13 1 1 0.02 111702 2 8 0 16 4 **** **** **** **** **** **** 0 0 **** 0 1 1 **** **** **** **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
95 67251 trident 1 4 0x1C030 1 2 WPlTr 0 1 1 1 it_bag iwpltr 0 4 1 3 **** 1.4 10 255 1 8 1 2 1 1 1 2 110846 15 8 0 0 1 **** **** **** **** **** 4 0 0 110899 0 1 50 17 **** **** **** 5 5 90 76 1 1072 1076 1073 1077 1074 1078 1075 1079 **** ****
|
||||||
|
96 **** XP2SpecReq **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
97 **** XP2SpecReq **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
98 **** XP2SpecReq **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
99 **** RESERVED_alchemy **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
100 **** RESERVED_poisons **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
101 76389 empty_potion 1 2 0x00000 0 2 it_potion 0 **** **** **** it_potion_000 iit_potion 0 1 0 **** **** **** 10 255 **** **** **** **** 9 1 1 0.2 86786 24 1 0 8 2 **** **** **** **** **** **** 0 0 5455 0 2 1 **** **** 2 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
102 76390 blank_scroll 1 1 0x00000 0 0 IT_SCROLL 0 **** **** **** gi_scrl iit_scroll_002 0 1 0 **** **** **** 0 255 **** **** **** **** 10 1 1 0.36 86787 27 1 0 9 2 **** **** **** **** **** **** 0 0 5470 0 0 1 **** **** 2 **** **** **** **** 1 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
103 76391 blank_magicwand 1 2 0x1C030 1 2 WMGWn 0 1 1 1 it_bag iwmgwn 0 1 2 1 **** **** 10 255 1 1 1 1 8 1 1 1 86788 16 1 0 1 3 **** **** **** **** **** **** 0 0 66196 50 1 10 4 **** 1 **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
104 83365 crafted_potion 1 2 0x00000 0 2 it_potion 0 **** **** **** it_potion_000 iit_potion 0 1 0 **** **** **** 10 255 **** **** **** **** 9 1 10 0.2 1719 24 1 0 8 2 **** **** **** **** **** **** 0 0 5455 0 2 1 **** **** 2 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
105 83364 crafted_scroll 1 1 0x00000 0 0 IT_SCROLL 0 **** **** **** gi_scrl iit_scroll_002 0 1 0 **** **** **** 0 255 **** **** **** **** 10 1 10 0.36 1718 27 1 0 9 2 **** **** **** **** **** **** 0 0 5470 0 0 1 **** **** 2 **** **** **** **** 1 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
106 83363 crafted_magicwand 1 2 0x1C030 1 2 WMGWn 0 1 1 1 it_bag iwmgwn 0 1 2 1 **** **** 0 255 1 1 1 1 8 1 1 1 1707 16 1 1 10 3 **** **** **** **** **** **** 0 0 66196 50 1 10 4 **** 1 **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
107 **** XP2SpecialRequest **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
108 83310 dwarvenwaraxe 2 3 0x1C030 1 2 WAxBt 0 1 1 1 it_bag iwaxbt 0 **** 3 3 **** 1.2 10 255 1 10 1 3 1 30 1 2 83311 9 8 0 0 1 **** **** **** **** **** 4 0 0 83312 0 1 150 16 **** **** **** 100 100 0 41 1 952 956 953 957 954 958 955 959 **** ****
|
||||||
|
109 83379 craftcompbase 2 2 0x00000 0 0 it_midmisc 0 1 1 1 it_bag iinvalid_2x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 83632 29 8 0 15 4 **** **** **** **** **** **** 0 0 5449 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
110 83380 craftcompsmall 1 1 0x00000 0 0 it_smlmisc 0 1 1 1 it_bag iinvalid_1x1 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 83699 28 8 0 15 4 **** **** **** **** **** **** 0 0 5448 0 0 3 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
111 83617 Whip 2 2 0x1C030 0 2 WWhip 0 1 1 1 it_bag iwwhip 0 **** 3 2 **** 1.7 10 255 1 2 1 2 1 1 1 2 85392 32 8 0 0 1 **** **** **** **** **** 4 0 0 85391 0 1 20 19 **** **** **** 100 100 0 74 1 993 997 994 998 995 999 996 1000 **** 2
|
||||||
|
112 83664 craftbase 2 2 0x00000 0 0 it_midmisc 0 1 1 1 it_bag iinvalid_2x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 83698 29 8 0 15 4 **** **** **** **** **** **** 0 0 5449 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
113 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
114 **** START_NWNEE_WPN_FEATS **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
115 67252 heavypick 2 4 0x1c030 1 2 wblph 0 1 1 1 it_bag iwblph 0 **** 1 3 **** 1.4 10 255 1 6 1 4 1 8 1 2 16807222 9 8 0 0 1 **** **** **** **** **** 4 0 0 16807223 0 1 60 17 **** **** **** 100 100 0 73 1 24602 24614 24626 24638 24650 24662 24674 24686 **** ****
|
||||||
|
116 67256 lightpick 1 2 0x1c030 1 2 wblpl 0 1 1 1 it_bag iwblpl 0 **** 1 2 **** 1.1 10 255 1 4 1 4 1 4 1 2 16807225 13 8 0 0 1 **** **** **** **** **** 4 0 0 16807226 0 1 40 2 **** **** **** 100 100 0 27 1 24603 24615 24627 24639 24651 24663 24675 24687 **** 2
|
||||||
|
117 16807227 sai 1 1 0x1C030 0 2 wswsi 0 1 1 1 it_bag iwswsi 0 **** 2 1 **** 1.1 10 255 1 4 2 2 1 3 1 2 16807228 7 8 0 0 1 **** **** **** **** **** 4 0 0 16807229 0 1 10 18 **** **** **** 100 100 0 9 1 24604 24616 24628 24640 24652 24664 24676 24688 1 2
|
||||||
|
118 16807230 nunchaku 1 3 0x1C030 1 2 wblnn 0 1 1 1 it_bag iwblnn 0 **** 2 2 **** 1.4 10 255 1 6 1 2 1 2 1 2 16807231 12 8 0 0 1 **** **** **** **** **** 4 0 0 16807232 0 1 20 3 **** **** **** 100 100 0 74 1 24605 24617 24629 24641 24653 24665 24677 24689 1 2
|
||||||
|
119 16807233 falchion 2 4 0x1C030 1 2 wswfa 0 1 1 1 it_bag iwswfa 0 **** 3 3 **** 1.6 10 255 2 4 3 2 1 75 1 2 16807234 9 8 0 0 1 **** **** **** **** **** 4 0 0 16807235 0 1 80 11 **** **** **** 100 100 0 99 1 24606 24618 24630 24642 24654 24666 24678 24690 **** ****
|
||||||
|
120 16807242 sap 1 1 0x1C030 1 2 wspsp 0 0 0 0 it_bag iwspsp 0 **** 2 2 **** 1.2 10 255 1 6 1 2 1 1 1 2 16807243 13 8 0 0 1 **** **** **** **** **** 4 0 0 16807244 0 1 20 2 **** **** **** 100 100 0 44 1 24607 24619 24631 24643 24655 24667 24679 24691 **** 1
|
||||||
|
121 16807248 katar 1 1 0x1C030 1 2 wswdp 0 1 1 1 it_bag iwswdp 0 **** 1 1 **** 1.1 10 255 1 4 1 3 1 2 1 2 16807249 7 8 0 0 1 **** **** **** **** **** 4 0 0 16807250 0 1 10 11 **** **** **** 50 50 50 77 1 24608 24620 24632 24644 24656 24668 24680 24692 **** 1
|
||||||
|
122 16807269 heavy_mace 1 3 0x1C030 1 2 wxblmh 0 1 1 1 it_bag iwxblmh 0 **** 2 3 **** 1.2 10 255 1 8 1 2 1 6 1 2 16807270 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807271 0 1 80 2 **** **** **** 100 100 0 99 1 24609 24621 24633 24645 24657 24669 24681 24693 **** ****
|
||||||
|
123 16807272 maul 2 4 0x1C030 1 2 wxblma 0 1 1 1 it_bag iwxblma 0 **** 2 3 **** 1.2 10 255 1 10 1 3 1 8 1 2 16807273 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807274 0 1 200 12 **** **** **** 100 100 0 99 1 24610 24622 24634 24646 24658 24670 24682 24694 **** ****
|
||||||
|
124 16807275 scimitar_double 2 5 0x1c010 1 2 wxdbsc 0 1 1 1 it_bag iwxdbsc 0 8 3 4 **** 1.5 10 255 1 6 3 2 1 63 1 2 16807276 10 8 0 0 1 **** **** **** **** **** 4 0 0 16807277 0 1 150 11 **** **** **** 50 50 50 99 1 24611 24623 24635 24647 24659 24671 24683 24695 **** ****
|
||||||
|
125 16807284 goad 2 2 0x1C030 0 2 wspgd 0 1 1 1 it_bag iwspgd 0 **** 1 2 **** 1.1 10 255 1 6 1 2 1 6 1 2 16807285 8 8 0 0 1 **** **** **** **** **** 4 0 0 16807286 0 1 30 18 **** **** **** 35 35 65 22 1 24612 24624 24636 24348 24660 24672 24684 24596 **** 2
|
||||||
|
126 16793718 eagleclaw 1 2 0x1C030 1 2 wswec 0 1 1 1 it_bag iwswec 0 **** 4 2 **** 1.2 10 255 1 6 3 2 1 20 1 2 16793719 8 8 0 0 1 **** **** **** **** **** 4 0 0 16793720 0 1 20 1 **** **** **** 35 35 65 19 1 24721 24722 24723 24724 24725 24726 24727 24728 **** 2
|
||||||
|
127 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
128 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
129 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
130 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
131 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
132 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
133 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
134 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
135 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
136 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
137 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
138 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
139 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
140 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
141 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
142 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
143 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
144 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
145 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
146 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
147 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
148 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
149 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
150 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
151 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
152 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
153 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
154 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
155 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
156 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
157 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
158 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
159 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
160 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
161 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
162 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
163 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
164 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
165 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
166 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
167 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
168 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
169 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
170 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
171 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
172 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
173 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
174 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
175 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
176 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
177 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
178 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
179 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
180 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
181 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
182 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
183 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
184 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
185 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
186 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
187 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
188 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
189 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
190 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
191 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
192 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
193 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
194 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
195 16793697 PRC_MATCOMP_01 1 1 0x00000 0 0 it_matcomps 0 1 1 1 it_bag iinvalid_1x1 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 99 0.1 1726 29 0 0 17 4 **** **** **** **** **** **** 0 0 5474 **** **** 0 **** **** **** **** **** **** **** 0 99 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
196 16793697 PRC_MATCOMP_02 1 2 0x00000 0 0 it_matcompt 0 1 1 1 it_bag iinvalid_1x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 99 0.1 1726 29 0 0 17 4 **** **** **** **** **** **** 0 0 5474 **** **** 0 **** **** **** **** **** **** **** 0 99 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
197 16793697 PRC_MATCOMP_03 2 2 0x00000 0 0 it_matcompm 0 1 1 1 it_bag iinvalid_2x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 99 0.1 1726 29 0 0 17 4 **** **** **** **** **** **** 0 0 5474 **** **** 0 **** **** **** **** **** **** **** 0 99 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
198 16789979 cloak_old 2 3 0x00040 0 0 it_cloak 0 1 **** **** it_bag **** 0 **** 0 **** **** **** 0 255 **** **** **** **** 4 1 1 1 5023 3 8 0 16 0 **** **** **** **** **** 4 0 0 5475 0 0 30 **** **** **** **** **** **** **** 15 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
199 16829096 craft_magicrod 1 3 0x00000 1 2 WMgRd 0 1 1 1 it_bag iwmgrd 0 **** **** **** **** **** 10 255 **** **** **** **** 8 1 1 1 1708 16 8 0 4 3 **** **** **** **** **** **** 0 0 66197 50 1 20 **** **** 1 **** **** **** **** 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
200 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
201 16829097 craft_magicstaff 1 5 0x1C010 1 2 WMgSt 0 1 1 1 it_bag iwmgst 0 4 2 3 **** 1.6 10 255 1 6 1 2 8 1 1 1 1709 15 8 0 3 3 **** **** **** **** **** 4 0 0 76436 50 1 40 4 **** **** **** 50 50 50 10 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
202 16827706 elf_lightblade 1 2 0x1C030 1 2 WSwSs 0 1 1 1 it_bag iwswss 0 **** 1 2 **** 1.2 10 255 1 6 3 2 1 25 1 2 16827712 8 8 0 0 1 **** **** **** **** **** 4 0 0 16827709 0 1 10 1 **** **** **** 35 35 65 19 1 24697 24698 24699 24700 24701 24702 24703 24704 **** 2
|
||||||
|
203 16827707 elf_thinblade 1 4 0x1C030 1 2 WSwLs 0 1 1 1 it_bag iwswls 0 **** 1 3 **** 1.5 10 255 1 8 3 2 1 50 1 2 16827713 9 8 0 0 1 **** **** **** **** **** 4 0 0 16827710 0 1 30 1 **** **** **** 35 35 65 70 1 24705 24706 24707 24708 24709 24710 24711 24712 **** 3
|
||||||
|
204 16827708 elf_courtblade 2 5 0x1C030 1 2 WSwGs 0 1 1 1 it_bag iwswgs 0 **** 4 3 **** 1.8 10 255 1 10 3 2 1 75 1 2 16827714 9 8 0 0 1 **** **** **** **** **** 4 0 0 16827711 0 1 60 11 **** **** **** 50 50 50 99 1 24713 24714 24715 24716 24717 24718 24719 24720 **** 3
|
||||||
|
205 **** CEP_Padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
206 67333 tools 2 2 0x00020 1 2 WTool 0 0 0 0 it_bag **** 0 **** **** 1 **** **** 10 100 **** **** **** **** 8 3 1 1 **** 16 8 0 4 4 **** **** **** **** **** **** 0 0 59 0 1 30 **** **** 1 **** **** **** **** 10 1 24697 24698 24699 24700 24701 24702 24703 24704 **** 2
|
||||||
|
207 67333 2htools 2 4 0x1C010 1 2 W2HTool 0 0 0 0 it_bag **** 0 4 2 4 **** 1.6 10 100 1 3 1 2 1 4 1 1 **** 15 8 0 0 4 46 48 49 50 51 4 0 0 59 0 0 60 4 **** **** **** 50 50 0 10 1 24705 24706 24707 24708 24709 24710 24711 24712 **** 3
|
||||||
|
208 **** CEP_Padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
209 **** CEP_Padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
210 **** CEP_Padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
211 **** CEP_Padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
212 **** CEP_Padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
213 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
214 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
215 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
216 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
217 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
218 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
219 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
220 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
221 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
222 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
223 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
224 **** CEP_Dye **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
225 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
226 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
227 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
228 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
229 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
230 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
231 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
232 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
233 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
234 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
235 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
236 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
237 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
238 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
239 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
240 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
241 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
242 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
243 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
244 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
245 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
246 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
247 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
248 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
249 16989399 crafted_scepter 1 3 0x1C030 1 2 WMgRd 0 1 1 1 it_bag iwmgrd 0 **** 2 3 **** 1.2 10 255 1 6 1 2 8 10 1 1 16989400 16 8 0 4 3 **** **** **** **** **** **** 4 0 16989401 50 1 30 2 **** 1 **** 100 100 0 10 1 43 619 47 657 15 709 495 919 **** ****
|
||||||
|
250 16989402 crafted_vial 1 2 0x00000 0 0 it_thnmisc 0 1 1 1 it_potion_000 iit_thnmisc_019 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 16989403 24 8 0 15 3 **** **** **** **** **** **** 0 0 5470 0 0 3 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
251 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
252 16989220 mundane_herb 1 1 0x00000 0 0 it_herb 0 **** **** **** it_bag iit_herb_000 0 1 0 **** **** **** 0 255 **** **** **** **** 16 1 1 0.36 16989221 2 1 0 9 2 **** **** **** **** **** **** 0 0 5470 0 0 0 **** **** 2 **** **** **** **** 1 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
253 16989222 infused_herb 1 1 0x00000 0 0 it_herb 0 **** **** **** it_bag iit_herb_254 0 1 0 **** **** **** 0 255 **** **** **** **** 16 1 10 0.36 16989223 2 1 0 9 2 **** **** **** **** **** **** 0 0 5470 0 0 0 **** **** 2 **** **** **** **** 1 1 **** **** **** **** **** **** **** **** **** ****
|
||||||
|
254 **** ***WIKI_LAST_ROW*** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
258
src/hakpak/th1_prc8_top/2da/vfx_persistent.2da
Normal file
258
src/hakpak/th1_prc8_top/2da/vfx_persistent.2da
Normal file
@@ -0,0 +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_PER_BEHOLD C 50 **** **** z217_beholda z217_beholdb z217_beholdc 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 10 **** **** 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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_aurablnda.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_aurablnda.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Blinding On Enter
|
||||||
|
//:: NW_S1_AuraBlndA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Upon entering the aura of the creature the player
|
||||||
|
must make a will save or be blinded because of the
|
||||||
|
sheer ugliness or beauty of the creature.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD/3);
|
||||||
|
|
||||||
|
effect eBlind = EffectBlindness();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_BLIND_DEAF_M);
|
||||||
|
effect eLink = EffectLinkEffects(eBlind, eDur);
|
||||||
|
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
//Entering object must make a will save or be blinded for the duration.
|
||||||
|
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_BLINDING));
|
||||||
|
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
|
||||||
|
{
|
||||||
|
//Apply the blind effect and the VFX impact
|
||||||
|
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
62
src/hakpak/th1_prc8_top/nss/nw_s1_auracoldc.nss
Normal file
62
src/hakpak/th1_prc8_top/nss/nw_s1_auracoldc.nss
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Frost on Heartbeat
|
||||||
|
//:: NW_S1_AuraColdC.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Prolonged exposure to the aura of the creature
|
||||||
|
causes frost damage to all within the aura.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nFrost = 1 + (nHD/3);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
|
||||||
|
effect eDam;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||||
|
|
||||||
|
//Get the first target in the aura of cold
|
||||||
|
oTarget = GetFirstInPersistentObject();
|
||||||
|
|
||||||
|
while (GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
/* if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget))
|
||||||
|
{
|
||||||
|
oTarget = GetNextInPersistentObject(OBJECT_SELF);
|
||||||
|
continue;
|
||||||
|
} */
|
||||||
|
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_COLD));
|
||||||
|
//Roll damage based on the creatures HD
|
||||||
|
nDamage = d4(nFrost);
|
||||||
|
//Make a Fortitude save for half
|
||||||
|
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_COLD))
|
||||||
|
{
|
||||||
|
nDamage = nDamage / 2;
|
||||||
|
}
|
||||||
|
//Set the damage effect
|
||||||
|
eDam = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
|
||||||
|
//Apply the VFX constant and damage effect
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
//Get the next target in the aura of cold
|
||||||
|
oTarget = GetNextInPersistentObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
58
src/hakpak/th1_prc8_top/nss/nw_s1_auraelecc.nss
Normal file
58
src/hakpak/th1_prc8_top/nss/nw_s1_auraelecc.nss
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Electricity on Heartbeat
|
||||||
|
//:: NW_S1_AuraElecC.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Prolonged exposure to the aura of the creature
|
||||||
|
causes electrical damage to all within the aura.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nZap = 1 + (nHD / 3);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 + nCHAMod + (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
|
||||||
|
effect eDam;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
object oTarget = GetFirstInPersistentObject();
|
||||||
|
while (GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
/* if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget))
|
||||||
|
{
|
||||||
|
oTarget = GetNextInPersistentObject(OBJECT_SELF);
|
||||||
|
continue;
|
||||||
|
} */
|
||||||
|
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
nDamage = d4(nZap);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_AURA_ELECTRICITY));
|
||||||
|
//Make a saving throw check
|
||||||
|
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY))
|
||||||
|
{
|
||||||
|
nDamage = nDamage / 2;
|
||||||
|
}
|
||||||
|
eDam = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
|
||||||
|
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextInPersistentObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
59
src/hakpak/th1_prc8_top/nss/nw_s1_aurafirec.nss
Normal file
59
src/hakpak/th1_prc8_top/nss/nw_s1_aurafirec.nss
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Fire on Heartbeat
|
||||||
|
//:: NW_S1_AuraFireC.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Prolonged exposure to the aura of the creature
|
||||||
|
causes fire damage to all within the aura.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetFirstInPersistentObject(); //:: Get first target in spell area
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nBurn = 1 + (nHD/3);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
int nDamSave;
|
||||||
|
|
||||||
|
effect eDam;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
||||||
|
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
/* if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget))
|
||||||
|
{
|
||||||
|
oTarget = GetNextInPersistentObject(OBJECT_SELF);
|
||||||
|
continue;
|
||||||
|
} */
|
||||||
|
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FIRE));
|
||||||
|
//Roll damage
|
||||||
|
nDamage = d4(nBurn);
|
||||||
|
//Make a saving throw check
|
||||||
|
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_FIRE))
|
||||||
|
{
|
||||||
|
nDamage = nDamage / 2;
|
||||||
|
}
|
||||||
|
//Set the damage effect
|
||||||
|
eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextInPersistentObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
46
src/hakpak/th1_prc8_top/nss/nw_s1_auramenca.nss
Normal file
46
src/hakpak/th1_prc8_top/nss/nw_s1_auramenca.nss
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Menace On Enter
|
||||||
|
//:: NW_S1_AuraMencA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Upon entering the aura all those that fail
|
||||||
|
a will save are stricken with Doom.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
int nDuration = 1 + (GetHitDice(oNPC)/3);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (GetHitDice(oNPC)/2);
|
||||||
|
int nLevel = GetCasterLevel(OBJECT_SELF);
|
||||||
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DOOM);
|
||||||
|
effect eLink = CreateDoomEffectsLink();
|
||||||
|
|
||||||
|
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_AURA_MENACE));
|
||||||
|
//Spell Resistance and Saving throw
|
||||||
|
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
|
||||||
|
{
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink , oTarget, TurnsToSeconds(nDuration));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/hakpak/th1_prc8_top/nss/nw_s1_auraprota.nss
Normal file
35
src/hakpak/th1_prc8_top/nss/nw_s1_auraprota.nss
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Protection: On Enter
|
||||||
|
//:: NW_S1_AuraProtA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Acts as a double strength Magic Circle against
|
||||||
|
evil and a Minor Globe for those friends in
|
||||||
|
the area.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On:Jan 8, 2002, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//Declare major variables
|
||||||
|
effect eProt = CreateProtectionFromAlignmentLink(ALIGNMENT_EVIL);
|
||||||
|
effect eGlobe = EffectSpellLevelAbsorption(3, 0);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
|
||||||
|
|
||||||
|
effect eLink = EffectLinkEffects(eProt, eGlobe);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
//Faction Check
|
||||||
|
if(GetIsFriend(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_aurastuna.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_aurastuna.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura Stunning On Enter
|
||||||
|
//:: NW_S1_AuraStunA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Upon entering the aura of the creature the player
|
||||||
|
must make a will save or be stunned.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDuration = GetHitDice(oNPC);
|
||||||
|
int nDC = 10 + nCHAMod + (nDuration/2);
|
||||||
|
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||||
|
effect eVis2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eDeath = EffectStunned();
|
||||||
|
effect eLink = EffectLinkEffects(eVis2, eDeath);
|
||||||
|
|
||||||
|
nDuration = GetScaledDuration(nDuration, oTarget);
|
||||||
|
|
||||||
|
if(!GetIsFriend(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_STUN));
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_auraunata.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_auraunata.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of the Unnatural On Enter
|
||||||
|
//:: NW_S1_AuraMencA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Upon entering the aura all animals are struck with
|
||||||
|
fear.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
|
||||||
|
effect eFear = EffectFrightened();
|
||||||
|
effect eLink = EffectLinkEffects(eVis, eFear);
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
int nDuration = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nRacial = GetRacialType(oTarget);
|
||||||
|
int nDC = 10 + nCHAMod + (GetHitDice(oNPC)/2);
|
||||||
|
|
||||||
|
if(GetIsEnemy(oTarget))
|
||||||
|
{
|
||||||
|
nDuration = (nDuration / 3) + 1;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(nRacial == RACIAL_TYPE_ANIMAL)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_UNNATURAL));
|
||||||
|
//if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR)) //:: This ability only affects animals & they don't get a save.
|
||||||
|
//{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
46
src/hakpak/th1_prc8_top/nss/nw_s1_aurauneaa.nss
Normal file
46
src/hakpak/th1_prc8_top/nss/nw_s1_aurauneaa.nss
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura Unearthly Visage On Enter
|
||||||
|
//:: NW_S1_AuraUnEaA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Upon entering the aura of the creature the player
|
||||||
|
must make a will save or be killed because of the
|
||||||
|
sheer ugliness or beauty of the creature.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
effect eDeath = EffectDeath();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
|
||||||
|
if(GetIsEnemy(oTarget, oNPC))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_UNEARTHLY_VISAGE));
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget);
|
||||||
|
//ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
66
src/hakpak/th1_prc8_top/nss/nw_s1_bltacid.nss
Normal file
66
src/hakpak/th1_prc8_top/nss/nw_s1_bltacid.nss
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Acid
|
||||||
|
//:: NW_S1_BltAcid
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
int nCount = nHD/2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//ankheg
|
||||||
|
if(GetAppearanceType(oNPC) == APPEARANCE_TYPE_BEETLE_SLICER)
|
||||||
|
{
|
||||||
|
nDamage = d4(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ACID));
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ACID);
|
||||||
|
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Set damage effect
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltcharm.nss
Normal file
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltcharm.nss
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Charm
|
||||||
|
//:: NW_S1_BltCharm
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_CHARM);
|
||||||
|
effect eBolt = EffectCharmed();
|
||||||
|
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_CHARM));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltchrdr.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltchrdr.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Charisma Drain
|
||||||
|
//:: NW_S1_BltChrDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Fortitude save is
|
||||||
|
needed to avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = nHD / 3;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
eBolt = EffectAbilityDecrease(ABILITY_CHARISMA, nCount);
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
60
src/hakpak/th1_prc8_top/nss/nw_s1_bltcold.nss
Normal file
60
src/hakpak/th1_prc8_top/nss/nw_s1_bltcold.nss
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Cold
|
||||||
|
//:: NW_S1_BltCold
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = nHD/2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_COLD));
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_COLD);
|
||||||
|
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Set damage effect
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltcondr.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltcondr.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Constitution Drain
|
||||||
|
//:: NW_S1_BltConDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Fort save is
|
||||||
|
needed to avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD /3);
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
eBolt = EffectAbilityDecrease(ABILITY_CONSTITUTION, nCount);
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltconf.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltconf.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Confuse
|
||||||
|
//:: NW_S1_BltConf
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
|
||||||
|
effect eVis2 = EffectVisualEffect(VFX_IMP_CONFUSION_S);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eBolt = EffectConfused();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eVis);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_CONFUSE));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltdaze.nss
Normal file
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltdaze.nss
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Daze
|
||||||
|
//:: NW_S1_BltDaze
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eBolt = EffectDazed();
|
||||||
|
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eVis);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DAZE));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
}
|
||||||
|
}
|
||||||
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltdeath.nss
Normal file
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltdeath.nss
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Death
|
||||||
|
//:: NW_S1_BltDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
effect eBolt = EffectDeath();
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DEATH));
|
||||||
|
//Make a saving throw check
|
||||||
|
if(TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
//ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltdexdr.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltdexdr.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Dexterity Drain
|
||||||
|
//:: NW_S1_BltDexDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Fort save is
|
||||||
|
needed to avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
eBolt = EffectAbilityDecrease(ABILITY_DEXTERITY, nCount);
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
73
src/hakpak/th1_prc8_top/nss/nw_s1_bltdisese.nss
Normal file
73
src/hakpak/th1_prc8_top/nss/nw_s1_bltdisese.nss
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Disease
|
||||||
|
//:: NW_S1_BltDisease
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to infect
|
||||||
|
the target with a disease. The disease used
|
||||||
|
is chosen based upon the racial type of the
|
||||||
|
caster.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nRacial = MyPRCGetRacialType(oNPC);
|
||||||
|
int nDisease;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DISEASE));
|
||||||
|
|
||||||
|
//Here we use the racial type of the attacker to select an
|
||||||
|
//appropriate disease.
|
||||||
|
switch (nRacial)
|
||||||
|
{
|
||||||
|
case RACIAL_TYPE_VERMIN:
|
||||||
|
nDisease = DISEASE_VERMIN_MADNESS;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_UNDEAD:
|
||||||
|
nDisease = DISEASE_FILTH_FEVER;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_OUTSIDER:
|
||||||
|
if(GetTag(oNPC) == "NW_SLAADRED")
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_RED_SLAAD_EGGS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_DEMON_FEVER;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_MAGICAL_BEAST:
|
||||||
|
nDisease = DISEASE_SOLDIER_SHAKES;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_ABERRATION:
|
||||||
|
nDisease = DISEASE_BLINDING_SICKNESS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
nDisease = DISEASE_SOLDIER_SHAKES;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//Assign effect and chosen disease
|
||||||
|
effect eBolt = EffectDisease(nDisease);
|
||||||
|
//Make the ranged touch attack.
|
||||||
|
if (TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
53
src/hakpak/th1_prc8_top/nss/nw_s1_bltdomn.nss
Normal file
53
src/hakpak/th1_prc8_top/nss/nw_s1_bltdomn.nss
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Dominated
|
||||||
|
//:: NW_S1_BltDomn
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DOMINATE_S);
|
||||||
|
effect eBolt = EffectDominated();
|
||||||
|
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||||
|
effect eVis2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
|
||||||
|
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eVis2);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DOMINATE));
|
||||||
|
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
58
src/hakpak/th1_prc8_top/nss/nw_s1_bltfire.nss
Normal file
58
src/hakpak/th1_prc8_top/nss/nw_s1_bltfire.nss
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Fire
|
||||||
|
//:: NW_S1_BoltFire
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = nHD/2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_FIRE));
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_FIRE);
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Set damage effect
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltintdr.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltintdr.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Intelligence Drain
|
||||||
|
//:: NW_S1_BltIntDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
eBolt = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nCount);
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltknckd.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltknckd.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Knockdown
|
||||||
|
//:: NW_S1_BltKnckD
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = nHD/2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
|
||||||
|
effect eBolt = EffectKnockdown();
|
||||||
|
effect eDam = EffectDamage(d6(), DAMAGE_TYPE_BLUDGEONING);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_KNOCKDOWN));
|
||||||
|
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Reflex Save*/ PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBolt, oTarget, RoundsToSeconds(3));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
59
src/hakpak/th1_prc8_top/nss/nw_s1_bltlightn.nss
Normal file
59
src/hakpak/th1_prc8_top/nss/nw_s1_bltlightn.nss
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Lightning
|
||||||
|
//:: NW_S1_BltLightn
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Does 1d6 per level to a single target. Reflex
|
||||||
|
save for half
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Aug 10, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = nHD/2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_HAND);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_LIGHTNING));
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ELECTRICITY);
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Set damage effect
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLightning, oTarget, 1.7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
49
src/hakpak/th1_prc8_top/nss/nw_s1_bltlvldr.nss
Normal file
49
src/hakpak/th1_prc8_top/nss/nw_s1_bltlvldr.nss
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Level Drain
|
||||||
|
//:: NW_S1_BltLvlDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = nHD/5;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt = EffectNegativeLevel(1);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_LEVEL_DRAIN));
|
||||||
|
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//eBolt = LEVEL DRAIN EFFECT
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltparal.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltparal.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Paralyze
|
||||||
|
//:: NW_S1_BltParal
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_DUR_PARALYZED);
|
||||||
|
effect eBolt = EffectParalyze();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eVis);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_PARALYZE));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
}
|
||||||
|
}
|
||||||
123
src/hakpak/th1_prc8_top/nss/nw_s1_bltpoison.nss
Normal file
123
src/hakpak/th1_prc8_top/nss/nw_s1_bltpoison.nss
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Poison
|
||||||
|
//:: NW_S1_BltPoison.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Must make a ranged touch attack. If successful
|
||||||
|
the target is struck down with poison that
|
||||||
|
scales with level.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 22, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nRacial = MyPRCGetRacialType(OBJECT_SELF);
|
||||||
|
int nPoison;
|
||||||
|
|
||||||
|
effect ePoison;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_POISON));
|
||||||
|
|
||||||
|
//Determine the poison type based on the Racial Type and HD
|
||||||
|
switch (nRacial)
|
||||||
|
{
|
||||||
|
case RACIAL_TYPE_OUTSIDER:
|
||||||
|
if (nHD <= 9)
|
||||||
|
{
|
||||||
|
nPoison = POISON_QUASIT_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD > 9 && nHD < 13)
|
||||||
|
{
|
||||||
|
nPoison = POISON_BEBILITH_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD >= 13)
|
||||||
|
{
|
||||||
|
nPoison = POISON_PIT_FIEND_ICHOR;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_VERMIN:
|
||||||
|
if (nHD < 3)
|
||||||
|
{
|
||||||
|
nPoison = POISON_TINY_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 3 && nHD < 6)
|
||||||
|
{
|
||||||
|
nPoison = POISON_SMALL_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 6 && nHD < 9)
|
||||||
|
{
|
||||||
|
nPoison = POISON_MEDIUM_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 9 && nHD < 12)
|
||||||
|
{
|
||||||
|
nPoison = POISON_LARGE_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 12 && nHD < 15)
|
||||||
|
{
|
||||||
|
nPoison = POISON_HUGE_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 15 && nHD < 18)
|
||||||
|
{
|
||||||
|
nPoison = POISON_GARGANTUAN_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD >= 18)
|
||||||
|
{
|
||||||
|
nPoison = POISON_COLOSSAL_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (nHD < 3)
|
||||||
|
{
|
||||||
|
nPoison = POISON_NIGHTSHADE;
|
||||||
|
}
|
||||||
|
else if (nHD <= 3 && nHD < 6)
|
||||||
|
{
|
||||||
|
nPoison = POISON_BLADE_BANE;
|
||||||
|
}
|
||||||
|
else if (nHD <= 6 && nHD < 9)
|
||||||
|
{
|
||||||
|
nPoison = POISON_BLOODROOT;
|
||||||
|
}
|
||||||
|
else if (nHD <= 9 && nHD < 12)
|
||||||
|
{
|
||||||
|
nPoison = POISON_LARGE_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 12 && nHD < 15)
|
||||||
|
{
|
||||||
|
nPoison = POISON_LICH_DUST;
|
||||||
|
}
|
||||||
|
else if (nHD <= 15 && nHD < 18)
|
||||||
|
{
|
||||||
|
nPoison = POISON_DARK_REAVER_POWDER;
|
||||||
|
}
|
||||||
|
else if (nHD >= 18 )
|
||||||
|
{
|
||||||
|
nPoison = POISON_BLACK_LOTUS_EXTRACT;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//Make a ranged touch attack
|
||||||
|
if (TouchAttackRanged (oTarget))
|
||||||
|
{
|
||||||
|
ePoison = EffectPoison(nPoison);
|
||||||
|
//Apply effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
58
src/hakpak/th1_prc8_top/nss/nw_s1_bltshards.nss
Normal file
58
src/hakpak/th1_prc8_top/nss/nw_s1_bltshards.nss
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Shards
|
||||||
|
//:: NW_S1_BltShard
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_SHARDS));
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC);
|
||||||
|
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Set damage effect
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_PIERCING, DAMAGE_POWER_PLUS_ONE);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltslow.nss
Normal file
47
src/hakpak/th1_prc8_top/nss/nw_s1_bltslow.nss
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Slow
|
||||||
|
//:: NW_S1_BltSlow
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex save is
|
||||||
|
needed to or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: June 18 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_SLOW);
|
||||||
|
effect eBolt = EffectSlow();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_SLOW));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltstrdr.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltstrdr.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Strength Drain
|
||||||
|
//:: NW_S1_BltStrDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Fort save is
|
||||||
|
needed to avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
eBolt = EffectAbilityDecrease(ABILITY_STRENGTH, nCount);
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
50
src/hakpak/th1_prc8_top/nss/nw_s1_bltstun.nss
Normal file
50
src/hakpak/th1_prc8_top/nss/nw_s1_bltstun.nss
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Stun
|
||||||
|
//:: NW_S1_BltStun
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Reflex or Will save is
|
||||||
|
needed to halve damage or avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD + 1) / 2;
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||||
|
effect eBolt = EffectStunned();
|
||||||
|
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_STUN));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
44
src/hakpak/th1_prc8_top/nss/nw_s1_bltweb.nss
Normal file
44
src/hakpak/th1_prc8_top/nss/nw_s1_bltweb.nss
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Web
|
||||||
|
//:: NW_S1_BltWeb
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Glues a single target to the ground with
|
||||||
|
sticky strands of webbing.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Jan 28, 2002
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
int nCount = 1 + (nHD /2);
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_DUR_WEB);
|
||||||
|
effect eStick = EffectEntangle();
|
||||||
|
effect eLink = EffectLinkEffects(eVis, eStick);
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_WEB));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltwisdr.nss
Normal file
48
src/hakpak/th1_prc8_top/nss/nw_s1_bltwisdr.nss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolt: Wisdom Drain
|
||||||
|
//:: NW_S1_BltWisDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature must make a ranged touch attack to hit
|
||||||
|
the intended target. Fort save is
|
||||||
|
needed to avoid effect.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nCount = (nHD /3);
|
||||||
|
if (nCount == 0) { nCount = 1; }
|
||||||
|
int nDamage = d6(nCount);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eBolt;
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM));
|
||||||
|
//Make a saving throw check
|
||||||
|
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
|
||||||
|
{
|
||||||
|
eBolt = EffectAbilityDecrease(ABILITY_WISDOM, nCount);
|
||||||
|
eBolt = SupernaturalEffect(eBolt);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
76
src/hakpak/th1_prc8_top/nss/nw_s1_coneacid.nss
Normal file
76
src/hakpak/th1_prc8_top/nss/nw_s1_coneacid.nss
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Cone: Acid
|
||||||
|
//:: NW_S1_ConeAcid
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A cone of damage eminated from the monster. Does
|
||||||
|
a set amount of damage based upon the creatures HD
|
||||||
|
and can be halved with a Reflex Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
int nLoop = nHD / 3;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
if(nLoop == 0)
|
||||||
|
{
|
||||||
|
nLoop = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Calculate the damage
|
||||||
|
for (nLoop; nLoop > 0; nLoop--)
|
||||||
|
{
|
||||||
|
nDamage = nDamage + d6(2);
|
||||||
|
}
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eCone;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
//Get first target in spell area
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_ACID));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ACID);
|
||||||
|
//Set damage effect
|
||||||
|
eCone = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
76
src/hakpak/th1_prc8_top/nss/nw_s1_conecold.nss
Normal file
76
src/hakpak/th1_prc8_top/nss/nw_s1_conecold.nss
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Cone: Cold
|
||||||
|
//:: NW_S1_ConeCold
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A cone of damage eminated from the monster. Does
|
||||||
|
a set amount of damage based upon the creatures HD
|
||||||
|
and can be halved with a Reflex Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
int nLoop = nHD / 3;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
if(nLoop == 0)
|
||||||
|
{
|
||||||
|
nLoop = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Calculate the damage
|
||||||
|
for (nLoop; nLoop > 0; nLoop--)
|
||||||
|
{
|
||||||
|
nDamage = nDamage + d6(2);
|
||||||
|
}
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eCone;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
//Get first target in spell area
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_COLD));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
|
||||||
|
//Set damage effect
|
||||||
|
eCone = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
99
src/hakpak/th1_prc8_top/nss/nw_s1_conedisea.nss
Normal file
99
src/hakpak/th1_prc8_top/nss/nw_s1_conedisea.nss
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Cone: Disease
|
||||||
|
//:: NW_S1_ConeDisea
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creature spits out a cone of disease that cannot
|
||||||
|
be avoided unless a Reflex save is made.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 22, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nRacial = MyPRCGetRacialType(oNPC);
|
||||||
|
int nDisease;
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eCone = EffectDisease(nDisease);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DISEASE_S);
|
||||||
|
|
||||||
|
|
||||||
|
//Determine the disease type based on the Racial Type and HD
|
||||||
|
switch (nRacial)
|
||||||
|
{
|
||||||
|
case RACIAL_TYPE_OUTSIDER:
|
||||||
|
nDisease = DISEASE_DEMON_FEVER;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_VERMIN:
|
||||||
|
nDisease = DISEASE_VERMIN_MADNESS;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_UNDEAD:
|
||||||
|
if(nHD <= 3)
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_ZOMBIE_CREEP;
|
||||||
|
}
|
||||||
|
else if (nHD > 3 && nHD <= 10)
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_GHOUL_ROT;
|
||||||
|
}
|
||||||
|
else if(nHD > 10)
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_MUMMY_ROT;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
if(nHD <= 3)
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_MINDFIRE;
|
||||||
|
}
|
||||||
|
else if (nHD > 3 && nHD <= 10)
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_RED_ACHE;
|
||||||
|
}
|
||||||
|
else if(nHD > 10)
|
||||||
|
{
|
||||||
|
nDisease = DISEASE_SHAKES;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
//Get first target in spell area
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_DISEASE));
|
||||||
|
//Get the delay time
|
||||||
|
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
78
src/hakpak/th1_prc8_top/nss/nw_s1_coneelec.nss
Normal file
78
src/hakpak/th1_prc8_top/nss/nw_s1_coneelec.nss
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Cone: Lightning
|
||||||
|
//:: NW_S1_ConeElec
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A cone of damage eminates from the monster. Does
|
||||||
|
a set amount of damage based upon the creatures HD
|
||||||
|
and can be halved with a Reflex Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
int nLoop = nHD / 3;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
if(nLoop == 0)
|
||||||
|
{
|
||||||
|
nLoop = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Calculate the damage
|
||||||
|
for (nLoop; nLoop > 0; nLoop--)
|
||||||
|
{
|
||||||
|
nDamage = nDamage + d6(2);
|
||||||
|
}
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_HAND);
|
||||||
|
effect eCone;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
//Get first target in spell area
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_LIGHTNING));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
|
||||||
|
//Set damage effect
|
||||||
|
eCone = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,0.5));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
75
src/hakpak/th1_prc8_top/nss/nw_s1_conesonic.nss
Normal file
75
src/hakpak/th1_prc8_top/nss/nw_s1_conesonic.nss
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Cone: Sonic
|
||||||
|
//:: NW_S1_ConeSonic
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A cone of damage eminated from the monster. Does
|
||||||
|
a set amount of damage based upon the creatures HD
|
||||||
|
and can be halved with a Reflex Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
int nLoop = nHD / 3;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
if(nLoop == 0)
|
||||||
|
{
|
||||||
|
nLoop = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Calculate the damage
|
||||||
|
for (nLoop; nLoop > 0; nLoop--)
|
||||||
|
{
|
||||||
|
nDamage = nDamage + d6(2);
|
||||||
|
}
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eCone;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
//Get first target in spell area
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_SONIC));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,DAMAGE_TYPE_SONIC);
|
||||||
|
//Set damage effect
|
||||||
|
eCone = EffectDamage(nDamage, DAMAGE_TYPE_SONIC);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
119
src/hakpak/th1_prc8_top/nss/nw_s1_dragfear.nss
Normal file
119
src/hakpak/th1_prc8_top/nss/nw_s1_dragfear.nss
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Dragon Breath Fear
|
||||||
|
//:: NW_S1_DragFear
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Calculates the proper DC Save for the
|
||||||
|
breath weapon based on the HD of the dragon.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
//Declare major variables
|
||||||
|
int nAge = GetHitDice(OBJECT_SELF);
|
||||||
|
int nCount;
|
||||||
|
int nDC;
|
||||||
|
float fDelay;
|
||||||
|
object oTarget;
|
||||||
|
effect eBreath = EffectFrightened();
|
||||||
|
effect eFear = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eBreath, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eFear);
|
||||||
|
|
||||||
|
//Determine the duration and save DC
|
||||||
|
if (nAge <= 6) //Wyrmling
|
||||||
|
{
|
||||||
|
nDC = 13;
|
||||||
|
nCount = 1;
|
||||||
|
}
|
||||||
|
else if (nAge >= 7 && nAge <= 9) //Very Young
|
||||||
|
{
|
||||||
|
nDC = 15;
|
||||||
|
nCount = 2;
|
||||||
|
}
|
||||||
|
else if (nAge >= 10 && nAge <= 12) //Young
|
||||||
|
{
|
||||||
|
nDC = 17;
|
||||||
|
nCount = 3;
|
||||||
|
}
|
||||||
|
else if (nAge >= 13 && nAge <= 15) //Juvenile
|
||||||
|
{
|
||||||
|
nDC = 19;
|
||||||
|
nCount = 4;
|
||||||
|
}
|
||||||
|
else if (nAge >= 16 && nAge <= 18) //Young Adult
|
||||||
|
{
|
||||||
|
nDC = 21;
|
||||||
|
nCount = 5;
|
||||||
|
}
|
||||||
|
else if (nAge >= 19 && nAge <= 21) //Adult
|
||||||
|
{
|
||||||
|
nDC = 24;
|
||||||
|
nCount = 6;
|
||||||
|
}
|
||||||
|
else if (nAge >= 22 && nAge <= 24) //Mature Adult
|
||||||
|
{
|
||||||
|
nDC = 27;
|
||||||
|
nCount = 7;
|
||||||
|
}
|
||||||
|
else if (nAge >= 25 && nAge <= 27) //Old
|
||||||
|
{
|
||||||
|
nDC = 28;
|
||||||
|
nCount = 8;
|
||||||
|
}
|
||||||
|
else if (nAge >= 28 && nAge <= 30) //Very Old
|
||||||
|
{
|
||||||
|
nDC = 30;
|
||||||
|
nCount = 9;
|
||||||
|
}
|
||||||
|
else if (nAge >= 31 && nAge <= 33) //Ancient
|
||||||
|
{
|
||||||
|
nDC = 32;
|
||||||
|
nCount = 10;
|
||||||
|
}
|
||||||
|
else if (nAge >= 34 && nAge <= 37) //Wyrm
|
||||||
|
{
|
||||||
|
nDC = 34;
|
||||||
|
nCount = 11;
|
||||||
|
}
|
||||||
|
else if (nAge > 37) //Great Wyrm
|
||||||
|
{
|
||||||
|
nDC = 37;
|
||||||
|
nCount = 12;
|
||||||
|
}
|
||||||
|
PlayDragonBattleCry();
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE);
|
||||||
|
//Get first target in spell area
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != OBJECT_SELF && !GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
nCount = GetScaledDuration(nCount, oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_FEAR));
|
||||||
|
//Determine the effect delay time
|
||||||
|
fDelay = GetDistanceBetween(oTarget, OBJECT_SELF)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, OBJECT_SELF, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
45
src/hakpak/th1_prc8_top/nss/nw_s1_dragfeara.nss
Normal file
45
src/hakpak/th1_prc8_top/nss/nw_s1_dragfeara.nss
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Aura of Fear On Enter
|
||||||
|
//:: NW_S1_DragFearA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Upon entering the aura of the creature the player
|
||||||
|
must make a will save or be struck with fear because
|
||||||
|
of the creatures presence.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//Declare major variables
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
|
||||||
|
effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eFear = EffectFrightened();
|
||||||
|
effect eLink = EffectLinkEffects(eFear, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur2);
|
||||||
|
|
||||||
|
int nHD = GetHitDice(GetAreaOfEffectCreator());
|
||||||
|
int nDC = 10 + GetHitDice(GetAreaOfEffectCreator())/3;
|
||||||
|
int nDuration = GetScaledDuration(nHD, oTarget);
|
||||||
|
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR));
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
41
src/hakpak/th1_prc8_top/nss/nw_s1_feroc3.nss
Normal file
41
src/hakpak/th1_prc8_top/nss/nw_s1_feroc3.nss
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Ferocity 3
|
||||||
|
//:: NW_S1_Feroc3
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
The Dex and Str of the target increases
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Aug 13, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION); //:: Determine the duration by getting the con modifier
|
||||||
|
int nIncrease = 9;
|
||||||
|
int nDuration = 1 + nCONMod;
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
|
||||||
|
effect eDex = EffectAbilityIncrease(ABILITY_DEXTERITY, nIncrease);
|
||||||
|
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, nIncrease);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eStr, eDex);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
eLink = ExtraordinaryEffect(eLink); //:: Make effect extraordinary
|
||||||
|
|
||||||
|
//effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
|
||||||
|
SignalEvent(oNPC, EventSpellCastAt(oNPC, SPELLABILITY_FEROCITY_3, FALSE));
|
||||||
|
if (nCONMod > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oNPC, RoundsToSeconds(nDuration));
|
||||||
|
//ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
69
src/hakpak/th1_prc8_top/nss/nw_s1_gazechaos.nss
Normal file
69
src/hakpak/th1_prc8_top/nss/nw_s1_gazechaos.nss
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Destroy Law
|
||||||
|
//:: NW_S1_GazeChaos
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save and are of Lawful alignment.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 13, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDeath();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(GetAlignmentLawChaos(oTarget) == ALIGNMENT_LAWFUL)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DESTROY_LAW));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
//DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
76
src/hakpak/th1_prc8_top/nss/nw_s1_gazecharm.nss
Normal file
76
src/hakpak/th1_prc8_top/nss/nw_s1_gazecharm.nss
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Charm
|
||||||
|
//:: NW_S1_GazeCharm
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectCharmed();
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_CHARM);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eDur, eVisDur);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration, oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_CHARM));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
eGaze = GetScaledEffect(eGaze, oTarget);
|
||||||
|
eLink = EffectLinkEffects(eLink, eGaze);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
77
src/hakpak/th1_prc8_top/nss/nw_s1_gazeconfu.nss
Normal file
77
src/hakpak/th1_prc8_top/nss/nw_s1_gazeconfu.nss
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Confusion
|
||||||
|
//:: NW_S1_GazeConfu
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectConfused();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_CONFUSION_S);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eLink = EffectLinkEffects(eDur, eVisDur);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_CONFUSION));
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
eGaze = GetScaledEffect(eGaze, oTarget);
|
||||||
|
eLink = EffectLinkEffects(eLink, eGaze);
|
||||||
|
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
74
src/hakpak/th1_prc8_top/nss/nw_s1_gazedaze.nss
Normal file
74
src/hakpak/th1_prc8_top/nss/nw_s1_gazedaze.nss
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Daze
|
||||||
|
//:: NW_S1_GazeDaze
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDazed();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DAZED_S);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eLink = EffectLinkEffects(eGaze, eVisDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DAZE));
|
||||||
|
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
66
src/hakpak/th1_prc8_top/nss/nw_s1_gazedeath.nss
Normal file
66
src/hakpak/th1_prc8_top/nss/nw_s1_gazedeath.nss
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Death
|
||||||
|
//:: NW_S1_GazeDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDeath();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) || oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DEATH));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
78
src/hakpak/th1_prc8_top/nss/nw_s1_gazedomn.nss
Normal file
78
src/hakpak/th1_prc8_top/nss/nw_s1_gazedomn.nss
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Dominate
|
||||||
|
//:: NW_S1_GazeDomn
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDominated();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DOMINATE_S);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
|
||||||
|
effect eLink = EffectLinkEffects(eDur, eVisDur);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DOMINATE));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(GetIsEnemy(oTarget))
|
||||||
|
{
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
eGaze = GetScaledEffect(eGaze, oTarget);
|
||||||
|
eLink = EffectLinkEffects(eLink, eGaze);
|
||||||
|
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
74
src/hakpak/th1_prc8_top/nss/nw_s1_gazedoom.nss
Normal file
74
src/hakpak/th1_prc8_top/nss/nw_s1_gazedoom.nss
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze of Doom
|
||||||
|
//:: NW_S1_GazeDoom.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
If the target fails a save they recieve a -2
|
||||||
|
penalty to all saves, attack rolls, damage and
|
||||||
|
skill checks for the duration of the spell.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Oct 22, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DOOM);
|
||||||
|
effect eSaves = EffectSavingThrowDecrease(SAVING_THROW_ALL, 2);
|
||||||
|
effect eAttack = EffectAttackDecrease(2);
|
||||||
|
effect eDamage = EffectDamageDecrease(2);
|
||||||
|
effect eSkill = EffectSkillDecrease(SKILL_ALL_SKILLS, 2);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eAttack, eDamage);
|
||||||
|
eLink = EffectLinkEffects(eLink, eSaves);
|
||||||
|
eLink = EffectLinkEffects(eLink, eSkill);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, GetSpellTargetLocation());
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DOOM));
|
||||||
|
//Spell Resistance and Saving throw
|
||||||
|
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
|
||||||
|
{
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink , oTarget, RoundsToSeconds(nDuration));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, GetSpellTargetLocation());
|
||||||
|
}
|
||||||
|
}
|
||||||
70
src/hakpak/th1_prc8_top/nss/nw_s1_gazeevil.nss
Normal file
70
src/hakpak/th1_prc8_top/nss/nw_s1_gazeevil.nss
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Deatroy Good
|
||||||
|
//:: NW_S1_GazeEvil
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 13, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDeath();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_GOOD)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DEATH));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
//DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
74
src/hakpak/th1_prc8_top/nss/nw_s1_gazefear.nss
Normal file
74
src/hakpak/th1_prc8_top/nss/nw_s1_gazefear.nss
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Fear
|
||||||
|
//:: NW_S1_GazeFear
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectFrightened();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
|
||||||
|
effect eLink = EffectLinkEffects(eGaze, eVisDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_FEAR));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
70
src/hakpak/th1_prc8_top/nss/nw_s1_gazegood.nss
Normal file
70
src/hakpak/th1_prc8_top/nss/nw_s1_gazegood.nss
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Deatroy Evil
|
||||||
|
//:: NW_S1_GazeGood
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 13, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDeath();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_EVIL)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DEATH));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
//DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
71
src/hakpak/th1_prc8_top/nss/nw_s1_gazelaw.nss
Normal file
71
src/hakpak/th1_prc8_top/nss/nw_s1_gazelaw.nss
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Deatroy Chaos
|
||||||
|
//:: NW_S1_GazeLaw
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 13, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectDeath();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(GetAlignmentLawChaos(oTarget) == ALIGNMENT_CHAOTIC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DESTROY_LAW));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
//DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
73
src/hakpak/th1_prc8_top/nss/nw_s1_gazestun.nss
Normal file
73
src/hakpak/th1_prc8_top/nss/nw_s1_gazestun.nss
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Gaze: Stun
|
||||||
|
//:: NW_S1_GazeStun
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Cone shape that affects all within the AoE if they
|
||||||
|
fail a Will Save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 9, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "x0_i0_match"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Make sure we are not blind
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
|
||||||
|
{
|
||||||
|
FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDuration = 1 + (nHD / 3);
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eGaze = EffectStunned();
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eLink = EffectLinkEffects(eDur, eVisDur);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_STUNNED));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
eGaze = GetScaledEffect(eGaze, oTarget);
|
||||||
|
eLink = EffectLinkEffects(eLink, eGaze);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
41
src/hakpak/th1_prc8_top/nss/nw_s1_golemgas.nss
Normal file
41
src/hakpak/th1_prc8_top/nss/nw_s1_golemgas.nss
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Golem Breath
|
||||||
|
//:: NW_S1_GolemGas
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Iron Golem spits out a cone of poison.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 22, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
|
||||||
|
//#include "wm_include"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
//Declare major variables
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
object oTarget;
|
||||||
|
effect eCone = EffectPoison(POISON_IRON_GOLEM);
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_GOLEM_BREATH_GAS));
|
||||||
|
//Determine effect delay
|
||||||
|
float fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||||
|
//Apply poison effect
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
66
src/hakpak/th1_prc8_top/nss/nw_s1_hndbreath.nss
Normal file
66
src/hakpak/th1_prc8_top/nss/nw_s1_hndbreath.nss
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Hell Hound Fire Breath
|
||||||
|
//:: NW_S1_HndBreath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A cone of fire eminates from the hound.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
int nDamage = d6(2);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
location lTargetLocation = GetSpellTargetLocation();
|
||||||
|
|
||||||
|
effect eCone;
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HELL_HOUND_FIREBREATH));
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
|
||||||
|
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
|
||||||
|
//Set damage effect
|
||||||
|
eCone = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
67
src/hakpak/th1_prc8_top/nss/nw_s1_howlconf.nss
Normal file
67
src/hakpak/th1_prc8_top/nss/nw_s1_howlconf.nss
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Confuse
|
||||||
|
//:: NW_S1_HowlConf
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 20ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
int nDuration = 1 + (nHD/4);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_CONFUSION_S);
|
||||||
|
effect eHowl = EffectConfused();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eDur2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_MIND);
|
||||||
|
effect eLink = EffectLinkEffects(eHowl, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur2);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_CONFUSE));
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/10;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
65
src/hakpak/th1_prc8_top/nss/nw_s1_howldaze.nss
Normal file
65
src/hakpak/th1_prc8_top/nss/nw_s1_howldaze.nss
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Daze
|
||||||
|
//:: NW_S1_HowlDaze
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 10ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
int nDuration = 1 + (nHD/4);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DAZED_S);
|
||||||
|
effect eHowl = EffectDazed();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eDur2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_MIND);
|
||||||
|
effect eLink = EffectLinkEffects(eHowl, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur2);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_DAZE));
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/10;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
59
src/hakpak/th1_prc8_top/nss/nw_s1_howldeath.nss
Normal file
59
src/hakpak/th1_prc8_top/nss/nw_s1_howldeath.nss
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Death
|
||||||
|
//:: NW_S1_HowlDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 10ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_ODD);
|
||||||
|
effect eHowl = EffectDeath();
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_DEATH));
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/10;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
//ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
68
src/hakpak/th1_prc8_top/nss/nw_s1_howlfear.nss
Normal file
68
src/hakpak/th1_prc8_top/nss/nw_s1_howlfear.nss
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Fear
|
||||||
|
//:: NW_S1_HowlFear
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 10ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
int nDuration = 1 + (nHD/4);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
|
||||||
|
effect eHowl = EffectFrightened();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eDur2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_MIND);
|
||||||
|
effect eLink = EffectLinkEffects(eHowl, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur2);
|
||||||
|
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/10;
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_FEAR));
|
||||||
|
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
65
src/hakpak/th1_prc8_top/nss/nw_s1_howlparal.nss
Normal file
65
src/hakpak/th1_prc8_top/nss/nw_s1_howlparal.nss
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Paralysis
|
||||||
|
//:: NW_S1_HowlParal
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 10ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
int nDuration = 1 + (nHD/4);
|
||||||
|
if(nDuration == 0) { nDuration = 1; }
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eHowl = EffectParalyze();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eDur2 = EffectVisualEffect(VFX_DUR_PARALYZE_HOLD);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_ODD);
|
||||||
|
effect eLink = EffectLinkEffects(eHowl, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur2);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/10;
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_PARALYSIS));
|
||||||
|
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_NONE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
65
src/hakpak/th1_prc8_top/nss/nw_s1_howlsonic.nss
Normal file
65
src/hakpak/th1_prc8_top/nss/nw_s1_howlsonic.nss
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Sonic
|
||||||
|
//:: NW_S1_HowlSonic
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 10ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
int nDamage;
|
||||||
|
int nSonic = nHD/4;
|
||||||
|
if(nSonic == 0) { nSonic = 1; }
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/20;
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_SONIC));
|
||||||
|
nDamage = d6(nSonic);
|
||||||
|
//Make a saving throw check
|
||||||
|
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_SONIC, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
nDamage = nDamage / 2;
|
||||||
|
}
|
||||||
|
//Set damage effect
|
||||||
|
eHowl = EffectDamage(nDamage, DAMAGE_TYPE_SONIC);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
66
src/hakpak/th1_prc8_top/nss/nw_s1_howlstun.nss
Normal file
66
src/hakpak/th1_prc8_top/nss/nw_s1_howlstun.nss
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Howl: Stun
|
||||||
|
//:: NW_S1_HowlStun
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A howl emanates from the creature which affects
|
||||||
|
all within 10ft unless they make a save.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/4);
|
||||||
|
int nDuration = 1 + (nHD/4);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||||
|
effect eHowl = EffectStunned();
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eDur2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_HOWL_MIND);
|
||||||
|
effect eLink = EffectLinkEffects(eHowl, eDur);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur2);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/10;
|
||||||
|
nDuration = GetScaledDuration(nDuration , oTarget);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_STUN));
|
||||||
|
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
61
src/hakpak/th1_prc8_top/nss/nw_s1_krenscare.nss
Normal file
61
src/hakpak/th1_prc8_top/nss/nw_s1_krenscare.nss
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Krenshar Fear Stare
|
||||||
|
//:: NW_S1_KrenScare
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Causes those in the gaze to be struck with fear
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Jan 8, 2002
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
|
||||||
|
effect eFear = EffectFrightened();
|
||||||
|
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
//Link the fear and mind effects
|
||||||
|
effect eLink = EffectLinkEffects(eFear, eMind);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
|
||||||
|
//Get first target in the spell cone
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_CONE, 10.0, GetSpellTargetLocation(), TRUE);
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
//Make faction check
|
||||||
|
if(GetIsEnemy(oTarget))
|
||||||
|
{
|
||||||
|
fDelay = GetDistanceToObject(oTarget)/20;
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_KRENSHAR_SCARE));
|
||||||
|
//Make a will save
|
||||||
|
if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
|
||||||
|
{
|
||||||
|
//Apply the linked effects and the VFX impact
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(3)));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in the spell cone
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_CONE, 10.0, GetSpellTargetLocation(), TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
63
src/hakpak/th1_prc8_top/nss/nw_s1_mephsalt.nss
Normal file
63
src/hakpak/th1_prc8_top/nss/nw_s1_mephsalt.nss
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Salt Mephit Breath
|
||||||
|
//:: NW_S1_MephSalt
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Salt Mephit shoots out a bolt of corrosive material
|
||||||
|
that causes 1d4 damage and reduces AC and Attack by 2
|
||||||
|
|
||||||
|
This should be a cone - Jaysyn
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
int nDamage = d4();
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||||
|
effect eBolt, eAttack, eAC;
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ACID);
|
||||||
|
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nDamage == 0) {nTouch = 0;}
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MEPHIT_SALT_BREATH));
|
||||||
|
|
||||||
|
//Set damage, AC mod and attack mod effects
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
|
||||||
|
eAC = EffectACDecrease(2);
|
||||||
|
eAttack = EffectAttackDecrease(2);
|
||||||
|
effect eLink = EffectLinkEffects(eAttack, eAC);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(3));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
67
src/hakpak/th1_prc8_top/nss/nw_s1_mephsteam.nss
Normal file
67
src/hakpak/th1_prc8_top/nss/nw_s1_mephsteam.nss
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Steam Mephit Breath
|
||||||
|
//:: NW_S1_MephSteam
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Steam Mephit shoots out a bolt of steam
|
||||||
|
that causes 1d4 damage and reduces AC by 4
|
||||||
|
and Attack by 2
|
||||||
|
|
||||||
|
This should be a cone - Jaysyn
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 11, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
int nDamage = d4();
|
||||||
|
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||||
|
effect eBolt, eAttack, eAC;
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
|
||||||
|
|
||||||
|
//Make a ranged touch attack
|
||||||
|
int nTouch = TouchAttackRanged(oTarget);
|
||||||
|
if(nDamage == 0) {nTouch = 0;}
|
||||||
|
|
||||||
|
if(nTouch > 0)
|
||||||
|
{
|
||||||
|
if(nTouch == 2)
|
||||||
|
{
|
||||||
|
nDamage *= 2;
|
||||||
|
}
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MEPHIT_STEAM_BREATH));
|
||||||
|
|
||||||
|
//Set damage, AC mod and attack mod effects
|
||||||
|
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
|
||||||
|
eAC = EffectACDecrease(4);
|
||||||
|
eAttack = EffectAttackDecrease(2);
|
||||||
|
effect eLink = EffectLinkEffects(eAC, eAttack);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(3));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
53
src/hakpak/th1_prc8_top/nss/nw_s1_mumundead.nss
Normal file
53
src/hakpak/th1_prc8_top/nss/nw_s1_mumundead.nss
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Bolster Undead
|
||||||
|
//:: NW_S1_MumUndead
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
This spell increases the Turn Resistance of
|
||||||
|
all undead around the caster by an amount
|
||||||
|
scaled with HD.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 22, 2002
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nScaling = nHD / 4;
|
||||||
|
|
||||||
|
if(nScaling == 0) {nScaling = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eTurn = EffectTurnResistanceIncrease(nScaling);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_EVIL);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
|
||||||
|
|
||||||
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(oNPC));
|
||||||
|
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(GetIsFriend(oTarget))
|
||||||
|
{
|
||||||
|
fDelay = GetRandomDelay();
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MUMMY_BOLSTER_UNDEAD, FALSE));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eTurn, oTarget, RoundsToSeconds(10)));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
73
src/hakpak/th1_prc8_top/nss/nw_s1_pulschrdr.nss
Normal file
73
src/hakpak/th1_prc8_top/nss/nw_s1_pulschrdr.nss
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Charisma Drain
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_CHARISMA));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Set the Ability mod and change to supernatural effect
|
||||||
|
eHowl = EffectAbilityDecrease(ABILITY_CHARISMA, nDamage);
|
||||||
|
eHowl = SupernaturalEffect(eHowl);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulscold.nss
Normal file
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulscold.nss
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Cold
|
||||||
|
//:: NW_S1_PulsCold
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage = d6(nHD);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_COLD);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_COLD));
|
||||||
|
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
eHowl = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
71
src/hakpak/th1_prc8_top/nss/nw_s1_pulscondr.nss
Normal file
71
src/hakpak/th1_prc8_top/nss/nw_s1_pulscondr.nss
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Constitution Drain
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_CONSTITUTION));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Set the Ability mod and change to supernatural effect
|
||||||
|
eHowl = EffectAbilityDecrease(ABILITY_CONSTITUTION, nDamage);
|
||||||
|
eHowl = SupernaturalEffect(eHowl);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulsdeath.nss
Normal file
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulsdeath.nss
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Death
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||||
|
effect eHowl = EffectDeath();
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_DEATH));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
//DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
70
src/hakpak/th1_prc8_top/nss/nw_s1_pulsdexdr.nss
Normal file
70
src/hakpak/th1_prc8_top/nss/nw_s1_pulsdexdr.nss
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Dexterity Drain
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_DEXTERITY));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Set the Ability mod and change to supernatural effect
|
||||||
|
eHowl = EffectAbilityDecrease(ABILITY_DEXTERITY, nDamage);
|
||||||
|
eHowl = SupernaturalEffect(eHowl);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
85
src/hakpak/th1_prc8_top/nss/nw_s1_pulsdis.nss
Normal file
85
src/hakpak/th1_prc8_top/nss/nw_s1_pulsdis.nss
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Disease
|
||||||
|
//:: NW_S1_PulsDis
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of disease spreads out from the creature
|
||||||
|
and infects all those within 10ft
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Aug 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nRacial = MyPRCGetRacialType(oNPC);
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nDamage = d6(nHD);
|
||||||
|
int nDisease;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eDisease;
|
||||||
|
effect ePulse = EffectVisualEffect(266);
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||||
|
|
||||||
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, ePulse, GetLocation(oNPC));
|
||||||
|
|
||||||
|
//Determine the disease type based on the Racial Type
|
||||||
|
switch (nRacial)
|
||||||
|
{
|
||||||
|
case RACIAL_TYPE_VERMIN:
|
||||||
|
nDisease = DISEASE_VERMIN_MADNESS;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_UNDEAD:
|
||||||
|
nDisease = DISEASE_FILTH_FEVER;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_OUTSIDER:
|
||||||
|
nDisease = DISEASE_DEMON_FEVER;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_MAGICAL_BEAST:
|
||||||
|
nDisease = DISEASE_SOLDIER_SHAKES;
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_ABERRATION:
|
||||||
|
nDisease = DISEASE_BLINDING_SICKNESS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
nDisease = DISEASE_MINDFIRE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_DISEASE));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||||
|
eDisease = EffectDisease(nDisease);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDisease, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulselec.nss
Normal file
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulselec.nss
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Lightning
|
||||||
|
//:: NW_S0_CallLghtn.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
All creatures within 10ft of the creature take
|
||||||
|
1d6 per HD up to 10d6
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 22, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||||
|
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_CHEST);
|
||||||
|
effect eHowl = EffectVisualEffect(VFX_IMP_PULSE_COLD);
|
||||||
|
|
||||||
|
DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eHowl, GetLocation(oNPC)));
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_LIGHTNING));
|
||||||
|
//Roll the damage
|
||||||
|
nDamage = d6(nHD);
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
eHowl = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget, 0.5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
69
src/hakpak/th1_prc8_top/nss/nw_s1_pulsfire.nss
Normal file
69
src/hakpak/th1_prc8_top/nss/nw_s1_pulsfire.nss
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Fire
|
||||||
|
//:: NW_S1_PulsFire
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_FIRE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_FIRE));
|
||||||
|
//Roll the damage
|
||||||
|
nDamage = d6(nHD);
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||||
|
eHowl = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
89
src/hakpak/th1_prc8_top/nss/nw_s1_pulsholy.nss
Normal file
89
src/hakpak/th1_prc8_top/nss/nw_s1_pulsholy.nss
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Holy
|
||||||
|
//:: NW_S1_PulsHoly
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants. Undead are damaged, allies are healed.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_HEALING_M);
|
||||||
|
effect eVis2 = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_HOLY);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Roll the amount to heal or damage
|
||||||
|
nDamage = d4(nHD);
|
||||||
|
//If the target is not undead
|
||||||
|
if (MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
|
||||||
|
{
|
||||||
|
//Make a faction check
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(GetIsFriend(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY, FALSE));
|
||||||
|
//Set heal effect
|
||||||
|
eHowl = EffectHeal(nDamage);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_DIVINE);
|
||||||
|
//Set damage effect
|
||||||
|
eHowl = EffectDamage(nDamage, DAMAGE_TYPE_DIVINE) ;
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY));
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
72
src/hakpak/th1_prc8_top/nss/nw_s1_pulsintdr.nss
Normal file
72
src/hakpak/th1_prc8_top/nss/nw_s1_pulsintdr.nss
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Intelligence Drain
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_INTELLIGENCE));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Set the Ability mod and change to supernatural effect
|
||||||
|
eHowl = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nDamage);
|
||||||
|
eHowl = SupernaturalEffect(eHowl);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
62
src/hakpak/th1_prc8_top/nss/nw_s1_pulslvldr.nss
Normal file
62
src/hakpak/th1_prc8_top/nss/nw_s1_pulslvldr.nss
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Level Drain
|
||||||
|
//:: NW_S1_PulsLvlDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(oNPC));
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
fDelay = GetSpellEffectDelay(GetLocation(oNPC), oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
eHowl = EffectNegativeLevel(1);
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
87
src/hakpak/th1_prc8_top/nss/nw_s1_pulsneg.nss
Normal file
87
src/hakpak/th1_prc8_top/nss/nw_s1_pulsneg.nss
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Negative
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants. Undead are healed.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
int nDamage;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_HEALING_M);
|
||||||
|
effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Roll the amount to heal or damage
|
||||||
|
nDamage = d4(nHD);
|
||||||
|
//If the target is undead
|
||||||
|
if (MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
|
||||||
|
{
|
||||||
|
//Make a faction check
|
||||||
|
if(GetIsFriend(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY, FALSE));
|
||||||
|
//Set heal effect
|
||||||
|
eHowl = EffectHeal(nDamage);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
|
||||||
|
{
|
||||||
|
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||||
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE);
|
||||||
|
//Set damage effect
|
||||||
|
eHowl = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE);
|
||||||
|
if(nDamage > 0)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY));
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
138
src/hakpak/th1_prc8_top/nss/nw_s1_pulspois.nss
Normal file
138
src/hakpak/th1_prc8_top/nss/nw_s1_pulspois.nss
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Poison
|
||||||
|
//:: NW_S1_PulsPois
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. All who make a reflex save are not
|
||||||
|
poisoned.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 23, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_racial"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
int nRacial = MyPRCGetRacialType(oNPC);
|
||||||
|
int nPoison;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect ePoison;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||||
|
|
||||||
|
//Determine the poison type based on the Racial Type and HD
|
||||||
|
switch (nRacial)
|
||||||
|
{
|
||||||
|
case RACIAL_TYPE_OUTSIDER:
|
||||||
|
if (nHD <= 9)
|
||||||
|
{
|
||||||
|
nPoison = POISON_QUASIT_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD > 9 && nHD < 13)
|
||||||
|
{
|
||||||
|
nPoison = POISON_BEBILITH_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD >= 13)
|
||||||
|
{
|
||||||
|
nPoison = POISON_PIT_FIEND_ICHOR;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RACIAL_TYPE_VERMIN:
|
||||||
|
if (nHD < 3)
|
||||||
|
{
|
||||||
|
nPoison = POISON_TINY_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 3 && nHD < 6)
|
||||||
|
{
|
||||||
|
nPoison = POISON_SMALL_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 6 && nHD < 9)
|
||||||
|
{
|
||||||
|
nPoison = POISON_MEDIUM_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 9 && nHD < 12)
|
||||||
|
{
|
||||||
|
nPoison = POISON_LARGE_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 12 && nHD < 15)
|
||||||
|
{
|
||||||
|
nPoison = POISON_HUGE_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 15 && nHD < 18)
|
||||||
|
{
|
||||||
|
nPoison = POISON_GARGANTUAN_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD >= 18)
|
||||||
|
{
|
||||||
|
nPoison = POISON_COLOSSAL_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (nHD < 3)
|
||||||
|
{
|
||||||
|
nPoison = POISON_NIGHTSHADE;
|
||||||
|
}
|
||||||
|
else if (nHD <= 3 && nHD < 6)
|
||||||
|
{
|
||||||
|
nPoison = POISON_BLADE_BANE;
|
||||||
|
}
|
||||||
|
else if (nHD <= 6 && nHD < 9)
|
||||||
|
{
|
||||||
|
nPoison = POISON_BLOODROOT;
|
||||||
|
}
|
||||||
|
else if (nHD <= 9 && nHD < 12)
|
||||||
|
{
|
||||||
|
nPoison = POISON_LARGE_SPIDER_VENOM;
|
||||||
|
}
|
||||||
|
else if (nHD <= 12 && nHD < 15)
|
||||||
|
{
|
||||||
|
nPoison = POISON_LICH_DUST;
|
||||||
|
}
|
||||||
|
else if (nHD <= 15 && nHD < 18)
|
||||||
|
{
|
||||||
|
nPoison = POISON_DARK_REAVER_POWDER;
|
||||||
|
}
|
||||||
|
else if (nHD >= 18 )
|
||||||
|
{
|
||||||
|
nPoison = POISON_BLACK_LOTUS_EXTRACT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_POISON));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
ePoison = EffectPoison(nPoison);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
50
src/hakpak/th1_prc8_top/nss/nw_s1_pulsspore.nss
Normal file
50
src/hakpak/th1_prc8_top/nss/nw_s1_pulsspore.nss
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Vrock Spores
|
||||||
|
//:: NW_S1_PulsSpore
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of disease spreads out from the creature
|
||||||
|
and infects all those within 10ft
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Jan 8, 2002
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
effect eDisease;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_DISEASE));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
eDisease = EffectDisease(DISEASE_SOLDIER_SHAKES);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDisease, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
71
src/hakpak/th1_prc8_top/nss/nw_s1_pulsstrdr.nss
Normal file
71
src/hakpak/th1_prc8_top/nss/nw_s1_pulsstrdr.nss
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Strength Drain
|
||||||
|
//:: NW_S1_PulsDeath
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(oTarget != oNPC)
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_STRENGTH));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Set the Ability mod and change to supernatural effect
|
||||||
|
eHowl = EffectAbilityDecrease(ABILITY_STRENGTH, nDamage);
|
||||||
|
eHowl = SupernaturalEffect(eHowl);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
51
src/hakpak/th1_prc8_top/nss/nw_s1_pulswind.nss
Normal file
51
src/hakpak/th1_prc8_top/nss/nw_s1_pulswind.nss
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse Whirlwind
|
||||||
|
//:: NW_S1_PulsWind
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//::///////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
All those that fail a save are knocked
|
||||||
|
down by the elemental whirlwind.
|
||||||
|
*/
|
||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Jan 8, 2002
|
||||||
|
//::///////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nSTRMod = GetAbilityModifier(ABILITY_STRENGTH, oNPC);
|
||||||
|
int nDC = 10 +nSTRMod+ (nHD/2);
|
||||||
|
|
||||||
|
effect eDown = EffectKnockdown();
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_WIND);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||||
|
{
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDown, oTarget, 5.0);
|
||||||
|
}
|
||||||
|
//Get next target in spell area
|
||||||
|
}
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||||
|
}
|
||||||
|
}
|
||||||
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulswisdr.nss
Normal file
68
src/hakpak/th1_prc8_top/nss/nw_s1_pulswisdr.nss
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Pulse: Wisdom Drain
|
||||||
|
//:: NW_S1_PulsWisDr
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
A wave of energy emanates from the creature which affects
|
||||||
|
all within 10ft. Damage can be reduced by half for all
|
||||||
|
damaging variants.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 14, 2000
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget;
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
int nDamage = nHD/5;
|
||||||
|
|
||||||
|
if (nDamage == 0) {nDamage = 1;}
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||||
|
effect eHowl;
|
||||||
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||||
|
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(OBJECT_SELF));
|
||||||
|
while(GetIsObjectValid(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_WISDOM));
|
||||||
|
//Determine effect delay
|
||||||
|
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
//Set the Ability mod and change to supernatural effect
|
||||||
|
eHowl = EffectAbilityDecrease(ABILITY_WISDOM, nDamage);
|
||||||
|
eHowl = SupernaturalEffect(eHowl);
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Get first target in spell area
|
||||||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(OBJECT_SELF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
64
src/hakpak/th1_prc8_top/nss/nw_s1_smokeclaw.nss
Normal file
64
src/hakpak/th1_prc8_top/nss/nw_s1_smokeclaw.nss
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Smoke Claws
|
||||||
|
//:: NW_S1_SmokeClaw
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
If a Belker succeeds at a touch attack the
|
||||||
|
target breaths in part of the Belker and suffers
|
||||||
|
3d4 damage per round until a Fortitude save is
|
||||||
|
made.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 23 , 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
|
||||||
|
int bSave = FALSE;
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_COM_BLOOD_REG_RED);
|
||||||
|
effect eSmoke;
|
||||||
|
float fDelay = 0.0;
|
||||||
|
|
||||||
|
//Make a touch attack
|
||||||
|
if(TouchAttackMelee(oTarget))
|
||||||
|
{
|
||||||
|
if(!GetIsReactionTypeFriendly(oTarget))
|
||||||
|
{
|
||||||
|
//Make a saving throw check
|
||||||
|
while (bSave == FALSE)
|
||||||
|
{
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE, oNPC, fDelay))
|
||||||
|
{
|
||||||
|
bSave = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Set damage
|
||||||
|
eSmoke = EffectDamage(d4(3));
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eSmoke, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
//Increment the delay
|
||||||
|
fDelay = fDelay + 6.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
57
src/hakpak/th1_prc8_top/nss/nw_s1_stink_a.nss
Normal file
57
src/hakpak/th1_prc8_top/nss/nw_s1_stink_a.nss
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Stinking Cloud On Enter
|
||||||
|
//:: NW_S1_Stink_A.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Those within the area of effect must make a
|
||||||
|
fortitude save or be dazed.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 17, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject(); //Get the first object in the persistant area
|
||||||
|
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||||
|
int nDC = 10 +nCONMod+ (nHD/2);
|
||||||
|
|
||||||
|
effect eStink = EffectDazed();
|
||||||
|
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eMind, eStink);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_IMP_DAZED_S);
|
||||||
|
|
||||||
|
float fDelay;
|
||||||
|
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
if(MyPRCGetRacialType(oTarget) != RACIAL_TYPE_VERMIN)
|
||||||
|
{
|
||||||
|
if(GetIsEnemy(oTarget))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_STINKING_CLOUD));
|
||||||
|
//Make a Fort Save
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON))
|
||||||
|
{
|
||||||
|
fDelay = GetRandomDelay(0.25, 1.0);
|
||||||
|
//Apply the VFX impact and linked effects
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(2)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
56
src/hakpak/th1_prc8_top/nss/nw_s1_tyrantfga.nss
Normal file
56
src/hakpak/th1_prc8_top/nss/nw_s1_tyrantfga.nss
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Tyrant Fog Zombie Mist Heartbeat
|
||||||
|
//:: NW_S1_TyrantFgA.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creatures entering the area around the zombie
|
||||||
|
must save or take 1 point of Constitution
|
||||||
|
damage.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "NW_I0_SPELLS"
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = GetAreaOfEffectCreator();
|
||||||
|
object oTarget = GetEnteringObject();
|
||||||
|
//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
|
||||||
|
|
||||||
|
int bAbsent = TRUE;
|
||||||
|
int nHD = GetHitDice(oNPC);
|
||||||
|
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||||
|
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||||
|
|
||||||
|
effect eTest;
|
||||||
|
effect eCon = EffectAbilityDecrease(ABILITY_CONSTITUTION, 1);
|
||||||
|
eCon = ExtraordinaryEffect(eCon);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||||
|
effect eLink = EffectLinkEffects(eCon, eDur);
|
||||||
|
|
||||||
|
if(!GetHasSpellEffect(SPELLABILITY_TYRANT_FOG_MIST, oTarget))
|
||||||
|
{
|
||||||
|
if(bAbsent == TRUE)
|
||||||
|
{
|
||||||
|
if(GetIsEnemy(oTarget, oNPC))
|
||||||
|
{
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_TYRANT_FOG_MIST));
|
||||||
|
//Make a saving throw check
|
||||||
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON))
|
||||||
|
{
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
src/hakpak/th1_prc8_top/nss/nw_s1_tyrantfog.nss
Normal file
25
src/hakpak/th1_prc8_top/nss/nw_s1_tyrantfog.nss
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Tyrant Fog Zombie Mist
|
||||||
|
//:: NW_S1_TyrantFog.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Creatures entering the area around the zombie
|
||||||
|
must save or take 1 point of Constitution
|
||||||
|
damage.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: May 25, 2001
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//#include "wm_include"
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//Declare and apply the AOE
|
||||||
|
effect eAOE = EffectAreaOfEffect(AOE_MOB_TYRANT_FOG);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, OBJECT_SELF, HoursToSeconds(100));
|
||||||
|
}
|
||||||
45
src/hakpak/th1_prc8_top/nss/nw_s2_divprot.nss
Normal file
45
src/hakpak/th1_prc8_top/nss/nw_s2_divprot.nss
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Divine Protection
|
||||||
|
//:: NW_S2_DivProt.nss
|
||||||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/*
|
||||||
|
Makes the target creature invisible to hostile
|
||||||
|
creatures unless they make a Will Save to ignore
|
||||||
|
the Sanctuary Effect
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Preston Watamaniuk
|
||||||
|
//:: Created On: Jan 8, 2002
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
//#include "wm_include"
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//if (WildMagicOverride()) { return; }
|
||||||
|
|
||||||
|
//:: Declare major variables
|
||||||
|
object oNPC = OBJECT_SELF;
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
|
||||||
|
effect eVis = EffectVisualEffect(VFX_DUR_SANCTUARY);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||||
|
int nDC = 10 + GetAbilityModifier(ABILITY_CHARISMA) + GetLevelByTypeDivine(oNPC);
|
||||||
|
effect eSanc = EffectSanctuary(nDC);
|
||||||
|
|
||||||
|
effect eLink = EffectLinkEffects(eVis, eSanc);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
|
SignalEvent(OBJECT_SELF, EventSpellCastAt(oNPC, SPELLABILITY_DIVINE_PROTECTION, FALSE));
|
||||||
|
|
||||||
|
int nDuration = GetLevelByTypeDivine(oNPC);
|
||||||
|
//Enter Metamagic conditions
|
||||||
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||||
|
if (nMetaMagic == METAMAGIC_EXTEND)
|
||||||
|
{
|
||||||
|
nDuration = nDuration *2; //Duration is +100%
|
||||||
|
}
|
||||||
|
//Apply the VFX impact and effects
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
|
||||||
|
}
|
||||||
|
|
||||||
968
src/include/bnd_inc_bndfunc.nss
Normal file
968
src/include/bnd_inc_bndfunc.nss
Normal file
@@ -0,0 +1,968 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Binding/Vestiges main include: Miscellaneous
|
||||||
|
//:: bnd_inc_bndfunc
|
||||||
|
//::///////////////////////////////////////////////
|
||||||
|
/** @file
|
||||||
|
Defines various functions and other stuff that
|
||||||
|
do something related to Binding.
|
||||||
|
|
||||||
|
@author Stratovarius
|
||||||
|
@date Created - 2021.02.02
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Function prototypes */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines the given creature's Binder level.
|
||||||
|
* The vestige is used for Favored Vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The creature whose Binder level to determine
|
||||||
|
* @param nVestige The rowid of the vestige in spells.2da
|
||||||
|
*
|
||||||
|
* @return The Binder level
|
||||||
|
*/
|
||||||
|
int GetBinderLevel(object oBinder, int nVestige = -1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines whether a given class is a Binding-related class or not.
|
||||||
|
*
|
||||||
|
* @param nClass CLASS_TYPE_* of the class to test
|
||||||
|
* @return TRUE if the class is a Binding-related class, FALSE otherwise
|
||||||
|
*/
|
||||||
|
int GetIsBindingClass(int nClass);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculates how many Binder levels are gained by a given creature from
|
||||||
|
* it's levels in prestige classes.
|
||||||
|
*
|
||||||
|
* @param oBinder Creature to calculate added Binder levels for
|
||||||
|
* @return The number of Binder levels gained
|
||||||
|
*/
|
||||||
|
int GetBindingPRCLevels(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the master 2da of all vestiges - "vestiges"
|
||||||
|
*/
|
||||||
|
string GetVestigeFile();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the master 2da of binds and bind levels - "cls_bind_binder"
|
||||||
|
*/
|
||||||
|
string GetBindingClassFile(int nClass);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Casts a particular vestige on the binder
|
||||||
|
* Should only ever be called via Contact Vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige to attempt binding
|
||||||
|
*/
|
||||||
|
void ApplyVestige(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes a particular vestige from the binder
|
||||||
|
* Should only ever be called via Contact Vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige to expel
|
||||||
|
*/
|
||||||
|
void ExpelVestige(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rolls the check to see whether it is a good or bad pact
|
||||||
|
* Sets a local int to mark pact quality
|
||||||
|
*
|
||||||
|
* @param oBinder The binder attempting the check
|
||||||
|
* @param nVestige The rowid of the vestige in vestiges.2da
|
||||||
|
*
|
||||||
|
* @return The rowid of the vestige in spells.2da
|
||||||
|
*/
|
||||||
|
int DoBindingCheck(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does the animations and count down to bind a particular vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nTime Should always be 66 seconds
|
||||||
|
* @param nVestige The vestige to attempt binding
|
||||||
|
* @param nExpel Whether this is a usage of expel vestige or not
|
||||||
|
*/
|
||||||
|
void ContactVestige(object oBinder, int nTime, int nVestige, int nExpel = FALSE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does the animations and count down to bind a particular vestige
|
||||||
|
* Should only ever be called via Contact Vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nTime Should always be 60 seconds
|
||||||
|
* @param nVestige The vestige to attempt binding
|
||||||
|
* @param nExpel Whether this is a usage of expel vestige or not
|
||||||
|
*/
|
||||||
|
void BindVestige(object oBinder, int nTime, int nVestige, int nExpel = FALSE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks to see whether an ability is off cooldown or not
|
||||||
|
* Sets the cooldown if the ability is usable
|
||||||
|
* Informs the player via floating text
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nAbil The vestige ability (such as Amon's Fire Breath SpellId)
|
||||||
|
* @param nVestige The vestige the ability comes from (such as VESTIGE_AMON)
|
||||||
|
*
|
||||||
|
* @return TRUE/FALSE for off cooldown or not
|
||||||
|
*/
|
||||||
|
int BindAbilCooldown(object oBinder, int nAbil, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How many vestiges can the binder have bound
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return A number between 1 and 4
|
||||||
|
*/
|
||||||
|
int GetMaxVestigeCount(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* What is the highest level vestige the binder can bind?
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return A number between 1 and 8
|
||||||
|
*/
|
||||||
|
int GetMaxVestigeLevel(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* What is the vestige's level?
|
||||||
|
*
|
||||||
|
* @param nVestige The vestige rowid in vestiges.2da
|
||||||
|
*
|
||||||
|
* @return A number between 1 and 8
|
||||||
|
*/
|
||||||
|
int GetVestigeLevel(int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How many total binds are active on the binder?
|
||||||
|
* Checks via the spellid of the vestiges
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return 0 or higher
|
||||||
|
*/
|
||||||
|
int GetBindCount(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How many uses of pact augmentation does the
|
||||||
|
* binder get when he binds a vestige?
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return 0 to 5
|
||||||
|
*/
|
||||||
|
int GetPactAugmentCount(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the penalty to be applied if the
|
||||||
|
* binder made a bad pact with the vestige
|
||||||
|
* Should never be called directly
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return Linked effect
|
||||||
|
*/
|
||||||
|
effect EffectPact(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the binder has the rapid recovery
|
||||||
|
* feat for the named vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige rowid in spells.2da
|
||||||
|
*
|
||||||
|
* @return TRUE/FALSE
|
||||||
|
*/
|
||||||
|
int RapidRecovery(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the binder has the favored vestige
|
||||||
|
* feat for the named vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige rowid in spells.2da
|
||||||
|
*
|
||||||
|
* @return TRUE/FALSE
|
||||||
|
*/
|
||||||
|
int FavoredVestige(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the binder has the favored vestige
|
||||||
|
* focus feat for the named vestige
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige rowid in spells.2da
|
||||||
|
*
|
||||||
|
* @return TRUE/FALSE
|
||||||
|
*/
|
||||||
|
int FavoredVestigeFocus(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the DC for saving against a vestige's abilities
|
||||||
|
* 10 + 1/2 Binding level + Charisma Modifier + bonuses
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige rowid in spells.2da
|
||||||
|
*
|
||||||
|
* @return A number
|
||||||
|
*/
|
||||||
|
int GetBinderDC(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for the special requirements of each vestige
|
||||||
|
* or for the presence of the Ignore Special Requirements
|
||||||
|
* feat. True means passing requirements, False is a fail
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige rowid in spells.2da
|
||||||
|
*
|
||||||
|
* @return TRUE/FALSE
|
||||||
|
*/
|
||||||
|
int DoSpecialRequirements(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for the special requirements of each vestige
|
||||||
|
* or for the presence of the Ignore Special Requirements
|
||||||
|
* feat. True means passing requirements, False is a fail
|
||||||
|
*
|
||||||
|
* This is for requirements that apply during the summoning process
|
||||||
|
* due to having a cost that applies only after the user has selected
|
||||||
|
* which vestige they wish to bind
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige rowid in spells.2da
|
||||||
|
*
|
||||||
|
* @return TRUE/FALSE
|
||||||
|
*/
|
||||||
|
int DoSummonRequirements(object oBinder, int nVestige);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for whether the vestige ability was exploited (meaning not
|
||||||
|
* granted) by the Anima Mage class feature.
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige ability rowid in vestigeabil.2da
|
||||||
|
*
|
||||||
|
* @return TRUE if exploited/FALSE otherwise
|
||||||
|
*/
|
||||||
|
int GetIsVestigeExploited(object oBinder, int nVestigeAbil);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marks a vestige ability as exploited (meaning it will not be
|
||||||
|
* granted) by the Anima Mage class feature.
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
* @param nVestige The vestige ability rowid in vestigeabil.2da
|
||||||
|
*/
|
||||||
|
void SetIsVestigeExploited(object oBinder, int nVestigeAbil);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the patron vestige is bound to a Knight of the Sacred Seal
|
||||||
|
* If not, the class loses all class features
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return TRUE if bound, FALSE otherwise
|
||||||
|
*/
|
||||||
|
int GetIsPatronVestigeBound(object oBinder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks who the patron vestige is for a Knight of the Sacred Seal
|
||||||
|
* Used to ensure they always have a good pact with their patron
|
||||||
|
*
|
||||||
|
* @param oBinder The binder
|
||||||
|
*
|
||||||
|
* @return The VESTIGE_* const if one exists, -1 otherwise
|
||||||
|
*/
|
||||||
|
int GetPatronVestige(object oBinder);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Includes */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "prc_inc_spells"
|
||||||
|
#include "inc_dynconv"
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Constants */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
const int VESTIGE_CONTACT_TIME = 66;
|
||||||
|
const int VESTIGE_BINDING_TIME = 60;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Function definitions */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
int GetBinderLevel(object oBinder, int nVestige = -1)
|
||||||
|
{
|
||||||
|
int nLevel;
|
||||||
|
|
||||||
|
if(GetLevelByClass(CLASS_TYPE_BINDER, oBinder))
|
||||||
|
{
|
||||||
|
// Binder level is class level + prestige
|
||||||
|
nLevel = GetLevelByClass(CLASS_TYPE_BINDER, oBinder);
|
||||||
|
nLevel += GetBindingPRCLevels(oBinder);
|
||||||
|
}
|
||||||
|
// If you have no levels in binder, but you have Bind Vestige feat
|
||||||
|
else if (GetHasFeat(FEAT_BIND_VESTIGE, oBinder))
|
||||||
|
{
|
||||||
|
nLevel = 1;
|
||||||
|
if (GetHasFeat(FEAT_BIND_VESTIGE_IMPROVED, oBinder)) nLevel += 4;
|
||||||
|
}
|
||||||
|
if (FavoredVestige(oBinder, nVestige)) nLevel += 1;
|
||||||
|
if (GetHasSpellEffect(VESTIGE_IPOS, oBinder) && !GetIsVestigeExploited(oBinder, VESTIGE_IPOS_INFLUENCE) && nVestige >= VESTIGE_AMON) nLevel += 1;
|
||||||
|
|
||||||
|
if(DEBUG) DoDebug("Binder Level: " + IntToString(nLevel));
|
||||||
|
|
||||||
|
return nLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetIsBindingClass(int nClass)
|
||||||
|
{
|
||||||
|
return nClass == CLASS_TYPE_BINDER;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetBindingPRCLevels(object oBinder)
|
||||||
|
{
|
||||||
|
int nLevel = GetLevelByClass(CLASS_TYPE_ANIMA_MAGE, oBinder);
|
||||||
|
nLevel += GetLevelByClass(CLASS_TYPE_KNIGHT_SACRED_SEAL, oBinder);
|
||||||
|
nLevel += GetLevelByClass(CLASS_TYPE_SCION_DANTALION, oBinder);
|
||||||
|
|
||||||
|
// These don't add at 1st level
|
||||||
|
if (GetLevelByClass(CLASS_TYPE_TENEBROUS_APOSTATE, oBinder))
|
||||||
|
nLevel += GetLevelByClass(CLASS_TYPE_TENEBROUS_APOSTATE, oBinder) - 1;
|
||||||
|
|
||||||
|
return nLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
string GetVestigeFile()
|
||||||
|
{
|
||||||
|
return "vestiges";
|
||||||
|
}
|
||||||
|
|
||||||
|
string GetBindingClassFile(int nClass)
|
||||||
|
{
|
||||||
|
string sFile;
|
||||||
|
if (nClass == CLASS_TYPE_BINDER) sFile = "cls_bind_binder";
|
||||||
|
|
||||||
|
return sFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ApplyVestige(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
PRCRemoveSpellEffects(nVestige, oBinder, oBinder);
|
||||||
|
GZPRCRemoveSpellEffects(nVestige, oBinder, FALSE);
|
||||||
|
ActionCastSpellOnSelf(nVestige, METAMAGIC_NONE, oBinder);
|
||||||
|
if (GetLevelByClass(CLASS_TYPE_BINDER, oBinder) >= 2)
|
||||||
|
{
|
||||||
|
PRCRemoveSpellEffects(VESTIGE_PACT_AUGMENTATION, oBinder, oBinder);
|
||||||
|
GZPRCRemoveSpellEffects(VESTIGE_PACT_AUGMENTATION, oBinder, FALSE);
|
||||||
|
ActionCastSpellOnSelf(VESTIGE_PACT_AUGMENTATION, METAMAGIC_NONE, oBinder);
|
||||||
|
}
|
||||||
|
if (DEBUG) DoDebug("Applying Vestige "+IntToString(nVestige)+" on "+GetName(oBinder));
|
||||||
|
|
||||||
|
// If you have hosted one of these spirits within the last 24 hours, Amon refuses to answer your call.
|
||||||
|
if (nVestige == VESTIGE_LERAJE ||
|
||||||
|
nVestige == VESTIGE_CHUPOCLOPS ||
|
||||||
|
nVestige == VESTIGE_KARSUS ||
|
||||||
|
nVestige == VESTIGE_EURYNOME)
|
||||||
|
{
|
||||||
|
SetLocalInt(oBinder, "AmonHater", TRUE);
|
||||||
|
DelayCommand(HoursToSeconds(48), DeleteLocalInt(oBinder, "AmonHater"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only good quality pacts get the bonus spell
|
||||||
|
if (GetLocalInt(oBinder, "PactQuality"+IntToString(nVestige)) && GetLocalInt(oBinder, "ExploitVestigeConv"))
|
||||||
|
{
|
||||||
|
DelayCommand(0.5, StartDynamicConversation("bnd_exploitcnv", oBinder, DYNCONV_EXIT_ALLOWED_SHOW_CHOICE, FALSE, TRUE, oBinder));
|
||||||
|
DeleteLocalInt(oBinder, "ExploitVestigeConv");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExpelVestige(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
SetPersistantLocalInt(oBinder, "ExpelledVestige", TRUE);
|
||||||
|
SetPersistantLocalInt(oBinder, "ExpelledVestige"+IntToString(nVestige), TRUE);
|
||||||
|
// Here, making a good pack means we can unbind it
|
||||||
|
if (GetLocalInt(oBinder, "PactQuality"+IntToString(nVestige)))
|
||||||
|
{
|
||||||
|
PRCRemoveSpellEffects(nVestige, oBinder, oBinder);
|
||||||
|
GZPRCRemoveSpellEffects(nVestige, oBinder, FALSE);
|
||||||
|
FloatingTextStringOnCreature("Expelled "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nVestige)))+" successfully!", oBinder, FALSE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FloatingTextStringOnCreature("Failed to expel "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nVestige))), oBinder, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int DoBindingCheck(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
int nApply = StringToInt(Get2DACache("vestiges", "SpellID", nVestige));
|
||||||
|
|
||||||
|
// Knights of the Sacred Seal always have a good pact with their Patron
|
||||||
|
if (GetPatronVestige(oBinder) == nApply)
|
||||||
|
{
|
||||||
|
SetLocalInt(oBinder, "PactQuality"+IntToString(nApply), TRUE);
|
||||||
|
return nApply; //We don't need the rest of the function here.
|
||||||
|
}
|
||||||
|
// Scions of Dantalion always have a good pact with Dantalion
|
||||||
|
if (GetLevelByClass(CLASS_TYPE_SCION_DANTALION, oBinder) && VESTIGE_DANTALION == nApply)
|
||||||
|
{
|
||||||
|
SetLocalInt(oBinder, "PactQuality"+IntToString(nApply), TRUE);
|
||||||
|
return nApply; //We don't need the rest of the function here.
|
||||||
|
}
|
||||||
|
|
||||||
|
int nRoll = d20()+ GetBinderLevel(oBinder) + GetAbilityModifier(ABILITY_CHARISMA, oBinder);
|
||||||
|
if (GetHasFeat(FEAT_SKILLED_PACT_MAKING, oBinder)) nRoll += 4;
|
||||||
|
// -10 penalty on the check
|
||||||
|
if (GetLocalInt(oBinder, "RushedBinding"))
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oBinder, "RushedBinding");
|
||||||
|
nRoll -= 10;
|
||||||
|
}
|
||||||
|
// After expelling a vestige, take a -10 penalty on the check
|
||||||
|
if (GetPersistantLocalInt(oBinder, "ExpelledVestige"))
|
||||||
|
{
|
||||||
|
DeletePersistantLocalInt(oBinder, "ExpelledVestige");
|
||||||
|
nRoll -= 10;
|
||||||
|
}
|
||||||
|
// Next time you rebind an expelled vestige, take a penalty on the check
|
||||||
|
if (GetPersistantLocalInt(oBinder, "ExpelledVestige"+IntToString(nApply)))
|
||||||
|
{
|
||||||
|
DeletePersistantLocalInt(oBinder, "ExpelledVestige"+IntToString(nApply));
|
||||||
|
nRoll -= 10;
|
||||||
|
}
|
||||||
|
// Exploiting a vestige grants a -5 on the check
|
||||||
|
if (GetLocalInt(oBinder, "ExploitVestigeTemp"))
|
||||||
|
{
|
||||||
|
nRoll -= 5;
|
||||||
|
FloatingTextStringOnCreature("Exploiting vestige", oBinder);
|
||||||
|
// This int is only for this Binding check
|
||||||
|
DeleteLocalInt(oBinder, "ExploitVestigeTemp");
|
||||||
|
}
|
||||||
|
int nDC = StringToInt(Get2DACache("vestiges", "BindDC", nVestige));
|
||||||
|
SendMessageToPC(oBinder, "Binding Check: "+IntToString(nRoll)+" vs a DC of "+IntToString(nDC));
|
||||||
|
DeleteLocalInt(oBinder, "PactQuality"+IntToString(nApply));
|
||||||
|
// Mark a good pact
|
||||||
|
if (nRoll >= nDC) SetLocalInt(oBinder, "PactQuality"+IntToString(nApply), TRUE);
|
||||||
|
|
||||||
|
return nApply;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BindVestige(object oBinder, int nTime, int nVestige, int nExpel = FALSE)
|
||||||
|
{
|
||||||
|
if (0 >= nTime)
|
||||||
|
{
|
||||||
|
SetCutsceneMode(oBinder, FALSE);
|
||||||
|
// We're expelling a vestige, not binding one
|
||||||
|
if (nExpel)
|
||||||
|
ExpelVestige(oBinder, DoBindingCheck(oBinder, nVestige));
|
||||||
|
// Make a check and apply the vestige
|
||||||
|
else
|
||||||
|
ApplyVestige(oBinder, DoBindingCheck(oBinder, nVestige));
|
||||||
|
}
|
||||||
|
else if (!GetIsInCombat(oBinder)) // Being in combat causes this to fail
|
||||||
|
{
|
||||||
|
FloatingTextStringOnCreature("You must spend " + IntToString(nTime) +" more seconds to complete the binding", oBinder, FALSE);
|
||||||
|
DelayCommand(6.0, BindVestige(oBinder, nTime - 6, nVestige, nExpel));
|
||||||
|
SetCutsceneMode(oBinder, TRUE);
|
||||||
|
AssignCommand(oBinder, ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0, 6.0));
|
||||||
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_MAZE), GetLocation(oBinder), 6.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SetCutsceneMode(oBinder, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ContactVestige(object oBinder, int nTime, int nVestige, int nExpel = FALSE)
|
||||||
|
{
|
||||||
|
if (0 >= nTime)
|
||||||
|
{
|
||||||
|
SetCutsceneMode(oBinder, FALSE);
|
||||||
|
if (!DoSummonRequirements(oBinder, nVestige)) return;
|
||||||
|
int nBindTime = VESTIGE_BINDING_TIME;
|
||||||
|
if(GetPRCSwitch(PRC_BIND_VESTIGE_TIMER) >= 12) nBindTime = GetPRCSwitch(PRC_BIND_VESTIGE_TIMER);
|
||||||
|
if (GetLocalInt(oBinder, "RushedBinding") || GetLocalInt(oBinder, "RapidPactMaking")) nBindTime = 6;
|
||||||
|
BindVestige(oBinder, nBindTime, nVestige, nExpel);
|
||||||
|
}
|
||||||
|
else if (!GetIsInCombat(oBinder)) // Being in combat causes this to fail
|
||||||
|
{
|
||||||
|
FloatingTextStringOnCreature("You must draw the symbol for another " + IntToString(nTime) +" seconds", oBinder, FALSE);
|
||||||
|
DelayCommand(6.0, ContactVestige(oBinder, nTime - 6, nVestige, nExpel));
|
||||||
|
SetCutsceneMode(oBinder, TRUE);
|
||||||
|
AssignCommand(oBinder, ActionPlayAnimation(ANIMATION_LOOPING_MEDITATE, 1.0, 6.0));
|
||||||
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_SYMB_INSAN), GetLocation(oBinder), 6.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SetCutsceneMode(oBinder, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int BindAbilCooldown(object oBinder, int nAbil, int nVestige)
|
||||||
|
{
|
||||||
|
int nCheck = GetLocalInt(oBinder, "Bind"+IntToString(nAbil));
|
||||||
|
// On Cooldown
|
||||||
|
if (nCheck)
|
||||||
|
{
|
||||||
|
// Free use
|
||||||
|
if (GetLocalInt(oBinder, "KotSSSurge"))
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oBinder, "KotSSSurge");
|
||||||
|
FloatingTextStringOnCreature("Using Vestige's Surge on "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nAbil))), oBinder, FALSE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
FloatingTextStringOnCreature(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nAbil)))+" is still on cooldown!", oBinder, FALSE);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetLocalInt(oBinder, "Bind"+IntToString(nAbil), TRUE);
|
||||||
|
// Default number of rounds
|
||||||
|
int nDelay = 5;
|
||||||
|
// Makes it one round faster
|
||||||
|
if (RapidRecovery(oBinder, nVestige)) nDelay -= 1;
|
||||||
|
DelayCommand(RoundsToSeconds(nDelay), DeleteLocalInt(oBinder, "Bind"+IntToString(nAbil)));
|
||||||
|
DelayCommand(RoundsToSeconds(nDelay), FloatingTextStringOnCreature(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nAbil)))+" is off cooldown", oBinder, FALSE));
|
||||||
|
FloatingTextStringOnCreature("You must wait " + IntToString(nDelay) +" rounds before using "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nAbil)))+" again", oBinder, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetMaxVestigeCount(object oBinder)
|
||||||
|
{
|
||||||
|
int nMax = StringToInt(Get2DACache(GetBindingClassFile(CLASS_TYPE_BINDER), "Vestiges", GetBinderLevel(oBinder)));
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("GetMaxVestigeCount is "+IntToString(nMax));
|
||||||
|
return nMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetMaxVestigeLevel(object oBinder)
|
||||||
|
{
|
||||||
|
int nLevel = GetBinderLevel(oBinder);
|
||||||
|
if (GetHasFeat(FEAT_IMPROVED_BINDING, oBinder)) nLevel += 2;
|
||||||
|
// Due to the 2da starting at row 0
|
||||||
|
int nMax = StringToInt(Get2DACache(GetBindingClassFile(CLASS_TYPE_BINDER), "VestigeLvl", nLevel - 1));
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("GetMaxVestigeLevel is "+IntToString(nMax));
|
||||||
|
return nMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetVestigeLevel(int nVestige)
|
||||||
|
{
|
||||||
|
int nMax = StringToInt(Get2DACache("Vestiges", "Level", nVestige));
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("GetVestigeLevel is "+IntToString(nMax));
|
||||||
|
return nMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetBindCount(object oBinder)
|
||||||
|
{
|
||||||
|
int i, nCount;
|
||||||
|
for(i = VESTIGE_AMON; i <= VESTIGE_ABYSM; i++)
|
||||||
|
if(GetHasSpellEffect(i, oBinder)) nCount++;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("GetBindCount is "+IntToString(nCount));
|
||||||
|
return nCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetPactAugmentCount(object oBinder)
|
||||||
|
{
|
||||||
|
int nClass = GetLevelByClass(CLASS_TYPE_BINDER, oBinder);
|
||||||
|
int nCount = 0;
|
||||||
|
|
||||||
|
if (nClass >= 20) nCount = 5;
|
||||||
|
else if (nClass >= 16) nCount = 4;
|
||||||
|
else if (nClass >= 10) nCount = 3;
|
||||||
|
else if (nClass >= 5) nCount = 2;
|
||||||
|
else if (nClass >= 2) nCount = 1;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("GetPactAugmentCount is "+IntToString(nCount));
|
||||||
|
return nCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
effect EffectPact(object oBinder)
|
||||||
|
{
|
||||||
|
effect eEffect;
|
||||||
|
if (!GetLocalInt(oBinder, "PactQuality"+IntToString(GetSpellId())))
|
||||||
|
{
|
||||||
|
// <20>1 penalty on attack rolls, saving throws, and skill checks
|
||||||
|
eEffect = EffectLinkEffects(EffectSkillDecrease(SKILL_ALL_SKILLS, 1), EffectSavingThrowDecrease(SAVING_THROW_ALL, 1));
|
||||||
|
eEffect = EffectLinkEffects(eEffect, EffectAttackDecrease(1));
|
||||||
|
}
|
||||||
|
else // NWN hates having a blank effect
|
||||||
|
eEffect = EffectLinkEffects(EffectSkillDecrease(SKILL_DISCIPLINE, 1), EffectSkillIncrease(SKILL_DISCIPLINE, 1));
|
||||||
|
|
||||||
|
return eEffect;
|
||||||
|
}
|
||||||
|
|
||||||
|
int RapidRecovery(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
int nFavored;
|
||||||
|
|
||||||
|
if (GetHasFeat(FEAT_RAPID_RECOVERY_AMON, oBinder) && nVestige == VESTIGE_AMON) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_AYM , oBinder) && nVestige == VESTIGE_AYM ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_LERAJE , oBinder) && nVestige == VESTIGE_LERAJE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_NABERIUS , oBinder) && nVestige == VESTIGE_NABERIUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_RONOVE , oBinder) && nVestige == VESTIGE_RONOVE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_DAHLVERNAR , oBinder) && nVestige == VESTIGE_DAHLVERNAR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_HAAGENTI , oBinder) && nVestige == VESTIGE_HAAGENTI ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_MALPHAS , oBinder) && nVestige == VESTIGE_MALPHAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_SAVNOK , oBinder) && nVestige == VESTIGE_SAVNOK ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ANDROMALIUS, oBinder) && nVestige == VESTIGE_ANDROMALIUS) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_FOCALOR , oBinder) && nVestige == VESTIGE_FOCALOR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_KARSUS , oBinder) && nVestige == VESTIGE_KARSUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_PAIMON , oBinder) && nVestige == VESTIGE_PAIMON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_AGARES , oBinder) && nVestige == VESTIGE_AGARES ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ANDRAS , oBinder) && nVestige == VESTIGE_ANDRAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_BUER , oBinder) && nVestige == VESTIGE_BUER ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_EURYNOME , oBinder) && nVestige == VESTIGE_EURYNOME ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_TENEBROUS , oBinder) && nVestige == VESTIGE_TENEBROUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ARETE , oBinder) && nVestige == VESTIGE_ARETE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ASTAROTH , oBinder) && nVestige == VESTIGE_ASTAROTH ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ACERERAK , oBinder) && nVestige == VESTIGE_ACERERAK ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_BALAM , oBinder) && nVestige == VESTIGE_BALAM ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_DANTALION , oBinder) && nVestige == VESTIGE_DANTALION ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_GERYON , oBinder) && nVestige == VESTIGE_GERYON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_OTIAX , oBinder) && nVestige == VESTIGE_OTIAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_CHUPOCLOPS , oBinder) && nVestige == VESTIGE_CHUPOCLOPS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_HAURES , oBinder) && nVestige == VESTIGE_HAURES ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_IPOS , oBinder) && nVestige == VESTIGE_IPOS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_SHAX , oBinder) && nVestige == VESTIGE_SHAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ZAGAN , oBinder) && nVestige == VESTIGE_ZAGAN ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_VANUS , oBinder) && nVestige == VESTIGE_VANUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_THETRIAD , oBinder) && nVestige == VESTIGE_THETRIAD ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_DESHARIS , oBinder) && nVestige == VESTIGE_DESHARIS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ZCERYLL , oBinder) && nVestige == VESTIGE_ZCERYLL ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ELIGOR , oBinder) && nVestige == VESTIGE_ELIGOR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_MARCHOSIAS , oBinder) && nVestige == VESTIGE_MARCHOSIAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ASHARDALON , oBinder) && nVestige == VESTIGE_ASHARDALON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_HALPHAX , oBinder) && nVestige == VESTIGE_HALPHAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ORTHOS , oBinder) && nVestige == VESTIGE_ORTHOS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_RAPID_RECOVERY_ABYSM , oBinder) && nVestige == VESTIGE_ABYSM ) nFavored = TRUE;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("RapidRecovery return value "+IntToString(nFavored));
|
||||||
|
return nFavored;
|
||||||
|
}
|
||||||
|
|
||||||
|
int FavoredVestige(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
int nFavored;
|
||||||
|
|
||||||
|
if (GetHasFeat(FEAT_FAVORED_VESTIGE_AMON, oBinder) && nVestige == VESTIGE_AMON) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_AYM , oBinder) && nVestige == VESTIGE_AYM ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_LERAJE , oBinder) && nVestige == VESTIGE_LERAJE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_NABERIUS , oBinder) && nVestige == VESTIGE_NABERIUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_RONOVE , oBinder) && nVestige == VESTIGE_RONOVE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_DAHLVERNAR , oBinder) && nVestige == VESTIGE_DAHLVERNAR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_HAAGENTI , oBinder) && nVestige == VESTIGE_HAAGENTI ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_MALPHAS , oBinder) && nVestige == VESTIGE_MALPHAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_SAVNOK , oBinder) && nVestige == VESTIGE_SAVNOK ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ANDROMALIUS, oBinder) && nVestige == VESTIGE_ANDROMALIUS) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCALOR , oBinder) && nVestige == VESTIGE_FOCALOR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_KARSUS , oBinder) && nVestige == VESTIGE_KARSUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_PAIMON , oBinder) && nVestige == VESTIGE_PAIMON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_AGARES , oBinder) && nVestige == VESTIGE_AGARES ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ANDRAS , oBinder) && nVestige == VESTIGE_ANDRAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_BUER , oBinder) && nVestige == VESTIGE_BUER ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_EURYNOME , oBinder) && nVestige == VESTIGE_EURYNOME ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_TENEBROUS , oBinder) && nVestige == VESTIGE_TENEBROUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ARETE , oBinder) && nVestige == VESTIGE_ARETE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ASTAROTH , oBinder) && nVestige == VESTIGE_ASTAROTH ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ACERERAK , oBinder) && nVestige == VESTIGE_ACERERAK ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_BALAM , oBinder) && nVestige == VESTIGE_BALAM ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_DANTALION , oBinder) && nVestige == VESTIGE_DANTALION ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_GERYON , oBinder) && nVestige == VESTIGE_GERYON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_OTIAX , oBinder) && nVestige == VESTIGE_OTIAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_CHUPOCLOPS , oBinder) && nVestige == VESTIGE_CHUPOCLOPS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_HAURES , oBinder) && nVestige == VESTIGE_HAURES ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_IPOS , oBinder) && nVestige == VESTIGE_IPOS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_SHAX , oBinder) && nVestige == VESTIGE_SHAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ZAGAN , oBinder) && nVestige == VESTIGE_ZAGAN ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_VANUS , oBinder) && nVestige == VESTIGE_VANUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_THETRIAD , oBinder) && nVestige == VESTIGE_THETRIAD ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_DESHARIS , oBinder) && nVestige == VESTIGE_DESHARIS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ZCERYLL , oBinder) && nVestige == VESTIGE_ZCERYLL ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ELIGOR , oBinder) && nVestige == VESTIGE_ELIGOR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_MARCHOSIAS , oBinder) && nVestige == VESTIGE_MARCHOSIAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ASHARDALON , oBinder) && nVestige == VESTIGE_ASHARDALON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_HALPHAX , oBinder) && nVestige == VESTIGE_HALPHAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ORTHOS , oBinder) && nVestige == VESTIGE_ORTHOS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_ABYSM , oBinder) && nVestige == VESTIGE_ABYSM ) nFavored = TRUE;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("FavoredVestige return value "+IntToString(nFavored));
|
||||||
|
return nFavored;
|
||||||
|
}
|
||||||
|
|
||||||
|
int FavoredVestigeFocus(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
int nFavored;
|
||||||
|
|
||||||
|
if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_AMON, oBinder) && nVestige == VESTIGE_AMON) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_AYM , oBinder) && nVestige == VESTIGE_AYM ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_LERAJE , oBinder) && nVestige == VESTIGE_LERAJE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_NABERIUS , oBinder) && nVestige == VESTIGE_NABERIUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_RONOVE , oBinder) && nVestige == VESTIGE_RONOVE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_DAHLVERNAR , oBinder) && nVestige == VESTIGE_DAHLVERNAR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_HAAGENTI , oBinder) && nVestige == VESTIGE_HAAGENTI ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_MALPHAS , oBinder) && nVestige == VESTIGE_MALPHAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_SAVNOK , oBinder) && nVestige == VESTIGE_SAVNOK ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ANDROMALIUS, oBinder) && nVestige == VESTIGE_ANDROMALIUS) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_FOCALOR , oBinder) && nVestige == VESTIGE_FOCALOR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_KARSUS , oBinder) && nVestige == VESTIGE_KARSUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_PAIMON , oBinder) && nVestige == VESTIGE_PAIMON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_AGARES , oBinder) && nVestige == VESTIGE_AGARES ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ANDRAS , oBinder) && nVestige == VESTIGE_ANDRAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_BUER , oBinder) && nVestige == VESTIGE_BUER ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_EURYNOME , oBinder) && nVestige == VESTIGE_EURYNOME ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_TENEBROUS , oBinder) && nVestige == VESTIGE_TENEBROUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ARETE , oBinder) && nVestige == VESTIGE_ARETE ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ASTAROTH , oBinder) && nVestige == VESTIGE_ASTAROTH ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ACERERAK , oBinder) && nVestige == VESTIGE_ACERERAK ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_BALAM , oBinder) && nVestige == VESTIGE_BALAM ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_DANTALION , oBinder) && nVestige == VESTIGE_DANTALION ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_GERYON , oBinder) && nVestige == VESTIGE_GERYON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_OTIAX , oBinder) && nVestige == VESTIGE_OTIAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_CHUPOCLOPS , oBinder) && nVestige == VESTIGE_CHUPOCLOPS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_HAURES , oBinder) && nVestige == VESTIGE_HAURES ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_IPOS , oBinder) && nVestige == VESTIGE_IPOS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_SHAX , oBinder) && nVestige == VESTIGE_SHAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ZAGAN , oBinder) && nVestige == VESTIGE_ZAGAN ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_VANUS , oBinder) && nVestige == VESTIGE_VANUS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_THETRIAD , oBinder) && nVestige == VESTIGE_THETRIAD ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_DESHARIS , oBinder) && nVestige == VESTIGE_DESHARIS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ZCERYLL , oBinder) && nVestige == VESTIGE_ZCERYLL ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ELIGOR , oBinder) && nVestige == VESTIGE_ELIGOR ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_MARCHOSIAS , oBinder) && nVestige == VESTIGE_MARCHOSIAS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ASHARDALON , oBinder) && nVestige == VESTIGE_ASHARDALON ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_HALPHAX , oBinder) && nVestige == VESTIGE_HALPHAX ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ORTHOS , oBinder) && nVestige == VESTIGE_ORTHOS ) nFavored = TRUE;
|
||||||
|
else if (GetHasFeat(FEAT_FAVORED_VESTIGE_FOCUS_ABYSM , oBinder) && nVestige == VESTIGE_ABYSM ) nFavored = TRUE;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("FavoredVestigeFocus return value "+IntToString(nFavored));
|
||||||
|
return nFavored;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetBinderDC(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
int nDC = 10 + GetBinderLevel(oBinder, nVestige)/2 + GetAbilityModifier(ABILITY_CHARISMA, oBinder);
|
||||||
|
if (FavoredVestigeFocus(oBinder, nVestige)) nDC += 1;
|
||||||
|
if (GetHasSpellEffect(VESTIGE_IPOS, oBinder) && !GetIsVestigeExploited(oBinder, VESTIGE_IPOS_INFLUENCE)) nDC += 1;
|
||||||
|
|
||||||
|
return nDC;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DoSpecialRequirements(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
if (GetHasFeat(FEAT_IGNORE_SPECIAL_REQUIREMENTS, oBinder)) return TRUE;
|
||||||
|
|
||||||
|
if (nVestige == VESTIGE_AMON && (GetLocalInt(oBinder, "AmonHater") ||
|
||||||
|
GetHasSpellEffect(VESTIGE_LERAJE, oBinder) ||
|
||||||
|
GetHasSpellEffect(VESTIGE_EURYNOME, oBinder) ||
|
||||||
|
GetHasSpellEffect(VESTIGE_KARSUS, oBinder) ||
|
||||||
|
GetHasSpellEffect(VESTIGE_CHUPOCLOPS, oBinder)))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_LERAJE && GetHasSpellEffect(VESTIGE_AMON, oBinder))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_NABERIUS && 4 > GetSkillRank(SKILL_LORE, oBinder, TRUE) && 4 > GetSkillRank(SKILL_BLUFF, oBinder, TRUE))
|
||||||
|
return FALSE;
|
||||||
|
// Ronove<76>s seal must be drawn in the soil under the sky.
|
||||||
|
if (nVestige == VESTIGE_RONOVE && (GetIsAreaNatural(GetArea(oBinder)) != AREA_NATURAL || GetIsAreaAboveGround(GetArea(oBinder)) != AREA_ABOVEGROUND))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_HAAGENTI && (CREATURE_SIZE_LARGE > PRCGetCreatureSize(oBinder) || (GetHasFeat(FEAT_RACE_POWERFUL_BUILD, oBinder) && CREATURE_SIZE_MEDIUM > PRCGetCreatureSize(oBinder))))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_KARSUS && GetHasSpellEffect(VESTIGE_AMON, oBinder))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_KARSUS && 5 > GetSkillRank(SKILL_LORE, oBinder, TRUE) && 5 > GetSkillRank(SKILL_SPELLCRAFT, oBinder, TRUE))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_KARSUS)
|
||||||
|
{
|
||||||
|
effect eTest = GetFirstEffect(oBinder);
|
||||||
|
while(GetIsEffectValid(eTest))
|
||||||
|
{
|
||||||
|
if(GetEffectType(eTest) == EFFECT_TYPE_AREA_OF_EFFECT)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
eTest = GetNextEffect(oBinder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Agagres<65>s seal must be drawn in the soil
|
||||||
|
if (nVestige == VESTIGE_AGARES && GetIsAreaNatural(GetArea(oBinder)) != AREA_NATURAL)
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_BUER && GetIsAreaInterior(GetArea(oBinder)))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_EURYNOME && GetHasSpellEffect(VESTIGE_AMON, oBinder))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_TENEBROUS && !GetIsNight())
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_BALAM)
|
||||||
|
{
|
||||||
|
int nCur = GetCurrentHitPoints(oBinder);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(1, DAMAGE_TYPE_SLASHING), oBinder);
|
||||||
|
if (nCur > GetCurrentHitPoints(oBinder))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
if (nVestige == VESTIGE_GERYON && 5 > GetSkillRank(SKILL_LORE, oBinder, TRUE))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_ARETE && (GetHasSpellEffect(VESTIGE_EURYNOME, oBinder) || GetHasSpellEffect(VESTIGE_CHUPOCLOPS, oBinder)))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_CHUPOCLOPS && GetHasSpellEffect(VESTIGE_AMON, oBinder))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_IPOS && 5 > GetSkillRank(SKILL_LORE, oBinder, TRUE) && 5 > GetSkillRank(SKILL_SPELLCRAFT, oBinder, TRUE))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_VANUS && GetIsAreaNatural(GetArea(oBinder)) != AREA_NATURAL)
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_DESHARIS && GetIsAreaNatural(GetArea(oBinder)) == AREA_NATURAL)
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_HALPHAX && !GetIsAreaInterior(GetArea(oBinder)))
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_HALPHAX && GetIsAreaInterior(GetArea(oBinder)) && GetIsAreaAboveGround(GetArea(oBinder)) == AREA_UNDERGROUND)
|
||||||
|
return FALSE;
|
||||||
|
if (nVestige == VESTIGE_ORTHOS && GetTileMainLight1Color(GetLocation(oBinder)) != TILE_MAIN_LIGHT_COLOR_WHITE && GetTileMainLight1Color(GetLocation(oBinder)) != TILE_MAIN_LIGHT_COLOR_YELLOW)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DoSummonRequirements(object oBinder, int nVestige)
|
||||||
|
{
|
||||||
|
if (GetHasFeat(FEAT_IGNORE_SPECIAL_REQUIREMENTS, oBinder)) return TRUE;
|
||||||
|
|
||||||
|
int nSpellId = StringToInt(Get2DACache(GetVestigeFile(), "SpellID", nVestige));
|
||||||
|
|
||||||
|
if (nSpellId == VESTIGE_LERAJE)
|
||||||
|
{
|
||||||
|
object oArrow = GetItemInSlot(INVENTORY_SLOT_ARROWS, oBinder);
|
||||||
|
int nStack = GetItemStackSize(oArrow);
|
||||||
|
if (nStack)
|
||||||
|
SetItemStackSize(oArrow, nStack-1);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FloatingTextStringOnCreature("You have failed to break an arrow for Leraje, and she refuses your call!", oBinder, FALSE);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetIsVestigeExploited(object oBinder, int nVestigeAbil)
|
||||||
|
{
|
||||||
|
if (GetLocalInt(oBinder, "ExploitVestige") == nVestigeAbil) return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetIsVestigeExploited(object oBinder, int nVestigeAbil)
|
||||||
|
{
|
||||||
|
SetLocalInt(oBinder, "ExploitVestige", nVestigeAbil);
|
||||||
|
SetLocalInt(oBinder, "ExploitVestigeTemp", TRUE);
|
||||||
|
SetLocalInt(oBinder, "ExploitVestigeConv", TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetIsPatronVestigeBound(object oBinder)
|
||||||
|
{
|
||||||
|
int nPatron;
|
||||||
|
|
||||||
|
if (GetHasFeat(FEAT_PATRON_VESTIGE_AMON , oBinder)) nPatron = VESTIGE_AMON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_AYM , oBinder)) nPatron = VESTIGE_AYM;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_LERAJE , oBinder)) nPatron = VESTIGE_LERAJE;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_NABERIUS , oBinder)) nPatron = VESTIGE_NABERIUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_RONOVE , oBinder)) nPatron = VESTIGE_RONOVE;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_DAHLVERNAR , oBinder)) nPatron = VESTIGE_DAHLVERNAR;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_HAAGENTI , oBinder)) nPatron = VESTIGE_HAAGENTI;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_MALPHAS , oBinder)) nPatron = VESTIGE_MALPHAS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_SAVNOK , oBinder)) nPatron = VESTIGE_SAVNOK;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ANDROMALIUS, oBinder)) nPatron = VESTIGE_ANDROMALIUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_FOCALOR , oBinder)) nPatron = VESTIGE_FOCALOR;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_KARSUS , oBinder)) nPatron = VESTIGE_KARSUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_PAIMON , oBinder)) nPatron = VESTIGE_PAIMON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_AGARES , oBinder)) nPatron = VESTIGE_AGARES;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ANDRAS , oBinder)) nPatron = VESTIGE_ANDRAS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_BUER , oBinder)) nPatron = VESTIGE_BUER;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_EURYNOME , oBinder)) nPatron = VESTIGE_EURYNOME;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_TENEBROUS , oBinder)) nPatron = VESTIGE_TENEBROUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ARETE , oBinder)) nPatron = VESTIGE_ARETE;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ASTAROTH , oBinder)) nPatron = VESTIGE_ASTAROTH;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ACERERAK , oBinder)) nPatron = VESTIGE_ACERERAK;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_BALAM , oBinder)) nPatron = VESTIGE_BALAM;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_DANTALION , oBinder)) nPatron = VESTIGE_DANTALION;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_GERYON , oBinder)) nPatron = VESTIGE_GERYON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_OTIAX , oBinder)) nPatron = VESTIGE_OTIAX;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_CHUPOCLOPS , oBinder)) nPatron = VESTIGE_CHUPOCLOPS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_HAURES , oBinder)) nPatron = VESTIGE_HAURES;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_IPOS , oBinder)) nPatron = VESTIGE_IPOS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_SHAX , oBinder)) nPatron = VESTIGE_SHAX;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ZAGAN , oBinder)) nPatron = VESTIGE_ZAGAN;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_VANUS , oBinder)) nPatron = VESTIGE_VANUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_THETRIAD , oBinder)) nPatron = VESTIGE_THETRIAD;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_DESHARIS , oBinder)) nPatron = VESTIGE_DESHARIS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ZCERYLL , oBinder)) nPatron = VESTIGE_ZCERYLL;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ELIGOR , oBinder)) nPatron = VESTIGE_ELIGOR;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_MARCHOSIAS , oBinder)) nPatron = VESTIGE_MARCHOSIAS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ASHARDALON , oBinder)) nPatron = VESTIGE_ASHARDALON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_HALPHAX , oBinder)) nPatron = VESTIGE_HALPHAX;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ORTHOS , oBinder)) nPatron = VESTIGE_ORTHOS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ABYSM , oBinder)) nPatron = VESTIGE_ABYSM;
|
||||||
|
|
||||||
|
if(GetHasSpellEffect(nPatron, oBinder)) return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetPatronVestige(object oBinder)
|
||||||
|
{
|
||||||
|
int nPatron = -1;
|
||||||
|
|
||||||
|
if (GetHasFeat(FEAT_PATRON_VESTIGE_AMON , oBinder)) nPatron = VESTIGE_AMON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_AYM , oBinder)) nPatron = VESTIGE_AYM;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_LERAJE , oBinder)) nPatron = VESTIGE_LERAJE;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_NABERIUS , oBinder)) nPatron = VESTIGE_NABERIUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_RONOVE , oBinder)) nPatron = VESTIGE_RONOVE;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_DAHLVERNAR , oBinder)) nPatron = VESTIGE_DAHLVERNAR;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_HAAGENTI , oBinder)) nPatron = VESTIGE_HAAGENTI;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_MALPHAS , oBinder)) nPatron = VESTIGE_MALPHAS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_SAVNOK , oBinder)) nPatron = VESTIGE_SAVNOK;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ANDROMALIUS, oBinder)) nPatron = VESTIGE_ANDROMALIUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_FOCALOR , oBinder)) nPatron = VESTIGE_FOCALOR;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_KARSUS , oBinder)) nPatron = VESTIGE_KARSUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_PAIMON , oBinder)) nPatron = VESTIGE_PAIMON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_AGARES , oBinder)) nPatron = VESTIGE_AGARES;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ANDRAS , oBinder)) nPatron = VESTIGE_ANDRAS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_BUER , oBinder)) nPatron = VESTIGE_BUER;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_EURYNOME , oBinder)) nPatron = VESTIGE_EURYNOME;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_TENEBROUS , oBinder)) nPatron = VESTIGE_TENEBROUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ARETE , oBinder)) nPatron = VESTIGE_ARETE;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ASTAROTH , oBinder)) nPatron = VESTIGE_ASTAROTH;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ACERERAK , oBinder)) nPatron = VESTIGE_ACERERAK;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_BALAM , oBinder)) nPatron = VESTIGE_BALAM;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_DANTALION , oBinder)) nPatron = VESTIGE_DANTALION;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_GERYON , oBinder)) nPatron = VESTIGE_GERYON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_OTIAX , oBinder)) nPatron = VESTIGE_OTIAX;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_CHUPOCLOPS , oBinder)) nPatron = VESTIGE_CHUPOCLOPS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_HAURES , oBinder)) nPatron = VESTIGE_HAURES;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_IPOS , oBinder)) nPatron = VESTIGE_IPOS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_SHAX , oBinder)) nPatron = VESTIGE_SHAX;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ZAGAN , oBinder)) nPatron = VESTIGE_ZAGAN;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_VANUS , oBinder)) nPatron = VESTIGE_VANUS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_THETRIAD , oBinder)) nPatron = VESTIGE_THETRIAD;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_DESHARIS , oBinder)) nPatron = VESTIGE_DESHARIS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ZCERYLL , oBinder)) nPatron = VESTIGE_ZCERYLL;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ELIGOR , oBinder)) nPatron = VESTIGE_ELIGOR;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_MARCHOSIAS , oBinder)) nPatron = VESTIGE_MARCHOSIAS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ASHARDALON , oBinder)) nPatron = VESTIGE_ASHARDALON;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_HALPHAX , oBinder)) nPatron = VESTIGE_HALPHAX;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ORTHOS , oBinder)) nPatron = VESTIGE_ORTHOS;
|
||||||
|
else if (GetHasFeat(FEAT_PATRON_VESTIGE_ABYSM , oBinder)) nPatron = VESTIGE_ABYSM;
|
||||||
|
|
||||||
|
return nPatron;
|
||||||
|
}
|
||||||
321
src/include/bnd_vestig_const.nss
Normal file
321
src/include/bnd_vestig_const.nss
Normal file
@@ -0,0 +1,321 @@
|
|||||||
|
// Vestige SpellId Constants
|
||||||
|
const int VESTIGE_AMON = 19020;
|
||||||
|
const int VESTIGE_AYM = 19021;
|
||||||
|
const int VESTIGE_LERAJE = 19022;
|
||||||
|
const int VESTIGE_NABERIUS = 19023;
|
||||||
|
const int VESTIGE_RONOVE = 19024;
|
||||||
|
const int VESTIGE_DAHLVERNAR = 19025;
|
||||||
|
const int VESTIGE_HAAGENTI = 19026;
|
||||||
|
const int VESTIGE_MALPHAS = 19027;
|
||||||
|
const int VESTIGE_SAVNOK = 19028;
|
||||||
|
const int VESTIGE_ANDROMALIUS = 19029;
|
||||||
|
const int VESTIGE_FOCALOR = 19030;
|
||||||
|
const int VESTIGE_KARSUS = 19031;
|
||||||
|
const int VESTIGE_PAIMON = 19032;
|
||||||
|
const int VESTIGE_AGARES = 19033;
|
||||||
|
const int VESTIGE_ANDRAS = 19034;
|
||||||
|
const int VESTIGE_BUER = 19035;
|
||||||
|
const int VESTIGE_EURYNOME = 19036;
|
||||||
|
const int VESTIGE_TENEBROUS = 19037;
|
||||||
|
const int VESTIGE_ARETE = 19038;
|
||||||
|
const int VESTIGE_ASTAROTH = 19039;
|
||||||
|
const int VESTIGE_ACERERAK = 19040;
|
||||||
|
const int VESTIGE_BALAM = 19041;
|
||||||
|
const int VESTIGE_DANTALION = 19042;
|
||||||
|
const int VESTIGE_GERYON = 19043;
|
||||||
|
const int VESTIGE_OTIAX = 19044;
|
||||||
|
const int VESTIGE_CHUPOCLOPS = 19045;
|
||||||
|
const int VESTIGE_HAURES = 19046;
|
||||||
|
const int VESTIGE_IPOS = 19047;
|
||||||
|
const int VESTIGE_SHAX = 19048;
|
||||||
|
const int VESTIGE_ZAGAN = 19049;
|
||||||
|
const int VESTIGE_VANUS = 19050;
|
||||||
|
const int VESTIGE_THETRIAD = 19051;
|
||||||
|
const int VESTIGE_DESHARIS = 19052;
|
||||||
|
const int VESTIGE_ZCERYLL = 19053;
|
||||||
|
const int VESTIGE_ELIGOR = 19054;
|
||||||
|
const int VESTIGE_MARCHOSIAS = 19055;
|
||||||
|
const int VESTIGE_ASHARDALON = 19056;
|
||||||
|
const int VESTIGE_HALPHAX = 19057;
|
||||||
|
const int VESTIGE_ORTHOS = 19058;
|
||||||
|
const int VESTIGE_ABYSM = 19059;
|
||||||
|
|
||||||
|
// Vestige IPFeat Constants
|
||||||
|
const int IP_CONST_VESTIGE_AMON_BREATH = 13730;
|
||||||
|
const int IP_CONST_VESTIGE_AYM_HALO = 13731;
|
||||||
|
const int IP_CONST_VESTIGE_LERAJE_RICOCHET = 13732;
|
||||||
|
const int IP_CONST_VESTIGE_NABERIUS_DISGUISE = 13733;
|
||||||
|
const int IP_CONST_VESTIGE_NABERIUS_COMMAND = 13734;
|
||||||
|
const int IP_CONST_VESTIGE_RONOVE_FARHAND = 13735;
|
||||||
|
const int IP_CONST_VESTIGE_RONOVE_BULLRUSH = 13736;
|
||||||
|
const int IP_CONST_VESTIGE_DAHLVER_MOAN = 13737;
|
||||||
|
const int IP_CONST_VESTIGE_DAHLVER_SHARE = 13738;
|
||||||
|
const int IP_CONST_VESTIGE_HAAGENTI_TOUCH = 13739;
|
||||||
|
const int IP_CONST_VESTIGE_MALPHAS_EYE = 13740;
|
||||||
|
const int IP_CONST_VESTIGE_MALPHAS_INVIS_ST = 13741;
|
||||||
|
const int IP_CONST_VESTIGE_MALPHAS_INVIS_SW = 13742;
|
||||||
|
const int IP_CONST_VESTIGE_SAVNOK_CALL = 13743;
|
||||||
|
const int IP_CONST_VESTIGE_SAVNOK_MOVE_ST = 13744;
|
||||||
|
const int IP_CONST_VESTIGE_SAVNOK_MOVE_SW = 13745;
|
||||||
|
const int IP_CONST_VESTIGE_ANDRO_MIRTH = 13746;
|
||||||
|
const int IP_CONST_VESTIGE_ANDRO_LOCATE = 13747;
|
||||||
|
const int IP_CONST_VESTIGE_ANDRO_SEE = 13748;
|
||||||
|
const int IP_CONST_VESTIGE_FOCALOR_AURA = 13749;
|
||||||
|
const int IP_CONST_VESTIGE_FOCALOR_BOLT = 13750;
|
||||||
|
const int IP_CONST_VESTIGE_FOCALOR_BREATH = 13751;
|
||||||
|
const int IP_CONST_VESTIGE_KARSUS_SENSES = 13752;
|
||||||
|
const int IP_CONST_VESTIGE_KARSUS_TOUCH = 13753;
|
||||||
|
const int IP_CONST_VESTIGE_PAIMON_DANCE = 13754;
|
||||||
|
const int IP_CONST_VESTIGE_AGARES_STEP = 13755;
|
||||||
|
const int IP_CONST_VESTIGE_AGARES_ELEMENTAL = 13756;
|
||||||
|
const int IP_CONST_VESTIGE_ANDRAS_SMITE = 13757;
|
||||||
|
const int IP_CONST_VESTIGE_ANDRAS_DISCORD = 13758;
|
||||||
|
const int IP_CONST_VESTIGE_ANDRAS_MOUNT = 13759;
|
||||||
|
const int IP_CONST_VESTIGE_BUER_HEAL = 13760;
|
||||||
|
const int IP_CONST_VESTIGE_TENEBROUS_DARKNESS = 13761;
|
||||||
|
const int IP_CONST_VESTIGE_TENEBROUS_TOUCH_VOID = 13762;
|
||||||
|
const int IP_CONST_VESTIGE_TENEBROUS_TURN = 13763;
|
||||||
|
const int IP_CONST_VESTIGE_TENEBROUS_VESSEL = 13764;
|
||||||
|
const int IP_CONST_VESTIGE_ACERERAK_DETECT = 13765;
|
||||||
|
const int IP_CONST_VESTIGE_ACERERAK_HIDE = 13766;
|
||||||
|
const int IP_CONST_VESTIGE_ACERERAK_TOUCH = 13767;
|
||||||
|
const int IP_CONST_VESTIGE_BALAM_CUNNING = 13768;
|
||||||
|
const int IP_CONST_VESTIGE_BALAM_GLARE = 13769;
|
||||||
|
const int IP_CONST_VESTIGE_DANTALION_AWE = 13770;
|
||||||
|
const int IP_CONST_VESTIGE_DANTALION_READ = 13771;
|
||||||
|
const int IP_CONST_VESTIGE_DANTALION_TRAVEL = 13772;
|
||||||
|
const int IP_CONST_VESTIGE_GERYON_GAZE = 13773;
|
||||||
|
const int IP_CONST_VESTIGE_GERYON_FLIGHT = 13774;
|
||||||
|
const int IP_CONST_VESTIGE_OTIAX_AIR_BLAST = 13775;
|
||||||
|
const int IP_CONST_VESTIGE_OTIAX_OPEN = 13776;
|
||||||
|
const int IP_CONST_VESTIGE_OTIAX_UNLOCK = 13777;
|
||||||
|
const int IP_CONST_VESTIGE_ARETE_RESISTANCE = 13778;
|
||||||
|
const int IP_CONST_VESTIGE_ASTAROTH_BREATH = 13779;
|
||||||
|
const int IP_CONST_VESTIGE_ASTAROTH_WORD = 13780;
|
||||||
|
const int IP_CONST_VESTIGE_CHUPOCLOPS_DESPAIR = 13781;
|
||||||
|
const int IP_CONST_VESTIGE_CHUPOCLOPS_ETHEREAL = 13782;
|
||||||
|
const int IP_CONST_VESTIGE_HAURES_IMAGE = 13783;
|
||||||
|
const int IP_CONST_VESTIGE_HAURES_KILLER = 13784;
|
||||||
|
const int IP_CONST_VESTIGE_IPOS_INSIGHT = 13785;
|
||||||
|
const int IP_CONST_VESTIGE_SHAX_FREEDOM = 13786;
|
||||||
|
const int IP_CONST_VESTIGE_SHAX_STRIKE = 13787;
|
||||||
|
const int IP_CONST_VESTIGE_ZAGAN_AVERSION = 13788;
|
||||||
|
const int IP_CONST_VESTIGE_VANUS_FREE_ALLY = 13789;
|
||||||
|
const int IP_CONST_VESTIGE_THE_TRIAD_SMITE = 13790;
|
||||||
|
const int IP_CONST_VESTIGE_DESHARIS_TELEPORT = 13791;
|
||||||
|
const int IP_CONST_VESTIGE_DESHARIS_SMITE = 13792;
|
||||||
|
const int IP_CONST_VESTIGE_DESHARIS_ANIMATE = 13793;
|
||||||
|
const int IP_CONST_VESTIGE_ZCERYLL_BOLTS = 13794;
|
||||||
|
const int IP_CONST_VESTIGE_ZCERYLL_SUMMON = 13795;
|
||||||
|
const int IP_CONST_VESTIGE_ZCERYLL_TRUE_STRIKE = 13796;
|
||||||
|
const int IP_CONST_VESTIGE_ELIGOR_STRIKE = 13797;
|
||||||
|
const int IP_CONST_VESTIGE_MARCHOSIAS_SMOKE = 13798;
|
||||||
|
const int IP_CONST_VESTIGE_ASHARDALON_PRESENCE = 13799;
|
||||||
|
const int IP_CONST_VESTIGE_ASHARDALON_LOCATE = 13800;
|
||||||
|
const int IP_CONST_VESTIGE_HALPHAX_IMPRISON = 13801;
|
||||||
|
const int IP_CONST_VESTIGE_HALPHAX_BARRIER = 13802;
|
||||||
|
const int IP_CONST_VESTIGE_HALPHAX_SHELTER = 13803;
|
||||||
|
const int IP_CONST_VESTIGE_ORTHOS_BREATH = 13804;
|
||||||
|
|
||||||
|
// Vestige Ability SpellId Constants
|
||||||
|
const int VESTIGE_NABERIUS_DISGUISE_SELF_LEARN = 19074;
|
||||||
|
const int VESTIGE_NABERIUS_DISGUISE_SELF_OPTIONS = 19075;
|
||||||
|
const int VESTIGE_NABERIUS_DISGUISE_SELF_QS1 = 19076;
|
||||||
|
const int VESTIGE_NABERIUS_DISGUISE_SELF_QS2 = 19077;
|
||||||
|
const int VESTIGE_NABERIUS_DISGUISE_SELF_QS3 = 19078;
|
||||||
|
const int VESTIGE_NABERIUS_COMMAND_APPROACH = 19080;
|
||||||
|
const int VESTIGE_NABERIUS_COMMAND_DROP = 19081;
|
||||||
|
const int VESTIGE_NABERIUS_COMMAND_FALL = 19082;
|
||||||
|
const int VESTIGE_NABERIUS_COMMAND_FLEE = 19083;
|
||||||
|
const int VESTIGE_NABERIUS_COMMAND_HALT = 19084;
|
||||||
|
const int VESTIGE_RONOVE_FARHAND = 19085;
|
||||||
|
const int VESTIGE_RONOVE_BULLRUSH = 19086;
|
||||||
|
const int VESTIGE_FOCALOR_AURA_SADNESS = 19097;
|
||||||
|
const int VESTIGE_KARSUS_SENSES = 19100;
|
||||||
|
const int VESTIGE_KARSUS_DISPEL = 19101;
|
||||||
|
const int VESTIGE_TENEBROUS_TURN = 19111;
|
||||||
|
const int VESTIGE_TENEBROUS_FLICKER = 19112;
|
||||||
|
const int VESTIGE_DANTALION_READ_THOUGHTS = 19119;
|
||||||
|
const int VESTIGE_DANTALION_TRAVEL_SPELL = 19120;
|
||||||
|
const int VESTIGE_ARETE_RESIST = 19126;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_AURA_DESPAIR = 19129;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_ETHEREAL_WATCHER = 19130;
|
||||||
|
const int VESTIGE_THE_TRIAD_SMITE = 19138;
|
||||||
|
|
||||||
|
// General Binding SpellId Constants
|
||||||
|
const int VESTIGE_PACT_AUGMENTATION = 19171;
|
||||||
|
|
||||||
|
// Vestige Ability Constants, matches line # in vestigeabil.2da
|
||||||
|
const int VESTIGE_AMON_DARKVISION = 1 ;
|
||||||
|
const int VESTIGE_AMON_FIREBREATH = 2 ;
|
||||||
|
const int VESTIGE_AMON_RAMATTACK = 3 ;
|
||||||
|
const int VESTIGE_AYM_DWARVEN_STEP = 4 ;
|
||||||
|
const int VESTIGE_AYM_HALO_FIRE = 5 ;
|
||||||
|
const int VESTIGE_AYM_IMP_DISARM = 6 ;
|
||||||
|
const int VESTIGE_AYM_MEDIUM_ARMOR = 7 ;
|
||||||
|
const int VESTIGE_AYM_RESIST_FIRE = 8 ;
|
||||||
|
const int VESTIGE_AYM_RUINOUS_ATTACK = 9 ;
|
||||||
|
const int VESTIGE_LERAJE_HIDE_BONUS = 10;
|
||||||
|
const int VESTIGE_LERAJE_LOW_LIGHT_VISION = 11;
|
||||||
|
const int VESTIGE_LERAJE_PBSHOT = 12;
|
||||||
|
const int VESTIGE_LERAJE_RICOCHET = 13;
|
||||||
|
const int VESTIGE_LERAJE_WEAPON_PROF = 14;
|
||||||
|
const int VESTIGE_NABERIUS_DISGUISE_SELF = 15;
|
||||||
|
const int VESTIGE_NABERIUS_ABILITY_HEALING = 16;
|
||||||
|
const int VESTIGE_NABERIUS_SKILLS = 17;
|
||||||
|
const int VESTIGE_NABERIUS_PERSUASIVE = 18;
|
||||||
|
const int VESTIGE_NABERIUS_SILVER_TONGUE = 19;
|
||||||
|
const int VESTIGE_RONOVE_COLD_IRON = 20;
|
||||||
|
const int VESTIGE_RONOVE_FAR_HAND = 21;
|
||||||
|
const int VESTIGE_RONOVE_FISTS = 22;
|
||||||
|
const int VESTIGE_RONOVE_SPRINT = 23;
|
||||||
|
const int VESTIGE_DAHLVERNAR_MAD_SOUL = 24;
|
||||||
|
const int VESTIGE_DAHLVERNAR_MADDENING_MOAN = 25;
|
||||||
|
const int VESTIGE_DAHLVERNAR_NATURAL_ARMOR = 26;
|
||||||
|
const int VESTIGE_DAHLVERNAR_SHIELD_SELF = 27;
|
||||||
|
const int VESTIGE_HAAGENTI_CONFUSE = 28;
|
||||||
|
const int VESTIGE_HAAGENTI_IMMUNE_TRANS = 29;
|
||||||
|
const int VESTIGE_HAAGENTI_SHIELD_PROF = 30;
|
||||||
|
const int VESTIGE_HAAGENTI_WEAPON_PROF = 31;
|
||||||
|
const int VESTIGE_MALPHAS_ARCANE_EYE = 32;
|
||||||
|
const int VESTIGE_MALPHAS_INVIS = 33;
|
||||||
|
const int VESTIGE_MALPHAS_POISON_USE = 34;
|
||||||
|
const int VESTIGE_MALPHAS_SNEAK_ATTACK = 35;
|
||||||
|
const int VESTIGE_SAVNOK_CALL_ARMOR = 36;
|
||||||
|
const int VESTIGE_SAVNOK_HEAVY_ARMOR_PROF = 37;
|
||||||
|
const int VESTIGE_SAVNOK_MOVE_ALLY = 38;
|
||||||
|
const int VESTIGE_SAVNOK_SAVNOKS_ARMOR = 39;
|
||||||
|
const int VESTIGE_ANDROMALIUS_JESTER = 40;
|
||||||
|
const int VESTIGE_ANDROMALIUS_LOCATE = 41;
|
||||||
|
const int VESTIGE_ANDROMALIUS_SEE = 42;
|
||||||
|
const int VESTIGE_ANDROMALIUS_SENSE = 43;
|
||||||
|
const int VESTIGE_ANDROMALIUS_SNEAK = 44;
|
||||||
|
const int VESTIGE_FOCALOR_AURA = 45;
|
||||||
|
const int VESTIGE_FOCALOR_BREATH = 46;
|
||||||
|
const int VESTIGE_FOCALOR_LIGHTNING = 47;
|
||||||
|
const int VESTIGE_FOCALOR_BREATHING = 48;
|
||||||
|
const int VESTIGE_KARSUS_HEAVY_MAGIC = 49;
|
||||||
|
const int VESTIGE_KARSUS_SENSES_ABIL = 50;
|
||||||
|
const int VESTIGE_KARSUS_TOUCH = 51;
|
||||||
|
const int VESTIGE_KARSUS_WILL = 52;
|
||||||
|
const int VESTIGE_PAIMON_BLADES = 53;
|
||||||
|
const int VESTIGE_PAIMON_DEX = 54;
|
||||||
|
const int VESTIGE_PAIMON_SKILLS = 55;
|
||||||
|
const int VESTIGE_PAIMON_DODGE = 56;
|
||||||
|
const int VESTIGE_PAIMON_WHIRLWIND = 57;
|
||||||
|
const int VESTIGE_PAIMON_DANCE = 58;
|
||||||
|
const int VESTIGE_AGARES_EARTH_MASTERY = 59;
|
||||||
|
const int VESTIGE_AGARES_EARTHSHAKING = 60;
|
||||||
|
const int VESTIGE_AGARES_COMPANION = 61;
|
||||||
|
const int VESTIGE_AGARES_FEAR = 62;
|
||||||
|
const int VESTIGE_ANDRAS_WEAPON_PROF = 63;
|
||||||
|
const int VESTIGE_ANDRAS_MOUNT = 64;
|
||||||
|
const int VESTIGE_ANDRAS_SADDLE_SURE = 65;
|
||||||
|
const int VESTIGE_ANDRAS_SMITE = 66;
|
||||||
|
const int VESTIGE_ANDRAS_DISCORD = 67;
|
||||||
|
const int VESTIGE_ANDRAS_SURE_BLOWS = 68;
|
||||||
|
const int VESTIGE_BUER_KNOWLEDGE = 69;
|
||||||
|
const int VESTIGE_BUER_PURITY = 70;
|
||||||
|
const int VESTIGE_BUER_DELAY_DISEASE = 71;
|
||||||
|
const int VESTIGE_BUER_FAST_HEALING = 72;
|
||||||
|
const int VESTIGE_BUER_HEALING_GIFT = 73;
|
||||||
|
const int VESTIGE_BUER_TRACK = 74;
|
||||||
|
const int VESTIGE_EURYNOME_ANIMAL_FRIEND = 75;
|
||||||
|
const int VESTIGE_EURYNOME_DR = 76;
|
||||||
|
const int VESTIGE_EURYNOME_MAUL = 77;
|
||||||
|
const int VESTIGE_EURYNOME_POISON = 78;
|
||||||
|
const int VESTIGE_TENEBROUS_DARKNESS = 79;
|
||||||
|
const int VESTIGE_TENEBROUS_SEE_DARKNESS = 80;
|
||||||
|
const int VESTIGE_TENEBROUS_TOUCH_VOID = 81;
|
||||||
|
const int VESTIGE_TENEBROUS_TURN_UNDEAD = 82;
|
||||||
|
const int VESTIGE_TENEBROUS_EMPTY_VESSEL = 83;
|
||||||
|
const int VESTIGE_ARETE_PSIONIC_BOON = 84;
|
||||||
|
const int VESTIGE_ARETE_RESISTANCE = 85;
|
||||||
|
const int VESTIGE_ARETE_DR = 86;
|
||||||
|
const int VESTIGE_ARETE_REPLETION = 87;
|
||||||
|
const int VESTIGE_ASTAROTH_LORE = 88;
|
||||||
|
const int VESTIGE_ASTAROTH_BREATH = 89;
|
||||||
|
const int VESTIGE_ASTAROTH_TONGUE = 90;
|
||||||
|
const int VESTIGE_ASTAROTH_CRAFT = 91;
|
||||||
|
const int VESTIGE_ASTAROTH_WORD = 92;
|
||||||
|
const int VESTIGE_ACERERAK_DETECT = 93;
|
||||||
|
const int VESTIGE_ACERERAK_HIDE = 94;
|
||||||
|
const int VESTIGE_ACERERAK_LICH = 95;
|
||||||
|
const int VESTIGE_ACERERAK_TOUCH = 96;
|
||||||
|
const int VESTIGE_ACERERAK_HEALING = 97;
|
||||||
|
const int VESTIGE_BALAM_CUNNING = 98;
|
||||||
|
const int VESTIGE_BALAM_GLARE = 99;
|
||||||
|
const int VESTIGE_BALAM_PRESCIENCE = 100;
|
||||||
|
const int VESTIGE_BALAM_FINESSE = 101;
|
||||||
|
const int VESTIGE_DANTALION_AWE = 102;
|
||||||
|
const int VESTIGE_DANTALION_KNOWS = 103;
|
||||||
|
const int VESTIGE_DANTALION_READ = 104;
|
||||||
|
const int VESTIGE_DANTALION_TRAVEL = 105;
|
||||||
|
const int VESTIGE_GERYON_GAZE = 106;
|
||||||
|
const int VESTIGE_GERYON_VISION = 107;
|
||||||
|
const int VESTIGE_GERYON_DARKNESS = 108;
|
||||||
|
const int VESTIGE_GERYON_FLIGHT = 109;
|
||||||
|
const int VESTIGE_OTIAX_AIR_BLAST = 110;
|
||||||
|
const int VESTIGE_OTIAX_MIST = 111;
|
||||||
|
const int VESTIGE_OTIAX_OPEN = 112;
|
||||||
|
const int VESTIGE_OTIAX_UNLOCK = 113;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_DESPAIR = 114;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_ETHEREAL = 115;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_BITE = 116;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_POUNCE = 117;
|
||||||
|
const int VESTIGE_CHUPOCLOPS_SOULSENSE = 118;
|
||||||
|
const int VESTIGE_HAURES_MIND = 119;
|
||||||
|
const int VESTIGE_HAURES_MOVE = 120;
|
||||||
|
const int VESTIGE_HAURES_IMAGE = 121;
|
||||||
|
const int VESTIGE_HAURES_KILLER = 122;
|
||||||
|
const int VESTIGE_IPOS_CLAWS = 123;
|
||||||
|
const int VESTIGE_IPOS_INSIGHT = 124;
|
||||||
|
const int VESTIGE_IPOS_INFLUENCE = 125;
|
||||||
|
const int VESTIGE_IPOS_REND = 126;
|
||||||
|
const int VESTIGE_SHAX_FREEDOM = 127;
|
||||||
|
const int VESTIGE_SHAX_IMMUNITY = 128;
|
||||||
|
const int VESTIGE_SHAX_STORM_STRIKE = 129;
|
||||||
|
const int VESTIGE_ZAGAN_AVERSION = 130;
|
||||||
|
const int VESTIGE_ZAGAN_GRAPPLE = 131;
|
||||||
|
const int VESTIGE_ZAGAN_SCENT = 132;
|
||||||
|
const int VESTIGE_ZAGAN_CONSTRICT = 133;
|
||||||
|
const int VESTIGE_ZAGAN_LIZARD_BANE = 134;
|
||||||
|
const int VESTIGE_VANUS_FEAR_AURA = 135;
|
||||||
|
const int VESTIGE_VANUS_FREE_ALLY = 136;
|
||||||
|
const int VESTIGE_VANUS_DISDAIN = 137;
|
||||||
|
const int VESTIGE_VANUS_EARS = 138;
|
||||||
|
const int VESTIGE_THE_TRIAD_PSIONIC_BOON = 139;
|
||||||
|
const int VESTIGE_THE_TRIAD_GORN = 140;
|
||||||
|
const int VESTIGE_THE_TRIAD_RUJSHA = 141;
|
||||||
|
const int VESTIGE_THE_TRIAD_MINTAR = 142;
|
||||||
|
const int VESTIGE_DESHARIS_CITY_DWELLER = 143;
|
||||||
|
const int VESTIGE_DESHARIS_TELEPORT = 144;
|
||||||
|
const int VESTIGE_DESHARIS_SMITE = 145;
|
||||||
|
const int VESTIGE_DESHARIS_ANIMATE = 146;
|
||||||
|
const int VESTIGE_ZCERYLL_ALIEN_FORM = 147;
|
||||||
|
const int VESTIGE_ZCERYLL_ALIEN_MIND = 148;
|
||||||
|
const int VESTIGE_ZCERYLL_BOLTS = 149;
|
||||||
|
const int VESTIGE_ZCERYLL_SUMMON = 150;
|
||||||
|
const int VESTIGE_ELIGOR_STRIKE = 151;
|
||||||
|
const int VESTIGE_ELIGOR_SADDLE = 152;
|
||||||
|
const int VESTIGE_ELIGOR_STRENGTH = 153;
|
||||||
|
const int VESTIGE_ELIGOR_RESILIENCE = 154;
|
||||||
|
const int VESTIGE_ELIGOR_ARMOR = 155;
|
||||||
|
const int VESTIGE_MARCHOSIAS_DEATH_ATTACK = 156;
|
||||||
|
const int VESTIGE_MARCHOSIAS_RETRIBUTION = 157;
|
||||||
|
const int VESTIGE_MARCHOSIAS_SMOKE = 158;
|
||||||
|
const int VESTIGE_MARCHOSIAS_SILENT = 159;
|
||||||
|
const int VESTIGE_ASHARDALON_CREED = 160;
|
||||||
|
const int VESTIGE_ASHARDALON_PRESENCE = 161;
|
||||||
|
const int VESTIGE_ASHARDALON_VIGOR = 162;
|
||||||
|
const int VESTIGE_ASHARDALON_HEART = 163;
|
||||||
|
const int VESTIGE_HALPHAX_DR = 164;
|
||||||
|
const int VESTIGE_HALPHAX_KNOWLEDGE = 165;
|
||||||
|
const int VESTIGE_HALPHAX_IMPRISON = 166;
|
||||||
|
const int VESTIGE_HALPHAX_BARRIER = 167;
|
||||||
|
const int VESTIGE_HALPHAX_SHELTER = 168;
|
||||||
|
const int VESTIGE_ORTHOS_SIGHT = 169;
|
||||||
|
const int VESTIGE_ORTHOS_DISPLACEMENT = 170;
|
||||||
|
const int VESTIGE_ORTHOS_BREATH = 171;
|
||||||
|
const int VESTIGE_ABYSM_PSIONIC_BOON = 172;
|
||||||
|
const int VESTIGE_ABYSM_OVERPOWER = 173;
|
||||||
190
src/include/inc_2dacache.nss
Normal file
190
src/include/inc_2dacache.nss
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
/** @file
|
||||||
|
* Caching 2da read function and related.
|
||||||
|
*
|
||||||
|
* SQL/NWNx functions now in inc_sql
|
||||||
|
* @author Primogenitor
|
||||||
|
*
|
||||||
|
* @todo Document the constants and functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
const int DEBUG_GET2DACACHE = FALSE;
|
||||||
|
|
||||||
|
string Get2DACache(string s2DA, string sColumn, int nRow);
|
||||||
|
|
||||||
|
string GetBiowareDBName();
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Include section */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "inc_debug"
|
||||||
|
//#include "prc_inc_switch"
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Function defintions */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*
|
||||||
|
This is fugly and long. Should maybe be refactored to multiple functions. But everything inline does give
|
||||||
|
a few less instructions used.
|
||||||
|
|
||||||
|
Caching behaviour: Tokens in creature inventory
|
||||||
|
*/
|
||||||
|
string Get2DACache(string s2DA, string sColumn, int nRow)
|
||||||
|
{
|
||||||
|
//lower case the 2da and column
|
||||||
|
s2DA = GetStringLowerCase(s2DA);
|
||||||
|
sColumn = GetStringLowerCase(sColumn);
|
||||||
|
|
||||||
|
/*//get the chest that contains the cache
|
||||||
|
object oCacheWP = GetObjectByTag("Bioware2DACache");
|
||||||
|
//if no chest, use HEARTOFCHAOS in limbo as a location to make a new one
|
||||||
|
if (!GetIsObjectValid(oCacheWP))
|
||||||
|
{
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Cache container creature does not exist, creating new one");
|
||||||
|
//oCacheWP = CreateObject(OBJECT_TYPE_PLACEABLE, "plc_chest2",
|
||||||
|
// GetLocation(GetObjectByTag("HEARTOFCHAOS")), FALSE, "Bioware2DACache");
|
||||||
|
//has to be a creature, placeables cant go through the DB
|
||||||
|
oCacheWP = CreateObject(OBJECT_TYPE_CREATURE, "prc_2da_cache",
|
||||||
|
GetLocation(GetObjectByTag("HEARTOFCHAOS")), FALSE, "Bioware2DACache");
|
||||||
|
}
|
||||||
|
|
||||||
|
//get the token for this file
|
||||||
|
string sFileWPName = s2DA + "_" + sColumn + "_" + IntToString(nRow / 1000);
|
||||||
|
//if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Token tag is " + sFileWPName);
|
||||||
|
object oFileWP = GetObjectByTag(sFileWPName);
|
||||||
|
//token doesnt exist make it
|
||||||
|
if(!GetIsObjectValid(oFileWP))
|
||||||
|
{
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Token does not exist, creating new one");
|
||||||
|
|
||||||
|
// Use containers to avoid running out of inventory space
|
||||||
|
int nContainer = 0;
|
||||||
|
string sContainerName = "Bio2DACacheTokenContainer_" + GetSubString(s2DA, 0, 1) + "_";
|
||||||
|
object oContainer = GetObjectByTag(sContainerName + IntToString(nContainer));
|
||||||
|
|
||||||
|
// Find last existing container
|
||||||
|
if(GetIsObjectValid(oContainer))
|
||||||
|
{
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Seeking last container in series: " + sContainerName);
|
||||||
|
// find the last container
|
||||||
|
nContainer = GetLocalInt(oContainer, "ContainerCount");
|
||||||
|
oContainer = GetObjectByTag(sContainerName + IntToString(nContainer));
|
||||||
|
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Found: " + DebugObject2Str(oContainer));
|
||||||
|
|
||||||
|
// Make sure it's not full
|
||||||
|
if(GetLocalInt(oContainer, "NumTokensInside") >= 34) // Container has 35 slots. Attempt to not use them all, just in case
|
||||||
|
{
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Container full: " + DebugObject2Str(oContainer));
|
||||||
|
oContainer = OBJECT_INVALID;
|
||||||
|
++nContainer; // new container is 1 higher than last one
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// We need to create a container
|
||||||
|
if(!GetIsObjectValid(oContainer))
|
||||||
|
{
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Creating new container");
|
||||||
|
|
||||||
|
oContainer = CreateObject(OBJECT_TYPE_ITEM, "nw_it_contain001", GetLocation(oCacheWP), FALSE, sContainerName + IntToString(nContainer));
|
||||||
|
DestroyObject(oContainer);
|
||||||
|
oContainer = CopyObject(oContainer, GetLocation(oCacheWP), oCacheWP, sContainerName + IntToString(nContainer));
|
||||||
|
// store the new number of containers in this series
|
||||||
|
if (nContainer)
|
||||||
|
SetLocalInt( GetObjectByTag(sContainerName + "0"), "ContainerCount", nContainer);
|
||||||
|
// else this is the first container - do nothing as this is the same as storing 0 on it.
|
||||||
|
// Also here we still have 2 objects with the same tag so above code may get
|
||||||
|
// the object destroyed at the end of the function if this is the first container.
|
||||||
|
}
|
||||||
|
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Using container: " + DebugObject2Str(oContainer));
|
||||||
|
|
||||||
|
// Create the new token
|
||||||
|
//oFileWP = CreateObject(OBJECT_TYPE_ITEM, "hidetoken", GetLocation(oCacheWP), FALSE, sFileWPName);
|
||||||
|
//DestroyObject(oFileWP);
|
||||||
|
//oFileWP = CopyObject(oFileWP, GetLocation(oCacheWP), oCacheWP, sFileWPName);
|
||||||
|
oFileWP = CreateItemOnObject("hidetoken", oContainer, 1, sFileWPName);
|
||||||
|
|
||||||
|
//SetName(oFileWP, "2da Cache - " + sFileWPName);
|
||||||
|
|
||||||
|
// Increment token count tracking variable
|
||||||
|
SetLocalInt(oContainer, "NumTokensInside", GetLocalInt(oContainer, "NumTokensInside") + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the value from the cache
|
||||||
|
string s = GetLocalString(oFileWP, s2DA+"|"+sColumn+"|"+IntToString(nRow));
|
||||||
|
//entry didnt exist in the cache
|
||||||
|
if(s == "")
|
||||||
|
{
|
||||||
|
//fetch from the 2da file
|
||||||
|
s = Get2DAString(s2DA, sColumn, nRow);
|
||||||
|
|
||||||
|
// store it on the waypoint
|
||||||
|
SetLocalString(oFileWP, s2DA+"|"+sColumn+"|"+IntToString(nRow),
|
||||||
|
(s == "" ? "****" : s) ); // this sets the stored string to "****" if s is an empty string (else stores s)
|
||||||
|
if(DEBUG_GET2DACACHE) DoDebug("Get2DACache: Missing from cache: " + s2DA + "|" + sColumn + "|" + IntToString(nRow));
|
||||||
|
}
|
||||||
|
//if(DEBUG_GET2DACACHE) PrintString("Get2DACache: Returned value is '" + s + "'");*/
|
||||||
|
string s = Get2DAString(s2DA, sColumn, nRow);
|
||||||
|
return s == "****" ? "" : s;
|
||||||
|
}
|
||||||
|
|
||||||
|
string GetBiowareDBName()
|
||||||
|
{
|
||||||
|
string sReturn;
|
||||||
|
sReturn = "prc_data";
|
||||||
|
//if(GetPRCSwitch(MARKER_PRC_COMPANION))
|
||||||
|
// sReturn += "cp";
|
||||||
|
if(GetPRCSwitch(MARKER_CEP1))
|
||||||
|
sReturn += "c1";
|
||||||
|
if(GetPRCSwitch(MARKER_CEP2))
|
||||||
|
sReturn += "c2";
|
||||||
|
if(GetPRCSwitch(MARKER_Q))
|
||||||
|
sReturn += "q";
|
||||||
|
return sReturn;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the file end for the given 2da.
|
||||||
|
*
|
||||||
|
* @param sTable The 2da to get the file end for
|
||||||
|
* @return The file end value of the 2da.
|
||||||
|
*/
|
||||||
|
int PRCGetFileEnd(string sTable)
|
||||||
|
{
|
||||||
|
sTable = GetStringLowerCase(sTable);
|
||||||
|
return GetPRCSwitch("PRC_FILE_END_" + sTable);
|
||||||
|
/* //check fileends.2da first
|
||||||
|
int nEnd = StringToInt(Get2DACache("fileends", sTable, 0));
|
||||||
|
|
||||||
|
//still nothing - check
|
||||||
|
if(!nEnd) nEnd = StringToInt(Get2DACache("fileends", GetStringLeft(sTable, 8)+"*", 0));
|
||||||
|
|
||||||
|
return nEnd;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the file end for special PRC files - used in new spellbook system.
|
||||||
|
*
|
||||||
|
* cls_psipw_*
|
||||||
|
* cls_move_*
|
||||||
|
* cls_true_*
|
||||||
|
* cls_inv_*
|
||||||
|
* cls_spell_*
|
||||||
|
*
|
||||||
|
* @param sTable The 2da to get the file end for
|
||||||
|
* @return The file end value of the 2da.
|
||||||
|
*/
|
||||||
|
int PRCGetDynamicFileEnd(string sTable)
|
||||||
|
{
|
||||||
|
int nRet = StringToInt(Get2DACache(sTable, "label", 0));
|
||||||
|
if(!nRet)
|
||||||
|
{
|
||||||
|
if (DEBUG) DoDebug("FileEnd for "+sTable+" not found! Using default value.");
|
||||||
|
nRet = 2720;
|
||||||
|
}
|
||||||
|
return nRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Cache setup functions moved to inc_cache_setup
|
||||||
215
src/include/inc_abil_damage.nss
Normal file
215
src/include/inc_abil_damage.nss
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
//::///////////////////////////////////////////////
|
||||||
|
//:: Ability Damage special effects include
|
||||||
|
//:: inc_abil_damage
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
/** @file
|
||||||
|
Implements the special effects of an ability
|
||||||
|
score falling down to 0 as according to PnP.
|
||||||
|
|
||||||
|
Strength: Lies helpless on ground (knockdown)
|
||||||
|
Dexterity: Paralyzed
|
||||||
|
Constitution: Death
|
||||||
|
Intelligence: Coma (knockdown)
|
||||||
|
Wisdom: Coma (knockdown)
|
||||||
|
Charisma: Coma (knockdown)
|
||||||
|
|
||||||
|
|
||||||
|
This can be turned off with a switch in
|
||||||
|
prc_inc_switches : PRC_NO_PNP_ABILITY_DAMAGE
|
||||||
|
|
||||||
|
|
||||||
|
NOTE: Due to BioOptimization (tm), Dex reaching
|
||||||
|
0 from above 3 when any other stat is already
|
||||||
|
at 0 will result in Dex being considered
|
||||||
|
restored at the same time the other stat is.
|
||||||
|
|
||||||
|
This might be workable around, but not
|
||||||
|
efficiently.
|
||||||
|
*/
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
//:: Created By: Ornedan
|
||||||
|
//:: Created On: 09.04.2005
|
||||||
|
//:: Modified On: 25.06.2005
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*
|
||||||
|
[00:55] <Stratovarius> yup
|
||||||
|
[00:56] <Stratovarius> well, something to add
|
||||||
|
[00:56] <Stratovarius> if KTTS reduces target to 0 (or would, i know NWN goes to 3)
|
||||||
|
[00:56] <Stratovarius> drop a cutscene paralyze on em
|
||||||
|
[00:56] <Stratovarius> and a long duration knockdown
|
||||||
|
[01:00] <Ornedan> 'k. And spawn a pseudo-hb on them to do recovery if they ever regain the mental stat
|
||||||
|
[01:01] <Ornedan> Also, test result: You lose spellcasting if your casting stat drops below the required, even if the reduction is a magical penalty
|
||||||
|
[01:03] <Stratovarius> you do? cool
|
||||||
|
*/
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Function prototypes */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Internal function. Called by a threadscript. Handles checking if any ability that has reached 0 has been restored
|
||||||
|
void AbilityDamageMonitor();
|
||||||
|
|
||||||
|
// Dex needs special handling due to the way CutsceneParalyze works (sets Dex to 3)
|
||||||
|
void DoDexCheck(object oCreature, int bFirstPart = TRUE);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Includes */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//#include "prc_inc_spells"
|
||||||
|
#include "prc_inc_damage" //functions to apply damage
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Function defintions */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void AbilityDamageMonitor()
|
||||||
|
{
|
||||||
|
object oCreature = OBJECT_SELF;
|
||||||
|
int nMonitoredAbilities = GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR);
|
||||||
|
int nEffects = GetLocalInt(oCreature, ABILITY_DAMAGE_SPECIALS);
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor running");
|
||||||
|
|
||||||
|
// Check each of the monitored abilities
|
||||||
|
if(nMonitoredAbilities & (1 << ABILITY_STRENGTH))
|
||||||
|
{
|
||||||
|
if(GetAbilityScore(oCreature, ABILITY_STRENGTH) > 3)
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oCreature, VIRTUAL_ABILITY_SCORE + IntToString(ABILITY_STRENGTH));
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR, GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR) ^ (1 << ABILITY_STRENGTH));
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Strength healed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*if(nMonitoredAbilities & (1 << ABILITY_DEXTERITY))
|
||||||
|
{
|
||||||
|
if(GetAbilityScore(oCreature, ABILITY_DEXTERITY) > 3)
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oCreature, VIRTUAL_ABILITY_SCORE + IntToString(ABILITY_DEXTERITY));
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR, GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR) ^ (1 << ABILITY_DEXTERITY));
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
if(nMonitoredAbilities & (1 << ABILITY_INTELLIGENCE))
|
||||||
|
{
|
||||||
|
if(GetAbilityScore(oCreature, ABILITY_INTELLIGENCE) > 3)
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oCreature, VIRTUAL_ABILITY_SCORE + IntToString(ABILITY_INTELLIGENCE));
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR, GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR) ^ (1 << ABILITY_INTELLIGENCE));
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Int healed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(nMonitoredAbilities & (1 << ABILITY_WISDOM))
|
||||||
|
{
|
||||||
|
if(GetAbilityScore(oCreature, ABILITY_WISDOM) > 3)
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oCreature, VIRTUAL_ABILITY_SCORE + IntToString(ABILITY_WISDOM));
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR, GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR) ^ (1 << ABILITY_WISDOM));
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Wis healed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(nMonitoredAbilities & (1 << ABILITY_CHARISMA))
|
||||||
|
{
|
||||||
|
if(GetAbilityScore(oCreature, ABILITY_CHARISMA) > 3)
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oCreature, VIRTUAL_ABILITY_SCORE + IntToString(ABILITY_CHARISMA));
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR, GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR) ^ (1 << ABILITY_CHARISMA));
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Cha healed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check which effects, if any, need to be removed
|
||||||
|
int bRemovePara, bRemoveKnock;
|
||||||
|
nMonitoredAbilities = GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR);
|
||||||
|
if(!(nMonitoredAbilities & (1 << ABILITY_STRENGTH) ||
|
||||||
|
nMonitoredAbilities & (1 << ABILITY_INTELLIGENCE) ||
|
||||||
|
nMonitoredAbilities & (1 << ABILITY_WISDOM) ||
|
||||||
|
nMonitoredAbilities & (1 << ABILITY_CHARISMA)
|
||||||
|
) )
|
||||||
|
{
|
||||||
|
// Only remove effects if they are present
|
||||||
|
if(nEffects & ABILITY_DAMAGE_EFFECT_KNOCKDOWN)
|
||||||
|
{
|
||||||
|
bRemoveKnock = TRUE;
|
||||||
|
nEffects ^= ABILITY_DAMAGE_EFFECT_KNOCKDOWN;
|
||||||
|
}
|
||||||
|
if(!(nMonitoredAbilities & (1 << ABILITY_DEXTERITY)))
|
||||||
|
{
|
||||||
|
if(nEffects & ABILITY_DAMAGE_EFFECT_PARALYZE)
|
||||||
|
{
|
||||||
|
bRemovePara = TRUE;
|
||||||
|
nEffects ^= ABILITY_DAMAGE_EFFECT_KNOCKDOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Dex is the only remaining stat keeping CutscenePara on, so run the dexcheck
|
||||||
|
else
|
||||||
|
DelayCommand(0.1f, DoDexCheck(oCreature, TRUE));
|
||||||
|
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_SPECIALS, nEffects);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor bRemovePara:" + IntToString(bRemovePara));
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor bRemoveKnock:" + IntToString(bRemoveKnock));
|
||||||
|
|
||||||
|
// Do effect removal
|
||||||
|
if(bRemovePara || bRemoveKnock)
|
||||||
|
{
|
||||||
|
effect eCheck = GetFirstEffect(oCreature);
|
||||||
|
while(GetIsEffectValid(eCheck))
|
||||||
|
{
|
||||||
|
if(bRemovePara && GetEffectType(eCheck) == EFFECT_TYPE_CUTSCENE_PARALYZE){
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Removed para");
|
||||||
|
RemoveEffect(oCreature, eCheck);
|
||||||
|
}
|
||||||
|
else if(bRemoveKnock && GetEffectType(eCheck) == 0){
|
||||||
|
RemoveEffect(oCreature, eCheck);
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Removed knock");
|
||||||
|
}
|
||||||
|
eCheck = GetNextEffect(oCreature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (DEBUG) DoDebug("AbilityDamageMonitor Monitored abilities:" + IntToString(nMonitoredAbilities));
|
||||||
|
|
||||||
|
// Stop the thread if there is nothing to monitor anymore
|
||||||
|
if(!nMonitoredAbilities)
|
||||||
|
TerminateCurrentThread();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DoDexCheck(object oCreature, int bFirstPart = TRUE)
|
||||||
|
{
|
||||||
|
// Remove CutscenePara
|
||||||
|
if(bFirstPart)
|
||||||
|
{
|
||||||
|
effect eCheck = GetFirstEffect(oCreature);
|
||||||
|
while(GetIsEffectValid(eCheck))
|
||||||
|
{
|
||||||
|
if(GetEffectType(eCheck) == EFFECT_TYPE_CUTSCENE_PARALYZE)
|
||||||
|
RemoveEffect(oCreature, eCheck);
|
||||||
|
eCheck = GetNextEffect(oCreature);
|
||||||
|
}
|
||||||
|
|
||||||
|
DelayCommand(0.1f, DoDexCheck(oCreature, FALSE));
|
||||||
|
if (DEBUG) DoDebug("First part ran");
|
||||||
|
}
|
||||||
|
// Check if Dex is over 3 when it's gone
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// It is, so remove Dex from the monitored list
|
||||||
|
if(GetAbilityScore(oCreature, ABILITY_DEXTERITY) > 3)
|
||||||
|
{
|
||||||
|
DeleteLocalInt(oCreature, VIRTUAL_ABILITY_SCORE + IntToString(ABILITY_DEXTERITY));
|
||||||
|
SetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR, GetLocalInt(oCreature, ABILITY_DAMAGE_MONITOR) ^ (1 << ABILITY_DEXTERITY));
|
||||||
|
if (DEBUG) DoDebug("Dex check +");
|
||||||
|
}
|
||||||
|
/*else
|
||||||
|
SendMessageToPC(GetFirstPC(), "Dex check -");*/
|
||||||
|
|
||||||
|
// Apply CutscenePara back in either case. Next monitor call will remove it if it's supposed to be gone
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectCutsceneParalyze(), oCreature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Test main
|
||||||
|
//void main(){}
|
||||||
98
src/include/inc_acp.nss
Normal file
98
src/include/inc_acp.nss
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
#include "prc_inc_switch"
|
||||||
|
|
||||||
|
const int PHENOTYPE_KENSAI = 49;
|
||||||
|
const int PHENOTYPE_ASSASSIN = 50;
|
||||||
|
const int PHENOTYPE_BARBARIAN = 51;
|
||||||
|
const int PHENOTYPE_FENCING = 52;
|
||||||
|
const int PHENOTYPE_ARCANE = 53;
|
||||||
|
const int PHENOTYPE_DEMONBLADE = 54;
|
||||||
|
const int PHENOTYPE_WARRIOR = 55;
|
||||||
|
const int PHENOTYPE_TIGERFANG = 56;
|
||||||
|
const int PHENOTYPE_SUNFIST = 57;
|
||||||
|
const int PHENOTYPE_DRAGONPALM = 58;
|
||||||
|
const int PHENOTYPE_BEARSCLAW = 59;
|
||||||
|
|
||||||
|
string sLock = "acp_fightingstyle_lock";
|
||||||
|
|
||||||
|
/* This creates a LocalInt - a "lock" - ..we check further down if it exists...
|
||||||
|
* if it does, we don't allow phenotype changing. To prevent lag spam. */
|
||||||
|
void LockThisFeat()
|
||||||
|
{
|
||||||
|
SetLocalInt(OBJECT_SELF, sLock, TRUE);
|
||||||
|
float fDelay = IntToFloat(GetPRCSwitch(PRC_ACP_DELAY))*60.0;
|
||||||
|
if(fDelay == 0.0)
|
||||||
|
fDelay = 90.0;
|
||||||
|
if(fDelay == -60.0)
|
||||||
|
fDelay = 0.0;
|
||||||
|
DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, sLock)); //Lock persists 1 min times switchval
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResetFightingStyle() //Resets the character phenotype to 0
|
||||||
|
{
|
||||||
|
int nCurrentPheno = GetPhenoType(OBJECT_SELF);
|
||||||
|
|
||||||
|
//If we are at phenotype 0 or 2, we do nothing. Tell the player that.
|
||||||
|
if(nCurrentPheno == PHENOTYPE_NORMAL
|
||||||
|
|| nCurrentPheno == PHENOTYPE_BIG)
|
||||||
|
SendMessageToPC(OBJECT_SELF, "You are already using the default combat style.");
|
||||||
|
|
||||||
|
//else if we are at an ACP phenotype we want to reset it to neutral.
|
||||||
|
else if(nCurrentPheno == PHENOTYPE_KENSAI
|
||||||
|
|| nCurrentPheno == PHENOTYPE_ASSASSIN
|
||||||
|
|| nCurrentPheno == PHENOTYPE_BARBARIAN
|
||||||
|
|| nCurrentPheno == PHENOTYPE_FENCING
|
||||||
|
|| nCurrentPheno == PHENOTYPE_ARCANE
|
||||||
|
|| nCurrentPheno == PHENOTYPE_DEMONBLADE
|
||||||
|
|| nCurrentPheno == PHENOTYPE_WARRIOR
|
||||||
|
|| nCurrentPheno == PHENOTYPE_TIGERFANG
|
||||||
|
|| nCurrentPheno == PHENOTYPE_SUNFIST
|
||||||
|
|| nCurrentPheno == PHENOTYPE_DRAGONPALM
|
||||||
|
|| nCurrentPheno == PHENOTYPE_BEARSCLAW)
|
||||||
|
{
|
||||||
|
SetPhenoType(PHENOTYPE_NORMAL);
|
||||||
|
LockThisFeat(); // Lock use!
|
||||||
|
}
|
||||||
|
|
||||||
|
//else, warn that the player doesn't have a phenotype which can be reset right now
|
||||||
|
else
|
||||||
|
SendMessageToPC(OBJECT_SELF, "Your phenotype is non-standard and cannot be reset this way.");
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetCustomFightingStyle(int iStyle) //Sets character phenotype to 5,6,7 or 8
|
||||||
|
{
|
||||||
|
int nCurrentPheno = GetPhenoType(OBJECT_SELF);
|
||||||
|
|
||||||
|
//Maybe we're already using this fighting style? Just warn the player.
|
||||||
|
if(nCurrentPheno == iStyle)
|
||||||
|
SendMessageToPC(OBJECT_SELF, "You're already using this fighting style!");
|
||||||
|
|
||||||
|
//If we are at phenotype 0 or one of the styles themselves, we go ahead
|
||||||
|
//and set the creature's phenotype accordingly! (safe thanks to previous 'if')
|
||||||
|
else if(nCurrentPheno == PHENOTYPE_NORMAL
|
||||||
|
|| nCurrentPheno == PHENOTYPE_KENSAI
|
||||||
|
|| nCurrentPheno == PHENOTYPE_ASSASSIN
|
||||||
|
|| nCurrentPheno == PHENOTYPE_FENCING
|
||||||
|
|| nCurrentPheno == PHENOTYPE_ARCANE
|
||||||
|
|| nCurrentPheno == PHENOTYPE_BARBARIAN
|
||||||
|
|| nCurrentPheno == PHENOTYPE_DEMONBLADE
|
||||||
|
|| nCurrentPheno == PHENOTYPE_WARRIOR
|
||||||
|
|| nCurrentPheno == PHENOTYPE_TIGERFANG
|
||||||
|
|| nCurrentPheno == PHENOTYPE_SUNFIST
|
||||||
|
|| nCurrentPheno == PHENOTYPE_DRAGONPALM
|
||||||
|
|| nCurrentPheno == PHENOTYPE_BEARSCLAW)
|
||||||
|
{
|
||||||
|
SetPhenoType(iStyle);
|
||||||
|
LockThisFeat(); // Lock use!
|
||||||
|
}
|
||||||
|
|
||||||
|
//At phenotype 2? Tell the player they're too fat!
|
||||||
|
else if (nCurrentPheno == PHENOTYPE_BIG)
|
||||||
|
SendMessageToPC(OBJECT_SELF, "You're too fat to use a different fighting style!");
|
||||||
|
|
||||||
|
//...we didn't fulfil the above conditions? Warn the player.
|
||||||
|
else
|
||||||
|
SendMessageToPC(OBJECT_SELF, "Your phenotype is non-standard / Unable to change style");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test main
|
||||||
|
//void main(){}
|
||||||
202
src/include/inc_addragebonus.nss
Normal file
202
src/include/inc_addragebonus.nss
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
#include "inc_utility"
|
||||||
|
|
||||||
|
//:: Created by Mr. Bumpkin
|
||||||
|
//:: Include for all rages
|
||||||
|
//:: This function gets called right after the attribute bonuses are
|
||||||
|
//:: Applied.
|
||||||
|
|
||||||
|
// Applies all the bonus damage, to hit, and temporary hp to barbarians who would go over their
|
||||||
|
// +12 attribute caps by raging.
|
||||||
|
void GiveExtraRageBonuses(int nDuration, int nStrBeforeRaging, int nConBeforeRaging, int strBonus, int conBonus, int nSave, int nDamageBonusType, object oRager = OBJECT_SELF);
|
||||||
|
|
||||||
|
// Returns the damage type of the weapon held in nInventorySlot by oCreature. If they aren't
|
||||||
|
// holding a weapon, or the weapon they're holding is a x-bow, sling, shuriken, or dart, it returns
|
||||||
|
// either the damage type of slashing or bludgeoning, depending on whether they have a prc creature
|
||||||
|
// slashing weapon or not. It's bludgeoning if they don't have a prc creature slashing weapon.
|
||||||
|
int GetDamageTypeOfWeapon(int nInventorySlot, object oCreature = OBJECT_SELF);
|
||||||
|
|
||||||
|
// Applies all the bonus damage, to hit, and temporary hp to barbarians who would go over their
|
||||||
|
// +12 attribute caps by raging.
|
||||||
|
void GiveExtraRageBonuses(int nDuration, int nStrBeforeRaging, int nConBeforeRaging, int strBonus, int conBonus, int nSave, int nDamageBonusType, object oRager = OBJECT_SELF)
|
||||||
|
{
|
||||||
|
float nDelayed = 0.1;
|
||||||
|
|
||||||
|
int nStrSinceRaging = GetAbilityScore(oRager, ABILITY_STRENGTH);
|
||||||
|
int nConSinceRaging = GetAbilityScore(oRager, ABILITY_CONSTITUTION);
|
||||||
|
|
||||||
|
|
||||||
|
int nStrAdded = nStrSinceRaging - nStrBeforeRaging;
|
||||||
|
// The amount that was added to the str
|
||||||
|
int nStrWeWouldAdd = strBonus - nStrAdded;
|
||||||
|
// The amount we would have to theorhetically add if we wanted to give them the full bonus.
|
||||||
|
effect eDamage;
|
||||||
|
effect eToHit;
|
||||||
|
|
||||||
|
if(nStrAdded < strBonus)
|
||||||
|
{
|
||||||
|
//int nDamageBonusType = GetDamageTypeOfWeapon(INVENTORY_SLOT_RIGHTHAND, oRager);
|
||||||
|
|
||||||
|
if((nStrSinceRaging/2) * 2 != nStrSinceRaging)
|
||||||
|
// determine if their current Str right now is odd
|
||||||
|
{
|
||||||
|
if((nStrWeWouldAdd/2) * 2 != nStrWeWouldAdd)
|
||||||
|
// determine if the amount we would theorhetically have to add is odd.
|
||||||
|
// If so, then we're adding 2 odd numbers together to get an even. Add one to the bonuses
|
||||||
|
{
|
||||||
|
//::::: in this event we add nStrWeWouldAdd/2 + 1
|
||||||
|
//int nAmountToAdd = nStrWeWouldAdd/2 + 1;
|
||||||
|
|
||||||
|
eDamage = EffectDamageIncrease(nStrWeWouldAdd/2 + 1, nDamageBonusType);
|
||||||
|
eToHit = EffectAttackIncrease(nStrWeWouldAdd/2 +1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//::::: in this event we add nStrWeWouldAdd/2
|
||||||
|
eDamage = EffectDamageIncrease(nStrWeWouldAdd/2, nDamageBonusType);
|
||||||
|
eToHit = EffectAttackIncrease(nStrWeWouldAdd/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//::::: in this event we add nStrWeWouldAdd/2
|
||||||
|
eDamage = EffectDamageIncrease(nStrWeWouldAdd/2, nDamageBonusType);
|
||||||
|
eToHit = EffectAttackIncrease(nStrWeWouldAdd/2);
|
||||||
|
}
|
||||||
|
|
||||||
|
effect eLink2 = ExtraordinaryEffect(EffectLinkEffects(eDamage, eToHit));
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink2, oRager, RoundsToSeconds(nDuration) - nDelayed);
|
||||||
|
// Applies the damage and toHit effects. I couldn't help myself, so I made the damage type be fire.
|
||||||
|
|
||||||
|
}
|
||||||
|
// If nStrAdded >= nStrBonus, then no need to add any special bonuses. :)
|
||||||
|
|
||||||
|
int nConAdded = nConSinceRaging - nConBeforeRaging;
|
||||||
|
// The amount that was added to the Con
|
||||||
|
int nConWeWouldAdd = conBonus - nConAdded;
|
||||||
|
// The amount we would have to theorhetically add if we wanted to give them the full bonus.
|
||||||
|
|
||||||
|
|
||||||
|
if(nConAdded < conBonus)
|
||||||
|
{
|
||||||
|
effect eHitPoints;
|
||||||
|
effect eHPRemoved;
|
||||||
|
|
||||||
|
int nCharacterLevel = GetHitDice(oRager);
|
||||||
|
|
||||||
|
if((nConSinceRaging/2) * 2 != nConSinceRaging)
|
||||||
|
// determine if their current Con right now is odd
|
||||||
|
{
|
||||||
|
if((nConWeWouldAdd/2) * 2 != nConWeWouldAdd)
|
||||||
|
// determine if the amount we would theorhetically have to add is odd.
|
||||||
|
// If so, then we're adding 2 odd numbers together to get an even. Add one to the bonuses
|
||||||
|
{
|
||||||
|
//::::: in this event we add nConWeWouldAdd/2 + 1
|
||||||
|
|
||||||
|
eHitPoints = EffectTemporaryHitpoints((nConWeWouldAdd/2 +1) * nCharacterLevel);
|
||||||
|
eHPRemoved = EffectDamage(((nConWeWouldAdd/2 +1) * nCharacterLevel), DAMAGE_TYPE_MAGICAL);
|
||||||
|
// We have to remove the temporary HP at the end of the rage via a damage effect, hehe.
|
||||||
|
// The damage type will be magical, something to keep in mind of magical resistances exist
|
||||||
|
// on your module. :) If that's a problem, change the damage type.
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//::::: in this event we add nConWeWouldAdd/2
|
||||||
|
|
||||||
|
eHitPoints = EffectTemporaryHitpoints((nConWeWouldAdd/2) * nCharacterLevel);
|
||||||
|
eHPRemoved = EffectDamage(((nConWeWouldAdd/2) * nCharacterLevel), DAMAGE_TYPE_MAGICAL);
|
||||||
|
// We have to remove the temporary HP at the end of the rage via a damage effect, hehe.
|
||||||
|
// The damage type will be magical, something to keep in mind of magical resistances exist
|
||||||
|
// on your module. :) If that's a problem, change the damage type.
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//::::: in this event we add nConWeWouldAdd/2
|
||||||
|
|
||||||
|
eHitPoints = EffectTemporaryHitpoints((nConWeWouldAdd/2) * nCharacterLevel);
|
||||||
|
eHPRemoved = EffectDamage(((nConWeWouldAdd/2) * nCharacterLevel), DAMAGE_TYPE_MAGICAL);
|
||||||
|
// We have to remove the temporary HP at the end of the rage via a damage effect, hehe.
|
||||||
|
// The damage type will be magical, something to keep in mind of magical resistances exist
|
||||||
|
// on your module. :) If that's a problem, change the damage type.
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
eHitPoints = ExtraordinaryEffect(eHitPoints);
|
||||||
|
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHitPoints, oRager, RoundsToSeconds(nDuration)- nDelayed);
|
||||||
|
|
||||||
|
|
||||||
|
//::: Had to ditch applying the damage effect, cause it would apply it even if they rested during their
|
||||||
|
//::: rage, and the resting was what ended it. Pretty Ironic.
|
||||||
|
//::: If you reactivate it, make sure to have the temporary HP effect last longer than the delay on the damage effect. 8j
|
||||||
|
|
||||||
|
//DelayCommand(RoundsToSeconds(nDuration) - nDelayed, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHPRemoved, oRager));
|
||||||
|
// This is really how the temporary hp are going to get removed. I just didn't want to take any chances,
|
||||||
|
// so I gave the temporary hp a temporary duration.
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// If nConAdded >= nConBonus, then no need to add any special bonuses. :)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}// End of the whole function.
|
||||||
|
|
||||||
|
|
||||||
|
// Returns the damage type of the weapon held in nInventorySlot by oCreature. If they aren't
|
||||||
|
// holding a weapon, or the weapon they're holding is a x-bow, sling, shuriken, or dart, it returns
|
||||||
|
// either the damage type of slashing or bludgeoning, depending on whether they have a prc creature
|
||||||
|
// slashing weapon or not. It's bludgeoning if they don't have a prc creature slashing weapon.
|
||||||
|
|
||||||
|
int GetDamageTypeOfWeapon(int nInventorySlot, object oCreature = OBJECT_SELF)
|
||||||
|
{
|
||||||
|
// 2da lookup to see what kind of damage it deals, then find the equivalent constant
|
||||||
|
int iDamageType = StringToInt(Get2DACache("baseitems","WeaponType",GetBaseItemType(GetItemInSlot(nInventorySlot, oCreature))));
|
||||||
|
switch(iDamageType)
|
||||||
|
{
|
||||||
|
case 1: return DAMAGE_TYPE_PIERCING;
|
||||||
|
case 2: return DAMAGE_TYPE_BLUDGEONING;
|
||||||
|
case 3: return DAMAGE_TYPE_SLASHING;
|
||||||
|
case 4: return DAMAGE_TYPE_SLASHING; // slashing & piercing... slashing bonus.
|
||||||
|
case 5: return DAMAGE_TYPE_BLUDGEONING; // bludeoning & piercing... bludeoning bonus.
|
||||||
|
}
|
||||||
|
|
||||||
|
// If none of the above types got a hit, we must assume the character is unarmed.
|
||||||
|
|
||||||
|
if(GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oCreature)) == BASE_ITEM_CSLSHPRCWEAP
|
||||||
|
|| GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oCreature)) == BASE_ITEM_CSLSHPRCWEAP
|
||||||
|
|| GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oCreature)) == BASE_ITEM_CSLSHPRCWEAP)
|
||||||
|
{
|
||||||
|
return DAMAGE_TYPE_SLASHING;
|
||||||
|
}
|
||||||
|
// If they're unarmed and have no creature weapons from a prc, we must assume they are just using their fists.
|
||||||
|
return DAMAGE_TYPE_BLUDGEONING;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// function I typed out to add duration to the rage, only to realize happily that there is no need.
|
||||||
|
// the normal rage function calculates duration as being what it naturally should be, even if there
|
||||||
|
// were no +12 bonus cap. :)
|
||||||
|
/*
|
||||||
|
if(nBonusDuration)
|
||||||
|
{
|
||||||
|
effect eStr = EffectAbilityIncrease(ABILITY_CONSTITUTION, nBonus);
|
||||||
|
effect eCon = EffectAbilityIncrease(ABILITY_STRENGTH, nBonus);
|
||||||
|
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_WILL, nSave);
|
||||||
|
effect eAC = EffectACDecrease(2, AC_DODGE_BONUS);
|
||||||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||||
|
|
||||||
|
effect eLink = EffectLinkEffects(eCon, eStr);
|
||||||
|
eLink = EffectLinkEffects(eLink, eSave);
|
||||||
|
eLink = EffectLinkEffects(eLink, eAC);
|
||||||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||||||
|
SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BARBARIAN_RAGE, FALSE));
|
||||||
|
//Make effect extraordinary
|
||||||
|
eLink = ExtraordinaryEffect(eLink);
|
||||||
|
DelayCommand(RoundsToSeconds(nDuration, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oRager, RoundsToSeconds(nBonusDuration)));
|
||||||
|
}
|
||||||
|
*/
|
||||||
83
src/include/inc_area.nss
Normal file
83
src/include/inc_area.nss
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
// Moved to a seperate inc to prevent a circular dependency error
|
||||||
|
|
||||||
|
/*********************\
|
||||||
|
* Function Prototypes *
|
||||||
|
\*********************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function will get the width of the area passed in.
|
||||||
|
*
|
||||||
|
* Created By: Zaddix
|
||||||
|
* Created On: July 17, 2002
|
||||||
|
* Optimized: March , 2003 by Knat
|
||||||
|
*
|
||||||
|
* @param oArea The area to get the width of.
|
||||||
|
* @return The width of oArea, as number of tiles. One tile = 10 meters.
|
||||||
|
*/
|
||||||
|
int GetAreaWidth(object oArea);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function will get the height of the area passed in.
|
||||||
|
*
|
||||||
|
* Created By: Zaddix
|
||||||
|
* Created On: July 17, 2002
|
||||||
|
* Optimized: March , 2003 by Knat
|
||||||
|
*
|
||||||
|
* @param oArea The area to get the height of.
|
||||||
|
* @return The height of oArea, as number of tiles. One tile = 10 meters.
|
||||||
|
*/
|
||||||
|
int GetAreaHeight(object oArea);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
/* Include section */
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************\
|
||||||
|
* Function Definitions *
|
||||||
|
\**********************/
|
||||||
|
|
||||||
|
int GetAreaWidth(object oArea)
|
||||||
|
{
|
||||||
|
int nX = GetLocalInt(oArea,"#WIDTH");
|
||||||
|
if( nX == 0)
|
||||||
|
{
|
||||||
|
int nY = 0; int nColor;
|
||||||
|
for (nX = 0; nX < 32; ++nX)
|
||||||
|
{
|
||||||
|
nColor = GetTileMainLight1Color(Location(oArea, Vector(IntToFloat(nX), 0.0, 0.0), 0.0));
|
||||||
|
if (nColor < 0 || nColor > 255)
|
||||||
|
{
|
||||||
|
SetLocalInt(oArea,"#WIDTH", nX);
|
||||||
|
return(nX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SetLocalInt(oArea,"#WIDTH", 32);
|
||||||
|
return 32;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return nX;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetAreaHeight(object oArea)
|
||||||
|
{
|
||||||
|
int nY = GetLocalInt(oArea,"#HEIGHT");
|
||||||
|
if( nY == 0)
|
||||||
|
{
|
||||||
|
int nX = 0; int nColor;
|
||||||
|
for (nY=0; nY<32; ++nY)
|
||||||
|
{
|
||||||
|
nColor = GetTileMainLight1Color(Location(oArea, Vector(0.0, IntToFloat(nY), 0.0),0.0));
|
||||||
|
if (nColor < 0 || nColor > 255)
|
||||||
|
{
|
||||||
|
SetLocalInt(oArea,"#HEIGHT",nY);
|
||||||
|
return(nY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SetLocalInt(oArea,"#HEIGHT",32);
|
||||||
|
return 32;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return nY;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user