Added Alhoon template

Added Alhoon template & alter-self support changes by Thomas!#2605.  Updated release archive.
This commit is contained in:
Jaysyn904 2024-08-06 14:18:04 -04:00
parent 98135e6f1a
commit 6b1a173844
12 changed files with 411 additions and 112 deletions

2
.gitignore vendored
View File

@ -155,3 +155,5 @@ replay_pid*
nwn/nwnprc/trunk/errorlog
nwn/nwnprc/trunk/makefile.temp
nwn/nwnprc/trunk/makefile.temp
nwn/nwnprc/trunk/scripts/old_lich_alter.nss
nwn/nwnprc/trunk/makefile.temp

BIN
Release/PRC8_20240806.7z Normal file

Binary file not shown.

View File

@ -107,3 +107,4 @@
103 Vampire **** **** 8 **** **** **** ****
104 VampireSpawn **** **** **** **** **** **** ****
105 Necropolitan **** 16847638 **** 2 tmp_t_necropol **** tmp_m_necropol
106 Alhoon 16822362 16822363 4 2 tmp_t_alhoon **** tmp_m_alhoon

View File

@ -21,6 +21,7 @@ const int TEMPLATE_ARCHLICH = 99;
const int TEMPLATE_LICH = 101;
const int TEMPLATE_DEMILICH = 102;
const int TEMPLATE_NECROPOLITAN = 105;
const int TEMPLATE_ALHOON = 106;
//:: General

View File

@ -642,6 +642,7 @@ scripts\nw_ch_fm_st_01.nss \
scripts\nw_ch_fm_st_11.nss \
scripts\nw_g0_conversat.nss \
scripts\nw_s0_1sassone.nss \
scripts\old_lich_alter.nss \
scripts\ow_fin_rage.nss \
scripts\ow_hb.nss \
scripts\ow_inspire.nss \
@ -1737,6 +1738,7 @@ scripts\tfshad_jump.nss \
scripts\tmp_blooded_cry.nss \
scripts\tmp_hdrag_breath.nss \
scripts\tmp_lich_touch.nss \
scripts\tmp_m_alhoon.nss \
scripts\tmp_m_blooded.nss \
scripts\tmp_m_celest.nss \
scripts\tmp_m_cryptspawn.nss \
@ -1757,6 +1759,7 @@ scripts\tmp_mineral_smt.nss \
scripts\tmp_protectaura.nss \
scripts\tmp_sla.nss \
scripts\tmp_smite.nss \
scripts\tmp_t_alhoon.nss \
scripts\tmp_t_blooded.nss \
scripts\tmp_t_celest.nss \
scripts\tmp_t_cryptspawn.nss \
@ -3240,6 +3243,7 @@ objs\nw_ch_fm_st_01.ncs \
objs\nw_ch_fm_st_11.ncs \
objs\nw_g0_conversat.ncs \
objs\nw_s0_1sassone.ncs \
objs\old_lich_alter.ncs \
objs\ow_fin_rage.ncs \
objs\ow_hb.ncs \
objs\ow_inspire.ncs \
@ -4335,6 +4339,7 @@ objs\tfshad_jump.ncs \
objs\tmp_blooded_cry.ncs \
objs\tmp_hdrag_breath.ncs \
objs\tmp_lich_touch.ncs \
objs\tmp_m_alhoon.ncs \
objs\tmp_m_blooded.ncs \
objs\tmp_m_celest.ncs \
objs\tmp_m_cryptspawn.ncs \
@ -4355,6 +4360,7 @@ objs\tmp_mineral_smt.ncs \
objs\tmp_protectaura.ncs \
objs\tmp_sla.ncs \
objs\tmp_smite.ncs \
objs\tmp_t_alhoon.ncs \
objs\tmp_t_blooded.ncs \
objs\tmp_t_celest.ncs \
objs\tmp_t_cryptspawn.ncs \
@ -28602,6 +28608,8 @@ objs\nw_g0_conversat.ncs: scripts\nw_g0_conversat.nss include\inc_eventhook.nss
objs\nw_s0_1sassone.ncs: scripts\nw_s0_1sassone.nss include\prc_effect_inc.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss
objs\old_lich_alter.ncs: scripts\old_lich_alter.nss include\pnp_shft_poly.nss include\prc_inc_template.nss include\pnp_shft_main.nss include\prc_inc_shifting.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss include\prc_alterations.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_inc_onhit.nss include\prc_shifter_info.nss include\prc_weap_apt.nss include\prc_inc_wpnrest.nss include\inc_dynconv.nss include\prc_inc_combat.nss include\prc_inc_unarmed.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\prc_inc_burn.nss include\prc_getbest_inc.nss
objs\ow_fin_rage.ncs: scripts\ow_fin_rage.nss
objs\ow_hb.ncs: scripts\ow_hb.nss include\prc_alterations.nss include\x2_inc_spellhook.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_x2_craft.nss include\prc_inc_spells.nss include\prc_inc_combat.nss include\prc_inc_itmrstr.nss include\prc_inc_burn.nss include\pnp_shft_main.nss include\inc_dynconv.nss include\inc_npc.nss include\prc_add_spell_dc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\prc_getbest_inc.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss
@ -30792,6 +30800,8 @@ objs\tmp_hdrag_breath.ncs: scripts\tmp_hdrag_breath.nss include\prc_inc_spells.n
objs\tmp_lich_touch.ncs: scripts\tmp_lich_touch.nss include\prc_inc_sp_tch.nss include\prc_inc_template.nss include\prc_inc_combat.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_misc_const.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\inc_utility.nss include\prc_inc_spells.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\inc_item_props.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_damage.nss include\prc_inc_sb_const.nss include\prc_effect_inc.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_prc_npc.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\inc_abil_damage.nss include\prc_inc_function.nss include\prc_template_con.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_alterations.nss include\prc_getbest_inc.nss
objs\tmp_m_alhoon.ncs: scripts\tmp_m_alhoon.nss include\prc_inc_template.nss include\prc_inc_function.nss include\prc_template_con.nss include\inc_persist_loca.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_alterations.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_getbest_inc.nss
objs\tmp_m_blooded.ncs: scripts\tmp_m_blooded.nss include\prc_inc_template.nss include\prc_inc_function.nss include\prc_template_con.nss include\inc_persist_loca.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_alterations.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_getbest_inc.nss
objs\tmp_m_celest.ncs: scripts\tmp_m_celest.nss include\prc_inc_template.nss include\inc_nwnx_funcs.nss include\prc_inc_function.nss include\prc_template_con.nss include\inc_persist_loca.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\prc_alterations.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_getbest_inc.nss
@ -30832,6 +30842,8 @@ objs\tmp_sla.ncs: scripts\tmp_sla.nss include\inc_newspellbook.nss include\prc_i
objs\tmp_smite.ncs: scripts\tmp_smite.nss include\prc_inc_smite.nss include\prc_inc_template.nss include\prc_inc_combat.nss include\prc_inc_racial.nss include\bnd_inc_bndfunc.nss include\prc_inc_factotum.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_misc_const.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\inc_utility.nss include\prc_inc_spells.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\inc_item_props.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_damage.nss include\prc_inc_sb_const.nss include\prc_effect_inc.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_prc_npc.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\inc_abil_damage.nss include\inc_dynconv.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss include\prc_alterations.nss include\prc_inc_burn.nss include\prc_getbest_inc.nss
objs\tmp_t_alhoon.ncs: scripts\tmp_t_alhoon.nss include\prc_alterations.nss include\prc_inc_template.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_inc_function.nss include\prc_template_con.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_getbest_inc.nss
objs\tmp_t_blooded.ncs: scripts\tmp_t_blooded.nss include\prc_inc_template.nss include\prc_inc_function.nss include\prc_template_con.nss include\inc_persist_loca.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_alterations.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_getbest_inc.nss
objs\tmp_t_celest.ncs: scripts\tmp_t_celest.nss include\prc_alterations.nss include\prc_inc_template.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_inc_function.nss include\prc_template_con.nss include\prc_inc_burn.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\prc_getbest_inc.nss

View File

@ -16,6 +16,8 @@
void main()
{
int iRace = GetRacialType(OBJECT_SELF);
if(GetPRCSwitch(PRC_LICH_ALTER_SELF_DISABLE))
{
FloatingTextStringOnCreature("Lich Alter Self has been disabled in this module.", OBJECT_SELF);
@ -25,12 +27,22 @@ void main()
int nCurForm = GetAppearanceType(OBJECT_SELF);
int nPCForm = GetTrueForm(OBJECT_SELF);
// Switch to lich
// Switch to lich
if (nPCForm == nCurForm)
{
int nLichLevel = GetLevelByClass(CLASS_TYPE_LICH,OBJECT_SELF);
int nIsDemi = GetHasTemplate(TEMPLATE_DEMILICH,OBJECT_SELF);
if (nLichLevel < 10 && !nIsDemi)
if (iRace == RACIAL_TYPE_ILLITHID)
{
effect eFx = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eFx,OBJECT_SELF);
SetCreatureAppearanceType(OBJECT_SELF, APPEARANCE_TYPE_MINDFLAYER_ALHOON);
SetPortraitResRef(OBJECT_SELF, "mindalhoon");
SetPortraitId(OBJECT_SELF, 771);
}
else if (nLichLevel < 10 && !nIsDemi)
{
effect eFx = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eFx,OBJECT_SELF);

View File

@ -0,0 +1,99 @@
//:://///////////////////////////////////////////////
//:: Name Archich template maintain script
//:: FileName tmp_m_archlich
//::
//:: Created By: Jaysyn
//:: Created On: 24/08/06
//:://///////////////////////////////////////////////
/*
Creating An Alhoon
An alhoon conforms to all the normal rules for adding the lich template to a humanoid, except asnoted below.
Size and Type: The creature's type changes to undead (augmented aberration). Do not recalculate base attack bonus, saves, or skill points. Size is unchanged.
Armor Class: An alhoon's natural armor bonus improves from +3 to +5.
*/
//:://////////////////////////////////////////////
#include "prc_inc_template"
void main()
{
object oPC = OBJECT_SELF;
object oSkin = GetPCSkin(oPC);
int nHD = GetHitDice(oPC);
itemproperty ipIP;
int nAC = 5;
SetCompositeBonus(oSkin, "Template_alhoon_ac", nAC, ITEM_PROPERTY_AC_BONUS);
int nTurnResist = 4;
SetCompositeBonus(oSkin, "Template_alhoon_turnresist", nTurnResist, ITEM_PROPERTY_TURN_RESISTANCE);
ipIP = ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_1, IP_CONST_DAMAGESOAK_15_HP);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ELECTRICAL,IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_COLD,IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
// Bugfix
ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_NEGATIVE, IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
int nAbilityBonus = 2;
SetCompositeBonus(oSkin, "Template_alhoon_int", nAbilityBonus, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
SetCompositeBonus(oSkin, "Template_alhoon_wis", nAbilityBonus, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
SetCompositeBonus(oSkin, "Template_alhoon_cha", nAbilityBonus, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
int nSkillBonus = 8;
SetCompositeBonus(oSkin, "Template_alhoon_Hide", nSkillBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_HIDE);
SetCompositeBonus(oSkin, "Template_alhoon_Listen", nSkillBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_LISTEN);
SetCompositeBonus(oSkin, "Template_alhoon_Persuade", nSkillBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_PERSUADE);
SetCompositeBonus(oSkin, "Template_alhoon_Silent", nSkillBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_MOVE_SILENTLY);
SetCompositeBonus(oSkin, "Template_alhoon_Search", nSkillBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_SEARCH);
SetCompositeBonus(oSkin, "Template_alhoon_Spot", nSkillBonus, ITEM_PROPERTY_SKILL_BONUS, SKILL_SPOT);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_UNDEAD_HD);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_ABILITY_DECREASE);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_CRITICAL);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_DEATH);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_DISEASE);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_MIND_SPELLS);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_PARALYSIS);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_POISON);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_IMMUNITY_SNEAKATTACK);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
if(DEBUG) DoDebug("You have feat Undead HD = "+IntToString(GetHasFeat(FEAT_UNDEAD_HD, oPC)));
//appearance
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_LICH_APPEARANCE);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//touch/natural attack & paralyzing touch
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_LICH_PARALYZING_TOUCH);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//fear aura
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_LICH_FEAR_AURA);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//marker feats
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_LICH_MARKER);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
SetSubRace(oPC, "Undead (Augmented Aberration)");
}

View File

@ -0,0 +1,64 @@
//::///////////////////////////////////////////////
//:: Name Alhoon template test script
//:: FileName tmp_t_alhoon
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Creating An Alhoon
An alhoon conforms to all the normal rules for adding the lich template to a humanoid, except asnoted below.
Size and Type: The creature's type changes to undead (augmented aberration). Do not recalculate base attack bonus, saves, or skill points. Size is unchanged.
Armor Class: An alhoon's natural armor bonus improves from +3 to +5.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 24/08/06
//:://////////////////////////////////////////////
#include "prc_alterations"
#include "prc_inc_template"
void main()
{
object oPC = OBJECT_SELF;
string sString = "Alhoon template: ";
SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);
int nAlignment = GetAlignmentGoodEvil(oPC);
if(nAlignment != ALIGNMENT_EVIL && GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER) < 20)
{
SendMessageToPC(oPC, sString+"Not evil");
SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
}
else if(GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC) >= 20 && nAlignment == ALIGNMENT_GOOD)
{
SendMessageToPC(oPC, sString+"Can't be a good Dread Necromancer");
SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
}
int nArcCasterLevel = GetPrCAdjustedCasterLevelByType(TYPE_ARCANE, oPC, TRUE);
int nDivCasterLevel = GetPrCAdjustedCasterLevelByType(TYPE_DIVINE, oPC, TRUE);
if(nArcCasterLevel < 11 && nDivCasterLevel < 11)
{
SendMessageToPC(oPC, sString+"Arcane Caster Level = "+IntToString(nArcCasterLevel));
SendMessageToPC(oPC, sString+"Divine Caster Level = "+IntToString(nDivCasterLevel));
SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
}
if(!GetHasFeat(FEAT_CRAFT_WONDROUS))
{
SendMessageToPC(oPC, sString+"No craft wondrous items");
SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
}
// Illithid only
int nRace = GetRacialType(oPC);
if (nRace != RACIAL_TYPE_ILLITHID)
{
SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
}
}

View File

@ -5692,6 +5692,114 @@ All living creatures in the area of effect immediately take 1d6 points of damage
<entry id="45143" lang="en" sex="m">You cannot cast spells of your prohibited schools. Spell terminated.</entry>
<entry id="45144" lang="en" sex="m">Font of Inspiration IX</entry>
<entry id="45145" lang="en" sex="m">Font of Inspiration X</entry>
<entry id="45146" lang="en" sex="m">Alhoon</entry>
<entry id="45147" lang="en" sex="m">"Alhoon" is an acquired template that can be added to any illithid creature (referred to hereafter as the base creature), provided it can create the required phylactery.
A alhoon has all the base creature's statistics and special abilities except as noted here.
Size and Type
The creature's type changes to undead. Do not recalculate base attack bonus, saves, or skill points. Size is unchanged.
Hit Dice
Increase all current and future Hit Dice to d12s.
Armor Class
A alhoon has a +5 natural armor bonus or the base creature's natural armor bonus, whichever is better.
Attack
A alhoon has a touch attack that it can use once per round. If the base creature can use weapons, the alhoon retains this ability. A creature with natural weapons retains those natural weapons. A alhoon fighting without weapons uses either its touch attack or its primary natural weapon (if it has any). A alhoon armed with a weapon uses its touch or a weapon, as it desires.
Full Attack
A alhoon fighting without weapons uses either its touch attack (see above) or its natural weapons (if it has any). If armed with a weapon, it usually uses the weapon as its primary attack along with a touch as a natural secondary attack, provided it has a way to make that attack (either a free hand or a natural weapon that it can use as a secondary attack).
Damage
A alhoon without natural weapons has a touch attack that uses negative energy to deal 1d8+5 points of damage to living creatures; a Will save (DC 10 + 1/2 alhoon's HD + alhoon's Cha modifier) halves the damage. A alhoon with natural weapons can use its touch attack or its natural weaponry, as it prefers. If it chooses the latter, it deals 1d8+5 points of extra damage on one natural weapon attack.
Special Attacks
A alhoon retains all the base creature's special attacks and gains those described below. Save DCs are equal to 10 + 1/2 alhoon's HD + alhoon's Cha modifier unless otherwise noted.
Fear Aura (Su)
Alhoon are shrouded in a dreadful aura of death and evil. Creatures of less than 5 HD in a 60-foot radius that look at the alhoon must succeed on a Will save or be affected as though by a fear spell from a sorcerer of the alhoon's level. A creature that successfully saves cannot be affected again by the same alhoon's aura for 24 hours.
Paralyzing Touch (Su)
Any living creature a alhoon hits with its touch attack must succeed on a Fortitude save or be permanently paralyzed. Remove paralysis or any spell that can remove a curse can free the victim (see the bestow curse spell description).
The effect cannot be dispelled. Anyone paralyzed by a alhoon seems dead, though a DC 20 Spot check or a DC 15 Heal check reveals that the victim is still alive..
Spells
A alhoon can cast any spells it could cast while alive.
Special Qualities
A alhoon retains all the base creature's special qualities and gains those described below.
Turn Resistance (Ex)
A alhoon has +4 turn resistance.
Damage Reduction (Su)
A alhoon's undead body is tough, giving the creature damage reduction 15/bludgeoning and magic. Its natural weapons are treated as magic weapons for the purpose of overcoming damage reduction.
Immunities (Ex)
Alhoon's have immunity to cold, electricity, polymorph (though they can use polymorph effects on themselves), and mind-affecting attacks.
Abilities
Increase from the base creature as follows: Int +2, Wis +2, Cha +2. Being undead, a alhoon has no Constitution score.
Skills
Alhoon's have a +8 racial bonus on Hide, Listen, Move Silently, Search, Sense Motive, and Spot checks. Otherwise same as the base creature.
Organization
Solitary or troupe (1 alhoon, plus 2-4 vampires and 5-8 vampire spawn).
Challenge Rating
Same as the base creature + 2.
Treasure
Standard coins; double goods; double items.
Alignment
Any evil.
Advancement
By character class.
Level Adjustment
Same as the base creature +4.
Alhoon Characters
The process of becoming a alhoon is unspeakably evil and can be undertaken only by a willing character. A alhoon retains all class abilities it had in life.
The Alhoon's Phylactery
An integral part of becoming a alhoon is creating a magic phylactery in which the character stores its life force. As a rule, the only way to get rid of a alhoon for sure is to destroy its phylactery. Unless its phylactery is located and destroyed, a alhoon reappears 1d10 days after its apparent death.
Each alhoon must make its own phylactery, which requires the Craft Wondrous Item feat. The character must be able to cast spells and have a caster level of 11th or higher. The phylactery costs 120,000 gp and 4,800 XP to create and has a caster level equal to that of its creator at the time of creation.
The most common form of phylactery is a sealed metal box containing strips of parchment on which magicalphrases have been transcribed. The box is Tiny and has 40 hit points, hardness 20, and a break DC of 40.
Other forms of phylacteries can exist, such as rings, amulets, or similar items.</entry>
<entry id="45148" lang="en" sex="m">Epic Mage Killer</entry>
<entry id="45149" lang="en" sex="m">The epic mage-killer is a terrifying opponent and is legendary in her ability to bring enemy spellcasters to their knees. Though any given order might count only a tiny number of these characters among them, even the rumor of a single hunter of this power is enough to guard against the abuse of magic.