From d4680a7df376a71313bc50e5d5430d7903250337 Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Sun, 25 Jun 2023 01:31:42 -0400 Subject: [PATCH] Added pen & paper & rafhot's expanded creature abilities Added pen & paper & rafhot's expanded creature abilities --- 35expandedabilities/PRC_vampdrain.ncs | Bin 0 -> 121960 bytes 35expandedabilities/PRC_vampdrain.nss | 151 + 35expandedabilities/inv_adeptbreath.ncs | Bin 0 -> 73467 bytes 35expandedabilities/inv_adeptbreath.nss | 183 + 35expandedabilities/inv_drgnfireadpt.ncs | Bin 0 -> 14098 bytes 35expandedabilities/inv_drgnfireadpt.nss | 41 + 35expandedabilities/nivel_ext.nss | 1180 +++ 35expandedabilities/nw_s1_aurablnda.ncs | Bin 0 -> 38708 bytes 35expandedabilities/nw_s1_aurablnda.nss | 48 + 35expandedabilities/nw_s1_auracoldc.ncs | Bin 0 -> 38755 bytes 35expandedabilities/nw_s1_auracoldc.nss | 62 + 35expandedabilities/nw_s1_auraelecc.ncs | Bin 0 -> 38792 bytes 35expandedabilities/nw_s1_auraelecc.nss | 58 + 35expandedabilities/nw_s1_aurafirec.ncs | Bin 0 -> 38741 bytes 35expandedabilities/nw_s1_aurafirec.nss | 59 + 35expandedabilities/nw_s1_auramenca.ncs | Bin 0 -> 50538 bytes 35expandedabilities/nw_s1_auramenca.nss | 46 + 35expandedabilities/nw_s1_auraprota.ncs | Bin 0 -> 882 bytes 35expandedabilities/nw_s1_auraprota.nss | 35 + 35expandedabilities/nw_s1_aurastuna.ncs | Bin 0 -> 38953 bytes 35expandedabilities/nw_s1_aurastuna.nss | 48 + 35expandedabilities/nw_s1_auraunata.ncs | Bin 0 -> 465 bytes 35expandedabilities/nw_s1_auraunata.nss | 48 + 35expandedabilities/nw_s1_aurauneaa.ncs | Bin 0 -> 38515 bytes 35expandedabilities/nw_s1_aurauneaa.nss | 46 + 35expandedabilities/nw_s1_barbrage.ncs | Bin 0 -> 43048 bytes 35expandedabilities/nw_s1_barbrage.nss | 434 + 35expandedabilities/nw_s1_bltacid.ncs | Bin 0 -> 44454 bytes 35expandedabilities/nw_s1_bltacid.nss | 66 + 35expandedabilities/nw_s1_bltcharm.ncs | Bin 0 -> 44764 bytes 35expandedabilities/nw_s1_bltcharm.nss | 47 + 35expandedabilities/nw_s1_bltchrdr.ncs | Bin 0 -> 43738 bytes 35expandedabilities/nw_s1_bltchrdr.nss | 48 + 35expandedabilities/nw_s1_bltcold.ncs | Bin 0 -> 44402 bytes 35expandedabilities/nw_s1_bltcold.nss | 60 + 35expandedabilities/nw_s1_bltcondr.ncs | Bin 0 -> 43740 bytes 35expandedabilities/nw_s1_bltcondr.nss | 48 + 35expandedabilities/nw_s1_bltconf.ncs | Bin 0 -> 44140 bytes 35expandedabilities/nw_s1_bltconf.nss | 48 + 35expandedabilities/nw_s1_bltdaze.ncs | Bin 0 -> 44766 bytes 35expandedabilities/nw_s1_bltdaze.nss | 47 + 35expandedabilities/nw_s1_bltdeath.ncs | Bin 0 -> 43574 bytes 35expandedabilities/nw_s1_bltdeath.nss | 47 + 35expandedabilities/nw_s1_bltdexdr.ncs | Bin 0 -> 43748 bytes 35expandedabilities/nw_s1_bltdexdr.nss | 48 + 35expandedabilities/nw_s1_bltdisese.ncs | Bin 0 -> 8399 bytes 35expandedabilities/nw_s1_bltdisese.nss | 73 + 35expandedabilities/nw_s1_bltdomn.ncs | Bin 0 -> 44938 bytes 35expandedabilities/nw_s1_bltdomn.nss | 53 + 35expandedabilities/nw_s1_bltfire.ncs | Bin 0 -> 44402 bytes 35expandedabilities/nw_s1_bltfire.nss | 58 + 35expandedabilities/nw_s1_bltintdr.ncs | Bin 0 -> 43748 bytes 35expandedabilities/nw_s1_bltintdr.nss | 48 + 35expandedabilities/nw_s1_bltknckd.ncs | Bin 0 -> 43729 bytes 35expandedabilities/nw_s1_bltknckd.nss | 48 + 35expandedabilities/nw_s1_bltlightn.ncs | Bin 0 -> 44504 bytes 35expandedabilities/nw_s1_bltlightn.nss | 59 + 35expandedabilities/nw_s1_bltlvldr.ncs | Bin 0 -> 43715 bytes 35expandedabilities/nw_s1_bltlvldr.nss | 49 + 35expandedabilities/nw_s1_bltparal.ncs | Bin 0 -> 44090 bytes 35expandedabilities/nw_s1_bltparal.nss | 48 + 35expandedabilities/nw_s1_bltpoison.ncs | Bin 0 -> 9323 bytes 35expandedabilities/nw_s1_bltpoison.nss | 123 + 35expandedabilities/nw_s1_bltshards.ncs | Bin 0 -> 44316 bytes 35expandedabilities/nw_s1_bltshards.nss | 58 + 35expandedabilities/nw_s1_bltslow.ncs | Bin 0 -> 43758 bytes 35expandedabilities/nw_s1_bltslow.nss | 47 + 35expandedabilities/nw_s1_bltstrdr.ncs | Bin 0 -> 43746 bytes 35expandedabilities/nw_s1_bltstrdr.nss | 48 + 35expandedabilities/nw_s1_bltstun.ncs | Bin 0 -> 44819 bytes 35expandedabilities/nw_s1_bltstun.nss | 50 + 35expandedabilities/nw_s1_bltweb.ncs | Bin 0 -> 43666 bytes 35expandedabilities/nw_s1_bltweb.nss | 44 + 35expandedabilities/nw_s1_bltwisdr.ncs | Bin 0 -> 43733 bytes 35expandedabilities/nw_s1_bltwisdr.nss | 48 + 35expandedabilities/nw_s1_coneacid.ncs | Bin 0 -> 39662 bytes 35expandedabilities/nw_s1_coneacid.nss | 76 + 35expandedabilities/nw_s1_conecold.ncs | Bin 0 -> 39662 bytes 35expandedabilities/nw_s1_conecold.nss | 76 + 35expandedabilities/nw_s1_conedisea.ncs | Bin 0 -> 3025 bytes 35expandedabilities/nw_s1_conedisea.nss | 99 + 35expandedabilities/nw_s1_coneelec.ncs | Bin 0 -> 39799 bytes 35expandedabilities/nw_s1_coneelec.nss | 78 + 35expandedabilities/nw_s1_conesonic.ncs | Bin 0 -> 39656 bytes 35expandedabilities/nw_s1_conesonic.nss | 75 + 35expandedabilities/nw_s1_dragacid.ncs | Bin 0 -> 71192 bytes 35expandedabilities/nw_s1_dragacid.nss | 253 + 35expandedabilities/nw_s1_dragcold.ncs | Bin 0 -> 71192 bytes 35expandedabilities/nw_s1_dragcold.nss | 251 + 35expandedabilities/nw_s1_dragfear.ncs | Bin 0 -> 40503 bytes 35expandedabilities/nw_s1_dragfear.nss | 119 + 35expandedabilities/nw_s1_dragfeara.ncs | Bin 0 -> 39010 bytes 35expandedabilities/nw_s1_dragfeara.nss | 45 + 35expandedabilities/nw_s1_dragfire.ncs | Bin 0 -> 71192 bytes 35expandedabilities/nw_s1_dragfire.nss | 251 + 35expandedabilities/nw_s1_draggas.ncs | Bin 0 -> 71192 bytes 35expandedabilities/nw_s1_draggas.nss | 251 + 35expandedabilities/nw_s1_draglight.ncs | Bin 0 -> 71192 bytes 35expandedabilities/nw_s1_draglight.nss | 252 + 35expandedabilities/nw_s1_dragparal.ncs | Bin 0 -> 71661 bytes 35expandedabilities/nw_s1_dragparal.nss | 251 + 35expandedabilities/nw_s1_dragsleep.ncs | Bin 0 -> 71661 bytes 35expandedabilities/nw_s1_dragsleep.nss | 252 + 35expandedabilities/nw_s1_dragslow.ncs | Bin 0 -> 71661 bytes 35expandedabilities/nw_s1_dragslow.nss | 251 + 35expandedabilities/nw_s1_dragweak.ncs | Bin 0 -> 71656 bytes 35expandedabilities/nw_s1_dragweak.nss | 254 + 35expandedabilities/nw_s1_feroc3.ncs | Bin 0 -> 409 bytes 35expandedabilities/nw_s1_feroc3.nss | 41 + 35expandedabilities/nw_s1_gazechaos.ncs | Bin 0 -> 39021 bytes 35expandedabilities/nw_s1_gazechaos.nss | 69 + 35expandedabilities/nw_s1_gazecharm.ncs | Bin 0 -> 40339 bytes 35expandedabilities/nw_s1_gazecharm.nss | 76 + 35expandedabilities/nw_s1_gazeconfu.ncs | Bin 0 -> 40365 bytes 35expandedabilities/nw_s1_gazeconfu.nss | 77 + 35expandedabilities/nw_s1_gazedaze.ncs | Bin 0 -> 39623 bytes 35expandedabilities/nw_s1_gazedaze.nss | 74 + 35expandedabilities/nw_s1_gazedeath.ncs | Bin 0 -> 39058 bytes 35expandedabilities/nw_s1_gazedeath.nss | 66 + 35expandedabilities/nw_s1_gazedomn.ncs | Bin 0 -> 40366 bytes 35expandedabilities/nw_s1_gazedomn.nss | 78 + 35expandedabilities/nw_s1_gazedoom.ncs | Bin 0 -> 39290 bytes 35expandedabilities/nw_s1_gazedoom.nss | 74 + 35expandedabilities/nw_s1_gazeevil.ncs | Bin 0 -> 39045 bytes 35expandedabilities/nw_s1_gazeevil.nss | 70 + 35expandedabilities/nw_s1_gazefear.ncs | Bin 0 -> 39661 bytes 35expandedabilities/nw_s1_gazefear.nss | 74 + 35expandedabilities/nw_s1_gazegood.ncs | Bin 0 -> 39045 bytes 35expandedabilities/nw_s1_gazegood.nss | 70 + 35expandedabilities/nw_s1_gazelaw.ncs | Bin 0 -> 39087 bytes 35expandedabilities/nw_s1_gazelaw.nss | 71 + 35expandedabilities/nw_s1_gazestun.ncs | Bin 0 -> 40299 bytes 35expandedabilities/nw_s1_gazestun.nss | 73 + 35expandedabilities/nw_s1_golemgas.ncs | Bin 0 -> 402 bytes 35expandedabilities/nw_s1_golemgas.nss | 41 + 35expandedabilities/nw_s1_hndbreath.ncs | Bin 0 -> 39482 bytes 35expandedabilities/nw_s1_hndbreath.nss | 66 + 35expandedabilities/nw_s1_howlconf.ncs | Bin 0 -> 39544 bytes 35expandedabilities/nw_s1_howlconf.nss | 67 + 35expandedabilities/nw_s1_howldaze.ncs | Bin 0 -> 39544 bytes 35expandedabilities/nw_s1_howldaze.nss | 65 + 35expandedabilities/nw_s1_howldeath.ncs | Bin 0 -> 38915 bytes 35expandedabilities/nw_s1_howldeath.nss | 59 + 35expandedabilities/nw_s1_howlfear.ncs | Bin 0 -> 39540 bytes 35expandedabilities/nw_s1_howlfear.nss | 68 + 35expandedabilities/nw_s1_howlparal.ncs | Bin 0 -> 39421 bytes 35expandedabilities/nw_s1_howlparal.nss | 65 + 35expandedabilities/nw_s1_howlsonic.ncs | Bin 0 -> 39081 bytes 35expandedabilities/nw_s1_howlsonic.nss | 65 + 35expandedabilities/nw_s1_howlstun.ncs | Bin 0 -> 39498 bytes 35expandedabilities/nw_s1_howlstun.nss | 66 + 35expandedabilities/nw_s1_krenscare.ncs | Bin 0 -> 50625 bytes 35expandedabilities/nw_s1_krenscare.nss | 61 + 35expandedabilities/nw_s1_mephsalt.ncs | Bin 0 -> 44593 bytes 35expandedabilities/nw_s1_mephsalt.nss | 63 + 35expandedabilities/nw_s1_mephsteam.ncs | Bin 0 -> 44593 bytes 35expandedabilities/nw_s1_mephsteam.nss | 67 + 35expandedabilities/nw_s1_mumundead.ncs | Bin 0 -> 1028 bytes 35expandedabilities/nw_s1_mumundead.nss | 53 + 35expandedabilities/nw_s1_pulschrdr.ncs | Bin 0 -> 39043 bytes 35expandedabilities/nw_s1_pulschrdr.nss | 73 + 35expandedabilities/nw_s1_pulscold.ncs | Bin 0 -> 39605 bytes 35expandedabilities/nw_s1_pulscold.nss | 68 + 35expandedabilities/nw_s1_pulscondr.ncs | Bin 0 -> 39043 bytes 35expandedabilities/nw_s1_pulscondr.nss | 71 + 35expandedabilities/nw_s1_pulsdeath.ncs | Bin 0 -> 38932 bytes 35expandedabilities/nw_s1_pulsdeath.nss | 68 + 35expandedabilities/nw_s1_pulsdexdr.ncs | Bin 0 -> 39043 bytes 35expandedabilities/nw_s1_pulsdexdr.nss | 70 + 35expandedabilities/nw_s1_pulsdis.ncs | Bin 0 -> 2911 bytes 35expandedabilities/nw_s1_pulsdis.nss | 85 + 35expandedabilities/nw_s1_pulselec.ncs | Bin 0 -> 39790 bytes 35expandedabilities/nw_s1_pulselec.nss | 68 + 35expandedabilities/nw_s1_pulsfire.ncs | Bin 0 -> 39609 bytes 35expandedabilities/nw_s1_pulsfire.nss | 69 + 35expandedabilities/nw_s1_pulsholy.ncs | Bin 0 -> 39936 bytes 35expandedabilities/nw_s1_pulsholy.nss | 89 + 35expandedabilities/nw_s1_pulsintdr.ncs | Bin 0 -> 39041 bytes 35expandedabilities/nw_s1_pulsintdr.nss | 72 + 35expandedabilities/nw_s1_pulslvldr.ncs | Bin 0 -> 39017 bytes 35expandedabilities/nw_s1_pulslvldr.nss | 62 + 35expandedabilities/nw_s1_pulsneg.ncs | Bin 0 -> 39984 bytes 35expandedabilities/nw_s1_pulsneg.nss | 87 + 35expandedabilities/nw_s1_pulspois.ncs | Bin 0 -> 3747 bytes 35expandedabilities/nw_s1_pulspois.nss | 138 + 35expandedabilities/nw_s1_pulsspore.ncs | Bin 0 -> 527 bytes 35expandedabilities/nw_s1_pulsspore.nss | 50 + 35expandedabilities/nw_s1_pulsstrdr.ncs | Bin 0 -> 39043 bytes 35expandedabilities/nw_s1_pulsstrdr.nss | 71 + 35expandedabilities/nw_s1_pulswind.ncs | Bin 0 -> 38697 bytes 35expandedabilities/nw_s1_pulswind.nss | 51 + 35expandedabilities/nw_s1_pulswisdr.ncs | Bin 0 -> 39045 bytes 35expandedabilities/nw_s1_pulswisdr.nss | 68 + 35expandedabilities/nw_s1_smokeclaw.ncs | Bin 0 -> 43787 bytes 35expandedabilities/nw_s1_smokeclaw.nss | 64 + 35expandedabilities/nw_s1_stink_a.ncs | Bin 0 -> 39100 bytes 35expandedabilities/nw_s1_stink_a.nss | 57 + 35expandedabilities/nw_s1_tyrantfga.ncs | Bin 0 -> 38625 bytes 35expandedabilities/nw_s1_tyrantfga.nss | 56 + 35expandedabilities/nw_s1_tyrantfog.ncs | Bin 0 -> 173 bytes 35expandedabilities/nw_s1_tyrantfog.nss | 25 + 35expandedabilities/nw_s2_bardsong.ncs | Bin 0 -> 56696 bytes 35expandedabilities/nw_s2_bardsong.nss | 2222 +++++ 35expandedabilities/nw_s2_divprot.ncs | Bin 0 -> 20552 bytes 35expandedabilities/nw_s2_divprot.nss | 45 + 35expandedabilities/nw_s2_layonhand.ncs | Bin 0 -> 125589 bytes 35expandedabilities/nw_s2_layonhand.nss | 150 + 35expandedabilities/nw_s3_balordeth.ncs | Bin 0 -> 90827 bytes 35expandedabilities/nw_s3_balordeth.nss | 62 + 35expandedabilities/prc_hexbl_comp_a.ncs | Bin 0 -> 400 bytes 35expandedabilities/prc_hexbl_comp_a.nss | 42 + 35expandedabilities/prc_hexbl_comp_c.ncs | Bin 0 -> 474 bytes 35expandedabilities/prc_hexbl_comp_c.nss | 47 + 35expandedabilities/prc_hexbl_curse.ncs | Bin 0 -> 45716 bytes 35expandedabilities/prc_hexbl_curse.nss | 62 + 35expandedabilities/prc_kotmc_combat.ncs | Bin 0 -> 52152 bytes 35expandedabilities/prc_kotmc_combat.nss | 232 + 35expandedabilities/psi_sk_manifmbld.ncs | Bin 0 -> 16388 bytes 35expandedabilities/psi_sk_manifmbld.nss | 430 + 35expandedabilities/x2_s1_dragneg.ncs | Bin 0 -> 72134 bytes 35expandedabilities/x2_s1_dragneg.nss | 299 + 35expandedabilities/x2_s2_cursesong.ncs | Bin 0 -> 61595 bytes 35expandedabilities/x2_s2_cursesong.nss | 2095 +++++ 35expandedabilities/x2_s2_discbreath.ncs | Bin 0 -> 71248 bytes 35expandedabilities/x2_s2_discbreath.nss | 260 + 35expandedabilities/x2_s2_epicward.ncs | Bin 0 -> 44278 bytes 35expandedabilities/x2_s2_epicward.nss | 61 + 35expandedabilities/x2_s2_epmagearm.ncs | Bin 0 -> 51290 bytes 35expandedabilities/x2_s2_epmagearm.nss | 73 + Compiler - 35abilities.bat | 4 + _haks/poa_dev/nw_s1_aurablnda.ncs | Bin 0 -> 38708 bytes _haks/poa_dev/nw_s1_aurablnda.nss | 48 + _haks/poa_dev/nw_s1_auracoldc.ncs | Bin 0 -> 38755 bytes _haks/poa_dev/nw_s1_auracoldc.nss | 62 + _haks/poa_dev/nw_s1_auraelecc.ncs | Bin 0 -> 38792 bytes _haks/poa_dev/nw_s1_auraelecc.nss | 58 + _haks/poa_dev/nw_s1_aurafirec.ncs | Bin 0 -> 38741 bytes _haks/poa_dev/nw_s1_aurafirec.nss | 59 + _haks/poa_dev/nw_s1_auramenca.ncs | Bin 0 -> 50538 bytes _haks/poa_dev/nw_s1_auramenca.nss | 46 + _haks/poa_dev/nw_s1_auraprota.ncs | Bin 0 -> 882 bytes _haks/poa_dev/nw_s1_auraprota.nss | 35 + _haks/poa_dev/nw_s1_aurastuna.ncs | Bin 0 -> 38953 bytes _haks/poa_dev/nw_s1_aurastuna.nss | 48 + _haks/poa_dev/nw_s1_auraunata.ncs | Bin 0 -> 465 bytes _haks/poa_dev/nw_s1_auraunata.nss | 48 + _haks/poa_dev/nw_s1_aurauneaa.ncs | Bin 0 -> 38515 bytes _haks/poa_dev/nw_s1_aurauneaa.nss | 46 + _haks/poa_dev/nw_s1_bltacid.ncs | Bin 0 -> 44454 bytes _haks/poa_dev/nw_s1_bltacid.nss | 66 + _haks/poa_dev/nw_s1_bltcharm.ncs | Bin 0 -> 44764 bytes _haks/poa_dev/nw_s1_bltcharm.nss | 47 + _haks/poa_dev/nw_s1_bltchrdr.ncs | Bin 0 -> 43738 bytes _haks/poa_dev/nw_s1_bltchrdr.nss | 48 + _haks/poa_dev/nw_s1_bltcold.ncs | Bin 0 -> 44402 bytes _haks/poa_dev/nw_s1_bltcold.nss | 60 + _haks/poa_dev/nw_s1_bltcondr.ncs | Bin 0 -> 43740 bytes _haks/poa_dev/nw_s1_bltcondr.nss | 48 + _haks/poa_dev/nw_s1_bltconf.ncs | Bin 0 -> 44140 bytes _haks/poa_dev/nw_s1_bltconf.nss | 48 + _haks/poa_dev/nw_s1_bltdaze.ncs | Bin 0 -> 44766 bytes _haks/poa_dev/nw_s1_bltdaze.nss | 47 + _haks/poa_dev/nw_s1_bltdeath.ncs | Bin 0 -> 43574 bytes _haks/poa_dev/nw_s1_bltdeath.nss | 47 + _haks/poa_dev/nw_s1_bltdexdr.ncs | Bin 0 -> 43748 bytes _haks/poa_dev/nw_s1_bltdexdr.nss | 48 + _haks/poa_dev/nw_s1_bltdisese.ncs | Bin 0 -> 8399 bytes _haks/poa_dev/nw_s1_bltdisese.nss | 73 + _haks/poa_dev/nw_s1_bltdomn.ncs | Bin 0 -> 44938 bytes _haks/poa_dev/nw_s1_bltdomn.nss | 53 + _haks/poa_dev/nw_s1_bltfire.ncs | Bin 0 -> 44402 bytes _haks/poa_dev/nw_s1_bltfire.nss | 58 + _haks/poa_dev/nw_s1_bltintdr.ncs | Bin 0 -> 43748 bytes _haks/poa_dev/nw_s1_bltintdr.nss | 48 + _haks/poa_dev/nw_s1_bltknckd.ncs | Bin 0 -> 43729 bytes _haks/poa_dev/nw_s1_bltknckd.nss | 48 + _haks/poa_dev/nw_s1_bltlightn.ncs | Bin 0 -> 44504 bytes _haks/poa_dev/nw_s1_bltlightn.nss | 59 + _haks/poa_dev/nw_s1_bltlvldr.ncs | Bin 0 -> 43715 bytes _haks/poa_dev/nw_s1_bltlvldr.nss | 49 + _haks/poa_dev/nw_s1_bltparal.ncs | Bin 0 -> 44090 bytes _haks/poa_dev/nw_s1_bltparal.nss | 48 + _haks/poa_dev/nw_s1_bltpoison.ncs | Bin 0 -> 9323 bytes _haks/poa_dev/nw_s1_bltpoison.nss | 123 + _haks/poa_dev/nw_s1_bltshards.ncs | Bin 0 -> 44316 bytes _haks/poa_dev/nw_s1_bltshards.nss | 58 + _haks/poa_dev/nw_s1_bltslow.ncs | Bin 0 -> 43758 bytes _haks/poa_dev/nw_s1_bltslow.nss | 47 + _haks/poa_dev/nw_s1_bltstrdr.ncs | Bin 0 -> 43746 bytes _haks/poa_dev/nw_s1_bltstrdr.nss | 48 + _haks/poa_dev/nw_s1_bltstun.ncs | Bin 0 -> 44819 bytes _haks/poa_dev/nw_s1_bltstun.nss | 50 + _haks/poa_dev/nw_s1_bltweb.ncs | Bin 0 -> 43666 bytes _haks/poa_dev/nw_s1_bltweb.nss | 44 + _haks/poa_dev/nw_s1_bltwisdr.ncs | Bin 0 -> 43733 bytes _haks/poa_dev/nw_s1_bltwisdr.nss | 48 + _haks/poa_dev/nw_s1_coneacid.ncs | Bin 0 -> 39662 bytes _haks/poa_dev/nw_s1_coneacid.nss | 76 + _haks/poa_dev/nw_s1_conecold.ncs | Bin 0 -> 39662 bytes _haks/poa_dev/nw_s1_conecold.nss | 76 + _haks/poa_dev/nw_s1_conedisea.ncs | Bin 0 -> 3025 bytes _haks/poa_dev/nw_s1_conedisea.nss | 99 + _haks/poa_dev/nw_s1_coneelec.ncs | Bin 0 -> 39799 bytes _haks/poa_dev/nw_s1_coneelec.nss | 78 + _haks/poa_dev/nw_s1_conesonic.ncs | Bin 0 -> 39656 bytes _haks/poa_dev/nw_s1_conesonic.nss | 75 + _haks/poa_dev/nw_s1_dragfear.ncs | Bin 0 -> 40503 bytes _haks/poa_dev/nw_s1_dragfear.nss | 119 + _haks/poa_dev/nw_s1_dragfeara.ncs | Bin 0 -> 39010 bytes _haks/poa_dev/nw_s1_dragfeara.nss | 45 + _haks/poa_dev/nw_s1_feroc3.ncs | Bin 0 -> 409 bytes _haks/poa_dev/nw_s1_feroc3.nss | 41 + _haks/poa_dev/nw_s1_gazechaos.ncs | Bin 0 -> 39021 bytes _haks/poa_dev/nw_s1_gazechaos.nss | 69 + _haks/poa_dev/nw_s1_gazecharm.ncs | Bin 0 -> 40339 bytes _haks/poa_dev/nw_s1_gazecharm.nss | 76 + _haks/poa_dev/nw_s1_gazeconfu.ncs | Bin 0 -> 40365 bytes _haks/poa_dev/nw_s1_gazeconfu.nss | 77 + _haks/poa_dev/nw_s1_gazedaze.ncs | Bin 0 -> 39623 bytes _haks/poa_dev/nw_s1_gazedaze.nss | 74 + _haks/poa_dev/nw_s1_gazedeath.ncs | Bin 0 -> 39058 bytes _haks/poa_dev/nw_s1_gazedeath.nss | 66 + _haks/poa_dev/nw_s1_gazedomn.ncs | Bin 0 -> 40366 bytes _haks/poa_dev/nw_s1_gazedomn.nss | 78 + _haks/poa_dev/nw_s1_gazedoom.ncs | Bin 0 -> 39290 bytes _haks/poa_dev/nw_s1_gazedoom.nss | 74 + _haks/poa_dev/nw_s1_gazeevil.ncs | Bin 0 -> 39045 bytes _haks/poa_dev/nw_s1_gazeevil.nss | 70 + _haks/poa_dev/nw_s1_gazefear.ncs | Bin 0 -> 39661 bytes _haks/poa_dev/nw_s1_gazefear.nss | 74 + _haks/poa_dev/nw_s1_gazegood.ncs | Bin 0 -> 39045 bytes _haks/poa_dev/nw_s1_gazegood.nss | 70 + _haks/poa_dev/nw_s1_gazelaw.ncs | Bin 0 -> 39087 bytes _haks/poa_dev/nw_s1_gazelaw.nss | 71 + _haks/poa_dev/nw_s1_gazestun.ncs | Bin 0 -> 40299 bytes _haks/poa_dev/nw_s1_gazestun.nss | 73 + _haks/poa_dev/nw_s1_golemgas.ncs | Bin 0 -> 402 bytes _haks/poa_dev/nw_s1_golemgas.nss | 41 + _haks/poa_dev/nw_s1_hndbreath.ncs | Bin 0 -> 39482 bytes _haks/poa_dev/nw_s1_hndbreath.nss | 66 + _haks/poa_dev/nw_s1_howlconf.ncs | Bin 0 -> 39544 bytes _haks/poa_dev/nw_s1_howlconf.nss | 67 + _haks/poa_dev/nw_s1_howldaze.ncs | Bin 0 -> 39544 bytes _haks/poa_dev/nw_s1_howldaze.nss | 65 + _haks/poa_dev/nw_s1_howldeath.ncs | Bin 0 -> 38915 bytes _haks/poa_dev/nw_s1_howldeath.nss | 59 + _haks/poa_dev/nw_s1_howlfear.ncs | Bin 0 -> 39540 bytes _haks/poa_dev/nw_s1_howlfear.nss | 68 + _haks/poa_dev/nw_s1_howlparal.ncs | Bin 0 -> 39421 bytes _haks/poa_dev/nw_s1_howlparal.nss | 65 + _haks/poa_dev/nw_s1_howlsonic.ncs | Bin 0 -> 39081 bytes _haks/poa_dev/nw_s1_howlsonic.nss | 65 + _haks/poa_dev/nw_s1_howlstun.ncs | Bin 0 -> 39498 bytes _haks/poa_dev/nw_s1_howlstun.nss | 66 + _haks/poa_dev/nw_s1_krenscare.ncs | Bin 0 -> 50625 bytes _haks/poa_dev/nw_s1_krenscare.nss | 61 + _haks/poa_dev/nw_s1_mephsalt.ncs | Bin 0 -> 44593 bytes _haks/poa_dev/nw_s1_mephsalt.nss | 63 + _haks/poa_dev/nw_s1_mephsteam.ncs | Bin 0 -> 44593 bytes _haks/poa_dev/nw_s1_mephsteam.nss | 67 + _haks/poa_dev/nw_s1_mumundead.ncs | Bin 0 -> 1028 bytes _haks/poa_dev/nw_s1_mumundead.nss | 53 + _haks/poa_dev/nw_s1_pulschrdr.ncs | Bin 0 -> 39043 bytes _haks/poa_dev/nw_s1_pulschrdr.nss | 73 + _haks/poa_dev/nw_s1_pulscold.ncs | Bin 0 -> 39605 bytes _haks/poa_dev/nw_s1_pulscold.nss | 68 + _haks/poa_dev/nw_s1_pulscondr.ncs | Bin 0 -> 39043 bytes _haks/poa_dev/nw_s1_pulscondr.nss | 71 + _haks/poa_dev/nw_s1_pulsdeath.ncs | Bin 0 -> 38932 bytes _haks/poa_dev/nw_s1_pulsdeath.nss | 68 + _haks/poa_dev/nw_s1_pulsdexdr.ncs | Bin 0 -> 39043 bytes _haks/poa_dev/nw_s1_pulsdexdr.nss | 70 + _haks/poa_dev/nw_s1_pulsdis.ncs | Bin 0 -> 2911 bytes _haks/poa_dev/nw_s1_pulsdis.nss | 85 + _haks/poa_dev/nw_s1_pulselec.ncs | Bin 0 -> 39790 bytes _haks/poa_dev/nw_s1_pulselec.nss | 68 + _haks/poa_dev/nw_s1_pulsfire.ncs | Bin 0 -> 39609 bytes _haks/poa_dev/nw_s1_pulsfire.nss | 69 + _haks/poa_dev/nw_s1_pulsholy.ncs | Bin 0 -> 39936 bytes _haks/poa_dev/nw_s1_pulsholy.nss | 89 + _haks/poa_dev/nw_s1_pulsintdr.ncs | Bin 0 -> 39041 bytes _haks/poa_dev/nw_s1_pulsintdr.nss | 72 + _haks/poa_dev/nw_s1_pulslvldr.ncs | Bin 0 -> 39017 bytes _haks/poa_dev/nw_s1_pulslvldr.nss | 62 + _haks/poa_dev/nw_s1_pulsneg.ncs | Bin 0 -> 39984 bytes _haks/poa_dev/nw_s1_pulsneg.nss | 87 + _haks/poa_dev/nw_s1_pulspois.ncs | Bin 0 -> 3747 bytes _haks/poa_dev/nw_s1_pulspois.nss | 138 + _haks/poa_dev/nw_s1_pulsspore.ncs | Bin 0 -> 527 bytes _haks/poa_dev/nw_s1_pulsspore.nss | 50 + _haks/poa_dev/nw_s1_pulsstrdr.ncs | Bin 0 -> 39043 bytes _haks/poa_dev/nw_s1_pulsstrdr.nss | 71 + _haks/poa_dev/nw_s1_pulswind.ncs | Bin 0 -> 38697 bytes _haks/poa_dev/nw_s1_pulswind.nss | 51 + _haks/poa_dev/nw_s1_pulswisdr.ncs | Bin 0 -> 39045 bytes _haks/poa_dev/nw_s1_pulswisdr.nss | 68 + _haks/poa_dev/nw_s1_smokeclaw.ncs | Bin 0 -> 43787 bytes _haks/poa_dev/nw_s1_smokeclaw.nss | 64 + _haks/poa_dev/nw_s1_stink_a.ncs | Bin 0 -> 39100 bytes _haks/poa_dev/nw_s1_stink_a.nss | 57 + _haks/poa_dev/nw_s1_tyrantfga.ncs | Bin 0 -> 38625 bytes _haks/poa_dev/nw_s1_tyrantfga.nss | 56 + _haks/poa_dev/nw_s1_tyrantfog.ncs | Bin 0 -> 173 bytes _haks/poa_dev/nw_s1_tyrantfog.nss | 25 + _haks/poa_dev/nw_s2_divprot.ncs | Bin 0 -> 20552 bytes _haks/poa_dev/nw_s2_divprot.nss | 45 + _haks/poa_dev/nw_s3_balordeth.ncs | Bin 0 -> 90827 bytes _haks/poa_dev/nw_s3_balordeth.nss | 62 + _module/_removed files/array_example.ncs | Bin 0 -> 8280 bytes _module/_removed files/array_example.nss | 143 + _module/_removed files/inc_array.nss | 504 ++ .../_removed files}/nw_s1_barbrage.nss | 0 .../_removed files}/nw_s2_bardsong.nss | 0 .../_removed files}/nw_s2_wholeness.nss | 0 .../_removed files}/x1_s2_imbuearrow.nss | 0 _removed files/evercliententer.nss | 363 - _removed files/everclientexit.nss | 358 - _removed files/everheartbeat.nss | 77 - _removed files/evermodload.nss | 167 - _removed files/everpcdeath.nss | 702 -- _removed files/everpcdying.nss | 104 - _removed files/everpcequip.nss | 85 - _removed files/everpclevelup.nss | 162 - _removed files/everpcrespawn.nss | 143 - _removed files/everpcrest.nss | 130 - _removed files/everpcunequip.nss | 96 - _removed files/everunaquire.nss | 108 - _removed files/hgll_classft_inc.nss | 7473 ----------------- _removed files/hgll_const_inc.nss | 39 - _removed files/hgll_featreq_inc.nss | 4202 --------- _removed files/hgll_func_inc.nss | 1405 ---- _removed files/hgll_leto_inc.nss | 284 - _removed files/hgll_spells_inc.nss | 808 -- _removed files/hgll_struct_stat.nss | 39 - _removed files/nw_s0_acidfoga.nss | 64 - _removed files/nw_s0_acidfogc.nss | 79 - _removed files/nw_s0_bescurse.nss | 64 - _removed files/nw_s0_bladebara.nss | 66 - _removed files/nw_s0_bladebarc.nss | 82 - _removed files/nw_s0_calllghtn.nss | 98 - _removed files/nw_s0_chlightn.nss | 186 - _removed files/nw_s0_conecold.nss | 105 - _removed files/nw_s0_crgrund.nss | 70 - _removed files/nw_s0_crpdooma.nss | 51 - _removed files/nw_s0_crpdoomc.nss | 85 - _removed files/nw_s0_crundead.nss | 71 - _removed files/nw_s0_delfirea.nss | 98 - _removed files/nw_s0_delfirebal.nss | 59 - _removed files/nw_s0_destruc.nss | 82 - _removed files/nw_s0_eleswarm.nss | 59 - _removed files/nw_s0_enedrain.nss | 68 - _removed files/nw_s0_enervat.nss | 79 - _removed files/nw_s0_findtrap.nss | 36 - _removed files/nw_s0_fingdeath.nss | 97 - _removed files/nw_s0_fireball.nss | 109 - _removed files/nw_s0_firestrm.nss | 104 - _removed files/nw_s0_flmarrow.nss | 99 - _removed files/nw_s0_flmstrike.nss | 108 - _removed files/nw_s0_gate.nss | 70 - _removed files/nw_s0_grplanar.nss | 102 - _removed files/nw_s0_hammgods.nss | 110 - _removed files/nw_s0_horrwilt.nss | 105 - _removed files/nw_s0_icestorm.nss | 97 - _removed files/nw_s0_implosion.nss | 80 - _removed files/nw_s0_imprinvis.nss | 66 - _removed files/nw_s0_incclouda.nss | 67 - _removed files/nw_s0_inccloudc.nss | 80 - _removed files/nw_s0_knock.nss | 35 - _removed files/nw_s0_lghtnbolt.nss | 112 - _removed files/nw_s0_lsplanar.nss | 114 - _removed files/nw_s0_metswarm.nss | 94 - _removed files/nw_s0_mordswrd.nss | 50 - _removed files/nw_s0_negray.nss | 96 - _removed files/nw_s0_planar.nss | 107 - _removed files/nw_s0_pwkill.nss | 136 - _removed files/nw_s0_raisdead.nss | 47 - _removed files/nw_s0_regen.nss | 59 - _removed files/nw_s0_resserec.nss | 52 - _removed files/nw_s0_shadconj.nss | 105 - _removed files/nw_s0_shades.nss | 105 - _removed files/nw_s0_slaylive.nss | 85 - _removed files/nw_s0_slow.nss | 84 - _removed files/nw_s0_splresis.nss | 76 - _removed files/nw_s0_stormvenc.nss | 74 - _removed files/nw_s0_summon.nss | 260 - _removed files/nw_s0_summon4.nss | 54 - _removed files/nw_s0_summon5.nss | 52 - _removed files/nw_s0_summon6.nss | 70 - _removed files/nw_s0_summon7.nss | 90 - _removed files/nw_s0_summon8.nss | 92 - _removed files/nw_s0_summon9.nss | 66 - _removed files/nw_s0_summshad.nss | 70 - _removed files/nw_s0_summshad02.nss | 64 - _removed files/nw_s0_timestop.nss | 158 - _removed files/nw_s0_timestop1.nss | 56 - _removed files/nw_s0_timestop3.nss | 76 - _removed files/nw_s0_vamptch.nss | 125 - _removed files/nw_s0_wallfirea.nss | 60 - _removed files/nw_s0_wallfirec.nss | 78 - _removed files/nwnx_admin_t.nss | 26 - _removed files/nwnx_area_t.nss | 73 - _removed files/nwnx_chat_t.nss | 20 - _removed files/nwnx_creature_t.nss | 256 - _removed files/nwnx_dialog_t.nss | 37 - _removed files/nwnx_dialog_t1.nss | 7 - _removed files/nwnx_dialog_t2.nss | 7 - _removed files/nwnx_dialog_t3.nss | 6 - _removed files/nwnx_effect_t.nss | 80 - _removed files/nwnx_feedback_t.nss | 34 - _removed files/nwnx_itemprop_t.nss | 42 - _removed files/nwnx_object_t.nss | 121 - _removed files/nwnx_player_t.nss | 16 - _removed files/nwnx_race_t.nss | 33 - _removed files/nwnx_sql_t.nss | 249 - _removed files/old_thunderclap.nss | 107 - _removed files/vat_stripdmfi.nss | 28 - _removed files/vat_stripflags.nss | 60 - _removed files/vat_stripnondrop.nss | 51 - _removed files/x0_s0_bombard.nss | 107 - _removed files/x0_s0_enten.nss | 24 - _removed files/x0_s0_entrshield.nss | 65 - _removed files/x0_s0_ether.nss | 48 - _removed files/x0_s0_firebrand.nss | 50 - _removed files/x0_s0_fleshsto.nss | 57 - _removed files/x0_s0_missstorm1.nss | 65 - _removed files/x0_s0_missstorm2.nss | 62 - _removed files/x0_s0_truestrike.nss | 62 - _removed files/x0_s0_woundwhis.nss | 69 - _removed files/x2_m1_mindblast.nss | 118 - _removed files/x2_p_craftskills.dlg | Bin 12806 -> 0 bytes _removed files/x2_s0_balllghtng.nss | 39 - _removed files/x2_s0_blckblde.nss | 109 - _removed files/x2_s0_blckstff.nss | 89 - _removed files/x2_s0_combust.nss | 214 - _removed files/x2_s0_crshadow.nss | 63 - _removed files/x2_s0_dtharm.nss | 70 - _removed files/x2_s0_elecloop.nss | 157 - _removed files/x2_s0_glphwardx.nss | 117 - _removed files/x2_s0_grmagweap.nss | 89 - _removed files/x2_s0_horiboom.nss | 90 - _removed files/x2_s0_monregen.nss | 64 - _removed files/x2_s0_scntsphere.nss | 105 - _removed files/x2_s0_stneholda.nss | 55 - _removed files/x2_s0_stneholdc.nss | 67 - _removed files/x2_s0_undeath.nss | 155 - _removed files/x2_s1_chaosspit.nss | 90 - _removed files/x2_s1_petrgaze.nss | 92 - _removed files/x2_s1_wyrmbreath.nss | 153 - _removed files/x2_s2_blindspd.nss | 107 - _removed files/x2_s2_cursesong.nss | 417 - _removed files/x2_s2_dragknght.nss | 46 - _removed files/x2_s2_dthmsttch.nss | 85 - _removed files/x2_s2_gwburn.nss | 66 - _removed files/x2_s2_gwildshp.nss | 458 - _removed files/x2_s2_hellball.nss | 144 - _removed files/x2_s2_mghtyrage.nss | 62 - _removed files/x2_s2_mumdust.nss | 46 - _removed files/x2_s2_ruin.nss | 66 - _removed files/x2_s2_sumundead.nss | 72 - _removed files/x2_s3_demitouch.nss | 96 - 560 files changed, 22117 insertions(+), 27806 deletions(-) create mode 100644 35expandedabilities/PRC_vampdrain.ncs create mode 100644 35expandedabilities/PRC_vampdrain.nss create mode 100644 35expandedabilities/inv_adeptbreath.ncs create mode 100644 35expandedabilities/inv_adeptbreath.nss create mode 100644 35expandedabilities/inv_drgnfireadpt.ncs create mode 100644 35expandedabilities/inv_drgnfireadpt.nss create mode 100644 35expandedabilities/nivel_ext.nss create mode 100644 35expandedabilities/nw_s1_aurablnda.ncs create mode 100644 35expandedabilities/nw_s1_aurablnda.nss create mode 100644 35expandedabilities/nw_s1_auracoldc.ncs create mode 100644 35expandedabilities/nw_s1_auracoldc.nss create mode 100644 35expandedabilities/nw_s1_auraelecc.ncs create mode 100644 35expandedabilities/nw_s1_auraelecc.nss create mode 100644 35expandedabilities/nw_s1_aurafirec.ncs create mode 100644 35expandedabilities/nw_s1_aurafirec.nss create mode 100644 35expandedabilities/nw_s1_auramenca.ncs create mode 100644 35expandedabilities/nw_s1_auramenca.nss create mode 100644 35expandedabilities/nw_s1_auraprota.ncs create mode 100644 35expandedabilities/nw_s1_auraprota.nss create mode 100644 35expandedabilities/nw_s1_aurastuna.ncs create mode 100644 35expandedabilities/nw_s1_aurastuna.nss create mode 100644 35expandedabilities/nw_s1_auraunata.ncs create mode 100644 35expandedabilities/nw_s1_auraunata.nss create mode 100644 35expandedabilities/nw_s1_aurauneaa.ncs create mode 100644 35expandedabilities/nw_s1_aurauneaa.nss create mode 100644 35expandedabilities/nw_s1_barbrage.ncs create mode 100644 35expandedabilities/nw_s1_barbrage.nss create mode 100644 35expandedabilities/nw_s1_bltacid.ncs create mode 100644 35expandedabilities/nw_s1_bltacid.nss create mode 100644 35expandedabilities/nw_s1_bltcharm.ncs create mode 100644 35expandedabilities/nw_s1_bltcharm.nss create mode 100644 35expandedabilities/nw_s1_bltchrdr.ncs create mode 100644 35expandedabilities/nw_s1_bltchrdr.nss create mode 100644 35expandedabilities/nw_s1_bltcold.ncs create mode 100644 35expandedabilities/nw_s1_bltcold.nss create mode 100644 35expandedabilities/nw_s1_bltcondr.ncs create mode 100644 35expandedabilities/nw_s1_bltcondr.nss create mode 100644 35expandedabilities/nw_s1_bltconf.ncs create mode 100644 35expandedabilities/nw_s1_bltconf.nss create mode 100644 35expandedabilities/nw_s1_bltdaze.ncs create mode 100644 35expandedabilities/nw_s1_bltdaze.nss create mode 100644 35expandedabilities/nw_s1_bltdeath.ncs create mode 100644 35expandedabilities/nw_s1_bltdeath.nss create mode 100644 35expandedabilities/nw_s1_bltdexdr.ncs create mode 100644 35expandedabilities/nw_s1_bltdexdr.nss create mode 100644 35expandedabilities/nw_s1_bltdisese.ncs create mode 100644 35expandedabilities/nw_s1_bltdisese.nss create mode 100644 35expandedabilities/nw_s1_bltdomn.ncs create mode 100644 35expandedabilities/nw_s1_bltdomn.nss create mode 100644 35expandedabilities/nw_s1_bltfire.ncs create mode 100644 35expandedabilities/nw_s1_bltfire.nss create mode 100644 35expandedabilities/nw_s1_bltintdr.ncs create mode 100644 35expandedabilities/nw_s1_bltintdr.nss create mode 100644 35expandedabilities/nw_s1_bltknckd.ncs create mode 100644 35expandedabilities/nw_s1_bltknckd.nss create mode 100644 35expandedabilities/nw_s1_bltlightn.ncs create mode 100644 35expandedabilities/nw_s1_bltlightn.nss create mode 100644 35expandedabilities/nw_s1_bltlvldr.ncs create mode 100644 35expandedabilities/nw_s1_bltlvldr.nss create mode 100644 35expandedabilities/nw_s1_bltparal.ncs create mode 100644 35expandedabilities/nw_s1_bltparal.nss create mode 100644 35expandedabilities/nw_s1_bltpoison.ncs create mode 100644 35expandedabilities/nw_s1_bltpoison.nss create mode 100644 35expandedabilities/nw_s1_bltshards.ncs create mode 100644 35expandedabilities/nw_s1_bltshards.nss create mode 100644 35expandedabilities/nw_s1_bltslow.ncs create mode 100644 35expandedabilities/nw_s1_bltslow.nss create mode 100644 35expandedabilities/nw_s1_bltstrdr.ncs create mode 100644 35expandedabilities/nw_s1_bltstrdr.nss create mode 100644 35expandedabilities/nw_s1_bltstun.ncs create mode 100644 35expandedabilities/nw_s1_bltstun.nss create mode 100644 35expandedabilities/nw_s1_bltweb.ncs create mode 100644 35expandedabilities/nw_s1_bltweb.nss create mode 100644 35expandedabilities/nw_s1_bltwisdr.ncs create mode 100644 35expandedabilities/nw_s1_bltwisdr.nss create mode 100644 35expandedabilities/nw_s1_coneacid.ncs create mode 100644 35expandedabilities/nw_s1_coneacid.nss create mode 100644 35expandedabilities/nw_s1_conecold.ncs create mode 100644 35expandedabilities/nw_s1_conecold.nss create mode 100644 35expandedabilities/nw_s1_conedisea.ncs create mode 100644 35expandedabilities/nw_s1_conedisea.nss create mode 100644 35expandedabilities/nw_s1_coneelec.ncs create mode 100644 35expandedabilities/nw_s1_coneelec.nss create mode 100644 35expandedabilities/nw_s1_conesonic.ncs create mode 100644 35expandedabilities/nw_s1_conesonic.nss create mode 100644 35expandedabilities/nw_s1_dragacid.ncs create mode 100644 35expandedabilities/nw_s1_dragacid.nss create mode 100644 35expandedabilities/nw_s1_dragcold.ncs create mode 100644 35expandedabilities/nw_s1_dragcold.nss create mode 100644 35expandedabilities/nw_s1_dragfear.ncs create mode 100644 35expandedabilities/nw_s1_dragfear.nss create mode 100644 35expandedabilities/nw_s1_dragfeara.ncs create mode 100644 35expandedabilities/nw_s1_dragfeara.nss create mode 100644 35expandedabilities/nw_s1_dragfire.ncs create mode 100644 35expandedabilities/nw_s1_dragfire.nss create mode 100644 35expandedabilities/nw_s1_draggas.ncs create mode 100644 35expandedabilities/nw_s1_draggas.nss create mode 100644 35expandedabilities/nw_s1_draglight.ncs create mode 100644 35expandedabilities/nw_s1_draglight.nss create mode 100644 35expandedabilities/nw_s1_dragparal.ncs create mode 100644 35expandedabilities/nw_s1_dragparal.nss create mode 100644 35expandedabilities/nw_s1_dragsleep.ncs create mode 100644 35expandedabilities/nw_s1_dragsleep.nss create mode 100644 35expandedabilities/nw_s1_dragslow.ncs create mode 100644 35expandedabilities/nw_s1_dragslow.nss create mode 100644 35expandedabilities/nw_s1_dragweak.ncs create mode 100644 35expandedabilities/nw_s1_dragweak.nss create mode 100644 35expandedabilities/nw_s1_feroc3.ncs create mode 100644 35expandedabilities/nw_s1_feroc3.nss create mode 100644 35expandedabilities/nw_s1_gazechaos.ncs create mode 100644 35expandedabilities/nw_s1_gazechaos.nss create mode 100644 35expandedabilities/nw_s1_gazecharm.ncs create mode 100644 35expandedabilities/nw_s1_gazecharm.nss create mode 100644 35expandedabilities/nw_s1_gazeconfu.ncs create mode 100644 35expandedabilities/nw_s1_gazeconfu.nss create mode 100644 35expandedabilities/nw_s1_gazedaze.ncs create mode 100644 35expandedabilities/nw_s1_gazedaze.nss create mode 100644 35expandedabilities/nw_s1_gazedeath.ncs create mode 100644 35expandedabilities/nw_s1_gazedeath.nss create mode 100644 35expandedabilities/nw_s1_gazedomn.ncs create mode 100644 35expandedabilities/nw_s1_gazedomn.nss create mode 100644 35expandedabilities/nw_s1_gazedoom.ncs create mode 100644 35expandedabilities/nw_s1_gazedoom.nss create mode 100644 35expandedabilities/nw_s1_gazeevil.ncs create mode 100644 35expandedabilities/nw_s1_gazeevil.nss create mode 100644 35expandedabilities/nw_s1_gazefear.ncs create mode 100644 35expandedabilities/nw_s1_gazefear.nss create mode 100644 35expandedabilities/nw_s1_gazegood.ncs create mode 100644 35expandedabilities/nw_s1_gazegood.nss create mode 100644 35expandedabilities/nw_s1_gazelaw.ncs create mode 100644 35expandedabilities/nw_s1_gazelaw.nss create mode 100644 35expandedabilities/nw_s1_gazestun.ncs create mode 100644 35expandedabilities/nw_s1_gazestun.nss create mode 100644 35expandedabilities/nw_s1_golemgas.ncs create mode 100644 35expandedabilities/nw_s1_golemgas.nss create mode 100644 35expandedabilities/nw_s1_hndbreath.ncs create mode 100644 35expandedabilities/nw_s1_hndbreath.nss create mode 100644 35expandedabilities/nw_s1_howlconf.ncs create mode 100644 35expandedabilities/nw_s1_howlconf.nss create mode 100644 35expandedabilities/nw_s1_howldaze.ncs create mode 100644 35expandedabilities/nw_s1_howldaze.nss create mode 100644 35expandedabilities/nw_s1_howldeath.ncs create mode 100644 35expandedabilities/nw_s1_howldeath.nss create mode 100644 35expandedabilities/nw_s1_howlfear.ncs create mode 100644 35expandedabilities/nw_s1_howlfear.nss create mode 100644 35expandedabilities/nw_s1_howlparal.ncs create mode 100644 35expandedabilities/nw_s1_howlparal.nss create mode 100644 35expandedabilities/nw_s1_howlsonic.ncs create mode 100644 35expandedabilities/nw_s1_howlsonic.nss create mode 100644 35expandedabilities/nw_s1_howlstun.ncs create mode 100644 35expandedabilities/nw_s1_howlstun.nss create mode 100644 35expandedabilities/nw_s1_krenscare.ncs create mode 100644 35expandedabilities/nw_s1_krenscare.nss create mode 100644 35expandedabilities/nw_s1_mephsalt.ncs create mode 100644 35expandedabilities/nw_s1_mephsalt.nss create mode 100644 35expandedabilities/nw_s1_mephsteam.ncs create mode 100644 35expandedabilities/nw_s1_mephsteam.nss create mode 100644 35expandedabilities/nw_s1_mumundead.ncs create mode 100644 35expandedabilities/nw_s1_mumundead.nss create mode 100644 35expandedabilities/nw_s1_pulschrdr.ncs create mode 100644 35expandedabilities/nw_s1_pulschrdr.nss create mode 100644 35expandedabilities/nw_s1_pulscold.ncs create mode 100644 35expandedabilities/nw_s1_pulscold.nss create mode 100644 35expandedabilities/nw_s1_pulscondr.ncs create mode 100644 35expandedabilities/nw_s1_pulscondr.nss create mode 100644 35expandedabilities/nw_s1_pulsdeath.ncs create mode 100644 35expandedabilities/nw_s1_pulsdeath.nss create mode 100644 35expandedabilities/nw_s1_pulsdexdr.ncs create mode 100644 35expandedabilities/nw_s1_pulsdexdr.nss create mode 100644 35expandedabilities/nw_s1_pulsdis.ncs create mode 100644 35expandedabilities/nw_s1_pulsdis.nss create mode 100644 35expandedabilities/nw_s1_pulselec.ncs create mode 100644 35expandedabilities/nw_s1_pulselec.nss create mode 100644 35expandedabilities/nw_s1_pulsfire.ncs create mode 100644 35expandedabilities/nw_s1_pulsfire.nss create mode 100644 35expandedabilities/nw_s1_pulsholy.ncs create mode 100644 35expandedabilities/nw_s1_pulsholy.nss create mode 100644 35expandedabilities/nw_s1_pulsintdr.ncs create mode 100644 35expandedabilities/nw_s1_pulsintdr.nss create mode 100644 35expandedabilities/nw_s1_pulslvldr.ncs create mode 100644 35expandedabilities/nw_s1_pulslvldr.nss create mode 100644 35expandedabilities/nw_s1_pulsneg.ncs create mode 100644 35expandedabilities/nw_s1_pulsneg.nss create mode 100644 35expandedabilities/nw_s1_pulspois.ncs create mode 100644 35expandedabilities/nw_s1_pulspois.nss create mode 100644 35expandedabilities/nw_s1_pulsspore.ncs create mode 100644 35expandedabilities/nw_s1_pulsspore.nss create mode 100644 35expandedabilities/nw_s1_pulsstrdr.ncs create mode 100644 35expandedabilities/nw_s1_pulsstrdr.nss create mode 100644 35expandedabilities/nw_s1_pulswind.ncs create mode 100644 35expandedabilities/nw_s1_pulswind.nss create mode 100644 35expandedabilities/nw_s1_pulswisdr.ncs create mode 100644 35expandedabilities/nw_s1_pulswisdr.nss create mode 100644 35expandedabilities/nw_s1_smokeclaw.ncs create mode 100644 35expandedabilities/nw_s1_smokeclaw.nss create mode 100644 35expandedabilities/nw_s1_stink_a.ncs create mode 100644 35expandedabilities/nw_s1_stink_a.nss create mode 100644 35expandedabilities/nw_s1_tyrantfga.ncs create mode 100644 35expandedabilities/nw_s1_tyrantfga.nss create mode 100644 35expandedabilities/nw_s1_tyrantfog.ncs create mode 100644 35expandedabilities/nw_s1_tyrantfog.nss create mode 100644 35expandedabilities/nw_s2_bardsong.ncs create mode 100644 35expandedabilities/nw_s2_bardsong.nss create mode 100644 35expandedabilities/nw_s2_divprot.ncs create mode 100644 35expandedabilities/nw_s2_divprot.nss create mode 100644 35expandedabilities/nw_s2_layonhand.ncs create mode 100644 35expandedabilities/nw_s2_layonhand.nss create mode 100644 35expandedabilities/nw_s3_balordeth.ncs create mode 100644 35expandedabilities/nw_s3_balordeth.nss create mode 100644 35expandedabilities/prc_hexbl_comp_a.ncs create mode 100644 35expandedabilities/prc_hexbl_comp_a.nss create mode 100644 35expandedabilities/prc_hexbl_comp_c.ncs create mode 100644 35expandedabilities/prc_hexbl_comp_c.nss create mode 100644 35expandedabilities/prc_hexbl_curse.ncs create mode 100644 35expandedabilities/prc_hexbl_curse.nss create mode 100644 35expandedabilities/prc_kotmc_combat.ncs create mode 100644 35expandedabilities/prc_kotmc_combat.nss create mode 100644 35expandedabilities/psi_sk_manifmbld.ncs create mode 100644 35expandedabilities/psi_sk_manifmbld.nss create mode 100644 35expandedabilities/x2_s1_dragneg.ncs create mode 100644 35expandedabilities/x2_s1_dragneg.nss create mode 100644 35expandedabilities/x2_s2_cursesong.ncs create mode 100644 35expandedabilities/x2_s2_cursesong.nss create mode 100644 35expandedabilities/x2_s2_discbreath.ncs create mode 100644 35expandedabilities/x2_s2_discbreath.nss create mode 100644 35expandedabilities/x2_s2_epicward.ncs create mode 100644 35expandedabilities/x2_s2_epicward.nss create mode 100644 35expandedabilities/x2_s2_epmagearm.ncs create mode 100644 35expandedabilities/x2_s2_epmagearm.nss create mode 100644 Compiler - 35abilities.bat create mode 100644 _haks/poa_dev/nw_s1_aurablnda.ncs create mode 100644 _haks/poa_dev/nw_s1_aurablnda.nss create mode 100644 _haks/poa_dev/nw_s1_auracoldc.ncs create mode 100644 _haks/poa_dev/nw_s1_auracoldc.nss create mode 100644 _haks/poa_dev/nw_s1_auraelecc.ncs create mode 100644 _haks/poa_dev/nw_s1_auraelecc.nss create mode 100644 _haks/poa_dev/nw_s1_aurafirec.ncs create mode 100644 _haks/poa_dev/nw_s1_aurafirec.nss create mode 100644 _haks/poa_dev/nw_s1_auramenca.ncs create mode 100644 _haks/poa_dev/nw_s1_auramenca.nss create mode 100644 _haks/poa_dev/nw_s1_auraprota.ncs create mode 100644 _haks/poa_dev/nw_s1_auraprota.nss create mode 100644 _haks/poa_dev/nw_s1_aurastuna.ncs create mode 100644 _haks/poa_dev/nw_s1_aurastuna.nss create mode 100644 _haks/poa_dev/nw_s1_auraunata.ncs create mode 100644 _haks/poa_dev/nw_s1_auraunata.nss create mode 100644 _haks/poa_dev/nw_s1_aurauneaa.ncs create mode 100644 _haks/poa_dev/nw_s1_aurauneaa.nss create mode 100644 _haks/poa_dev/nw_s1_bltacid.ncs create mode 100644 _haks/poa_dev/nw_s1_bltacid.nss create mode 100644 _haks/poa_dev/nw_s1_bltcharm.ncs create mode 100644 _haks/poa_dev/nw_s1_bltcharm.nss create mode 100644 _haks/poa_dev/nw_s1_bltchrdr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltchrdr.nss create mode 100644 _haks/poa_dev/nw_s1_bltcold.ncs create mode 100644 _haks/poa_dev/nw_s1_bltcold.nss create mode 100644 _haks/poa_dev/nw_s1_bltcondr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltcondr.nss create mode 100644 _haks/poa_dev/nw_s1_bltconf.ncs create mode 100644 _haks/poa_dev/nw_s1_bltconf.nss create mode 100644 _haks/poa_dev/nw_s1_bltdaze.ncs create mode 100644 _haks/poa_dev/nw_s1_bltdaze.nss create mode 100644 _haks/poa_dev/nw_s1_bltdeath.ncs create mode 100644 _haks/poa_dev/nw_s1_bltdeath.nss create mode 100644 _haks/poa_dev/nw_s1_bltdexdr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltdexdr.nss create mode 100644 _haks/poa_dev/nw_s1_bltdisese.ncs create mode 100644 _haks/poa_dev/nw_s1_bltdisese.nss create mode 100644 _haks/poa_dev/nw_s1_bltdomn.ncs create mode 100644 _haks/poa_dev/nw_s1_bltdomn.nss create mode 100644 _haks/poa_dev/nw_s1_bltfire.ncs create mode 100644 _haks/poa_dev/nw_s1_bltfire.nss create mode 100644 _haks/poa_dev/nw_s1_bltintdr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltintdr.nss create mode 100644 _haks/poa_dev/nw_s1_bltknckd.ncs create mode 100644 _haks/poa_dev/nw_s1_bltknckd.nss create mode 100644 _haks/poa_dev/nw_s1_bltlightn.ncs create mode 100644 _haks/poa_dev/nw_s1_bltlightn.nss create mode 100644 _haks/poa_dev/nw_s1_bltlvldr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltlvldr.nss create mode 100644 _haks/poa_dev/nw_s1_bltparal.ncs create mode 100644 _haks/poa_dev/nw_s1_bltparal.nss create mode 100644 _haks/poa_dev/nw_s1_bltpoison.ncs create mode 100644 _haks/poa_dev/nw_s1_bltpoison.nss create mode 100644 _haks/poa_dev/nw_s1_bltshards.ncs create mode 100644 _haks/poa_dev/nw_s1_bltshards.nss create mode 100644 _haks/poa_dev/nw_s1_bltslow.ncs create mode 100644 _haks/poa_dev/nw_s1_bltslow.nss create mode 100644 _haks/poa_dev/nw_s1_bltstrdr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltstrdr.nss create mode 100644 _haks/poa_dev/nw_s1_bltstun.ncs create mode 100644 _haks/poa_dev/nw_s1_bltstun.nss create mode 100644 _haks/poa_dev/nw_s1_bltweb.ncs create mode 100644 _haks/poa_dev/nw_s1_bltweb.nss create mode 100644 _haks/poa_dev/nw_s1_bltwisdr.ncs create mode 100644 _haks/poa_dev/nw_s1_bltwisdr.nss create mode 100644 _haks/poa_dev/nw_s1_coneacid.ncs create mode 100644 _haks/poa_dev/nw_s1_coneacid.nss create mode 100644 _haks/poa_dev/nw_s1_conecold.ncs create mode 100644 _haks/poa_dev/nw_s1_conecold.nss create mode 100644 _haks/poa_dev/nw_s1_conedisea.ncs create mode 100644 _haks/poa_dev/nw_s1_conedisea.nss create mode 100644 _haks/poa_dev/nw_s1_coneelec.ncs create mode 100644 _haks/poa_dev/nw_s1_coneelec.nss create mode 100644 _haks/poa_dev/nw_s1_conesonic.ncs create mode 100644 _haks/poa_dev/nw_s1_conesonic.nss create mode 100644 _haks/poa_dev/nw_s1_dragfear.ncs create mode 100644 _haks/poa_dev/nw_s1_dragfear.nss create mode 100644 _haks/poa_dev/nw_s1_dragfeara.ncs create mode 100644 _haks/poa_dev/nw_s1_dragfeara.nss create mode 100644 _haks/poa_dev/nw_s1_feroc3.ncs create mode 100644 _haks/poa_dev/nw_s1_feroc3.nss create mode 100644 _haks/poa_dev/nw_s1_gazechaos.ncs create mode 100644 _haks/poa_dev/nw_s1_gazechaos.nss create mode 100644 _haks/poa_dev/nw_s1_gazecharm.ncs create mode 100644 _haks/poa_dev/nw_s1_gazecharm.nss create mode 100644 _haks/poa_dev/nw_s1_gazeconfu.ncs create mode 100644 _haks/poa_dev/nw_s1_gazeconfu.nss create mode 100644 _haks/poa_dev/nw_s1_gazedaze.ncs create mode 100644 _haks/poa_dev/nw_s1_gazedaze.nss create mode 100644 _haks/poa_dev/nw_s1_gazedeath.ncs create mode 100644 _haks/poa_dev/nw_s1_gazedeath.nss create mode 100644 _haks/poa_dev/nw_s1_gazedomn.ncs create mode 100644 _haks/poa_dev/nw_s1_gazedomn.nss create mode 100644 _haks/poa_dev/nw_s1_gazedoom.ncs create mode 100644 _haks/poa_dev/nw_s1_gazedoom.nss create mode 100644 _haks/poa_dev/nw_s1_gazeevil.ncs create mode 100644 _haks/poa_dev/nw_s1_gazeevil.nss create mode 100644 _haks/poa_dev/nw_s1_gazefear.ncs create mode 100644 _haks/poa_dev/nw_s1_gazefear.nss create mode 100644 _haks/poa_dev/nw_s1_gazegood.ncs create mode 100644 _haks/poa_dev/nw_s1_gazegood.nss create mode 100644 _haks/poa_dev/nw_s1_gazelaw.ncs create mode 100644 _haks/poa_dev/nw_s1_gazelaw.nss create mode 100644 _haks/poa_dev/nw_s1_gazestun.ncs create mode 100644 _haks/poa_dev/nw_s1_gazestun.nss create mode 100644 _haks/poa_dev/nw_s1_golemgas.ncs create mode 100644 _haks/poa_dev/nw_s1_golemgas.nss create mode 100644 _haks/poa_dev/nw_s1_hndbreath.ncs create mode 100644 _haks/poa_dev/nw_s1_hndbreath.nss create mode 100644 _haks/poa_dev/nw_s1_howlconf.ncs create mode 100644 _haks/poa_dev/nw_s1_howlconf.nss create mode 100644 _haks/poa_dev/nw_s1_howldaze.ncs create mode 100644 _haks/poa_dev/nw_s1_howldaze.nss create mode 100644 _haks/poa_dev/nw_s1_howldeath.ncs create mode 100644 _haks/poa_dev/nw_s1_howldeath.nss create mode 100644 _haks/poa_dev/nw_s1_howlfear.ncs create mode 100644 _haks/poa_dev/nw_s1_howlfear.nss create mode 100644 _haks/poa_dev/nw_s1_howlparal.ncs create mode 100644 _haks/poa_dev/nw_s1_howlparal.nss create mode 100644 _haks/poa_dev/nw_s1_howlsonic.ncs create mode 100644 _haks/poa_dev/nw_s1_howlsonic.nss create mode 100644 _haks/poa_dev/nw_s1_howlstun.ncs create mode 100644 _haks/poa_dev/nw_s1_howlstun.nss create mode 100644 _haks/poa_dev/nw_s1_krenscare.ncs create mode 100644 _haks/poa_dev/nw_s1_krenscare.nss create mode 100644 _haks/poa_dev/nw_s1_mephsalt.ncs create mode 100644 _haks/poa_dev/nw_s1_mephsalt.nss create mode 100644 _haks/poa_dev/nw_s1_mephsteam.ncs create mode 100644 _haks/poa_dev/nw_s1_mephsteam.nss create mode 100644 _haks/poa_dev/nw_s1_mumundead.ncs create mode 100644 _haks/poa_dev/nw_s1_mumundead.nss create mode 100644 _haks/poa_dev/nw_s1_pulschrdr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulschrdr.nss create mode 100644 _haks/poa_dev/nw_s1_pulscold.ncs create mode 100644 _haks/poa_dev/nw_s1_pulscold.nss create mode 100644 _haks/poa_dev/nw_s1_pulscondr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulscondr.nss create mode 100644 _haks/poa_dev/nw_s1_pulsdeath.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsdeath.nss create mode 100644 _haks/poa_dev/nw_s1_pulsdexdr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsdexdr.nss create mode 100644 _haks/poa_dev/nw_s1_pulsdis.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsdis.nss create mode 100644 _haks/poa_dev/nw_s1_pulselec.ncs create mode 100644 _haks/poa_dev/nw_s1_pulselec.nss create mode 100644 _haks/poa_dev/nw_s1_pulsfire.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsfire.nss create mode 100644 _haks/poa_dev/nw_s1_pulsholy.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsholy.nss create mode 100644 _haks/poa_dev/nw_s1_pulsintdr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsintdr.nss create mode 100644 _haks/poa_dev/nw_s1_pulslvldr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulslvldr.nss create mode 100644 _haks/poa_dev/nw_s1_pulsneg.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsneg.nss create mode 100644 _haks/poa_dev/nw_s1_pulspois.ncs create mode 100644 _haks/poa_dev/nw_s1_pulspois.nss create mode 100644 _haks/poa_dev/nw_s1_pulsspore.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsspore.nss create mode 100644 _haks/poa_dev/nw_s1_pulsstrdr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulsstrdr.nss create mode 100644 _haks/poa_dev/nw_s1_pulswind.ncs create mode 100644 _haks/poa_dev/nw_s1_pulswind.nss create mode 100644 _haks/poa_dev/nw_s1_pulswisdr.ncs create mode 100644 _haks/poa_dev/nw_s1_pulswisdr.nss create mode 100644 _haks/poa_dev/nw_s1_smokeclaw.ncs create mode 100644 _haks/poa_dev/nw_s1_smokeclaw.nss create mode 100644 _haks/poa_dev/nw_s1_stink_a.ncs create mode 100644 _haks/poa_dev/nw_s1_stink_a.nss create mode 100644 _haks/poa_dev/nw_s1_tyrantfga.ncs create mode 100644 _haks/poa_dev/nw_s1_tyrantfga.nss create mode 100644 _haks/poa_dev/nw_s1_tyrantfog.ncs create mode 100644 _haks/poa_dev/nw_s1_tyrantfog.nss create mode 100644 _haks/poa_dev/nw_s2_divprot.ncs create mode 100644 _haks/poa_dev/nw_s2_divprot.nss create mode 100644 _haks/poa_dev/nw_s3_balordeth.ncs create mode 100644 _haks/poa_dev/nw_s3_balordeth.nss create mode 100644 _module/_removed files/array_example.ncs create mode 100644 _module/_removed files/array_example.nss create mode 100644 _module/_removed files/inc_array.nss rename {_removed files => _module/_removed files}/nw_s1_barbrage.nss (100%) rename {_removed files => _module/_removed files}/nw_s2_bardsong.nss (100%) rename {_removed files => _module/_removed files}/nw_s2_wholeness.nss (100%) rename {_removed files => _module/_removed files}/x1_s2_imbuearrow.nss (100%) delete mode 100644 _removed files/evercliententer.nss delete mode 100644 _removed files/everclientexit.nss delete mode 100644 _removed files/everheartbeat.nss delete mode 100644 _removed files/evermodload.nss delete mode 100644 _removed files/everpcdeath.nss delete mode 100644 _removed files/everpcdying.nss delete mode 100644 _removed files/everpcequip.nss delete mode 100644 _removed files/everpclevelup.nss delete mode 100644 _removed files/everpcrespawn.nss delete mode 100644 _removed files/everpcrest.nss delete mode 100644 _removed files/everpcunequip.nss delete mode 100644 _removed files/everunaquire.nss delete mode 100644 _removed files/hgll_classft_inc.nss delete mode 100644 _removed files/hgll_const_inc.nss delete mode 100644 _removed files/hgll_featreq_inc.nss delete mode 100644 _removed files/hgll_func_inc.nss delete mode 100644 _removed files/hgll_leto_inc.nss delete mode 100644 _removed files/hgll_spells_inc.nss delete mode 100644 _removed files/hgll_struct_stat.nss delete mode 100644 _removed files/nw_s0_acidfoga.nss delete mode 100644 _removed files/nw_s0_acidfogc.nss delete mode 100644 _removed files/nw_s0_bescurse.nss delete mode 100644 _removed files/nw_s0_bladebara.nss delete mode 100644 _removed files/nw_s0_bladebarc.nss delete mode 100644 _removed files/nw_s0_calllghtn.nss delete mode 100644 _removed files/nw_s0_chlightn.nss delete mode 100644 _removed files/nw_s0_conecold.nss delete mode 100644 _removed files/nw_s0_crgrund.nss delete mode 100644 _removed files/nw_s0_crpdooma.nss delete mode 100644 _removed files/nw_s0_crpdoomc.nss delete mode 100644 _removed files/nw_s0_crundead.nss delete mode 100644 _removed files/nw_s0_delfirea.nss delete mode 100644 _removed files/nw_s0_delfirebal.nss delete mode 100644 _removed files/nw_s0_destruc.nss delete mode 100644 _removed files/nw_s0_eleswarm.nss delete mode 100644 _removed files/nw_s0_enedrain.nss delete mode 100644 _removed files/nw_s0_enervat.nss delete mode 100644 _removed files/nw_s0_findtrap.nss delete mode 100644 _removed files/nw_s0_fingdeath.nss delete mode 100644 _removed files/nw_s0_fireball.nss delete mode 100644 _removed files/nw_s0_firestrm.nss delete mode 100644 _removed files/nw_s0_flmarrow.nss delete mode 100644 _removed files/nw_s0_flmstrike.nss delete mode 100644 _removed files/nw_s0_gate.nss delete mode 100644 _removed files/nw_s0_grplanar.nss delete mode 100644 _removed files/nw_s0_hammgods.nss delete mode 100644 _removed files/nw_s0_horrwilt.nss delete mode 100644 _removed files/nw_s0_icestorm.nss delete mode 100644 _removed files/nw_s0_implosion.nss delete mode 100644 _removed files/nw_s0_imprinvis.nss delete mode 100644 _removed files/nw_s0_incclouda.nss delete mode 100644 _removed files/nw_s0_inccloudc.nss delete mode 100644 _removed files/nw_s0_knock.nss delete mode 100644 _removed files/nw_s0_lghtnbolt.nss delete mode 100644 _removed files/nw_s0_lsplanar.nss delete mode 100644 _removed files/nw_s0_metswarm.nss delete mode 100644 _removed files/nw_s0_mordswrd.nss delete mode 100644 _removed files/nw_s0_negray.nss delete mode 100644 _removed files/nw_s0_planar.nss delete mode 100644 _removed files/nw_s0_pwkill.nss delete mode 100644 _removed files/nw_s0_raisdead.nss delete mode 100644 _removed files/nw_s0_regen.nss delete mode 100644 _removed files/nw_s0_resserec.nss delete mode 100644 _removed files/nw_s0_shadconj.nss delete mode 100644 _removed files/nw_s0_shades.nss delete mode 100644 _removed files/nw_s0_slaylive.nss delete mode 100644 _removed files/nw_s0_slow.nss delete mode 100644 _removed files/nw_s0_splresis.nss delete mode 100644 _removed files/nw_s0_stormvenc.nss delete mode 100644 _removed files/nw_s0_summon.nss delete mode 100644 _removed files/nw_s0_summon4.nss delete mode 100644 _removed files/nw_s0_summon5.nss delete mode 100644 _removed files/nw_s0_summon6.nss delete mode 100644 _removed files/nw_s0_summon7.nss delete mode 100644 _removed files/nw_s0_summon8.nss delete mode 100644 _removed files/nw_s0_summon9.nss delete mode 100644 _removed files/nw_s0_summshad.nss delete mode 100644 _removed files/nw_s0_summshad02.nss delete mode 100644 _removed files/nw_s0_timestop.nss delete mode 100644 _removed files/nw_s0_timestop1.nss delete mode 100644 _removed files/nw_s0_timestop3.nss delete mode 100644 _removed files/nw_s0_vamptch.nss delete mode 100644 _removed files/nw_s0_wallfirea.nss delete mode 100644 _removed files/nw_s0_wallfirec.nss delete mode 100644 _removed files/nwnx_admin_t.nss delete mode 100644 _removed files/nwnx_area_t.nss delete mode 100644 _removed files/nwnx_chat_t.nss delete mode 100644 _removed files/nwnx_creature_t.nss delete mode 100644 _removed files/nwnx_dialog_t.nss delete mode 100644 _removed files/nwnx_dialog_t1.nss delete mode 100644 _removed files/nwnx_dialog_t2.nss delete mode 100644 _removed files/nwnx_dialog_t3.nss delete mode 100644 _removed files/nwnx_effect_t.nss delete mode 100644 _removed files/nwnx_feedback_t.nss delete mode 100644 _removed files/nwnx_itemprop_t.nss delete mode 100644 _removed files/nwnx_object_t.nss delete mode 100644 _removed files/nwnx_player_t.nss delete mode 100644 _removed files/nwnx_race_t.nss delete mode 100644 _removed files/nwnx_sql_t.nss delete mode 100644 _removed files/old_thunderclap.nss delete mode 100644 _removed files/vat_stripdmfi.nss delete mode 100644 _removed files/vat_stripflags.nss delete mode 100644 _removed files/vat_stripnondrop.nss delete mode 100644 _removed files/x0_s0_bombard.nss delete mode 100644 _removed files/x0_s0_enten.nss delete mode 100644 _removed files/x0_s0_entrshield.nss delete mode 100644 _removed files/x0_s0_ether.nss delete mode 100644 _removed files/x0_s0_firebrand.nss delete mode 100644 _removed files/x0_s0_fleshsto.nss delete mode 100644 _removed files/x0_s0_missstorm1.nss delete mode 100644 _removed files/x0_s0_missstorm2.nss delete mode 100644 _removed files/x0_s0_truestrike.nss delete mode 100644 _removed files/x0_s0_woundwhis.nss delete mode 100644 _removed files/x2_m1_mindblast.nss delete mode 100644 _removed files/x2_p_craftskills.dlg delete mode 100644 _removed files/x2_s0_balllghtng.nss delete mode 100644 _removed files/x2_s0_blckblde.nss delete mode 100644 _removed files/x2_s0_blckstff.nss delete mode 100644 _removed files/x2_s0_combust.nss delete mode 100644 _removed files/x2_s0_crshadow.nss delete mode 100644 _removed files/x2_s0_dtharm.nss delete mode 100644 _removed files/x2_s0_elecloop.nss delete mode 100644 _removed files/x2_s0_glphwardx.nss delete mode 100644 _removed files/x2_s0_grmagweap.nss delete mode 100644 _removed files/x2_s0_horiboom.nss delete mode 100644 _removed files/x2_s0_monregen.nss delete mode 100644 _removed files/x2_s0_scntsphere.nss delete mode 100644 _removed files/x2_s0_stneholda.nss delete mode 100644 _removed files/x2_s0_stneholdc.nss delete mode 100644 _removed files/x2_s0_undeath.nss delete mode 100644 _removed files/x2_s1_chaosspit.nss delete mode 100644 _removed files/x2_s1_petrgaze.nss delete mode 100644 _removed files/x2_s1_wyrmbreath.nss delete mode 100644 _removed files/x2_s2_blindspd.nss delete mode 100644 _removed files/x2_s2_cursesong.nss delete mode 100644 _removed files/x2_s2_dragknght.nss delete mode 100644 _removed files/x2_s2_dthmsttch.nss delete mode 100644 _removed files/x2_s2_gwburn.nss delete mode 100644 _removed files/x2_s2_gwildshp.nss delete mode 100644 _removed files/x2_s2_hellball.nss delete mode 100644 _removed files/x2_s2_mghtyrage.nss delete mode 100644 _removed files/x2_s2_mumdust.nss delete mode 100644 _removed files/x2_s2_ruin.nss delete mode 100644 _removed files/x2_s2_sumundead.nss delete mode 100644 _removed files/x2_s3_demitouch.nss diff --git a/35expandedabilities/PRC_vampdrain.ncs b/35expandedabilities/PRC_vampdrain.ncs new file mode 100644 index 0000000000000000000000000000000000000000..2a8ba7bb6c80cb9ce2dcd06ebd93d52c7f88b29d GIT binary patch literal 121960 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 SM{E<=AE?)0;>Ky14E-1FG{`~# literal 0 HcmV?d00001 diff --git a/35expandedabilities/PRC_vampdrain.nss b/35expandedabilities/PRC_vampdrain.nss new file mode 100644 index 00000000..23eab8e7 --- /dev/null +++ b/35expandedabilities/PRC_vampdrain.nss @@ -0,0 +1,151 @@ +//:://///////////////////////////////////////////// +//:: Vampiric Drain +//:: PRC_vampdrain.nss +//::////////////////////////////////////////////// +/* + Drain living, caster heals + Drain dead, caster dies +*/ +//::////////////////////////////////////////////// +//:: Created By: Zedium +//:: Created On: April 5, 2004 +//::////////////////////////////////////////////// +#include "prc_inc_spells" +#include "prc_add_spell_dc" + +//------------------------------------------------------------------------------ +// GZ: gets rids of temporary hit points so that they will not stack +//------------------------------------------------------------------------------ +void PRCRemoveTempHitPoints() +{ + effect eProtection; + int nCnt = 0; + + eProtection = GetFirstEffect(OBJECT_SELF); + while (GetIsEffectValid(eProtection)) + { + if(GetEffectType(eProtection) == EFFECT_TYPE_TEMPORARY_HITPOINTS) + RemoveEffect(OBJECT_SELF, eProtection); + eProtection = GetNextEffect(OBJECT_SELF); + } +} + +void main() +{ +DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); +SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_NECROMANCY); + /* + Spellcast Hook Code + Added 2003-06-23 by GeorgZ + If you want to make changes to all spells, + check x2_inc_spellhook.nss to find out more + + */ + + if (!X2PreSpellCastCode()) + { + // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell + return; + } + + // End of Spell Cast Hook + + //Declare major variables + object oTarget = PRCGetSpellTargetObject(); + int nMetaMagic = PRCGetMetaMagicFeat(); + + int nCasterLevel = PRCGetCasterLevel(OBJECT_SELF); + int nDDice = nCasterLevel /4; + if ((nDDice) == 0) + { + nDDice = 1; + } + //Damage Limit + else if (nDDice>20) + { + nDDice = 20; + } + + int nDamage = d6(nDDice); + //-------------------------------------------------------------------------- + //Enter Metamagic conditions + //-------------------------------------------------------------------------- + nDamage = PRCMaximizeOrEmpower(6,nDDice,nMetaMagic); + int nDuration = nCasterLevel/3; + + if ((nMetaMagic & METAMAGIC_EXTEND)) + { + nDuration *= 2; + } + //nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF); + //-------------------------------------------------------------------------- + //Limit damage to max hp + 10 + //-------------------------------------------------------------------------- + int nMax = GetCurrentHitPoints(oTarget) + 10; + if(nMax < nDamage) + { + nDamage = nMax; + } + + effect eHeal = EffectTemporaryHitpoints(nDamage/2); + effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); + effect eLink = EffectLinkEffects(eHeal, eDur); + effect eHurt = PRCEffectDamage(oTarget, nDamage/2); + effect eBad =EffectTemporaryHitpoints(nDamage); + effect eNegLink = EffectLinkEffects(eBad, eDur); + effect eDamage = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_NEGATIVE); + effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); + effect eVisHeal = EffectVisualEffect(VFX_IMP_HEALING_M); + effect eImpact = EffectVisualEffect(VFX_FNF_LOS_EVIL_10); + float fDelay; + + nCasterLevel +=SPGetPenetr(); + + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, PRCGetSpellTargetLocation()); + //Get first target in shape + oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, PRCGetSpellTargetLocation()); + while (GetIsObjectValid(oTarget)) + { + int iTombTainted = GetHasFeat(FEAT_TOMB_TAINTED_SOUL, oTarget) && GetAlignmentGoodEvil(oTarget) != ALIGNMENT_GOOD; + //Check if the target is undead + if( MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD || iTombTainted || GetLocalInt(oTarget, "AcererakHealing")) + { + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eHurt, OBJECT_SELF); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisHeal, oTarget); + PRCRemoveTempHitPoints(); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(1)); + } + //Check if the target is hostile, and not an undead or construct + //or protected by a spell + if(!GetIsReactionTypeFriendly(oTarget) && + MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD && + !iTombTainted && + MyPRCGetRacialType(oTarget) != RACIAL_TYPE_CONSTRUCT && + !GetHasSpellEffect(SPELL_NEGATIVE_ENERGY_PROTECTION, oTarget)) + { + if(PRCDoResistSpell(OBJECT_SELF, oTarget,nCasterLevel) == 0) + { + if(/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, (PRCGetSaveDC(oTarget,OBJECT_SELF)), SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay)) + { + nDamage = nDamage/2; + + if (GetHasMettle(oTarget, SAVING_THROW_WILL)) // Ignores partial effects + { + nDamage = 0; + } + } + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget); + PRCBonusDamage(oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisHeal, OBJECT_SELF); + PRCRemoveTempHitPoints(); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, HoursToSeconds(1)); + } + } + //Get next target in spell area + oTarget = GetNextInPersistentObject(); + } + DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); + // Getting rid of the integer used to hold the spells spell school + } diff --git a/35expandedabilities/inv_adeptbreath.ncs b/35expandedabilities/inv_adeptbreath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c6f8192b4ceb949b839b46a7157cd67a7e196cd5 GIT binary patch literal 73467 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 T;yt&;pu-x~XL;jt+V}n+By!u9 literal 0 HcmV?d00001 diff --git a/35expandedabilities/inv_adeptbreath.nss b/35expandedabilities/inv_adeptbreath.nss new file mode 100644 index 00000000..6b01b71b --- /dev/null +++ b/35expandedabilities/inv_adeptbreath.nss @@ -0,0 +1,183 @@ +//:://///////////////////////////////////////////// +//:: Dragonfire Adept Breath Effects +//:: inv_adeptbreath.nss +//:://///////////////////////////////////////////// +/* + Handles the breath effects for Dragonfire Adepts +*/ +//::////////////////////////////////////////////// +//:: Created By: Fox +//:: Created On: Jan 25, 2007 +//::////////////////////////////////////////////// + +#include "prc_inc_spells" +#include "prc_inc_breath" +#include "inv_inc_invfunc" +#include "nivel_ext" +void main() +{ + object oPC = OBJECT_SELF; + location lTarget = PRCGetSpellTargetLocation(); + int nClass = GetLevelByClass(CLASS_TYPE_DRAGONFIRE_ADEPT, oPC); + //PrC arcane spellcasting levels grant damage dice and DC + nClass += GetInvocationPRCLevels(oPC); + int nDice = (nClass + 1) / 2; + int nSaveDCBonus = nClass / 2; + float fRange = nClass < 10 ? 30.0 : 60.0; + int nAlignment = GetAlignmentGoodEvil(oPC); + int nSpellID = GetSpellId(); + int nLastEffectUsed = GetLocalInt(oPC, "LastBreathEffect"); + struct breath BaseBreath; + + if(GetHitDice(oPC)>=80) + { + nDice = (nClass + 1) + (ObterNivelJogador(oPC)-80) / 2; + nSaveDCBonus = nClass + (ObterNivelJogador(oPC)-80) / 2; + fRange = nClass < 20 ? 60.0 : 90.0; + } + + if(DEBUG) DoDebug("inv_adeptbreath: range: " + FloatToString(fRange)); + + if(GetLocalInt(oPC, "AdeptTiamatLock")) + { + SendMessageToPC(oPC, "You cannot use your breath weapon again until next round"); + return; + } + + if(nLastEffectUsed == nSpellID + && nSpellID != BREATH_SHAPED_BREATH + && nSpellID != BREATH_CLOUD_BREATH + && nSpellID != BREATH_ENDURING_BREATH) + { + SendMessageToPC(oPC, "You cannot use the same breath effect two rounds in a row."); + return; + } + + switch(nSpellID) + { + case BREATH_FIRE_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_FIRE, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_FIRE_LINE: + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_FIRE, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_FROST_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_COLD, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_ELECTRIC_LINE: + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_ELECTRICAL, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_SICKENING_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, -1, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_SICKENING, 0, SAVING_THROW_FORT); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_ACID_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_ACID, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_ACID_LINE: + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_ACID, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_SHAPED_BREATH: + if(GetLocalInt(oPC, "AdeptShapedBreath")) + { + DeleteLocalInt(oPC, "AdeptShapedBreath"); + FloatingTextStringOnCreature("*Shaped Breath Removed*", oPC, FALSE); + } + else + { + SetLocalInt(oPC, "AdeptShapedBreath", TRUE); + FloatingTextStringOnCreature("*Shaped Breath Applied*", oPC, FALSE); + } break; + + case BREATH_SLOW_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, -1, 6, 2, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_SLOW, 0, SAVING_THROW_FORT); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_WEAKENING_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, -1, 6, 6, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_WEAKENING, 0, SAVING_THROW_FORT); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_CLOUD_BREATH: + if(GetLocalInt(oPC, "AdeptCloudBreath")) + { + DeleteLocalInt(oPC, "AdeptCloudBreath"); + FloatingTextStringOnCreature("*Cloud Breath Removed*", oPC, FALSE); + } + else + { + SetLocalInt(oPC, "AdeptCloudBreath", TRUE); + FloatingTextStringOnCreature("*Cloud Breath Applied*", oPC, FALSE); + } break; + + case BREATH_ENDURING_BREATH: + if(GetLocalInt(oPC, "AdeptEnduringBreath")) + { + DeleteLocalInt(oPC, "AdeptEnduringBreath"); + FloatingTextStringOnCreature("*Enduring Breath Removed*", oPC, FALSE); + } + else + { + SetLocalInt(oPC, "AdeptEnduringBreath", TRUE); + FloatingTextStringOnCreature("*Enduring Breath Applied*", oPC, FALSE); + } break; + + case BREATH_SLEEP_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, -1, 6, 1, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_SLEEP, 0, SAVING_THROW_WILL); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_THUNDER_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_SONIC, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0, SAVING_THROW_FORT); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_BAHAMUT_LINE: + //evil characters can't use this breath + if(nAlignment == ALIGNMENT_EVIL) return; + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_MAGICAL, 6, nDice * 2, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); + if(nAlignment == ALIGNMENT_GOOD) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nClass * 2, DAMAGE_TYPE_POSITIVE, DAMAGE_POWER_ENERGY), oPC); + if(nAlignment == ALIGNMENT_NEUTRAL) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nClass * 4, DAMAGE_TYPE_POSITIVE, DAMAGE_POWER_ENERGY), oPC); + break; + + case BREATH_FORCE_LINE: + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_MAGICAL, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_PARALYZE_CONE: + BaseBreath = CreateBreath(oPC, FALSE, fRange, -1, 6, 1, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_PARALYZE, 0, SAVING_THROW_FORT); + ApplyBreath(BaseBreath, lTarget); break; + + case BREATH_FIVEFOLD_TIAMAT: + //good characters can't use this breath + if(nAlignment == ALIGNMENT_GOOD) return; + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_ACID, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); + BaseBreath = CreateBreath(oPC, TRUE, fRange * 2, DAMAGE_TYPE_ELECTRICAL, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_ACID, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_COLD, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); + BaseBreath = CreateBreath(oPC, FALSE, fRange, DAMAGE_TYPE_FIRE, 6, nDice, ABILITY_CONSTITUTION, nSaveDCBonus, BREATH_NORMAL, 0); + ApplyBreath(BaseBreath, lTarget); + if(nAlignment == ALIGNMENT_EVIL) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nClass * 2, DAMAGE_TYPE_POSITIVE, DAMAGE_POWER_ENERGY), oPC); + if(nAlignment == ALIGNMENT_NEUTRAL) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nClass * 4, DAMAGE_TYPE_POSITIVE, DAMAGE_POWER_ENERGY), oPC); + SetLocalInt(oPC, "AdeptTiamatLock", TRUE); + DelayCommand(6.0, DeleteLocalInt(oPC, "AdeptTiamatLock")); + break; + } + + //Mark the breath effect as used. + if(nSpellID != BREATH_SHAPED_BREATH + && nSpellID != BREATH_CLOUD_BREATH + && nSpellID != BREATH_ENDURING_BREATH) + { + SetLocalInt(oPC, "LastBreathEffect", nSpellID); + DelayCommand(6.0, DeleteLocalInt(oPC, "LastBreathEffect")); + } +} \ No newline at end of file diff --git a/35expandedabilities/inv_drgnfireadpt.ncs b/35expandedabilities/inv_drgnfireadpt.ncs new file mode 100644 index 0000000000000000000000000000000000000000..0125809446e524d18fefde5587810893ab1c512c GIT binary patch literal 14098 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 lGs`UI@rlvbtD}w;05yX}f(*Bca{|70=)>Hrh literal 0 HcmV?d00001 diff --git a/35expandedabilities/inv_drgnfireadpt.nss b/35expandedabilities/inv_drgnfireadpt.nss new file mode 100644 index 00000000..55b57da7 --- /dev/null +++ b/35expandedabilities/inv_drgnfireadpt.nss @@ -0,0 +1,41 @@ +//:://///////////////////////////////////////////// +//:: Dragonfire Adept +//:: inv_drgnfireadpt.nss +//:://///////////////////////////////////////////// +/* + Handles the passive bonuses for Dragonfire Adepts +*/ +//::////////////////////////////////////////////// +//:: Created By: Fox +//:: Created On: Jan 24, 2007 +//::////////////////////////////////////////////// + +#include "prc_class_const" +#include "inc_item_props" +#include "inv_inc_invfunc" +void main() +{ + int nClass = GetLevelByClass(CLASS_TYPE_DRAGONFIRE_ADEPT); + nClass += GetInvocationPRCLevels(OBJECT_SELF); + int nScales = (nClass + 8) / 5; + if(nScales > 1) + SetCompositeBonus(GetPCSkin(OBJECT_SELF), "DFA_AC", nScales, ITEM_PROPERTY_AC_BONUS); + + //Reduction + if(nClass > 5) + { + effect eReduction; + if(nClass > 95) eReduction = EffectDamageReduction(25, DAMAGE_POWER_PLUS_TWENTY); + else if(nClass > 85) eReduction = EffectDamageReduction(22, DAMAGE_POWER_PLUS_TWENTY); + else if(nClass > 75) eReduction = EffectDamageReduction(20, DAMAGE_POWER_PLUS_FIFTEEN); + else if(nClass > 65) eReduction = EffectDamageReduction(17, DAMAGE_POWER_PLUS_FIFTEEN); + else if(nClass > 55) eReduction = EffectDamageReduction(15, DAMAGE_POWER_PLUS_TEN); + else if(nClass > 45) eReduction = EffectDamageReduction(12, DAMAGE_POWER_PLUS_TEN); + else if(nClass > 35) eReduction = EffectDamageReduction(10, DAMAGE_POWER_PLUS_FIVE); + else if(nClass > 25) eReduction = EffectDamageReduction(7, DAMAGE_POWER_PLUS_FIVE); + else if(nClass > 15) eReduction = EffectDamageReduction(5, DAMAGE_POWER_PLUS_ONE); + else eReduction = EffectDamageReduction(2, DAMAGE_POWER_PLUS_ONE); + + ApplyEffectToObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect(eReduction), OBJECT_SELF); + } +} \ No newline at end of file diff --git a/35expandedabilities/nivel_ext.nss b/35expandedabilities/nivel_ext.nss new file mode 100644 index 00000000..87a32719 --- /dev/null +++ b/35expandedabilities/nivel_ext.nss @@ -0,0 +1,1180 @@ +/****************************************************************************** + * Script de Extensao para Calculo de Niveis (de Jogador e Itens) * + * Versăo: 2.0 * + ****************************************************************************** + + ******************************************************************************/ + +//****************************************************************************** +// Declaracoes de Constantes Globais +//****************************************************************************** + +// Nivel maximo permitido no servidor. Nao e recomendado valores superiores a 120 +const int NIVEL_MAXIMO_PERMITIDO = 1000; //1000 + +//****************************************************************************** +// Assinaturas de Procedimentos, Funcoes e Metodos +//****************************************************************************** + +// Retorna quanto de experiencia e necessaria para se ter determinado nivel. +int ObterExperienciaNivel(int iNivel); + +// Retorna quanto de nivel se tem com determinada esperiencia. +int ObterNivelExperiencia(int iExperiencia); + +// Retorna o nivel real de determinado jogador a partir de sua experiencia. +int ObterNivelJogador(object oJogador); + +// Retorna o nivel de determinada criatura, obtida a partir das variaveis do jogo. +int ObterNivelCriatura(object oCriatura); + +// Converte iPreco do item em nivel necessario para utiliza-lo. +int ConverterPrecoNivelItem(int iPreco); + +// Retorna o nivel necessario para utilizar determinado item. +int ObterNivelItem(object oItem); + +// Retorna a experiencia necessaria para utilizar determinado item. +int ObterExperienciaItem(object oItem); + + +//****************************************************************************** +// Implementacao de Procedimentos, Funcoes e Metodos +//****************************************************************************** + +//****************************************************************************** +int ObterExperienciaNivel(int iNivel) +{ + int iContador; + int iXP = 0; + + for (iContador = 1;iContador <= iNivel;iContador++) + { + iXP += ((iContador - 1) * 1000); + } + + return iXP; +} +//****************************************************************************** + +//****************************************************************************** +int ObterNivelExperiencia(int iExperiencia) +{ + int iXPAtual = iExperiencia; + int iContadorNivel = 1; + int iXPProximoNivel = 1000; + + while (iXPAtual >= iXPProximoNivel) + { + iContadorNivel++; + iXPAtual = iXPAtual - iXPProximoNivel; + iXPProximoNivel = iXPProximoNivel + 1000; + } + + return iContadorNivel; +} +//****************************************************************************** + +//****************************************************************************** +int ObterNivelJogador(object oJogador) +{ + return ObterNivelExperiencia(GetXP(oJogador)); +} +//****************************************************************************** + +//****************************************************************************** +int ObterNivelCriatura(object oCriatura) +{ + return + ( + GetLevelByPosition(1,oCriatura) + + GetLevelByPosition(2,oCriatura) + + GetLevelByPosition(3,oCriatura) + + GetLevelByPosition(4,oCriatura) + + GetLevelByPosition(5,oCriatura) + + GetLevelByPosition(6,oCriatura) + + GetLevelByPosition(7,oCriatura) + + GetLevelByPosition(8,oCriatura) + ); +} +//atualizada abaixo: + /* +int ObterNivelCriatura(object oCriatura) +{ + int iNivel = FloatToInt( GetChallengeRating( oCriatura ) + 0.5 ); + if ( iNivel < 1 ) { iNivel = 1; } + return iNivel; +} */ +//****************************************************************************** + +//****************************************************************************** +int ConverterPrecoNivelItem(int iPreco) +{ + if (iPreco <= 1000) { return 1; } + else if (iPreco <= 3400) { return 2; } + else if (iPreco <= 7400) { return 3; } + else if (iPreco <= 13000) { return 4; } + else if (iPreco <= 20200) { return 5; } + else if (iPreco <= 29000) { return 6; } + else if (iPreco <= 39400) { return 7; } + else if (iPreco <= 51400) { return 8; } + else if (iPreco <= 65000) { return 9; } + else if (iPreco <= 80200) { return 10; } + else if (iPreco <= 97000) { return 11; } + else if (iPreco <= 115400) { return 12; } + else if (iPreco <= 135400) { return 13; } + else if (iPreco <= 157000) { return 14; } + else if (iPreco <= 180200) { return 15; } + else if (iPreco <= 205000) { return 16; } + else if (iPreco <= 231400) { return 17; } + else if (iPreco <= 259400) { return 18; } + else if (iPreco <= 289000) { return 19; } + else if (iPreco <= 320200) { return 20; } + else if (iPreco <= 353000) { return 21; } + else if (iPreco <= 387400) { return 22; } + else if (iPreco <= 423400) { return 23; } + else if (iPreco <= 461000) { return 24; } + else if (iPreco <= 500200) { return 25; } + else if (iPreco <= 541000) { return 26; } + else if (iPreco <= 583400) { return 27; } + else if (iPreco <= 627400) { return 28; } + else if (iPreco <= 673000) { return 29; } + else if (iPreco <= 720200) { return 30; } + else if (iPreco <= 769000) { return 31; } + else if (iPreco <= 819400) { return 32; } + else if (iPreco <= 871400) { return 33; } + else if (iPreco <= 925000) { return 34; } + else if (iPreco <= 980200) { return 35; } + else if (iPreco <= 1037000) { return 36; } + else if (iPreco <= 1095400) { return 37; } + else if (iPreco <= 1155400) { return 38; } + else if (iPreco <= 1217000) { return 39; } + else if (iPreco <= 1280200) { return 40; } + else if (iPreco <= 1345000) { return 41; } + else if (iPreco <= 1411400) { return 42; } + else if (iPreco <= 1479400) { return 43; } + else if (iPreco <= 1549000) { return 44; } + else if (iPreco <= 1620200) { return 45; } + else if (iPreco <= 1693000) { return 46; } + else if (iPreco <= 1767400) { return 47; } + else if (iPreco <= 1843400) { return 48; } + else if (iPreco <= 1921000) { return 49; } + else if (iPreco <= 2000200) { return 50; } + else if (iPreco <= 2081000) { return 51; } + else if (iPreco <= 2163400) { return 52; } + else if (iPreco <= 2247400) { return 53; } + else if (iPreco <= 2333000) { return 54; } + else if (iPreco <= 2420200) { return 55; } + else if (iPreco <= 2509000) { return 56; } + else if (iPreco <= 2599400) { return 57; } + else if (iPreco <= 2691400) { return 58; } + else if (iPreco <= 2785000) { return 59; } + else if (iPreco <= 2880200) { return 60; } + else if (iPreco <= 2977000) { return 61; } + else if (iPreco <= 3075400) { return 62; } + else if (iPreco <= 3175400) { return 63; } + else if (iPreco <= 3277000) { return 64; } + else if (iPreco <= 3380200) { return 65; } + else if (iPreco <= 3485000) { return 66; } + else if (iPreco <= 3591400) { return 67; } + else if (iPreco <= 3699400) { return 68; } + else if (iPreco <= 3809000) { return 69; } + else if (iPreco <= 3920200) { return 70; } + else if (iPreco <= 4033000) { return 71; } + else if (iPreco <= 4147400) { return 72; } + else if (iPreco <= 4263400) { return 73; } + else if (iPreco <= 4381000) { return 74; } + else if (iPreco <= 4500200) { return 75; } + else if (iPreco <= 4621000) { return 76; } + else if (iPreco <= 4743400) { return 77; } + else if (iPreco <= 4867400) { return 78; } + else if (iPreco <= 4993000) { return 79; } + else if (iPreco <= 5120200) { return 80; } + else if (iPreco <= 5249000) { return 81; } + else if (iPreco <= 5379400) { return 82; } + else if (iPreco <= 5511400) { return 83; } + else if (iPreco <= 5645000) { return 84; } + else if (iPreco <= 5780200) { return 85; } + else if (iPreco <= 5917000) { return 86; } + else if (iPreco <= 6055400) { return 87; } + else if (iPreco <= 6195400) { return 88; } + else if (iPreco <= 6337000) { return 89; } + else if (iPreco <= 6480200) { return 90; } + else if (iPreco <= 6625000) { return 91; } + else if (iPreco <= 6771400) { return 92; } + else if (iPreco <= 6919400) { return 93; } + else if (iPreco <= 7069000) { return 94; } + else if (iPreco <= 7220200) { return 95; } + else if (iPreco <= 7373000) { return 96; } + else if (iPreco <= 7527400) { return 97; } + else if (iPreco <= 7683400) { return 98; } + else if (iPreco <= 7841000) { return 99; } + else if (iPreco <= 8000200) { return 100; } + else if (iPreco <= 8161000) { return 101; } + else if (iPreco <= 8323400) { return 102; } + else if (iPreco <= 8487400) { return 103; } + else if (iPreco <= 8653000) { return 104; } + else if (iPreco <= 8820200) { return 105; } + else if (iPreco <= 8989000) { return 106; } + else if (iPreco <= 9159400) { return 107; } + else if (iPreco <= 9331400) { return 108; } + else if (iPreco <= 9505000) { return 109; } + else if (iPreco <= 9680200) { return 110; } + else if (iPreco <= 9857000) { return 111; } + else if (iPreco <= 10035400) { return 112; } + else if (iPreco <= 10215400) { return 113; } + else if (iPreco <= 10397000) { return 114; } + else if (iPreco <= 10580200) { return 115; } + else if (iPreco <= 10765000) { return 116; } + else if (iPreco <= 10951400) { return 117; } + else if (iPreco <= 11139400) { return 118; } + else if (iPreco <= 11329000) { return 119; } + else if (iPreco <= 11520200) { return 120; } + else if (iPreco <= 11713000) { return 121; } + else if (iPreco <= 11907400) { return 122; } + else if (iPreco <= 12103400) { return 123; } + else if (iPreco <= 12301000) { return 124; } + else if (iPreco <= 12500200) { return 125; } + else if (iPreco <= 12701000) { return 126; } + else if (iPreco <= 12903400) { return 127; } + else if (iPreco <= 13107400) { return 128; } + else if (iPreco <= 13313000) { return 129; } + else if (iPreco <= 13520200) { return 130; } + else if (iPreco <= 13729000) { return 131; } + else if (iPreco <= 13939400) { return 132; } + else if (iPreco <= 14151400) { return 133; } + else if (iPreco <= 14365000) { return 134; } + else if (iPreco <= 14580200) { return 135; } + else if (iPreco <= 14797000) { return 136; } + else if (iPreco <= 15015400) { return 137; } + else if (iPreco <= 15235400) { return 138; } + else if (iPreco <= 15457000) { return 139; } + else if (iPreco <= 15680200) { return 140; } + else if (iPreco <= 15905000) { return 141; } + else if (iPreco <= 16131400) { return 142; } + else if (iPreco <= 16359400) { return 143; } + else if (iPreco <= 16589000) { return 144; } + else if (iPreco <= 16820200) { return 145; } + else if (iPreco <= 17053000) { return 146; } + else if (iPreco <= 17287400) { return 147; } + else if (iPreco <= 17523400) { return 148; } + else if (iPreco <= 17761000) { return 149; } + else if (iPreco <= 18000200) { return 150; } + else if (iPreco <= 18241000) { return 151; } + else if (iPreco <= 18483400) { return 152; } + else if (iPreco <= 18727400) { return 153; } + else if (iPreco <= 18973000) { return 154; } + else if (iPreco <= 19220200) { return 155; } + else if (iPreco <= 19469000) { return 156; } + else if (iPreco <= 19719400) { return 157; } + else if (iPreco <= 19971400) { return 158; } + else if (iPreco <= 20225000) { return 159; } + else if (iPreco <= 20480200) { return 160; } + else if (iPreco <= 20737000) { return 161; } + else if (iPreco <= 20995400) { return 162; } + else if (iPreco <= 21255400) { return 163; } + else if (iPreco <= 21517000) { return 164; } + else if (iPreco <= 21780200) { return 165; } + else if (iPreco <= 22045000) { return 166; } + else if (iPreco <= 22311400) { return 167; } + else if (iPreco <= 22579400) { return 168; } + else if (iPreco <= 22849000) { return 169; } + else if (iPreco <= 23120200) { return 170; } + else if (iPreco <= 23393000) { return 171; } + else if (iPreco <= 23667400) { return 172; } + else if (iPreco <= 23943400) { return 173; } + else if (iPreco <= 24221000) { return 174; } + else if (iPreco <= 24500200) { return 175; } + else if (iPreco <= 24781000) { return 176; } + else if (iPreco <= 25063400) { return 177; } + else if (iPreco <= 25347400) { return 178; } + else if (iPreco <= 25633000) { return 179; } + else if (iPreco <= 25920200) { return 180; } + else if (iPreco <= 26209000) { return 181; } + else if (iPreco <= 26499400) { return 182; } + else if (iPreco <= 26791400) { return 183; } + else if (iPreco <= 27085000) { return 184; } + else if (iPreco <= 27380200) { return 185; } + else if (iPreco <= 27677000) { return 186; } + else if (iPreco <= 27975400) { return 187; } + else if (iPreco <= 28275400) { return 188; } + else if (iPreco <= 28577000) { return 189; } + else if (iPreco <= 28880200) { return 190; } + else if (iPreco <= 29185000) { return 191; } + else if (iPreco <= 29491400) { return 192; } + else if (iPreco <= 29799400) { return 193; } + else if (iPreco <= 30109000) { return 194; } + else if (iPreco <= 30420200) { return 195; } + else if (iPreco <= 30733000) { return 196; } + else if (iPreco <= 31047400) { return 197; } + else if (iPreco <= 31363400) { return 198; } + else if (iPreco <= 31681000) { return 199; } + else if (iPreco <= 32000200) { return 200; } + else if (iPreco <= 32321000) { return 201; } + else if (iPreco <= 32643400) { return 202; } + else if (iPreco <= 32967400) { return 203; } + else if (iPreco <= 33293000) { return 204; } + else if (iPreco <= 33620200) { return 205; } + else if (iPreco <= 33949000) { return 206; } + else if (iPreco <= 34279400) { return 207; } + else if (iPreco <= 34611400) { return 208; } + else if (iPreco <= 34945000) { return 209; } + else if (iPreco <= 35280200) { return 210; } + else if (iPreco <= 35617000) { return 211; } + else if (iPreco <= 35955400) { return 212; } + else if (iPreco <= 36295400) { return 213; } + else if (iPreco <= 36637000) { return 214; } + else if (iPreco <= 36980200) { return 215; } + else if (iPreco <= 37325000) { return 216; } + else if (iPreco <= 37671400) { return 217; } + else if (iPreco <= 38019400) { return 218; } + else if (iPreco <= 38369000) { return 219; } + else if (iPreco <= 38720200) { return 220; } + else if (iPreco <= 39073000) { return 221; } + else if (iPreco <= 39427400) { return 222; } + else if (iPreco <= 39783400) { return 223; } + else if (iPreco <= 40141000) { return 224; } + else if (iPreco <= 40500200) { return 225; } + else if (iPreco <= 40861000) { return 226; } + else if (iPreco <= 41223400) { return 227; } + else if (iPreco <= 41587400) { return 228; } + else if (iPreco <= 41953000) { return 229; } + else if (iPreco <= 42320200) { return 230; } + else if (iPreco <= 42689000) { return 231; } + else if (iPreco <= 43059400) { return 232; } + else if (iPreco <= 43431400) { return 233; } + else if (iPreco <= 43805000) { return 234; } + else if (iPreco <= 44180200) { return 235; } + else if (iPreco <= 44557000) { return 236; } + else if (iPreco <= 44935400) { return 237; } + else if (iPreco <= 45315400) { return 238; } + else if (iPreco <= 45697000) { return 239; } + else if (iPreco <= 46080200) { return 240; } + else if (iPreco <= 46465000) { return 241; } + else if (iPreco <= 46851400) { return 242; } + else if (iPreco <= 47239400) { return 243; } + else if (iPreco <= 47629000) { return 244; } + else if (iPreco <= 48020200) { return 245; } + else if (iPreco <= 48413000) { return 246; } + else if (iPreco <= 48807400) { return 247; } + else if (iPreco <= 49203400) { return 248; } + else if (iPreco <= 49601000) { return 249; } + else if (iPreco <= 50000200) { return 250; } + else if (iPreco <= 50401000) { return 251; } + else if (iPreco <= 50803400) { return 252; } + else if (iPreco <= 51207400) { return 253; } + else if (iPreco <= 51613000) { return 254; } + else if (iPreco <= 52020200) { return 255; } + else if (iPreco <= 52429000) { return 256; } + else if (iPreco <= 52839400) { return 257; } + else if (iPreco <= 53251400) { return 258; } + else if (iPreco <= 53665000) { return 259; } + else if (iPreco <= 54080200) { return 260; } + else if (iPreco <= 54497000) { return 261; } + else if (iPreco <= 54915400) { return 262; } + else if (iPreco <= 55335400) { return 263; } + else if (iPreco <= 55757000) { return 264; } + else if (iPreco <= 56180200) { return 265; } + else if (iPreco <= 56605000) { return 266; } + else if (iPreco <= 57031400) { return 267; } + else if (iPreco <= 57459400) { return 268; } + else if (iPreco <= 57889000) { return 269; } + else if (iPreco <= 58320200) { return 270; } + else if (iPreco <= 58753000) { return 271; } + else if (iPreco <= 59187400) { return 272; } + else if (iPreco <= 59623400) { return 273; } + else if (iPreco <= 60061000) { return 274; } + else if (iPreco <= 60500200) { return 275; } + else if (iPreco <= 60941000) { return 276; } + else if (iPreco <= 61383400) { return 277; } + else if (iPreco <= 61827400) { return 278; } + else if (iPreco <= 62273000) { return 279; } + else if (iPreco <= 62720200) { return 280; } + else if (iPreco <= 63169000) { return 281; } + else if (iPreco <= 63619400) { return 282; } + else if (iPreco <= 64071400) { return 283; } + else if (iPreco <= 64525000) { return 284; } + else if (iPreco <= 64980200) { return 285; } + else if (iPreco <= 65437000) { return 286; } + else if (iPreco <= 65895400) { return 287; } + else if (iPreco <= 66355400) { return 288; } + else if (iPreco <= 66817000) { return 289; } + else if (iPreco <= 67280200) { return 290; } + else if (iPreco <= 67745000) { return 291; } + else if (iPreco <= 68211400) { return 292; } + else if (iPreco <= 68679400) { return 293; } + else if (iPreco <= 69149000) { return 294; } + else if (iPreco <= 69620200) { return 295; } + else if (iPreco <= 70093000) { return 296; } + else if (iPreco <= 70567400) { return 297; } + else if (iPreco <= 71043400) { return 298; } + else if (iPreco <= 71521000) { return 299; } + else if (iPreco <= 72000200) { return 300; } + else if (iPreco <= 72481000) { return 301; } + else if (iPreco <= 72963400) { return 302; } + else if (iPreco <= 73447400) { return 303; } + else if (iPreco <= 73933000) { return 304; } + else if (iPreco <= 74420200) { return 305; } + else if (iPreco <= 74909000) { return 306; } + else if (iPreco <= 75399400) { return 307; } + else if (iPreco <= 75891400) { return 308; } + else if (iPreco <= 76385000) { return 309; } + else if (iPreco <= 76880200) { return 310; } + else if (iPreco <= 77377000) { return 311; } + else if (iPreco <= 77875400) { return 312; } + else if (iPreco <= 78375400) { return 313; } + else if (iPreco <= 78877000) { return 314; } + else if (iPreco <= 79380200) { return 315; } + else if (iPreco <= 79885000) { return 316; } + else if (iPreco <= 80391400) { return 317; } + else if (iPreco <= 80899400) { return 318; } + else if (iPreco <= 81409000) { return 319; } + else if (iPreco <= 81920200) { return 320; } + else if (iPreco <= 82433000) { return 321; } + else if (iPreco <= 82947400) { return 322; } + else if (iPreco <= 83463400) { return 323; } + else if (iPreco <= 83981000) { return 324; } + else if (iPreco <= 84500200) { return 325; } + else if (iPreco <= 85021000) { return 326; } + else if (iPreco <= 85543400) { return 327; } + else if (iPreco <= 86067400) { return 328; } + else if (iPreco <= 86593000) { return 329; } + else if (iPreco <= 87120200) { return 330; } + else if (iPreco <= 87649000) { return 331; } + else if (iPreco <= 88179400) { return 332; } + else if (iPreco <= 88711400) { return 333; } + else if (iPreco <= 89245000) { return 334; } + else if (iPreco <= 89780200) { return 335; } + else if (iPreco <= 90317000) { return 336; } + else if (iPreco <= 90855400) { return 337; } + else if (iPreco <= 91395400) { return 338; } + else if (iPreco <= 91937000) { return 339; } + else if (iPreco <= 92480200) { return 340; } + else if (iPreco <= 93025000) { return 341; } + else if (iPreco <= 93571400) { return 342; } + else if (iPreco <= 94119400) { return 343; } + else if (iPreco <= 94669000) { return 344; } + else if (iPreco <= 95220200) { return 345; } + else if (iPreco <= 95773000) { return 346; } + else if (iPreco <= 96327400) { return 347; } + else if (iPreco <= 96883400) { return 348; } + else if (iPreco <= 97441000) { return 349; } + else if (iPreco <= 98000200) { return 350; } + else if (iPreco <= 98561000) { return 351; } + else if (iPreco <= 99123400) { return 352; } + else if (iPreco <= 99687400) { return 353; } + else if (iPreco <= 100253000) { return 354; } + else if (iPreco <= 100820200) { return 355; } + else if (iPreco <= 101389000) { return 356; } + else if (iPreco <= 101959400) { return 357; } + else if (iPreco <= 102531400) { return 358; } + else if (iPreco <= 103105000) { return 359; } + else if (iPreco <= 103680200) { return 360; } + else if (iPreco <= 104257000) { return 361; } + else if (iPreco <= 104835400) { return 362; } + else if (iPreco <= 105415400) { return 363; } + else if (iPreco <= 105997000) { return 364; } + else if (iPreco <= 106580200) { return 365; } + else if (iPreco <= 107165000) { return 366; } + else if (iPreco <= 107751400) { return 367; } + else if (iPreco <= 108339400) { return 368; } + else if (iPreco <= 108929000) { return 369; } + else if (iPreco <= 109520200) { return 370; } + else if (iPreco <= 110113000) { return 371; } + else if (iPreco <= 110707400) { return 372; } + else if (iPreco <= 111303400) { return 373; } + else if (iPreco <= 111901000) { return 374; } + else if (iPreco <= 112500200) { return 375; } + else if (iPreco <= 113101000) { return 376; } + else if (iPreco <= 113703400) { return 377; } + else if (iPreco <= 114307400) { return 378; } + else if (iPreco <= 114913000) { return 379; } + else if (iPreco <= 115520200) { return 380; } + else if (iPreco <= 116129000) { return 381; } + else if (iPreco <= 116739400) { return 382; } + else if (iPreco <= 117351400) { return 383; } + else if (iPreco <= 117965000) { return 384; } + else if (iPreco <= 118580200) { return 385; } + else if (iPreco <= 119197000) { return 386; } + else if (iPreco <= 119815400) { return 387; } + else if (iPreco <= 120435400) { return 388; } + else if (iPreco <= 121057000) { return 389; } + else if (iPreco <= 121680200) { return 390; } + else if (iPreco <= 122305000) { return 391; } + else if (iPreco <= 122931400) { return 392; } + else if (iPreco <= 123559400) { return 393; } + else if (iPreco <= 124189000) { return 394; } + else if (iPreco <= 124820200) { return 395; } + else if (iPreco <= 125453000) { return 396; } + else if (iPreco <= 126087400) { return 397; } + else if (iPreco <= 126723400) { return 398; } + else if (iPreco <= 127361000) { return 399; } + else if (iPreco <= 128000200) { return 400; } + else if (iPreco <= 128641000) { return 401; } + else if (iPreco <= 129283400) { return 402; } + else if (iPreco <= 129927400) { return 403; } + else if (iPreco <= 130573000) { return 404; } + else if (iPreco <= 131220200) { return 405; } + else if (iPreco <= 131869000) { return 406; } + else if (iPreco <= 132519400) { return 407; } + else if (iPreco <= 133171400) { return 408; } + else if (iPreco <= 133825000) { return 409; } + else if (iPreco <= 134480200) { return 410; } + else if (iPreco <= 135137000) { return 411; } + else if (iPreco <= 135795400) { return 412; } + else if (iPreco <= 136455400) { return 413; } + else if (iPreco <= 137117000) { return 414; } + else if (iPreco <= 137780200) { return 415; } + else if (iPreco <= 138445000) { return 416; } + else if (iPreco <= 139111400) { return 417; } + else if (iPreco <= 139779400) { return 418; } + else if (iPreco <= 140449000) { return 419; } + else if (iPreco <= 141120200) { return 420; } + else if (iPreco <= 141793000) { return 421; } + else if (iPreco <= 142467400) { return 422; } + else if (iPreco <= 143143400) { return 423; } + else if (iPreco <= 143821000) { return 424; } + else if (iPreco <= 144500200) { return 425; } + else if (iPreco <= 145181000) { return 426; } + else if (iPreco <= 145863400) { return 427; } + else if (iPreco <= 146547400) { return 428; } + else if (iPreco <= 147233000) { return 429; } + else if (iPreco <= 147920200) { return 430; } + else if (iPreco <= 148609000) { return 431; } + else if (iPreco <= 149299400) { return 432; } + else if (iPreco <= 149991400) { return 433; } + else if (iPreco <= 150685000) { return 434; } + else if (iPreco <= 151380200) { return 435; } + else if (iPreco <= 152077000) { return 436; } + else if (iPreco <= 152775400) { return 437; } + else if (iPreco <= 153475400) { return 438; } + else if (iPreco <= 154177000) { return 439; } + else if (iPreco <= 154880200) { return 440; } + else if (iPreco <= 155585000) { return 441; } + else if (iPreco <= 156291400) { return 442; } + else if (iPreco <= 156999400) { return 443; } + else if (iPreco <= 157709000) { return 444; } + else if (iPreco <= 158420200) { return 445; } + else if (iPreco <= 159133000) { return 446; } + else if (iPreco <= 159847400) { return 447; } + else if (iPreco <= 160563400) { return 448; } + else if (iPreco <= 161281000) { return 449; } + else if (iPreco <= 162000200) { return 450; } + else if (iPreco <= 162721000) { return 451; } + else if (iPreco <= 163443400) { return 452; } + else if (iPreco <= 164167400) { return 453; } + else if (iPreco <= 164893000) { return 454; } + else if (iPreco <= 165620200) { return 455; } + else if (iPreco <= 166349000) { return 456; } + else if (iPreco <= 167079400) { return 457; } + else if (iPreco <= 167811400) { return 458; } + else if (iPreco <= 168545000) { return 459; } + else if (iPreco <= 169280200) { return 460; } + else if (iPreco <= 170017000) { return 461; } + else if (iPreco <= 170755400) { return 462; } + else if (iPreco <= 171495400) { return 463; } + else if (iPreco <= 172237000) { return 464; } + else if (iPreco <= 172980200) { return 465; } + else if (iPreco <= 173725000) { return 466; } + else if (iPreco <= 174471400) { return 467; } + else if (iPreco <= 175219400) { return 468; } + else if (iPreco <= 175969000) { return 469; } + else if (iPreco <= 176720200) { return 470; } + else if (iPreco <= 177473000) { return 471; } + else if (iPreco <= 178227400) { return 472; } + else if (iPreco <= 178983400) { return 473; } + else if (iPreco <= 179741000) { return 474; } + else if (iPreco <= 180500200) { return 475; } + else if (iPreco <= 181261000) { return 476; } + else if (iPreco <= 182023400) { return 477; } + else if (iPreco <= 182787400) { return 478; } + else if (iPreco <= 183553000) { return 479; } + else if (iPreco <= 184320200) { return 480; } + else if (iPreco <= 185089000) { return 481; } + else if (iPreco <= 185859400) { return 482; } + else if (iPreco <= 186631400) { return 483; } + else if (iPreco <= 187405000) { return 484; } + else if (iPreco <= 188180200) { return 485; } + else if (iPreco <= 188957000) { return 486; } + else if (iPreco <= 189735400) { return 487; } + else if (iPreco <= 190515400) { return 488; } + else if (iPreco <= 191297000) { return 489; } + else if (iPreco <= 192080200) { return 490; } + else if (iPreco <= 192865000) { return 491; } + else if (iPreco <= 193651400) { return 492; } + else if (iPreco <= 194439400) { return 493; } + else if (iPreco <= 195229000) { return 494; } + else if (iPreco <= 196020200) { return 495; } + else if (iPreco <= 196813000) { return 496; } + else if (iPreco <= 197607400) { return 497; } + else if (iPreco <= 198403400) { return 498; } + else if (iPreco <= 199201000) { return 499; } + else if (iPreco <= 200000200) { return 500; } + else if (iPreco <= 200801000) { return 501; } + else if (iPreco <= 201603400) { return 502; } + else if (iPreco <= 202407400) { return 503; } + else if (iPreco <= 203213000) { return 504; } + else if (iPreco <= 204020200) { return 505; } + else if (iPreco <= 204829000) { return 506; } + else if (iPreco <= 205639400) { return 507; } + else if (iPreco <= 206451400) { return 508; } + else if (iPreco <= 207265000) { return 509; } + else if (iPreco <= 208080200) { return 510; } + else if (iPreco <= 208897000) { return 511; } + else if (iPreco <= 209715400) { return 512; } + else if (iPreco <= 210535400) { return 513; } + else if (iPreco <= 211357000) { return 514; } + else if (iPreco <= 212180200) { return 515; } + else if (iPreco <= 213005000) { return 516; } + else if (iPreco <= 213831400) { return 517; } + else if (iPreco <= 214659400) { return 518; } + else if (iPreco <= 215489000) { return 519; } + else if (iPreco <= 216320200) { return 520; } + else if (iPreco <= 217153000) { return 521; } + else if (iPreco <= 217987400) { return 522; } + else if (iPreco <= 218823400) { return 523; } + else if (iPreco <= 219661000) { return 524; } + else if (iPreco <= 220500200) { return 525; } + else if (iPreco <= 221341000) { return 526; } + else if (iPreco <= 222183400) { return 527; } + else if (iPreco <= 223027400) { return 528; } + else if (iPreco <= 223873000) { return 529; } + else if (iPreco <= 224720200) { return 530; } + else if (iPreco <= 225569000) { return 531; } + else if (iPreco <= 226419400) { return 532; } + else if (iPreco <= 227271400) { return 533; } + else if (iPreco <= 228125000) { return 534; } + else if (iPreco <= 228980200) { return 535; } + else if (iPreco <= 229837000) { return 536; } + else if (iPreco <= 230695400) { return 537; } + else if (iPreco <= 231555400) { return 538; } + else if (iPreco <= 232417000) { return 539; } + else if (iPreco <= 233280200) { return 540; } + else if (iPreco <= 234145000) { return 541; } + else if (iPreco <= 235011400) { return 542; } + else if (iPreco <= 235879400) { return 543; } + else if (iPreco <= 236749000) { return 544; } + else if (iPreco <= 237620200) { return 545; } + else if (iPreco <= 238493000) { return 546; } + else if (iPreco <= 239367400) { return 547; } + else if (iPreco <= 240243400) { return 548; } + else if (iPreco <= 241121000) { return 549; } + else if (iPreco <= 242000200) { return 550; } + else if (iPreco <= 242881000) { return 551; } + else if (iPreco <= 243763400) { return 552; } + else if (iPreco <= 244647400) { return 553; } + else if (iPreco <= 245533000) { return 554; } + else if (iPreco <= 246420200) { return 555; } + else if (iPreco <= 247309000) { return 556; } + else if (iPreco <= 248199400) { return 557; } + else if (iPreco <= 249091400) { return 558; } + else if (iPreco <= 249985000) { return 559; } + else if (iPreco <= 250880200) { return 560; } + else if (iPreco <= 251777000) { return 561; } + else if (iPreco <= 252675400) { return 562; } + else if (iPreco <= 253575400) { return 563; } + else if (iPreco <= 254477000) { return 564; } + else if (iPreco <= 255380200) { return 565; } + else if (iPreco <= 256285000) { return 566; } + else if (iPreco <= 257191400) { return 567; } + else if (iPreco <= 258099400) { return 568; } + else if (iPreco <= 259009000) { return 569; } + else if (iPreco <= 259920200) { return 570; } + else if (iPreco <= 260833000) { return 571; } + else if (iPreco <= 261747400) { return 572; } + else if (iPreco <= 262663400) { return 573; } + else if (iPreco <= 263581000) { return 574; } + else if (iPreco <= 264500200) { return 575; } + else if (iPreco <= 265421000) { return 576; } + else if (iPreco <= 266343400) { return 577; } + else if (iPreco <= 267267400) { return 578; } + else if (iPreco <= 268193000) { return 579; } + else if (iPreco <= 269120200) { return 580; } + else if (iPreco <= 270049000) { return 581; } + else if (iPreco <= 270979400) { return 582; } + else if (iPreco <= 271911400) { return 583; } + else if (iPreco <= 272845000) { return 584; } + else if (iPreco <= 273780200) { return 585; } + else if (iPreco <= 274717000) { return 586; } + else if (iPreco <= 275655400) { return 587; } + else if (iPreco <= 276595400) { return 588; } + else if (iPreco <= 277537000) { return 589; } + else if (iPreco <= 278480200) { return 590; } + else if (iPreco <= 279425000) { return 591; } + else if (iPreco <= 280371400) { return 592; } + else if (iPreco <= 281319400) { return 593; } + else if (iPreco <= 282269000) { return 594; } + else if (iPreco <= 283220200) { return 595; } + else if (iPreco <= 284173000) { return 596; } + else if (iPreco <= 285127400) { return 597; } + else if (iPreco <= 286083400) { return 598; } + else if (iPreco <= 287041000) { return 599; } + else if (iPreco <= 288000200) { return 600; } + else if (iPreco <= 288961000) { return 601; } + else if (iPreco <= 289923400) { return 602; } + else if (iPreco <= 290887400) { return 603; } + else if (iPreco <= 291853000) { return 604; } + else if (iPreco <= 292820200) { return 605; } + else if (iPreco <= 293789000) { return 606; } + else if (iPreco <= 294759400) { return 607; } + else if (iPreco <= 295731400) { return 608; } + else if (iPreco <= 296705000) { return 609; } + else if (iPreco <= 297680200) { return 610; } + else if (iPreco <= 298657000) { return 611; } + else if (iPreco <= 299635400) { return 612; } + else if (iPreco <= 300615400) { return 613; } + else if (iPreco <= 301597000) { return 614; } + else if (iPreco <= 302580200) { return 615; } + else if (iPreco <= 303565000) { return 616; } + else if (iPreco <= 304551400) { return 617; } + else if (iPreco <= 305539400) { return 618; } + else if (iPreco <= 306529000) { return 619; } + else if (iPreco <= 307520200) { return 620; } + else if (iPreco <= 308513000) { return 621; } + else if (iPreco <= 309507400) { return 622; } + else if (iPreco <= 310503400) { return 623; } + else if (iPreco <= 311501000) { return 624; } + else if (iPreco <= 312500200) { return 625; } + else if (iPreco <= 313501000) { return 626; } + else if (iPreco <= 314503400) { return 627; } + else if (iPreco <= 315507400) { return 628; } + else if (iPreco <= 316513000) { return 629; } + else if (iPreco <= 317520200) { return 630; } + else if (iPreco <= 318529000) { return 631; } + else if (iPreco <= 319539400) { return 632; } + else if (iPreco <= 320551400) { return 633; } + else if (iPreco <= 321565000) { return 634; } + else if (iPreco <= 322580200) { return 635; } + else if (iPreco <= 323597000) { return 636; } + else if (iPreco <= 324615400) { return 637; } + else if (iPreco <= 325635400) { return 638; } + else if (iPreco <= 326657000) { return 639; } + else if (iPreco <= 327680200) { return 640; } + else if (iPreco <= 328705000) { return 641; } + else if (iPreco <= 329731400) { return 642; } + else if (iPreco <= 330759400) { return 643; } + else if (iPreco <= 331789000) { return 644; } + else if (iPreco <= 332820200) { return 645; } + else if (iPreco <= 333853000) { return 646; } + else if (iPreco <= 334887400) { return 647; } + else if (iPreco <= 335923400) { return 648; } + else if (iPreco <= 336961000) { return 649; } + else if (iPreco <= 338000200) { return 650; } + else if (iPreco <= 339041000) { return 651; } + else if (iPreco <= 340083400) { return 652; } + else if (iPreco <= 341127400) { return 653; } + else if (iPreco <= 342173000) { return 654; } + else if (iPreco <= 343220200) { return 655; } + else if (iPreco <= 344269000) { return 656; } + else if (iPreco <= 345319400) { return 657; } + else if (iPreco <= 346371400) { return 658; } + else if (iPreco <= 347425000) { return 659; } + else if (iPreco <= 348480200) { return 660; } + else if (iPreco <= 349537000) { return 661; } + else if (iPreco <= 350595400) { return 662; } + else if (iPreco <= 351655400) { return 663; } + else if (iPreco <= 352717000) { return 664; } + else if (iPreco <= 353780200) { return 665; } + else if (iPreco <= 354845000) { return 666; } + else if (iPreco <= 355911400) { return 667; } + else if (iPreco <= 356979400) { return 668; } + else if (iPreco <= 358049000) { return 669; } + else if (iPreco <= 359120200) { return 670; } + else if (iPreco <= 360193000) { return 671; } + else if (iPreco <= 361267400) { return 672; } + else if (iPreco <= 362343400) { return 673; } + else if (iPreco <= 363421000) { return 674; } + else if (iPreco <= 364500200) { return 675; } + else if (iPreco <= 365581000) { return 676; } + else if (iPreco <= 366663400) { return 677; } + else if (iPreco <= 367747400) { return 678; } + else if (iPreco <= 368833000) { return 679; } + else if (iPreco <= 369920200) { return 680; } + else if (iPreco <= 371009000) { return 681; } + else if (iPreco <= 372099400) { return 682; } + else if (iPreco <= 373191400) { return 683; } + else if (iPreco <= 374285000) { return 684; } + else if (iPreco <= 375380200) { return 685; } + else if (iPreco <= 376477000) { return 686; } + else if (iPreco <= 377575400) { return 687; } + else if (iPreco <= 378675400) { return 688; } + else if (iPreco <= 379777000) { return 689; } + else if (iPreco <= 380880200) { return 690; } + else if (iPreco <= 381985000) { return 691; } + else if (iPreco <= 383091400) { return 692; } + else if (iPreco <= 384199400) { return 693; } + else if (iPreco <= 385309000) { return 694; } + else if (iPreco <= 386420200) { return 695; } + else if (iPreco <= 387533000) { return 696; } + else if (iPreco <= 388647400) { return 697; } + else if (iPreco <= 389763400) { return 698; } + else if (iPreco <= 390881000) { return 699; } + else if (iPreco <= 392000200) { return 700; } + else if (iPreco <= 393121000) { return 701; } + else if (iPreco <= 394243400) { return 702; } + else if (iPreco <= 395367400) { return 703; } + else if (iPreco <= 396493000) { return 704; } + else if (iPreco <= 397620200) { return 705; } + else if (iPreco <= 398749000) { return 706; } + else if (iPreco <= 399879400) { return 707; } + else if (iPreco <= 401011400) { return 708; } + else if (iPreco <= 402145000) { return 709; } + else if (iPreco <= 403280200) { return 710; } + else if (iPreco <= 404417000) { return 711; } + else if (iPreco <= 405555400) { return 712; } + else if (iPreco <= 406695400) { return 713; } + else if (iPreco <= 407837000) { return 714; } + else if (iPreco <= 408980200) { return 715; } + else if (iPreco <= 410125000) { return 716; } + else if (iPreco <= 411271400) { return 717; } + else if (iPreco <= 412419400) { return 718; } + else if (iPreco <= 413569000) { return 719; } + else if (iPreco <= 414720200) { return 720; } + else if (iPreco <= 415873000) { return 721; } + else if (iPreco <= 417027400) { return 722; } + else if (iPreco <= 418183400) { return 723; } + else if (iPreco <= 419341000) { return 724; } + else if (iPreco <= 420500200) { return 725; } + else if (iPreco <= 421661000) { return 726; } + else if (iPreco <= 422823400) { return 727; } + else if (iPreco <= 423987400) { return 728; } + else if (iPreco <= 425153000) { return 729; } + else if (iPreco <= 426320200) { return 730; } + else if (iPreco <= 427489000) { return 731; } + else if (iPreco <= 428659400) { return 732; } + else if (iPreco <= 429831400) { return 733; } + else if (iPreco <= 431005000) { return 734; } + else if (iPreco <= 432180200) { return 735; } + else if (iPreco <= 433357000) { return 736; } + else if (iPreco <= 434535400) { return 737; } + else if (iPreco <= 435715400) { return 738; } + else if (iPreco <= 436897000) { return 739; } + else if (iPreco <= 438080200) { return 740; } + else if (iPreco <= 439265000) { return 741; } + else if (iPreco <= 440451400) { return 742; } + else if (iPreco <= 441639400) { return 743; } + else if (iPreco <= 442829000) { return 744; } + else if (iPreco <= 444020200) { return 745; } + else if (iPreco <= 445213000) { return 746; } + else if (iPreco <= 446407400) { return 747; } + else if (iPreco <= 447603400) { return 748; } + else if (iPreco <= 448801000) { return 749; } + else if (iPreco <= 450000200) { return 750; } + else if (iPreco <= 451201000) { return 751; } + else if (iPreco <= 452403400) { return 752; } + else if (iPreco <= 453607400) { return 753; } + else if (iPreco <= 454813000) { return 754; } + else if (iPreco <= 456020200) { return 755; } + else if (iPreco <= 457229000) { return 756; } + else if (iPreco <= 458439400) { return 757; } + else if (iPreco <= 459651400) { return 758; } + else if (iPreco <= 460865000) { return 759; } + else if (iPreco <= 462080200) { return 760; } + else if (iPreco <= 463297000) { return 761; } + else if (iPreco <= 464515400) { return 762; } + else if (iPreco <= 465735400) { return 763; } + else if (iPreco <= 466957000) { return 764; } + else if (iPreco <= 468180200) { return 765; } + else if (iPreco <= 469405000) { return 766; } + else if (iPreco <= 470631400) { return 767; } + else if (iPreco <= 471859400) { return 768; } + else if (iPreco <= 473089000) { return 769; } + else if (iPreco <= 474320200) { return 770; } + else if (iPreco <= 475553000) { return 771; } + else if (iPreco <= 476787400) { return 772; } + else if (iPreco <= 478023400) { return 773; } + else if (iPreco <= 479261000) { return 774; } + else if (iPreco <= 480500200) { return 775; } + else if (iPreco <= 481741000) { return 776; } + else if (iPreco <= 482983400) { return 777; } + else if (iPreco <= 484227400) { return 778; } + else if (iPreco <= 485473000) { return 779; } + else if (iPreco <= 486720200) { return 780; } + else if (iPreco <= 487969000) { return 781; } + else if (iPreco <= 489219400) { return 782; } + else if (iPreco <= 490471400) { return 783; } + else if (iPreco <= 491725000) { return 784; } + else if (iPreco <= 492980200) { return 785; } + else if (iPreco <= 494237000) { return 786; } + else if (iPreco <= 495495400) { return 787; } + else if (iPreco <= 496755400) { return 788; } + else if (iPreco <= 498017000) { return 789; } + else if (iPreco <= 499280200) { return 790; } + else if (iPreco <= 500545000) { return 791; } + else if (iPreco <= 501811400) { return 792; } + else if (iPreco <= 503079400) { return 793; } + else if (iPreco <= 504349000) { return 794; } + else if (iPreco <= 505620200) { return 795; } + else if (iPreco <= 506893000) { return 796; } + else if (iPreco <= 508167400) { return 797; } + else if (iPreco <= 509443400) { return 798; } + else if (iPreco <= 510721000) { return 799; } + else if (iPreco <= 512000200) { return 800; } + else if (iPreco <= 513281000) { return 801; } + else if (iPreco <= 514563400) { return 802; } + else if (iPreco <= 515847400) { return 803; } + else if (iPreco <= 517133000) { return 804; } + else if (iPreco <= 518420200) { return 805; } + else if (iPreco <= 519709000) { return 806; } + else if (iPreco <= 520999400) { return 807; } + else if (iPreco <= 522291400) { return 808; } + else if (iPreco <= 523585000) { return 809; } + else if (iPreco <= 524880200) { return 810; } + else if (iPreco <= 526177000) { return 811; } + else if (iPreco <= 527475400) { return 812; } + else if (iPreco <= 528775400) { return 813; } + else if (iPreco <= 530077000) { return 814; } + else if (iPreco <= 531380200) { return 815; } + else if (iPreco <= 532685000) { return 816; } + else if (iPreco <= 533991400) { return 817; } + else if (iPreco <= 535299400) { return 818; } + else if (iPreco <= 536609000) { return 819; } + else if (iPreco <= 537920200) { return 820; } + else if (iPreco <= 539233000) { return 821; } + else if (iPreco <= 540547400) { return 822; } + else if (iPreco <= 541863400) { return 823; } + else if (iPreco <= 543181000) { return 824; } + else if (iPreco <= 544500200) { return 825; } + else if (iPreco <= 545821000) { return 826; } + else if (iPreco <= 547143400) { return 827; } + else if (iPreco <= 548467400) { return 828; } + else if (iPreco <= 549793000) { return 829; } + else if (iPreco <= 551120200) { return 830; } + else if (iPreco <= 552449000) { return 831; } + else if (iPreco <= 553779400) { return 832; } + else if (iPreco <= 555111400) { return 833; } + else if (iPreco <= 556445000) { return 834; } + else if (iPreco <= 557780200) { return 835; } + else if (iPreco <= 559117000) { return 836; } + else if (iPreco <= 560455400) { return 837; } + else if (iPreco <= 561795400) { return 838; } + else if (iPreco <= 563137000) { return 839; } + else if (iPreco <= 564480200) { return 840; } + else if (iPreco <= 565825000) { return 841; } + else if (iPreco <= 567171400) { return 842; } + else if (iPreco <= 568519400) { return 843; } + else if (iPreco <= 569869000) { return 844; } + else if (iPreco <= 571220200) { return 845; } + else if (iPreco <= 572573000) { return 846; } + else if (iPreco <= 573927400) { return 847; } + else if (iPreco <= 575283400) { return 848; } + else if (iPreco <= 576641000) { return 849; } + else if (iPreco <= 578000200) { return 850; } + else if (iPreco <= 579361000) { return 851; } + else if (iPreco <= 580723400) { return 852; } + else if (iPreco <= 582087400) { return 853; } + else if (iPreco <= 583453000) { return 854; } + else if (iPreco <= 584820200) { return 855; } + else if (iPreco <= 586189000) { return 856; } + else if (iPreco <= 587559400) { return 857; } + else if (iPreco <= 588931400) { return 858; } + else if (iPreco <= 590305000) { return 859; } + else if (iPreco <= 591680200) { return 860; } + else if (iPreco <= 593057000) { return 861; } + else if (iPreco <= 594435400) { return 862; } + else if (iPreco <= 595815400) { return 863; } + else if (iPreco <= 597197000) { return 864; } + else if (iPreco <= 598580200) { return 865; } + else if (iPreco <= 599965000) { return 866; } + else if (iPreco <= 601351400) { return 867; } + else if (iPreco <= 602739400) { return 868; } + else if (iPreco <= 604129000) { return 869; } + else if (iPreco <= 605520200) { return 870; } + else if (iPreco <= 606913000) { return 871; } + else if (iPreco <= 608307400) { return 872; } + else if (iPreco <= 609703400) { return 873; } + else if (iPreco <= 611101000) { return 874; } + else if (iPreco <= 612500200) { return 875; } + else if (iPreco <= 613901000) { return 876; } + else if (iPreco <= 615303400) { return 877; } + else if (iPreco <= 616707400) { return 878; } + else if (iPreco <= 618113000) { return 879; } + else if (iPreco <= 619520200) { return 880; } + else if (iPreco <= 620929000) { return 881; } + else if (iPreco <= 622339400) { return 882; } + else if (iPreco <= 623751400) { return 883; } + else if (iPreco <= 625165000) { return 884; } + else if (iPreco <= 626580200) { return 885; } + else if (iPreco <= 627997000) { return 886; } + else if (iPreco <= 629415400) { return 887; } + else if (iPreco <= 630835400) { return 888; } + else if (iPreco <= 632257000) { return 889; } + else if (iPreco <= 633680200) { return 890; } + else if (iPreco <= 635105000) { return 891; } + else if (iPreco <= 636531400) { return 892; } + else if (iPreco <= 637959400) { return 893; } + else if (iPreco <= 639389000) { return 894; } + else if (iPreco <= 640820200) { return 895; } + else if (iPreco <= 642253000) { return 896; } + else if (iPreco <= 643687400) { return 897; } + else if (iPreco <= 645123400) { return 898; } + else if (iPreco <= 646561000) { return 899; } + else if (iPreco <= 648000200) { return 900; } + else if (iPreco <= 649441000) { return 901; } + else if (iPreco <= 650883400) { return 902; } + else if (iPreco <= 652327400) { return 903; } + else if (iPreco <= 653773000) { return 904; } + else if (iPreco <= 655220200) { return 905; } + else if (iPreco <= 656669000) { return 906; } + else if (iPreco <= 658119400) { return 907; } + else if (iPreco <= 659571400) { return 908; } + else if (iPreco <= 661025000) { return 909; } + else if (iPreco <= 662480200) { return 910; } + else if (iPreco <= 663937000) { return 911; } + else if (iPreco <= 665395400) { return 912; } + else if (iPreco <= 666855400) { return 913; } + else if (iPreco <= 668317000) { return 914; } + else if (iPreco <= 669780200) { return 915; } + else if (iPreco <= 671245000) { return 916; } + else if (iPreco <= 672711400) { return 917; } + else if (iPreco <= 674179400) { return 918; } + else if (iPreco <= 675649000) { return 919; } + else if (iPreco <= 677120200) { return 920; } + else if (iPreco <= 678593000) { return 921; } + else if (iPreco <= 680067400) { return 922; } + else if (iPreco <= 681543400) { return 923; } + else if (iPreco <= 683021000) { return 924; } + else if (iPreco <= 684500200) { return 925; } + else if (iPreco <= 685981000) { return 926; } + else if (iPreco <= 687463400) { return 927; } + else if (iPreco <= 688947400) { return 928; } + else if (iPreco <= 690433000) { return 929; } + else if (iPreco <= 691920200) { return 930; } + else if (iPreco <= 693409000) { return 931; } + else if (iPreco <= 694899400) { return 932; } + else if (iPreco <= 696391400) { return 933; } + else if (iPreco <= 697885000) { return 934; } + else if (iPreco <= 699380200) { return 935; } + else if (iPreco <= 700877000) { return 936; } + else if (iPreco <= 702375400) { return 937; } + else if (iPreco <= 703875400) { return 938; } + else if (iPreco <= 705377000) { return 939; } + else if (iPreco <= 706880200) { return 940; } + else if (iPreco <= 708385000) { return 941; } + else if (iPreco <= 709891400) { return 942; } + else if (iPreco <= 711399400) { return 943; } + else if (iPreco <= 712909000) { return 944; } + else if (iPreco <= 714420200) { return 945; } + else if (iPreco <= 715933000) { return 946; } + else if (iPreco <= 717447400) { return 947; } + else if (iPreco <= 718963400) { return 948; } + else if (iPreco <= 720481000) { return 949; } + else if (iPreco <= 722000200) { return 950; } + else if (iPreco <= 723521000) { return 951; } + else if (iPreco <= 725043400) { return 952; } + else if (iPreco <= 726567400) { return 953; } + else if (iPreco <= 728093000) { return 954; } + else if (iPreco <= 729620200) { return 955; } + else if (iPreco <= 731149000) { return 956; } + else if (iPreco <= 732679400) { return 957; } + else if (iPreco <= 734211400) { return 958; } + else if (iPreco <= 735745000) { return 959; } + else if (iPreco <= 737280200) { return 960; } + else if (iPreco <= 738817000) { return 961; } + else if (iPreco <= 740355400) { return 962; } + else if (iPreco <= 741895400) { return 963; } + else if (iPreco <= 743437000) { return 964; } + else if (iPreco <= 744980200) { return 965; } + else if (iPreco <= 746525000) { return 966; } + else if (iPreco <= 748071400) { return 967; } + else if (iPreco <= 749619400) { return 968; } + else if (iPreco <= 751169000) { return 969; } + else if (iPreco <= 752720200) { return 970; } + else if (iPreco <= 754273000) { return 971; } + else if (iPreco <= 755827400) { return 972; } + else if (iPreco <= 757383400) { return 973; } + else if (iPreco <= 758941000) { return 974; } + else if (iPreco <= 760500200) { return 975; } + else if (iPreco <= 762061000) { return 976; } + else if (iPreco <= 763623400) { return 977; } + else if (iPreco <= 765187400) { return 978; } + else if (iPreco <= 766753000) { return 979; } + else if (iPreco <= 768320200) { return 980; } + else if (iPreco <= 769889000) { return 981; } + else if (iPreco <= 771459400) { return 982; } + else if (iPreco <= 773031400) { return 983; } + else if (iPreco <= 774605000) { return 984; } + else if (iPreco <= 776180200) { return 985; } + else if (iPreco <= 777757000) { return 986; } + else if (iPreco <= 779335400) { return 987; } + else if (iPreco <= 780915400) { return 988; } + else if (iPreco <= 782497000) { return 989; } + else if (iPreco <= 784080200) { return 990; } + else if (iPreco <= 785665000) { return 991; } + else if (iPreco <= 787251400) { return 992; } + else if (iPreco <= 788839400) { return 993; } + else if (iPreco <= 790429000) { return 994; } + else if (iPreco <= 792020200) { return 995; } + else if (iPreco <= 793613000) { return 996; } + else if (iPreco <= 795207400) { return 997; } + else if (iPreco <= 796803400) { return 998; } + else if (iPreco <= 798401000) { return 999; } + else /*if (iPreco <= 800000200)*/ { return 1000; } + +/* + SISTEMA TRADICIONAL DE CALCULO DE NIVEL DE ITEM + + if (iPreco <= 1000) { return 1; } + else if (iPreco <= 1500) { return 2; } + else if (iPreco <= 2500) { return 3; } + else if (iPreco <= 3500) { return 4; } + else if (iPreco <= 5000) { return 5; } + else if (iPreco <= 6500) { return 6; } + else if (iPreco <= 9000) { return 7; } + else if (iPreco <= 12000) { return 8; } + else if (iPreco <= 15000) { return 9; } + else if (iPreco <= 19500) { return 10; } + else if (iPreco <= 25000) { return 11; } + else if (iPreco <= 30000) { return 12; } + else if (iPreco <= 35000) { return 13; } + else if (iPreco <= 40000) { return 14; } + else if (iPreco <= 50000) { return 15; } + else if (iPreco <= 65000) { return 16; } + else if (iPreco <= 75000) { return 17; } + else if (iPreco <= 90000) { return 18; } + else if (iPreco <= 110000) { return 19; } + else if (iPreco <= 130000) { return 20; } + else if (iPreco <= 250000) { return 21; } + else if (iPreco <= 500000) { return 22; } + else if (iPreco <= 750000) { return 23; } + else { + + int iCalculador = (((iPreco - 1000000) / 200000) + 24); + + if (NIVEL_MAXIMO_PERMITIDO < iCalculador) + { + return NIVEL_MAXIMO_PERMITIDO; + } + else + { + return iCalculador; + } + } +*/ +} +//****************************************************************************** + +//****************************************************************************** +int ObterNivelItem(object oItem) +{ + return ConverterPrecoNivelItem(GetGoldPieceValue(oItem)); +} +//atualizado abaixo +/*int ObterNivelItem(object oItem) +{ + int iNivel = NIVELConverterPrecoNivelItem( GetGoldPieceValue( oItem ) ); + if ( !( IPGetIsBludgeoningWeapon( oItem ) || IPGetIsMeleeWeapon( oItem ) || + IPGetIsRangedWeapon( oItem ) ) ) + { + iNivel *= NIVEL_CONSTANTE; + } + return iNivel; +}*/ +//****************************************************************************** + +//****************************************************************************** +int ObterExperienciaItem(object oItem) +{ + return ObterExperienciaNivel(ObterNivelItem(oItem)); +} +//****************************************************************************** diff --git a/35expandedabilities/nw_s1_aurablnda.ncs b/35expandedabilities/nw_s1_aurablnda.ncs new file mode 100644 index 0000000000000000000000000000000000000000..376b84a9e62097082c8776ea058a0089a22c2fb1 GIT binary patch literal 38708 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 J1b?9Te*k8;GYtR$ literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_auracoldc.nss b/35expandedabilities/nw_s1_auracoldc.nss new file mode 100644 index 00000000..49cd95e0 --- /dev/null +++ b/35expandedabilities/nw_s1_auracoldc.nss @@ -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(); + } +} diff --git a/35expandedabilities/nw_s1_auraelecc.ncs b/35expandedabilities/nw_s1_auraelecc.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6e622d9924281b8ced41542d722f6d931c4f2893 GIT binary patch literal 38792 zcmeHw3y@UTdFH*{^I~RzVVL0!y5eC00zCjBj6q^vh(R!eXGS2&!tG|Jfkr*uqn;il zT(yZTud_<5R5`XIS5}siSn(qpCth!Poy2kch;7-)ss{ix)3m@SLPePX}$CA3ON5IpI>tIj2EdEGKkL+Pa~M zUK<^^#SH;|%xy@bSc=X&4g8i|=yiGA2)MYU5pZ`V_}5mhKvUD?RnsIvK#63cqoIKa z)%tn+!)QaK<>#H?|1*uD0@vraDH-B-y?YHn-1qvmMjG$~46h`(wwD23;-a+6N;#`a zVG<(r*A$6!PDluncPF5K;Y=i9#c@dsBR&n5Nzou6*vK%hL!_P6Tocks40VzCVQ%>{ zGdY~(W&jgwZRh|hBEFh!xK5PG0N|0I5J;GW*k>9%qi?)4C+dJ!2FYzA&_;Cj3RRHX zEDVCUy4J;uKhN{;XUJbw7ShCuPn&nNrg!hnqR+vV;Z`eO6y3Fnqrr_?e=Cgc6DlNO zSoQNJk83@K5jTIq@N$k+wBi@7^3viLAE?_!ll{Ifa+xF!@Z zOY~ofi-*EIZvFRjY#v2sW6o`h=0av}ua?@zZ>Ih&KZ%7l5wass&}2i!z^=5E-%Oj% z=fLptM5M`jh%t9}p*WryK6)sd%iT4dnP8}jrrIB7%W>PpYZogi5P8Mrh@KxR`hg^0 zM(Un*=cs)jkJY@yWmU#*P5K#NEmK=tNf5OZrH@@-qTT`NgULF|AY#G!@(qnnVm5V3 z-Fwp0V}+UVSCwxezVBa?syG2>Hv6+mjcJkEYlfFzeX=)k+s zY9V!zW5d0v{=uI8!$bY(E_V+MjSeV!=7+7lTZ?KzscE|-JTbh+;8$SCL!zg|9I^3# z0OD1|PTx$in8}y+r}LQ^gjH%VpDkt6rELCKUoJg8&3Inqq`z4(xZS>EvO3NN8F39I zB?$%OQm%ca4X(^cG!*Rm?^8XCykvC}ebmd`)>o}4n9EG?to$OozM^DML1`j)@CEY7 z%Jq8}Q+zSpYHnp>%1OlP5Uj8uCOF)?8AdhxIBV7-W(BJA+uXp)#}0dsl>ryMDU5aQ zcUZ(Y7Nf4mU`8{}kC>KlYs_4aga-WZ=}J@^VijY+y1N6gt;`Pe8R=mEjCsODsC3scS=rKricX?R2t`7ucZdNk-Wb`uRi&9V=2(9~N6t&f4Ia@UqWeflZB91Qn zaY|C$yUVNbP#4^nW;$m1QhtF0LuFPw~V4X7o*jtn~ z2UckC~}25rURrsmt`}~8@C%;#)mr}46xRakikz!SZy?{-dl;) z%QFJg%0*~38Cqi&tx_Ps<Pfui$Nx}U3^zGw@9lN88#W7=KqHB#4^VWPB8E> zBFE-b1~*PW?^A)#)NFkC#h~#au*SDUL&nF^9x|DC1>ou$vB43x1y;uq>9Y6xt~1}(Vb4k_9`jjsjY=|$3;*w3$lu%UM5&F zLSmDAFyn{9^vNWaDpgj)PUz(j zmi4$Q%T>k^9GTuKEVp*&O2Z}c#>)!+iZ{1Z)uGfd53@+D$WN1|;mhPiYiAhK{K%Nz zU+?AGA?A^P#l+Rh5E_^|Z}7Dp^ajipdWBj~V&}$fmbjRC={xJEli!|q8hjV?m@8Rd zdDaMemK?k38HHTQiKId12v7z?=)&g*;T5xc3s_)2y0365oh!)-GsJ+)nIX*yBMa7V z7-t<%lI4b+ZJsKWkgj=j_Xj2zl}i(h&SQXW?@Q-$V};&ysg%nw9~P6@%VTom*UOl! zKuEh3xbsTcOwmlR72GYSg~bDf2eF(uni+>a`;MpcXXw z;I{f3yZ#y=ZofB^&J|{+M`w!1qB@oQae3Of{;wk1h$E%UDpwIFVE%g3x%6b;Og@jb zWXoQf-!7BCmF4`Ekt*kpRN}TUADU9lQjYWMTxyb6YbW<^tij8S_4N-&IAnV=5sA`Y zL+&7UxFcgvDMV&+KMay=hgq!JcX{es_kV0=!m>IyGZ`*I7ooY3-!-0PZ5@1bEf)47 z5i9iyJ!L zQ~Hk2OSgN&7gTIE)i;bXUS`i|XT_Z5pD!UdG&)_BU3ru}*q<6cI509Y*e_d1umac! zwzQ_o@+8D;OV}n;HW{+XIW14iWV)CX1Dcg~?5O`Pvt?gYjBet+Z zK$4I{pe1X@=3X>&LE5oqns$tT=EU#brrKnF8g|?`ejD+SSdHyM_oVFik-ySB)oowN zvfm8Ot3WeG7E=*`C7`^?6>Z{3L8DS7Orzt+3xyp0#=4p&sS`4{BB{YgPunUc{3daV za`D{1CKI_&heqT8>$AXQpVHEb`+f$~l_5i|-vYBY$JrI!w=vi)Hnjl@EXD?|ocH*- z4R+81Yb=+|`2oA%*KM#t3#=&y?6VB^J{xSv0&9)|`&9lSp#4COuGYF000 zk^PyR4Bp_iCM7V0%;C(5Fk3m$8#jRnCQ~d^A~sW6%9H9>B`++evu6)jdG1y}&vhcn z4NenF%$t{;mV_4Y#nmngz05Z+y^gMH9T5Tx~vRKbqtk%W>a4FM-Y;_Bj+<`Yw0X-dTW{U==Jb*AiOf-u?oFDdAywA}_5**<&N3v=5FIh3 z@fuboyLWdRxAiro@)2j<>fSgG2QNb#eIiqvjm{-p1RXH*=fx=%373iQ2!kKD9CfGf zsEgpJJx9>}rt_uUnRKZSp;YqS6@*PFk-MIk5ClofVffgYk#Y*^J5(WouX72^!tVEbv0lANb;i%j^ZnM4NM+9d z(-~6KYin%N#yCHuYY6AW6ck-qVKzEu9tg}JOv4=|MEv4ic55JBoGy+ZpG+Uiq$bm} z%6KZ3$z>+7Ff|=x6dF9Zt(KxFQfXSz(dMne!;w6zrJgB0t}xv8VN)vcXWF`sDV++p zZPC&aE9y~(m(EN(7xA&DxJG(ZyXIdDO_toQIYBiIl2`1S1E@(rR*EpYW@{*zLXO8R zHST4c8}9CqCe<>QX|3+=+*4)NnRg&lJenCVQExGQJUwMrfniP#79PxPr7jVCUSv7< zF&(%sxw>0qjCd2SNr&!1z_t^@f$3@3Ih$sPAe@y^rhv9{#|ov)GfM83>sO$>83HVBuk2ajnQwsI1WXwdj7#PHM11 zD;*KE5$<#@59wTgl3yF?P=wR9rYArL&cqSYWZZvzgym`rwkWx_8oN=P)QRD8ukhWoEQ6 zlPl4&S;h;$3UZtr(>%`=;cU`1m>*B)CoqseVxj}uxk6fcAPZcMzrm|nO4-!lUvZ9@ zZF8$)R??w{W>DwH1b0NsHsUlHa&CmBKtqhkj5ypMGm%&!tQ>ZqpTm|RhwV>4q-m@# zJ(V8Ef%xrSeowzx6#N8PtO@xo{g9?Gk)0A8dHIhd!9#7F!gMB4J~YFejKvOhRoFPZ zJ&2_>NJ-|Tt-Q_$58_J9q z3*+fxerA$82ki*hbb)$Fhd-2)4cZMr!JM_rJNgSUh_7Ro+Gu8}zX3CL3_LVNZahID zFo}*z-OyNAorwd&mXNE!7e5i1*0Poilpu=qG28}k?788oYR=Nr4qs0TsV9xF=1%}@ zFFX4)#vb*uO7qo4Gy&+t&i%khA2#qut1l_Cfj?<6`H0WtHd!~^hv6%)9rocDK1E)( zggDM4TyLC?n8z+7&JQgkYAasF1+zi8Qg7HC;71q9DOf@g=Y1JIzYZDk~p3l9J_%h9qrp$_Vs+|t=QeVuKttg|AI zhOm3$#i=VWI)s|-`BFihvE!%jzht?Ej*!cf4+2MpXJvdLP(~>2sH(21kQTK5pK8=& z6Q=3~0qi(bt^Xf2>MNy1AKVGB$CpGFf*Qm$wm8$aN6iwCo|6HT~zt^b$ zUXA*bHR{*bsK2LLJn{$h&uQDgL4w}e z-2S+;Yy)#Cr(zjz&El~#ohPVDXHjiB5H-?GTm~IXhcpvcl4sK!L1%7lIvCx(etGJk zv*(|Q4qW~9%QLUG-jFh?(7^^WX6oW^_2fAC@!#@=a%WRyMHRygUQxX>2F;BcB>D^n zuR3C?kW-o7N`J3u4JFNPjKS?L*K?imb$-4fE?SF*Z8M zkBDfS1y#Uo@@ZKM(IJbB^>5&Az}}v-Tf{BJU9OGL)(TwNHvpp#`*U*=68E4Sv^GIvZ41KFg;$G*xVL9_4|48 zVm0`KX|jFuJZ@~d{@Je~mdvJ0MUbZNgh8BpIsDk&^h#J|(5Ed>TDdT5Z1aOtCLAEE zR0c-;?Vur!qeQwDyJ>&@O+OrI8q!o(xuzQbx5azL0uF&Lj{*Ip1$sv%(2f|;2Q1Jv zl|UmqY-HL-xk;*{x<9T2y0DyTgUo&v^iU{ycC5zFKshYw3!E9^)C1~)dfslS=M5yrOh6?p{%MmV$``|54i>|au7Ar7rrkV^ zTx|wyNGE~DgKyX|5e)7i&wAG!1d?PdQEh{LDrlaVkn?ilFkll&a$Kgza+gAij+z^H zW~)i^C+IOEAjiZj;hJ4jKnROLWg-*Vmf}-#(ys#xs|G4(uyWO0FsdPMq26YGfEf4w zII7wy=gv6^KIYN(FzxU4XO3p_)0w{b6YC6R?OS4v0V^mWY}mXfa)UCKfRMB+_|0Bs z0hiNNhcTGo_+d=5t;yitx5B=WTd_7H*wBkC<=hCt=3rMYSICwQVwRjW7jang==GSV zMeR0K>j2i^!E&mypM*?cm@OKC52}7i;J@F+Zy1sB6UJp?Ft+hXwVUa+xfROH5tGiq zTid@K{O){mBl>q%uSM;@eK%IUos1Qn`Zut0anOJF!8eT8>xEb5Mq&fHX6&N#_a>Dk zvVTI(A5zxf;ZUr1aI&MT8g18#!d<=3FTr8QjRqHlHoL|z`N>f}UiK-bwFn{qPFd;# zf(7z@C$-iK<{XOLQ~)Y8zR!d*|B9On%rFbX`Oy6W?#w1fq|ex?Le>fAJb;Bp05jMb zCMO?J+_CE0t-#UjAIp`K6zUMzed*BOq0X00M*@aSE{k>y?_df#a8uJj|IDaX8WHtX zpNIq!(qfinH(z}8ndPzK+YB?WkC-Y&=@9DVc?tqJa-*}1X7qO**@K&Qv=Z2JBun2y z>`(J4P39ZM<0t$=oYEYfe5X~4LGl`4cAm6Kk&n3aOI9hya$Ndds}#wHO5G-_6yJ~F z(sjhQd!KM%rENJ3Oz8n0FgiBUwTi1@n!vE`N%6MIfc*n^#{%wTKznu8qS!Y)6bmTI zlKGyWsaQ0_Di#~#0GePJ@%VBisrKwVnu=M#s5T5+w+U?ac^67EXYsfp4$1$>8`S zlGQP0p;Nd(7{fo(ib;sa{e-xMBXzYKsS=3X1jvLkChly@UG($L>k>_w4VvV<0uKdpEWT zMycEVc#p|^p$@e1aTZB4fX>DK0Qi>>#)H{n2_I2S86QcFj$?W$qZe2XOpuE(3YZtK zX0|+Z`S7CfZjaS(-vf#_9zw9&W2mGo88m!eW#T8-YYDe=tZxrQ=BQRn3`y#cL_0yF z3F$J7ld5LTJh4FzFRJ&4YS+NPj-7cmn@(6fnQZC|S*0eMI@_#Lle=9B7^P-%xBCL= zI6*mLE!kRaY`O@Xf*Q}l^aDrf==gMMcP@P_{P7wyL`<}L#;u-eXxP1Mhm34Q2i9HT z*GZ;@EOBXkid}A{&hXLzg?s&GXjnip5^I>7BnBk|P|tscda2h#=5+|jvGS6c-hnfU z_WzZU*~2{33cBG|w{t5#oM6n@$MV5LDdlWF7MU*d&`zQVLcd4GJpTKc24>~5 zyPY7Cf^J79Z$Ff@X}AY>(DwYW*X}RiIhiW7t1lOLV-QJH6rFz35U>WA_{wNb%O~T_Z9fmasYD&+Ey7 z63r~Brk;7w(i8rO9WT1H;F3XSA4yMVQheDDGBBWYD=TD}R@MP90-i0eWgnDXRWxH* z+j>25k-q@WQ67utAcr>cs^4@dpPZvgD=AK0s^p6$QZKnJ0=T# zNz;`>F(BFGtAs}>V4R(ye8>Dk0H!B8S^O2iGRGKZaOhyqzQKMLdJ^UCbs;WApRXm@ zz>U{=8@=mHx5fNBpFn>OnDUy$ZmDS?m@tUjfeL0DxW$K=boo_GR)kqE{Vs@f_Fx=Z zq-AUGXgUk`G=opzF$5&eopu>wKv!!>mkU_mh%ewkU1VQcYB6-uT2hcZ$}r@HP)Ms` z*f+7di-533Wh4dwu7hjG!k}DW6n%)n2n){hF;slPDzha#CwodVG6&YKRrT@0azxZ& z)@4>Jzo47g4trJ^9WzC{UVM*nK!?l~6Y` zqF?c67abguO9hQWKzc7>5{g8B6TV$WJ)~`IZVw@So=>=S3Pv{#7j9x4qT$0qnZcj9&@A76mNv4cE6uUO~wi}Lr(GaW;pB-Z;9#lHc zwQ{E%d4o$Sftl1#4v>&@1X^mQD2=kts-6Dt)t*218}$ce|9f%bK=w_7*9fEz70MCN^ugJc$oVwt8|By zc06O1Vqi{f=h-KjZkEzcf477A#c^6{JO2?2!*VI@Dq5vDnNMxIk65KRk58ow_E@FZ zn4r>y_S6#Rsj1X_{a^L4QA!s}ucM{7CqQi%%VL+7_DSiI|7lTME2T@nVU@0v(q(^U zm2Q#J<)5I)Tk#1q&OdGZPMlh1_+-=PAvh*doV;QYL1_ejNAf8k^Q#^?876l`xptjY^;&U1_h}Y^Dd|(pjPv4`; z;3pCi);%a>H<=?9@8EI`XsD3i!GX5x)~y?`E9w<^Tjg9Por|BsD^PX}hXAh#{(wv>*MPgjh-XJLK9 z#~NekO}`jJ*D~dQ{G6?@2ENnJ;=o+|r16}$Kt_|IxOasWN2*wQAFY~VU?tz0j6~8k za-^s%k|Ij$s?&M8DmYK%Fz97C&sJL(${#=3dEhBonXZb{knBs|Q9X~WkYii_@}d^oCw`MauXVZjftLM=QQ)k5d?>RRZ2`3liOf2~mhkGmv~JxjBO z#3?>xMc={4Fq=k9^KPiFi>@7upH@nUO*@uJ-F@N>{*j2AB@F3QHt9r|S+&5imr zIdcBD>e2!h#CVOe)|9KUf)*klg!%<*;gM)u%%yLURh&6={?{u+2ldPxo{IL8bKX=< z_IX!|{p*pv7?pkY`sz8L<8)n?|K*R5E+q$iFzWs7`lUpTeSMl7FtW}7t`z&%Bl~YhWpC)JCVTT&uOhpDG%9-%{a>|FK-1Nj{~n7*exgSHYrInY|5AFw z-;8PjCladqLc{0kiiBVOcI2gK;qj;z^ll|bg>Ghsp4hN8XF=t=`Zz$vP0#buo95KO zL)qz4D%ju+pTfi0Q#rruZm{+!5BhtQ%SLfLmOjW>I-c>y3zJiYX&gfG_%lHM?RMTw z?z)bTDCN@lkh?d554qD3J^2dk@4PLL{Ato^{_~csb?ebx;e`ih<>!c`J z{}tIOHqh9fG`|5}RYZ7PIZhHSEr#})!{<38dZK;4RmxVNVfpAlrL!@zYSQkpSAwvR zqP4E_Z}$PGe_VHM3H3Oai(=*GFueZc~R4WR|0_bTDJ#Fm~7s>B47uacL&B-~|=hO|m- zqI$F?2!E98)$r-8Dp#JrrYvB&^r+YkA_Yf{*zUJ;BiIv-z9Wr5IcT(oJWq}#qFmP3 z=%WDU$m1>shb00umF`Zf4OwA{BXWFF2*+Ni-lC{21Id|uQHT6N4vi$Bvdk-|F&Ec; zCsEBEaw`_zJ_z>z?K-Ff%}+>M$J0@4%N#gauFt+K!hzLP6s}KmAEGQ=SjO&VpM+BHJM|v zh##u@d;(Jz^N0HAK4Cw;&9^5tFhn2cBiZslV}d_L8~$b(wHcrrV*R*Ma-1%dW-}83 zKEHp#26#;fmK?Ckk$A%lkxaOwa^dpT)zM$!bF=Z5V`)Km)uv5zg_rq#;^8|BZ-+d8HK=NYbcw`8FZmaisJ4jhLy)x18(*HIXTD`64(v&tFvOxHeKRQcG-BkQz}E z@b2!cC^aftQy9S(`ES!3Eojt>-Q!>(zG*A@#N5*qfy(sDt%0UFC4Xef0u2o}Voal; zvv4U3T;jWw7Vx&f%NOz3P7Z^^Jvexv1%3hxkEM4SufscgrU+D+htEOba6Q0p9Wsdf54*5Zz`&?oT?b@R(!U=qRXP=+Qf&r6pE2tWt~W8 znO!*@EhbzX3X$=dBK|~r$wUmtCw^FFtKEFNaHaGy^x$wGi_@&yJmM}Q;4PA}@uF%4 zGc6{m1d|}HL?cSJKYK!CHu|6P6JuA%WnfN)(I>(FyfxnX%43;d3YS~xB2IGx($!Rr O+g4vQa~;7SDE>c<^D0XK literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_auraelecc.nss b/35expandedabilities/nw_s1_auraelecc.nss new file mode 100644 index 00000000..06994f44 --- /dev/null +++ b/35expandedabilities/nw_s1_auraelecc.nss @@ -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(); + } +} diff --git a/35expandedabilities/nw_s1_aurafirec.ncs b/35expandedabilities/nw_s1_aurafirec.ncs new file mode 100644 index 0000000000000000000000000000000000000000..50fe6329e9693c12fe9c7e1c4cbfe95641e0540c GIT binary patch literal 38741 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 T;I6J{+}4>jGuILPMDhOs+Sexc literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_aurafirec.nss b/35expandedabilities/nw_s1_aurafirec.nss new file mode 100644 index 00000000..a6b96381 --- /dev/null +++ b/35expandedabilities/nw_s1_aurafirec.nss @@ -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(); + } +} diff --git a/35expandedabilities/nw_s1_auramenca.ncs b/35expandedabilities/nw_s1_auramenca.ncs new file mode 100644 index 0000000000000000000000000000000000000000..cfdaf28aefecf63306fe00e414c30932cec0c01e GIT binary patch literal 50538 zcmeHwdz{==mFKUjpXu%-olYktyC`eNWct4fgK!BSr#>FnBMO>=bqp1 zcW?cwsuOVigwN)WuGGEvyw5%N-g6(-*EQhpS$F=0ou2ot14}*pYxKQjO>LbwV^@Dy zs=KFi_Z3{c;5?5%FMXA_$eWs)I^laY3HtQV)_dN=pAE?bmAv59N{c0gu3lT$*3;KI zFVUDl+l5|j4ZbEA2Ov=NnFJTroZ+|oTFfPN0JPG-^*@A8-kU;uK{=W)FoR9#m2o#0fI0$N12Cbl4nu-yA4SKen4A# zFVsX@zAb4OQ#M#JLXMjq0aa4u186{aYKZQ|bC%aIg`L8@BIM8KOiQxDQ2~CEx%$0; zMQ#U03xC{>EpybThV#kTJ9-8?c640P+m+h6r>DQax4VadplvkYkmN5gH*<04ImY<> zZGt6DpxuQ)bVX)jM`j|uBfUR6v^A5S*yQgkOy-CE!p)gtF*}^`M^QUUwf>gC(jakt zqJ0HW%v|FairM|yd^(5v_7$kfl3-L#nrL~ua>DKg7hpk-le@Ltn59LD&Pxs@s73OFA@1Zpao+2j88~@Or0TIm zvQ9}syrzM%OfJ`(AI==Yx903vaV#}XMdQTq%;&-A(+QRgl%?}1GQ-g^ua=t5+9$*k zPbu~~uO=DrSz7}anrapWtIVxxHWAXhC@|d8UB$xQTxQhI97>O7^V$4do()9M2Z=T!lUamN%%SAwfjTh@Fh(>~hc?ToW@SBvMeV^A^|F+oOhwr^#&_?qG&qP!e-_hMdur2)Op0R{RaZuZ-}+M zL}QLQe&*&(e!>dKAUKy~5rV;(z+#9;Y)BewqiMBZUH@<;d@6+1YhNJo>puhVVy>FCa7H5j=)N=o8J$S%#Hdua2*72v3N(p$SK+8$n=+J^V)L4~6s-0sX u{7+ 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_auraprota.nss b/35expandedabilities/nw_s1_auraprota.nss new file mode 100644 index 00000000..548f2840 --- /dev/null +++ b/35expandedabilities/nw_s1_auraprota.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_aurastuna.ncs b/35expandedabilities/nw_s1_aurastuna.ncs new file mode 100644 index 0000000000000000000000000000000000000000..279ae96099e74379edcc4b871e906a62d86245bc GIT binary patch literal 38953 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 yjsB1wLRZJAv&a~;7?6#ow_4D7K0 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_aurauneaa.nss b/35expandedabilities/nw_s1_aurauneaa.nss new file mode 100644 index 00000000..6f4a75bc --- /dev/null +++ b/35expandedabilities/nw_s1_aurauneaa.nss @@ -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); + } + } +} diff --git a/35expandedabilities/nw_s1_barbrage.ncs b/35expandedabilities/nw_s1_barbrage.ncs new file mode 100644 index 0000000000000000000000000000000000000000..ef8e5765847d546cc28cf8ccdd7520badb496cb6 GIT binary patch literal 43048 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®MPNRl+ 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_barbrage.nss b/35expandedabilities/nw_s1_barbrage.nss new file mode 100644 index 00000000..b8672757 --- /dev/null +++ b/35expandedabilities/nw_s1_barbrage.nss @@ -0,0 +1,434 @@ +//:://///////////////////////////////////////////// +//:: Barbarian Rage +//:: NW_S1_BarbRage +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + The Str and Con of the Barbarian increases, + Will Save are +2, AC -2. + Greater Rage starts at level 15. + + Updated: 2004-01-18 mr_bumpkin: Added bonuses for exceeding +12 stat cap + Updated: 2004-2-24 by Oni5115: Added Intimidating Rage +*/ +//::////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: Aug 13, 2001 +//::////////////////////////////////////////////// + +#include "moi_inc_moifunc" +#include "inc_addragebonus" +#include "inc_npc" +#include "psi_inc_psifunc" + +void main() +{ + object oPC = OBJECT_SELF; + + if(GetHasSpellEffect(SPELL_SPELL_RAGE)) + { + IncrementRemainingFeatUses(OBJECT_SELF, FEAT_BARBARIAN_RAGE); + FloatingTextStringOnCreature("You can't use Barbarian Rage and Spell Rage at the same time.", OBJECT_SELF, FALSE); + return; + } + + if(!GetHasFeatEffect(FEAT_BARBARIAN_RAGE) && !GetHasSpellEffect(GetSpellId())) + { + int nBBC = GetLevelByClass(CLASS_TYPE_BLACK_BLOOD_CULTIST); + //Declare major variables + int nLevel = GetLevelByClass(CLASS_TYPE_BARBARIAN) + + GetLevelByClass(CLASS_TYPE_RUNESCARRED) + + GetLevelByClass(CLASS_TYPE_BATTLERAGER) + + GetLevelByClass(CLASS_TYPE_PRC_EYE_OF_GRUUMSH) + + nBBC + + GetLevelByClass(CLASS_TYPE_RAGE_MAGE); + + GetLevelByClass(CLASS_TYPE_WARCHIEF, oPC); + + GetLevelByClass(CLASS_TYPE_ORC_WARLORD, oPC); + + GetLevelByClass(CLASS_TYPE_FRE_BERSERKER, oPC); + + GetLevelByClass(CLASS_TYPE_LEGENDARY_DREADNOUGHT, oPC); + + GetLevelByClass(CLASS_TYPE_TOTEM_RAGER, oPC); + int iStr, iCon, iAC; + int nSave, nBonusEss; + int nTotem = GetLevelByClass(CLASS_TYPE_TOTEM_RAGER, oPC); + + iAC = 2; +//edit rafael + if ((nLevel >= 180) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 25; + iCon = 25; + nSave = 21; + } + if ((nLevel >= 170) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 24; + iCon = 24; + nSave = 20; + } + if ((nLevel >= 160) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 23; + iCon = 23; + nSave = 19; + } + if ((nLevel >= 150) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 22; + iCon = 22; + nSave = 18; + } + if ((nLevel >= 140) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 21; + iCon = 21; + nSave = 17; + } + if ((nLevel >= 130) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 20; + iCon = 20; + nSave = 16; + } + if ((nLevel >= 120) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 19; + iCon = 19; + nSave = 15; + } + if ((nLevel >= 110) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 18; + iCon = 18; + nSave = 14; + } + if ((nLevel >= 100) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 17; + iCon = 17; + nSave = 13; + } + + if ((nLevel >= 90) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 16; + iCon = 16; + nSave = 12; + } + + if ((nLevel >= 80) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 15; + iCon = 15; + nSave = 11; + } + + if ((nLevel >= 70) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 14; + iCon = 14; + nSave = 10; + } + + if ((nLevel >= 60) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 13; + iCon = 13; + nSave = 9; + } + + if ((nLevel >= 50) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 12; + iCon = 12; + nSave = 8; + } + + if ((nLevel >= 40) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 11; + iCon = 11; + nSave = 7; + } + + if ((nLevel >= 30) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 10; + iCon = 10; + nSave = 6; + } + + if ((nLevel >= 20) && (GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE, OBJECT_SELF))) + { + iStr = 9; + iCon = 9; + nSave = 5; + } + + +//fim edit rafael 2021 junho + //Lock: Added compatibility for PRC Mighty Rage ability + if(nLevel > 14) + { + if(GetHasFeat(FEAT_PRC_EPIC_MIGHT_RAGE)) + { + iStr = 8; + iCon = 8; + nSave = 4; + } + else + { + iStr = 6; + iCon = 6; + nSave = 3; + } + } + else + { + iStr = 4; + iCon = 4; + nSave = 2; + } + + // Eye of Gruumsh ability. Additional +4 Str and -2 AC. + if(GetHasFeat(FEAT_SWING_BLINDLY)) + { + iStr += 4; + iAC += 2; + } + + // +2 Str/Con -2 AC + if(GetHasFeat(FEAT_RECKLESS_RAGE)) + { + iStr += 2; + iCon += 2; + iAC += 2; + } + // +2 Con + if(GetHasFeat(FEAT_ETTERCAP_BERSERKER)) + iCon += 2; + + //(Patch 1.70 - if not silenced) play a random voice chat instead of just VOICE_CHAT_BATTLECRY1 + if(!PRCGetHasEffect(EFFECT_TYPE_SILENCE)) + { + int iVoice = d3(1); + switch(iVoice) + { + case 1: iVoice = VOICE_CHAT_BATTLECRY1; break; + case 2: iVoice = VOICE_CHAT_BATTLECRY2; break; + case 3: iVoice = VOICE_CHAT_BATTLECRY3; break; + } + PlayVoiceChat(iVoice); + } + + //Determine the duration by getting the con modifier after being modified + //Patch 1.70 - duration calculation was bugged + int nCon = 3 + ((GetAbilityScore(OBJECT_SELF, ABILITY_CONSTITUTION) - 10 + iCon)/2); + effect eLink = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); + eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_CONSTITUTION, iCon)); + eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_STRENGTH, iStr)); + eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_WILL, nSave)); + eLink = EffectLinkEffects(eLink, EffectACDecrease(iAC, AC_DODGE_BONUS)); + + // Blazing Berserker + if(GetHasFeat(FEAT_BLAZING_BERSERKER)) + { + eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD)); + eLink = EffectLinkEffects(eLink, EffectDamageImmunityDecrease(DAMAGE_TYPE_COLD, 50)); + eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_FIRE, 100)); + } + // Frozen Berserker + if(GetHasFeat(FEAT_FROZEN_BERSERKER)) + { + eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD)); + eLink = EffectLinkEffects(eLink, EffectDamageImmunityDecrease(DAMAGE_TYPE_FIRE, 50)); + eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_COLD, 100)); + } + // Ice Troll Berserker + if(GetHasFeat(FEAT_ICE_TROLL_BERSERKER)) + { + int nBonus = 2; + if(nLevel > 14) nBonus = 4; + eLink = EffectLinkEffects(eLink, EffectACIncrease(nBonus, AC_NATURAL_BONUS)); + } + // Cobalt Rage + int nEssentia = GetEssentiaInvestedFeat(oPC, FEAT_COBALT_RAGE); + // Totem Rage from Totem Rager + if (nTotem) + { + int nTotemRage = GetMaxEssentiaCapacityFeat(oPC) - nEssentia; + int nExtraEss = max(nTotem/2, 1); + int nBoost; + if (nExtraEss >= nTotemRage) + { + nBonusEss = nExtraEss - nTotemRage; + nEssentia += nTotemRage; + } + else + nEssentia += nExtraEss; + } + if (nEssentia) + { + eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_WILL, nEssentia)); + eLink = EffectLinkEffects(eLink, EffectDamageIncrease(IPGetDamageBonusConstantFromNumber(nEssentia), DAMAGE_TYPE_BASE_WEAPON)); + } + + //Make effect extraordinary + eLink = ExtraordinaryEffect(eLink); + effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE); //Change to the Rage VFX + + SignalEvent(oPC, EventSpellCastAt(oPC, SPELLABILITY_BARBARIAN_RAGE, FALSE)); + + if(nCon > 0) + { + // 2004-01-18 mr_bumpkin: determine the ability scores before adding bonuses, so the values + // can be read in by the GiveExtraRageBonuses() function below. + int StrBeforeBonuses = GetAbilityScore(oPC, ABILITY_STRENGTH); + int ConBeforeBonuses = GetAbilityScore(oPC, ABILITY_CONSTITUTION); + + float fDuration = RoundsToSeconds(nCon); + fDuration += GetHasFeat(FEAT_EXTENDED_RAGE, oPC) ? 30.0 : 0.0; + if (nEssentia > 5 && nTotem >= 5) fDuration += 6.0 * (nEssentia - 5); + + // Terrifying Rage + if(GetHasFeat(FEAT_EPIC_TERRIFYING_RAGE)) + { + effect eAOE = EffectAreaOfEffect(AOE_MOB_FEAR, "x2_s2_terrage_A"); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(eAOE), oPC, fDuration); + } + + // Frostrager + int nFrost = GetLevelByClass(CLASS_TYPE_FROSTRAGER, oPC); + object oWeapL = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC); + string sWeapType = "PRC_UNARMED_B"; + if(nFrost>0 && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_INVALID && + GetIsObjectValid(oWeapL) && GetTag(oWeapL) == sWeapType) //Only applies when unarmed and you actually have a creature weapon + { + // Record that we're Frostraging + SetLocalInt(oPC, "Frostrage", TRUE); + DelayCommand(fDuration, DeleteLocalInt(oPC, "Frostrage")); + int nFrostAC = 4; + int nFrostDamage = IP_CONST_DAMAGEBONUS_1d4; + + if(nFrost>3) //Improved Frost Rage + { + nFrostAC = 6; + nFrostDamage = IP_CONST_DAMAGEBONUS_1d6; + } + + eLink = EffectLinkEffects(eLink, EffectACIncrease(nFrostAC, AC_NATURAL_BONUS)); + AddItemProperty(DURATION_TYPE_TEMPORARY,ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_COLD,nFrostDamage),oWeapL,fDuration); + } + else if (nFrost>0) + FloatingTextStringOnCreature("Frostrage failed, invalid weapon", oPC, FALSE); + + //Apply the VFX impact and effects + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDuration); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC); + + // Totem Rage bonus Essentia + if (nBonusEss) + { + SetTemporaryEssentia(oPC, nBonusEss); + DelayCommand(fDuration, SetTemporaryEssentia(oPC, nBonusEss * -1)); + FloatingTextStringOnCreature("Totem Rage has granted you "+IntToString(nBonusEss)+" temporary essentia", oPC, FALSE); + } + + // Shared Fury + if(GetHasFeat(FEAT_SHARED_FURY, oPC)) + { + object oComp = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oPC), TRUE, OBJECT_TYPE_CREATURE); + while(GetIsObjectValid(oComp)) + { + if(GetMasterNPC(oComp) == oPC && GetAssociateTypeNPC(oComp) == ASSOCIATE_TYPE_ANIMALCOMPANION) + { + PRCRemoveEffectsFromSpell(oComp, SPELLABILITY_BARBARIAN_RAGE); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oComp, fDuration); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oComp); + } + oComp = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oPC), TRUE, OBJECT_TYPE_CREATURE); + } + } + + // 2004-2-24 Oni5115: Intimidating Rage + if(GetHasFeat(FEAT_INTIMIDATING_RAGE, oPC)) + { + //Finds nearest visible enemy within 30 ft. + object oTarget = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, oPC, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN); + if(GetDistanceBetween(oPC, oTarget) < FeetToMeters(30.0)) + { + // Will save DC 10 + 1/2 Char level + Cha mod + int saveDC = 10 + (GetHitDice(oPC)/2) + GetAbilityModifier(ABILITY_CHARISMA, oPC); + int nResult = WillSave(oTarget, saveDC, SAVING_THROW_TYPE_NONE); + if(!nResult) + { + // Same effect as Doom Spell + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectShaken(), oTarget, fDuration); + ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DOOM), oTarget); + } + } + } + + // Thundering Rage + if(GetHasFeat(FEAT_EPIC_THUNDERING_RAGE, oPC)) + { + object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); + if(GetIsObjectValid(oWeapon)) + { + IPSafeAddItemProperty(oWeapon, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_2d6), fDuration, X2_IP_ADDPROP_POLICY_KEEP_EXISTING,TRUE,TRUE); + IPSafeAddItemProperty(oWeapon, ItemPropertyVisualEffect(ITEM_VISUAL_SONIC), fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE); + IPSafeAddItemProperty(oWeapon, ItemPropertyOnHitProps(IP_CONST_ONHIT_DEAFNESS,IP_CONST_ONHIT_SAVEDC_20,IP_CONST_ONHIT_DURATION_25_PERCENT_3_ROUNDS), fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE); + } + + oWeapon = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC); + if(GetIsObjectValid(oWeapon)) + { + IPSafeAddItemProperty(oWeapon, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_2d6), fDuration, X2_IP_ADDPROP_POLICY_KEEP_EXISTING,TRUE,TRUE); + IPSafeAddItemProperty(oWeapon,ItemPropertyVisualEffect(ITEM_VISUAL_SONIC), fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE); + } + } + + // Black Blood Cultist, don't trigger at 10th level because it becomes permanent then + if (10 > nBBC && nBBC > 0) + { + int nClawDamage = IP_CONST_MONSTERDAMAGE_1d6; + int nBiteDamage = IP_CONST_MONSTERDAMAGE_1d4; + string sResRef = "prc_claw_1d6m_"; + if (nBBC >= 7) + { + nClawDamage = IP_CONST_MONSTERDAMAGE_1d8; + nBiteDamage = IP_CONST_MONSTERDAMAGE_1d6; + sResRef = "prc_claw_1d8m_"; + } + + // Create the creature weapon & add the base damage + object oLClaw = GetPsionicCreatureWeapon(oPC, "PRC_UNARMED_SP", INVENTORY_SLOT_CWEAPON_L, fDuration); + object oRClaw = GetPsionicCreatureWeapon(oPC, "PRC_UNARMED_SP", INVENTORY_SLOT_CWEAPON_R, fDuration); + AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyMonsterDamage(nClawDamage), oLClaw, fDuration); + AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyMonsterDamage(nClawDamage), oRClaw, fDuration); + if (nBBC >= 3) + { + object oBite = GetPsionicCreatureWeapon(oPC, "prc_bw0_bite_t", INVENTORY_SLOT_CWEAPON_B, fDuration); + AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyMonsterDamage(nBiteDamage), oBite, fDuration); + } + if (nBBC >= 6) // Rend, see inc_rend and prc_onhitcast + { + IPSafeAddItemProperty(oLClaw, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); + IPSafeAddItemProperty(oRClaw, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); + } + + sResRef += GetAffixForSize(PRCGetCreatureSize(oPC)); + AddNaturalPrimaryWeapon(oPC, sResRef, 2, TRUE); + DelayCommand(6.0f, NaturalPrimaryWeaponTempCheck(oPC, oPC, GetSpellId(), FloatToInt(fDuration) / 6, sResRef)); + AddNaturalSecondaryWeapon(oPC, "prc_bw0_bite_t", 1); + DelayCommand(6.0f, NaturalSecondaryWeaponTempCheck(oPC, oPC, GetSpellId(), FloatToInt(fDuration) / 6, "prc_bw0_bite_t")); + } + + // 2004-01-18 mr_bumpkin: Adds special bonuses to those barbarians who are restricted by the + // +12 attribute bonus cap, to make up for them. :) + // The delay is because you have to delay the command if you want the function to be able + // to determine what the ability scores become after adding the bonuses to them. + DelayCommand(0.1, GiveExtraRageBonuses(nCon, StrBeforeBonuses, ConBeforeBonuses, iStr, iCon, nSave, DAMAGE_TYPE_BASE_WEAPON, oPC)); + + } + } +} diff --git a/35expandedabilities/nw_s1_bltacid.ncs b/35expandedabilities/nw_s1_bltacid.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9e9d57ba90f6ca87327f39ee35136f4aca0bf4de GIT binary patch literal 44454 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 Y)0vZoIHaqpnpo4+s+pblUZVK_0Itb3LjV8( literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltacid.nss b/35expandedabilities/nw_s1_bltacid.nss new file mode 100644 index 00000000..ef53a16a --- /dev/null +++ b/35expandedabilities/nw_s1_bltacid.nss @@ -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); + } + } +} diff --git a/35expandedabilities/nw_s1_bltcharm.ncs b/35expandedabilities/nw_s1_bltcharm.ncs new file mode 100644 index 0000000000000000000000000000000000000000..60db2a7882b4c34ff5f9db9f27a8a379c0fedad3 GIT binary patch literal 44764 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 J-g}AS{{usMCr$tW literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltcold.nss b/35expandedabilities/nw_s1_bltcold.nss new file mode 100644 index 00000000..657f0fe6 --- /dev/null +++ b/35expandedabilities/nw_s1_bltcold.nss @@ -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); + } + } +} diff --git a/35expandedabilities/nw_s1_bltcondr.ncs b/35expandedabilities/nw_s1_bltcondr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..e8c357f88ef17d5575971e6fed0363a58664b051 GIT binary patch literal 43740 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltcondr.nss b/35expandedabilities/nw_s1_bltcondr.nss new file mode 100644 index 00000000..9d85f042 --- /dev/null +++ b/35expandedabilities/nw_s1_bltcondr.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_bltconf.ncs b/35expandedabilities/nw_s1_bltconf.ncs new file mode 100644 index 0000000000000000000000000000000000000000..914f4a12c0bb8c3f7509d56ba7e6deed7c111f0e GIT binary patch literal 44140 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
r(l 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 R*VAOIy|HE{^WK{%{y$$2xB~zH literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltconf.nss b/35expandedabilities/nw_s1_bltconf.nss new file mode 100644 index 00000000..5bed7dc0 --- /dev/null +++ b/35expandedabilities/nw_s1_bltconf.nss @@ -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); + } +} \ No newline at end of file diff --git a/35expandedabilities/nw_s1_bltdaze.ncs b/35expandedabilities/nw_s1_bltdaze.ncs new file mode 100644 index 0000000000000000000000000000000000000000..708985f1255b2a396e3aeddd9942c615f1965c44 GIT binary patch literal 44766 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 GivJJC1DhZK literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltdaze.nss b/35expandedabilities/nw_s1_bltdaze.nss new file mode 100644 index 00000000..68d15c70 --- /dev/null +++ b/35expandedabilities/nw_s1_bltdaze.nss @@ -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)); + } +} diff --git a/35expandedabilities/nw_s1_bltdeath.ncs b/35expandedabilities/nw_s1_bltdeath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c1ecd7d8d9773cc98a04923a7ce272bcf0b2526f GIT binary patch literal 43574 zcmeHw3z!_$b!K(|j{G)~th#gX3U`WBeeo6E?eEvRUH?!3MI+#%zLv?63~IkOT)Dvn(;#5!U|a zoO`P3R#!hHaQsQ%!uL(7>)!J|_uO-Dom(}~JLK+ObHPPDj`IiW7d!ZGitEG^4UNv! zU4y-;zGTleSMcq*D;>UWKHpj3oH%jfxa%Zhbal|zdCkF}b@3S8dEIG{9*YQFllE?C zqMz|5xe~6}2FCCvWB5{xe*m~4fwsm*Cw5hw|JkCwx?HPEe2&}YHZ%~{T7NIU4Sfi$ z{9OxXzt+e%VsaZdJ}A`W#xbV!9CP-1f`7coKkhKS0=MptpGBB6(3+4CmRMZA)5@Kn z2W?W%(?-G=sbEguk_1DaCn6|XzN#)rx6g@AUv!C!PBKk$YpQ#&w|gL&+S)%f%mAXv zb;8dQz6JA?8)e#8fMoiviKBys1CyD)bpAl5cyb61!j6rOOMDFNN^akt8txvvA~~Ge z*>h#G7nj}1!NLB%Bp5fI!9xD@WMI~dH$f)xp!1BkF{Y2Q7sY^YEqJ&hQyMy)$>oOA z#RHkr&V2_nBc%=QcwuxhmvIY6GR0zcG~<@I)!pQZnONXg*{E;DyOsh~*DAMA%pS<* z(>cF0TG*-(EqASP;hyswq~8817^v8M+cjWVC)i z*3i)XIYbl3`JuFuwr^_+cz}$Vl`(d!2Ms?Ur`92k_GELTJJJU-;$IWogyGC?V4|T) zdQJjE{7v!LI@pv56V2uan!+O&sIQJUF)3jiB3ED!@)LX0T*mQ=4kC{1k@CDG0MoO= zyEt=z)Ip=&Rtdt0E3C2k+y(gg3OlwfX>zHh`Q3a6{YcsEV>4{Hxr&-vH{Uni6{y&^ zl5LCB^F8sHNo(~K{W5!;qBeTj0=2FnQ{nDJL>6i)fBg=@;5?5(Mx zLUAO7Z8u?SU8>wN*0lzbA~0z8<}$@>7;dq^HQ91qWI;Ccq>H0Az3G1+3Ae_AYwRmd zX2XDg7zwz}0&L!u&ZS4Q`4G)wBxp!Vj62K&A;`-VvX-`+_jq=rv3Miq?>#bCHcYcs zWSQPM)M`xch$-Ph<)&=U$6Ff$0k1v)%7hnMrlDtjlA(&lcN2mp?h!}9DWI~R6@za%@ zm?>BjVeAo;G{84#0-fri1e%rN+As)5gb%U$!9b%E-%8Q6<#2H%Rh-OcQfvH4av88V zE4VAvrCp~}*NH=uxm+oo%TBZ|4aKY!ueJ!XO|0fiiU6Jflo!RA`kPF> z%ZqsZecswmd4V$hS=5B6vvBiGhb7Y?!wVzlzgqe}Z1mmetN;aF#r2PFaQ7D`^P~Q{ zMC_U!#p2Cp*tsFbdT0+U+qetq1my9DdMw6n#V8Z;lKqC{_lqp}y6Efu5lESgK1hQ4CS?NoB^xlL89j% zr>~lw8hA#e%_OuMrd;}!_{Rv8f5E`SCXYiCn5F;A5&iG4Pdvp6iQXj=DT%n5yui1a z;m+62%!0O~zupIuOJx@(7QsB{9a{jwywIf4-xwU)9#@Xw28jo3nFDxT}vlnHE(9@&SO%POLHp__MMGZ5f zGl=-pRg9me#(?MmH==7ReqJKmHa2)r^Yu!^(JSbVsvhC!fJ)2~G-4-^-IDL3r(W5V zy~>|nA;eU(k!NYXeDELuDiB|xV!o>Ce$nNIR<@#i9c&2tGjvwFLoo%FC_X}gN?XBP ztHkncCkxdpyKgW#jrGr zc=~@ZFYq=eEZ!U!zvjOhY(NN2n`9UQi*!+(eiQf(G~t(OL9dvL9+$WPl)%}r691V2 z*-kW=>*?GbJtBNJjFL=}SDz}&^O&0T%679RNd@&%d&X$)b#lGMmoRQz{n?4l`JTe)QHu|w@-2eHa@OP3F~Dk2fLY%lm_%}M z3llS~>;L_9n@4M-=CZjIytzMQU`t)bzl^!x{j*4DGdXO`6ExXSF|ZaE@GsM+^Dn^g zqIjswN{BIIEA}cgJNIMrId{!OW|X1e8PTTN5o8M!h)n16loW`(9OFniGjQuCvi4)7 zu~%Zc3G3Vwsd=_}b;d4Dc(aKlILj;bS4+`6vgO;nL*FbjvZD-QEI5x|fcQTx0W7n& zr6-09lOtn0_xEKdN<}zywjhIuaRnA3tmWA(gA7=7Fg|sqj~pJ14APn}*t=@bp~Rul znL{(k@Xnr8Uw`+GodbP%P`WiaFqBmEY$WEx%kpbMscFrA2z~}8MjeBX!H{NKHExpP z{{X~GiJjibVlk61?MUY{lNeU1{(QESP1C}(H|SC^rH zSjw$0SJ-pZ_J5>y7I{7=A1|>kJTU^on8CB;TkQJWO(TSmG-I>>8S===?N`q8Qmb=R z@nZEz9fB1RTLwq$T82^0-ou);h*<;G`7Q2XO$P{p$gHdgIQQHj))_xy5m_rC7Q?Q` zU`8{}Pnni*Ys?%1kCf1W?>$zDs&2MH1PiAy$u`s?Xot5ANS^W`}n5JVO#8cSXq^_o$L+WZV^4zYXvNpaB zZI~fHCDIov3QXX8U-q?a^Hio_;;He45Kjri)1L=<+DrbqNXiUsq*Zxw0-{VaqO7zm zUk1)o))j^)9UTEQiAaq^i#8=B8g@?EJ3kT>?bpX+kc-aGosxn(Z>a>9s6Cpt_=AGu zm4sr|IWh_p`fP)jsanPGN83^3Li3l>-rFl`aG4Ouz=?dwGR+3!gd$^4ex;IdWnL2m z>zwq#4a#Nfx^!B-s=r*=H=tCVZsb+;Flsy z;~y0NGW-fH!wvq9$4p*(t=Uc3&oG$y2}ApPSefb^7jqjRt-eSysqdV{;n*U*rpTH{ zd6Eaoni5AOCrEsZ$dNIXSuj4+@sRH`H9PNp-tW8ztVzYDY_S{@5zg9Af}DLbn`4~{ zt5*bl6G>5=8I~1p*0E>j_SClY_;{wcCtDgB%LF}baU9@gpKWtA^~Em{^`&2A>NUl2 zXftMyq$!mUewq;uS4Ie~XZ7bNvIoXW`zLd5U-k&<1Iw1441ZA7P#s1y#t8k?qNH0J z#<(r0O$hHcnIRJMmeC|&$3yiE5imaQ+O?_esqNSomCDYc-fcT!wB6leiIaxj0uV{ zD`(vMy6>|#QVjqeQt&ooXe>QixOo`mT!*Oik;Qn<$W#wwsstMJ{i|91;yY1mUha%o z5bi8N0>aDi?_aH0$yS{|H;&=)t!OHxRH2nN&$IhNy3?hYY=FRu#8c}O)*a*5aI@6x z^P<_242ex1>r8l6L)UY}!&W`IV9dt8#Tz&6&7s?WmH@*~#ASbnX+R>r>dqWJh&P4J z$IFF$-OPcuRW;%Cv_n?C3VUP)Y<_g-N3z%gVO%=QqOAHhHO%;-FugK~1xl6GunBtE zgKa%-%5sx&1XJ3su-rRlmAOPcG*Q)Ix5Y3Iv&dMHzh z0p^iAV&Q5<2<@Wl22b0D3}yosppGlCvsyd}Dr0I`d8zoUA1O?Gnkt+O7cTdc{gtPT zpj?*L^teJwsX>FR5sX878=s$oS4`_EV1s%8_QKJ0t|U9m5Cbk}QksKC7VO_J&N{9n z%c@Iw*9V3W#aE$(aLw7>7tCN(F3n(c?gVUGZyJT`g&vf_68N7Eb*SRu~pWCyG69IC`FV*nGxu-cPyPB$pi~2IXpn8p`E(TfaYz<2xx3)7qPoN zNJSp3dd1<{|JhR$d*x?BVsjKbc}@cR*cY({H=Ya*HX!us!ri^SZQpJ6U##S1K-_kH zCY>uxP7F=r_=2SmjUT6`jTIjYX(Ni1GOJvLoPhc3K~eE|?_{2y=)HsdEtj&9;7DpK zBUR2H=`A*e`OuJRwsM@0@?8_WS~_`lV>O@RSYO^B(jeQDiO4AZ5Ml?h!xI^MN+Gn8 z`zJrhwwukW?WbnW^B%F83CilMVKRIR`V^)@QC2o|z&E#IV=pvfrCp(?dNYD7H8plg zB*!#^2Qz;xXP1J-nV8xoEY`uwF`rT6=ufC>nZ>{HRW~*Cob7z0Lh#`k;NCce=ktHe zHyXW%SrdViRS5CiDps4~f$k#%?lkAO*p{;PF`XN}b(>=hEg*rvGIu;8)9$JdtJrL+ zCyg>*V$YCA*RQa8Uc{s8M(qn#HVuu86$&}}7uUMspu>q1Kl(cNKxD@KShp#9I9G@> z0jvWU9Y4d5{W+0|JrKzJ0M=`P$@4H9?2`*AL-*lr7~v7DOo69#+22J5%L6GM47?+glUW$7!uP#WBm`IdG>1C9AgwORS43Kqq)S~nh}cYVFWlwTktt~9 za-^HA@|a7_q60@8Q3cvRK`b$ERCCKXeBMa*XI|r*V2a5hrtvV~V?T~)@^u*)n1hiC zQWi5bxo<)S8EJBY$D^F z^bd{uT$s{of4KkfDJHta)*!o-cZgOQCd(LibOX)?BFxHhhI&d`R8;`k^_O1uuJpc<(ae5O z>q(erV5%_que6bA4slHLAR|c)_J*(B$kjh7#%~JQ?snX~bq0l_Bk^((gotZah z^%M!;6W_(U!qfLy%dbh-i`Uu0z?g1h*M*{J&`?*D?EW7332u+sUZaGLT4Kj(@ zExXVXH`ANlvRgoAM23m1IUCvu(gM<$*_}PatK*$nDvS$y1g@<{?wL+^c*=qAz{iTe* z)#g=-2Pd6VLpsA-t<^?45aM*XnF%m~GjR-Q3WxuEJImGTKWpMv7_TC`Va&D;0^5zu zE~A6_IjOF|#OrUp!%W=i8={4DRu>bu)Wd|)B5M!9<(P%p*2JIqO!&*}NW)Qt;YUuH zp~7UYMD>r17kH@~e+tL2?tN(I; zEG?r6UiMIoF8jBX6_MHP-8I^KYP456Ca(1R2wt=+24xvN7qPV4<7syhFTn;fBgMi< zx|p9F=gC1Q0v6v_FGY$cytKxeP|GL!H{UV|iJn^(vn* zr=uy!!CpLx9f~@g;x7i+z+bhPyxn8+GOQ)Q=XRv8s9ntE=*S6|1DBmSp|cq{*E&MA z!jb1JX9kX%XfHl~%CGp*0rg#Z4}|6f&;zSicBn4Hrr~RnQhHtp3r`&w>Ph)U%Hmx{ zK=fnZ#hFdkp-vc7topDyJ=cnNj#!QDs&2EdD7zENlV@^EXSaGfTUS|U{=t?gb@@hz zP}5vbDyTCufBKFbXoQID7MdZK2OkU^m5-J2Odl?a$CZd z!ei^WYWx4H(OxMmD*pRwzz@}E|8kA?pVeqzSEC(u2vy}rIYia=@6~AkpEcTlT%-L+ zjrNr_+OMnDPTQB%ZiRZ;Z<1XqJu!*V#=g3^s;{E1w5qOl)@bjq(SBu(_OI7y-&~`8 zVU6}pHQL8&wBJ&reQJ&Ny*1jOuhIUK8ttfA583ZVjlFFBdA{{|p7M?YAU!js_E(iX ziCVy+Sn{o@oGa6V;i`1z)}{kdL({}5(7|#@BXK2p*1i*TX4IyG?C$N$QwN=G|4MY= z>Th43j@o)d$f!aGPXbZ6BmP!TjDsKlKwciVHngLPG=q0kuZlo(p$-zg0*y&tHDjs} zQ<>h9ggW6eT6N6kU!X^e9(s)myQb`l+$)t~+ROOu-N)j(jPV7mVUc&{ExZpRBG-6QGTWX9b(xO0a) zaZ?WKkle)KT>2 z_KKbw8A=rgiS84fLQ~*l$`%73=G8v^*Ll}q|Bmj# z>)fl7*D)Foe8q|g4Pa_!+seWx_*b4k3=IvWdb+oF5A-He+xu7rtUTCuzK)!+5Ap{@ZmNFJ_0CZ6V=vOVVuc!pt9szoj1-h&f zXy^$WnYK}m1Zr0Ihm}C*lv8c^7mMniN}wGPpx?GYzu|*6o6RZlj*BBe=?OQ#1aN39 zyPuB1(iRxK2{tvD9+5gL^=c);ikI?Y6%>bL8Mj7I9_|hD?kj+k^*VE4%kpzExCN5< z852>EPlrLoS~kdIL6DB8!XPc>j3w@}K)x9U5k1*d_69*Zi(!z6`iO+6NM-qA7)0F1 zq7r{2NTnli*hma0ZexRdCkWCx9;VV+E`IzI7Dzq}A|7T_d9MX>I1Dl^f{M3nXX}4H z3^KJGB<5{}G6)`s+YV#T(z03dU5l{;VG!BAvSf*U(gGO^gG5#Tq%4qZ7$mClXO#tV zFbp!iTzu!}7RaG6NL1;L6#A-<6~Z8G5mfHBsN56=nGpeEtyVf82!qUv0Fi2aFotC7 zP=pn%5)j?F@lvhed$VA5IzX;Al#EXwK`F!u6X;~q(k>l3&Xb3}1w|pSrshCKFN|#~ zd&`FIlyaBzSYx=wh$Ih0V#Bq4oXm-<>!YEFE0mB6J$nmU!K=s)vJc()IYaDD^UO`z z*J94EfsL8;#@0fLVI`OkBUtJIbzeR2wbb(t5>pRk@sF7pQN9`elD`>_aQ%sxzwG8^AQRSsouy&Jj2FOD~PV5bY^qiP zR{!pDs`5Muk-#upGy?Bd{gS|cvxR?QHdj3|FΝq}t8Q+T08GOo>US@2zdm`u}#m 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltdexdr.nss b/35expandedabilities/nw_s1_bltdexdr.nss new file mode 100644 index 00000000..4ef34d8b --- /dev/null +++ b/35expandedabilities/nw_s1_bltdexdr.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_bltdisese.ncs b/35expandedabilities/nw_s1_bltdisese.ncs new file mode 100644 index 0000000000000000000000000000000000000000..8580d0563ad8f0dd902c472abd2a162c25aaa101 GIT binary patch literal 8399 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltdisese.nss b/35expandedabilities/nw_s1_bltdisese.nss new file mode 100644 index 00000000..6513a061 --- /dev/null +++ b/35expandedabilities/nw_s1_bltdisese.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_bltdomn.ncs b/35expandedabilities/nw_s1_bltdomn.ncs new file mode 100644 index 0000000000000000000000000000000000000000..ab8a4bea8fc385e6679f670c80f976ad2bc2e957 GIT binary patch literal 44938 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 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); + } + } +} diff --git a/35expandedabilities/nw_s1_bltintdr.ncs b/35expandedabilities/nw_s1_bltintdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..33b3da463a7656080e6315e2e3c2800b5c32ac2c GIT binary patch literal 43748 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Νq}t7l z+T08GOo>US@2#!R`u}#mx(4GrtJk9TS1&}Wx0A7gQ|~BEHVXO&pM1x7JzscbZX`CK zYsM}*|7e}EMD~wM{UK!y-g%1j4o-GdbKi2dC_JVIza=>AF-wCBLYt??FM7#Q-a_>t z)0&5nztyWinj=>sb8jR}eH!XX%83dc81+qycg*pVLi|zVvsPiQ=kbohR%fbW0jZ8r&ZfY9npQX}9 zBclG)D;~b$O54Y|KMnoxfT7{Ru4UW|)A)vs9g*-T57?KuHWF|%1KPW@7RBCO z1CfBDELrb)nJUOCHXEY=oj+%a_RwTe+}l4C33wL+N~vEY#oq1Rk$~4ha~EEdJDkI- zxZRv_0e1q03#er*=H2dziR@9!Gd8*`iTD(iDqy5Guejz~^QN@uUQNkYI8uXGbq&yP ztrK^G*;tH){7cgbuI8QVn8(nxq^Xtu&K%@ku)TFfz<`i>NjwNKLY+a##tG2W^D(3r znH+y!vbtG80$~LINGm2Gj(G|3Vvf{vgaR`GdU_=mFLqqqz(2z25*$`YN_Y6a>m=4V z9z8ieDY;hjLf}di*MH1R=pZ8#VN|bkv@fA(-#xH9+1=B>qks6iWMB8r?kf`b_|-N% zCK#e&_pYZ+<_ip<4R^ChngMhz_66YQcfan*6pDBoX43dba%cq0OPRgEa$tg7gi*k} z_-WRe1E&rz3ZLz=`rDK{4)18=As}YE3{@vv2KA396koYr?{L4U4;GZ*7C!K{|*qK+e>8QoM$)?VLb=PE5=Q8WA$=xxTStvD= zyJOFgj^mUgR*?6ojm;2&DyWeROrJPFrQ?&yZQ0bp;9E${6fxe6@2BvD^}hQ0ZHqR^ z%tmxz9r}EmWTufNPL5Bp3*K{nvVg+95ik}Mkc`9{<}UGm$pAF+v6tn8hf>N}HyBzj^ITM-2txm+%z3=u z$Lg7tQyzBwNb-jrS-ky|q)o#;xP!K51-*7>9&ho?7dTJSxeNSfcK3D$fa-ZAk5Wng zpa!Ny$#H?Jgzis-c9|}!E~rC2hHpWZ4wsD@#i#E?$P|J<@b`Jwu}bb91?@$7{#>7n zBE{XkLx(fD73M~MckfEHw~|Pi9DP`XKWnv`Iu1(DmH6&QHj6Pok7+^qo^{T_cWVihpRHv)(8{CEY?aW`*v&8G{8uiKqS@}t{p24z7kVdH=Q zjBF8aVo5dibU;h@cr$kV(5(f0e-4#^`%{zYqv3wXxtmoc>@91*cbV) z*%!fLp|{Qq*S0IVK;>srnXr7E@&2Q;W+%%P$ z7|su6^Tp&^@3;iaxPeBJ&?lDYy((qF#F5RX2Vgq=oT9^FSLYos1lsRo`%>j)oy=9v z(Re=^LtA6Abw=($p}Wa@K?3asuJ*-PvC_D$msRuQG#nD>Gvhu!jG4u(VYCC zz#;A8^%LgV#_uZ`u%)8{+(I@Dj0)fU33CQw0YBrXfwB24Ar7*IWS%7&0n+KQkgTDe zHE2h5%{ZIQ6Ur{V%N(>y8$PG%;ys3POc#0(enS)`$3PmzpjY;Vr~OV%{*>a{F zd4um#0^>1IHhkhzN1%7j5~V@*S@o`2qBKS>h?)*rc+G-n+V$35vmly&rF9pN(#Q#$ zH(Gb!C3pQTR_1r3+-;RTZRPCUa(9L-1N3gEx%;YxccI*E`+MsyDxryonSX8F-6VJ0 zAGhveVorTK>`JD!a<|ia+QIyyoR<2|y3N9{SnhTeth=bpr@piITX#{9Pj}~Rx9;M> z1l^r$FD+3|O?S;}+*J?wo+jO$FQbm$#W?}KE1O+@jslh)mpa(B^x zweDUlcNafEk+Fi70CUUJoFBbK zJ&-ie7x5@Ezqc;@J^u?RW513PT^%JJBD&0u>M4PQU3Uf z-{#9_Y^?a0JhZ}0BA%+ZOmePgl6Ex-p6RhkNdDh?iifQh|6#Mz(XVBhRBwN7@g5Ir zgrV2{atvL~l)r_A6r5eM6HSr%6%Z^A%*9ul&$)ACHYtkxKu~d{iiJ1Ot|_J-^3uRi zBrSf!HY;OAB!!gLRipECm2sX>G3Y5c&jwo;${%0ZdEhA-S(J&>kn9U?tei&{{p>W6 zeoHm!Sr6g?hr%8(|N6>WSor_WKrI{&Yhm7SWi2fD@foOvY*-6(2P$h}{y&_7S{M&& zVb1nSIdR?#r-=?~$%(%k&WW@2O^iAc=oP~~&8_DC-Dx8I$>hX)!XD7It#Ta9`P(y4 z3!e#VVb<2lTA2O)Gf)fnhPBYSv9cDr{^~T*LSMC60?)f-Zub%!K3bC&up!2K zl+~784P~?-RU-ddTDUD77c=QyWMx+l9bZ39bWqDEd0%*xY&*A-?CqzE{cDlE5SD$$ zs>(TF=3_Nk{#UWd~d_VsFVKwEA8e|l-*6Jag1pa_-MmMXnojTUD7 zaZSE(dW{FShqcf=uTnN>{m(V&;8*VnwPb@_I2%k~RM`Vs{>y11{mEp5eAok~&8g%8 z&3|+T>R=+QgQm{Po-q9@XP_2t3TvUUwUQ@H`|@d`gIaRIo#9;2&|XRQrqjj#waEV4 zVcF}uD#_mX;2C81FNS5W!}wQe7SM1e=D$0_ksq&;|LRW{|38_L@ZX2EfQp2QzEJnY znj+y>|2Xnwv~YJ=3tAGV&!56qJg_yjpz>aQ6i{)OH}M#+!D&h+Zplm*lYVJjunG^g zr&7NgTWvl0+~Yl?Tr`C8SiIcBEsmw#k^J~Xelk-`yZjm;?_4-POzt|5OO&!Hdd=l1 zUgS&%)xrjke=u{-!f&(*RXtdqFil^>>ahb?3Exaq-d|p*f8)) zCgAkSmH3M%b@EWi2D_bs-$$pjm>GSBjw|W)#INzDkHG&Zf^09tZ$|YGmC}g30URut zG(`a0?;BJz;0iFUSq{CurR+4XQ;ey8Q6 zWU0Wzec4K)^Y5l`aVvwPgv3Wv?wGL32}6L^{!nakjdYpUYeL<=YeL zG*G|zi75_{!o&GBAHUP*@mddqdUY1wu6g>m<98>ZXg>f^-#`&i$3}t*rG-rggTvBw zXTb40I3GfjYJ1?h=J=hw1NpxN=aOCwa=@Dm>$@@&*Nm)#xdhd#YcT zJE(U|Qr34zC~-Y2Wt$pndPUX+OV(&cFMFd83duatRZ=L&4j#CV-N6keCfa|1=EV}Z zxWx%X*dkj)oOZnHDSlS?lZvxdVl;j`W-`Zo3D!WAiV<5#b)M$;$c|%y-4CI2ThPOZ>^NY)s@@;1ha<@{xrHB#Kq%HLR zJHJYt3$EJF4z-Ka5}ReDMwA2++vc)TqoFy8$y$NGr){*LQO|B2i-Lvtrmy4^b0kp& zD$y_Z2AZa%d{4;&eV5EyNTCs?QPAl)e*`Y^3Pua~vO3Sp=kYW~>Ykx=4jyQMufW37 z#?8j-@EbO1l3BF8&p-#|(t|Ot!kHsDW2ZqwsruB3l(fcit2}-SoRN)tg|Fw(gRS6q zu*7f5sMsjY)!o>}VZ!aS|MG%(BE_M_Bux zbMC3CTV35f5;*>(FYtX+>bm#5&pr3tTjy5w_YAtb*IsZ@x8wZ&UoLU*-!#{WC+g~* z>AMDcQoYIUYp>+n^Hw>0z5IM

ZMO#E`RU@w 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 L%w*ns6UF}rtVg+a literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltparal.nss b/35expandedabilities/nw_s1_bltparal.nss new file mode 100644 index 00000000..e4a6b59a --- /dev/null +++ b/35expandedabilities/nw_s1_bltparal.nss @@ -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)); + } +} diff --git a/35expandedabilities/nw_s1_bltpoison.ncs b/35expandedabilities/nw_s1_bltpoison.ncs new file mode 100644 index 0000000000000000000000000000000000000000..d7368cb10cc43bbee9c9b0fdb3a79c43e4224f33 GIT binary patch literal 9323 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 bNe%L{3DJMV=Ei 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); + } +} + diff --git a/35expandedabilities/nw_s1_bltshards.ncs b/35expandedabilities/nw_s1_bltshards.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b260bb753ab58d8b636ee8d437f39463809b446e GIT binary patch literal 44316 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Νq}t8&+FT3o%z{|E@2$ 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltshards.nss b/35expandedabilities/nw_s1_bltshards.nss new file mode 100644 index 00000000..1b96e2bc --- /dev/null +++ b/35expandedabilities/nw_s1_bltshards.nss @@ -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); + } + } +} diff --git a/35expandedabilities/nw_s1_bltslow.ncs b/35expandedabilities/nw_s1_bltslow.ncs new file mode 100644 index 0000000000000000000000000000000000000000..779dedd98bd9a8343bcd8e033be81105aa365070 GIT binary patch literal 43758 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltslow.nss b/35expandedabilities/nw_s1_bltslow.nss new file mode 100644 index 00000000..bf4813a1 --- /dev/null +++ b/35expandedabilities/nw_s1_bltslow.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_bltstrdr.ncs b/35expandedabilities/nw_s1_bltstrdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..7ecf22e858ef3a75240511389a587fa8305f6934 GIT binary patch literal 43746 zcmeHw3zQtyd1iIbOPU#tW=5m;gF-?e2?>w{0?U%nJX)wh8i|=f0*u_WW?Gt-db&kV z4=r%`$=CUni(yRn&m z#+&6zxMDwI3~w-oFU0rf~s()Jt4sUSYspgtM&KN_o5GRDSxj7=z~r1PQlK9|4O7p!)pyp;5ioZ zwm4KPfI^6M!goZD zCRT}(_l77{{E!hI6?1@XMyO_qgVuA6q91P14grejz?yx|B~0DqMu}~y-l6{9!9;3X za(ILR!4Gh)kF!8a`4+@0cc2+xLcfmPlShXN2d6Rv>HNV=@x%}ug3mQMF7YwEJF#O& zYNU7QvcyPgSKsA{eq8n>hK7;@32G&KI8I0*e>U9Gg{cW(CvH*Na{-t)LyXk3q)+7Hz+{cuc${*hKCaXsWI8BCkXbIRWzEO zEM1R=CXI&J$T6fkorogXVq3}g=EV8((tW>8JBLPRbh8^r=4 zED`rzB%j_-Bl9`V_obDz{odw)2T07Uim_YWZ}VqNdg@_jI@d z75hfK$!lqHnzv=rrQ`sFY@Vb5pCp-PevWk3zKrQhmV-7}P6)w_zd}(s?OPVEX?wG` zq=pN{(Ga#hgsp9va?4oP8AwXepxvL#6tiKtB?8xM%XNVT+1QsZj@k4&eiR9})`Dvq zC{AU=fPWMTxZVP6*`3a%$Flhl&0-{INJ_*V#(@yzB??(f+bw%NyHPA&k5O{3%rzQk z*ebG2?;LJ3rgy}YaG`QjHvhs%2}6USCT7*NUqCbOyD(Ngxt3^NKk09YTl?0#WwI7uw)<4YStmj6A*L>@!(zuS+K<@o7{&>+gK zE8E-_Pbm@Y{WaQesos9^8fq`&uv;xeEdhHXdRgTVjicvfik_wqKo?zs0sg9?!Q|j& zm34Ot${+uz6+F$!d_G;uK<+@cY1;rdc~NF=WWFY6UYSx-I}&>mJBC%g>{pewCpmw8 zye6t=gDwisU)sP%dk@nIq}&cMrq~AeL0`v0GnohDoziI$0|T=?E|A5YC2O22txuR% zWOVKYoIUPIkYZp(f`mO=hA7AkpF4 z$z4`*SEx(7c2L*J!&A9jDV@tswk-?gxD`Htb3fspK>+De3D^&2CaAy3OFyQ#_fYMhfHba;0(8`J-EUmO=YxVS*dGQLIY7Lo47|`%;#0Ep$``+Bb@n z22=0xGG21PTiYowP^LeMniO>gZoVPWsv*M*BjVE7h^qi29|Byg>(Y)_(MIGU}xo*p8XqXetz8AyQq*=*e*8rVwYoT z7oJQv%aWJb(wrQ)QoK15R8TDEw3wm3&4K|X=slL|k(nq0*zk{Qi&*QG5ot3?w1z2{el`441j@f;U}BTw&?IK*|58N%d+QTVu|lGEh(t;v zZU!&#ZAQ3rwKKDz?dY%ff#hP@43b?K4Y^3An6W;>&paSs~D&{L7nD8%p+|bHal&`@C51gr^+HHy{ zs6_D*N>thk=Gr8ehxF}t1%gmc;9)q{E^uHnxDTP57g<6ZjTrl|FpMSoE0W1)v1Z z##Q*w1Y{@CV6HnD3_T)zH)u{cA7B=E<5_?2@JMnbu`_B^+u$h^RLlm^-zgmqTc=IN z*ad+ghIAs3HPU_98|gL#M!J5?8OZ{GsMM8d5j=d zH>u;y$IXnC6Okji?P;UA*U0sjT*O$QO~RVI9C{2**#{yK=au+!AaRtqBo`LPan8Kl zn-Etdzxbgb`O7oqRT0FmK*zLElwmtveL zX9aHkMAm+cH1={#H({N-A~nx8ug=)T4c=%X6Py*5`m3dA9NGE}-l1=i5!q1&5ev>E z=OO>kXaJVk+tZUHg{jf;T?YoTlcgdYI$Mw+VqAem2y1x`%OC-Z4#uZ0_mRVcF@vE> zS-Ji4`QFs(ELFT%JyM5YMZ}iih+WMvs@c0(vlcNcP@Ui94%ToW!L2}7q zx2mYDjjuo(Cgi6@`a(s434Gs6zP4?i$`njIHN6nxslo8{=RuzKk$*0hG6NfFRbHHc zC^L*Gt1Qcxf%A}cnc+#JBY>tMQX|o#O$&*Jom2MC4+cg1_3;?wqWjY)rQq(HD}goC zj;5`CPy|x3>Kro)llp9fm#JFC@T2XhaiImvXz%T1HMk52WZ;H;$TBSk;5}S>a|~dw1rFBjM*#Glu8Ic!3akxBLvs8lljT)!ST|8shm5Iy%F_+WlK+nKcs4?4x=;1 z2>sNeq+1)txUHy72=6wT5Q%xqXcDmNf%-xOjL*M%U1~>a2lhp!vU9k9`z{!5Pwx;* z_q>_z@(;}S`fe2 zBt<1-l48u7GwyrM_gNdMCIAm9c$+yqo*paQG=g%j!&LgnVmxPLs)sRE0tJ0?4Xa;# zCu+^hoskQ|oh3;?cnSaH8pTSs>i)TL43BR`Q)x;ST50n*yFa8mU5d#D2&_mvwM}E) zF@8-q%gjD6jSwRWq*fhKq9{C z&Ky06H-*i|%7uK*jDfaQb;9Xshpc)9_Q(p@{OHY(X0ZjrxHQb7tojx;%=n=&y)ub~ zN|n{H8G6~P1>{+7GLB%%@D-MO$E-4!sD~!1I_$O>=3y3z75Qrx>hNW9qO-R!-dUkJ zy*y*ms2gM+xg!>?R))|nx^D2aZOC9WU;*m55<6?elb|xDhLx9!&#IHcw5O=T$#CIv zKiOY-(g@0BY0Zx*q?8&o${N8qw72p3ad^dyz5+Iw59}x$P3KCo!wfOta%M_%$jE~I z8^&43m1J3c5$_qo5Tf`hl#s4@cK10GjLM}6M(1|Gw)dw|xL)W(8B9(p6D=mQC&%Qu zca$+%fshUJ+X86bmW+VL zc6JfF+e1|3!Kzmrp8cOWIk8uLG9)%kgUNyhq$WJrT-PbMN!`hMgNVuuGZ z_LM?sCHK#MlI=8`RXa}3xzBmnW+o`BvzE#5E$CC23T0W@TL<6VijBQc#M;~a)4dTv zmYSNoB$H#9!GoDUmV(q^aVCa#NsD!`g26)>HIDwcs+RBnt*^T2q33Mp8Wn;MK>-8Y z9jEks?vMFKllL%dGH|jADV|%!YSTQ>{bayh<`@~li}|NZ_xG9S_T} zyZQqvHk;}Rql_2XGvv|r%dDOs;?Z@J_Jt~&heyW?g&h5hYu#|r;rQ_%e1&@;Gvj`& z*AzXREyS4s)&Y!;pW(;;oXEuP3(Wig)^CBy^DrCiP6pE*2t#ea0&9q%_AUmy$flOC zz@!?(rgj$V;+Hnq9t*6goSO3!27BBFOIl!ZT*jj2Jj7sk*kFSeSW5)8-(;|BY%m-v z;9MdGm=*!Hox!N6i;{xOUTl5Oy2P~ImY4zT)ct)k8lo| zTB9Gg%`t`GzYU+7-bW+w&P+~5VXz9{_eznFT=CN!K=qQex+GtbY0V^E>dHaHW{P{^ zF0YPEK`WOd-Cz}$Tx=E{INFFR(Bves#Jo|>E#vTcBiWyRm2ZM6CWoBHVZg_J9MR-! z5*QeRF%zU&%<$CyNeMFE)?m>X3q0PGt)6AF3K*tT;%sN^(V~N)R+rnMCqD=cb*T|W z@fd6(aZdV&#(geKX|*5j-+z*cF10ntF6ABgRffqj#vR>&vw;Y+a*Uy#lonMLKsI~x zaQt|uDIiyzd<6!x7Rm8%h{;$Qy9^!vC1}vbc9kuC84!DE2cYwUwd>Yjc+rN7FL_6L z|L9oe0I2mfm}g+BF7Sv*@E*QchUBTfQKeS~t?oU$&DN00N1V-8_ui$_=oP8ZJh74j zJy@NYH)r(}3Evan5eC0#IqGK5QRl%?d-vmLX*yq`Q)>MPrIP2aP$Oj4^5gIHGkTD; z9ER(MjFg5AcGnJa*MZFBXfb;P2OwoA0=lv?>#)CmoYC9+6!!Q|P6rPv1T8g5_$u63~zSJ2FX6mW5DqkyT-lL8wQ6vt+5T8)*9}<{hl)GbnVU*58#Y2 zjTV#R=_65x*ipnO?!t2JV9wyaXgeWHOisei*|f@H!kK@9Q4UA^ zojFoK)n#I0e_GiUH$TLsoNll@*~@GH^Dv7GiE3Mz^)KUwsL#BdLe+7G zc~T_9j7$L`xNjQguE2DRf~wns2u(aVAjU!v?G}VgYHb?pLJ-XcLY6o(d-fn$c$imQ zE412@tv0XKU&{DfZC<5#aL_q9q%*zMT5Y6*Ax>AAkpKfY6Guo>I{cSgS*|w!SrfOy zcoo?VW43h=*luKY86C{elj;ggy!PhX%*5@!AzDdibun>sJxmxavi6W%p0zOBn)nl+ z34fU#X*kL-{KzRYT$sw0sQ!`h!ml_3vF@ba?hS4TW|N*|eiZLgz(fLxi7IV#g>-PH zZ}vf@jtO4PQcCd^{}TnFjQ?WAtfT`S&7{tY368r(YaI5G5KF#>7?GKA#9pl|gq6dt z^K#fCCH~r;nsZQQ5rF&2JwNi-I3Ni!~#^rEk_0CaTk^*%SAxaGb()B~d;# zqmu)absX(azmk{wv9z2TWe>&ZGP$*^h|F&9t%@S3+HwS1sI#_OSaR;f*9mHO{s#?Hje zN63xGC8TqFSTXim0C7a7c38L7O7WUlWQZ;AkX_Kd?xipf7So0PDK6|90 z$NJQ3EHA6HUgZ;%NPzMYuR(;5vo@>K9N36z9Rkzt!l-&vC$uqg7vs*l! zt*@*z|6og$x_qNUs2Q#&71S9yfBL2zXoQID7CJ*NPd*47m5-J2HD4Klw4dl?a$C}t!ei^WYWx4L(OxMnD*k(Fzz^4G|6+~ypVeqzU!xs$2vy}rIYia= zZ`Wx5Up3l)T%-NQ8ttoUv|m%LowhHj-AeVc-z2+Kx|&0@v9B(v>Z_0rw%&X|BdLt)!({2UA6Uwlu?Bao&=(BNBpgx90x!Cp1eG6U1&!Y(+u8Gy&?k5 z`5Gj81sXGX)frQToXYf;HmDOWr&Y%s{snrp=%LrBuxrXrip;ibr0yX^!kzD#HPPLWN`|(o8z1tH*3Ac3gNCtDOt$ghr8~|7` zpPt}*=AZKLT6q4H9PJf7H8GSb4ieoXI)$dd$F!{mKG5O!J*Bfjb?38OFgaxY!TzB{ z??}QO>FwK*aFg5I!CfP6;%dCBb2wV26)Z+_a3pbAVraD|%Shtt5&A_6k$;!4(>Pg5 zPaJW*&bx<_J9~$&aj!^R!)QG4l`A7OfT5XfD+{0CUwQs8JUp1{>)p{i*q=!47+@8! z2H~Os&zi?-fHnmI*}kQVJDZ_@#+!&G^Uy_{F#@Fd2SE_$S`I&UH$B@^8T392ly)vm z+4(HLTz~^)naaS3pYc1Qt{^n5*j)$e@A|1w*MO#a$~D#G6`nIo84EZ7x;O&#%a+)e zRRZmd0KLHiU0w+^^n{H}+ayN^Wx>VvkJ%_;GY z3nM`32{*q4aCkg>fR4e^78tz=HZ_zUl{zc+Y9+#om-1p26o+IPw`Ncd_eOd56~M`Q z-8ryj`MDU}0%`ae6H$;)gh9kwHprtvkgg}gAg$$$HQZr=d@T$jda|kP3xaeP!ypm$ z5e=dumF4qc5OE)iO8oU8m9D^HBQc=3jSce6AV~K_m`ZoK`09EXEFoL1g>Nk|lPh1u`B6iK_ld zSs>XkNL1y|Y76907^I_IeCOvD$l)+ZROyZs`l^o=!XWJtR6b@=xgiWPGXlg~t#scP z2ALlLBGvj}43n+H5mvBDKy>HEn`#B$n+2=WORd$0GUL-nPzrI}Bs$r&v`dGM@!+9v zK~V^-sX39+3uD{M-m;-PrQGEl));OvBAEwbV#Bq4Jed<$*GEGUS12JDdiEByf>)6p zWFNZo=M1si%`-P;UyC^(1RJyHjje@zU*-VH`$xtLQ#gjBEQ7L{kGw5XOw=t!Orq72 z!g(wtg&v&#k0iy;0zDhvbwD3jBQH#|H%v{g2^4^Srs#dKr#i9sJ6i#@Vm#yq+Twt3XYG;^7x=~ zj=Xt5dT9=p{0Vy81<0}RisPFa5hmuwcqa5%imT*gTn82ggUVU5a@FW)L*7CQ`&m9! z9N^-pYNxc`aU=NXqQ}GZd=IbM&*UdF{Rv-;K&=@=N#ue<2_4!&31Gv+d%B;LxdeLA zGq3OVabKJ=X0%{F0uvlRh-rqk7`z-G0SO;(v>8EVO=v6Uda`h`gKb~9FR>K&!YML~c6<8K?U=L)aPjl>3Y&Dcff zA8t^V$o_GuKcuX|J5Q0`!O4zl?%U23g~#;Zw*-ehW@&IiX!F$ghhB1&w@^L6wB{k? zZ}BRS=E#eB)LKs)_uQh)qVshol=+|Lt$G5_`4C@$K`;-=n6dc;;hY<=(FkA$dydl) z4MvTPo0dJ(3W6=t0@e&{i**+XdO0vV_gHt4kNEC4th<=Y@!c1!yGTBCH`Z+3#ft#= z?n>f2cAaowrR`(fpN4*T!0^aW&oXX?X?(-RZj|t-3^b_0RuwjCGjA{2z3S_8z(^1$j6Y{WODpj z$?9eW34{^+BdwT(IPN9H3prBH5(>-&=;@VMywGuR1OEu8OK?~vDc$b-u9H~fc=Y7> zq~u!73xO+9T>lX>p@WP}gi*c5(Y}PDefQw*RBvB$M{?wv)Ijgf-pdmB_|-N%CK#q+ z_s;K_%oi9yo9<$fGy~{b>~p}+?|$8rEtc>$%#`tw)bJ>lmoj^S<-i2F2%~^`@zbm` z2TvYe6h7N!^>-+D9Ny8!LqN=S8LC0H3>qI+D86#L-r;^xA1o-tEqvf@$+a~h?(b;= z1fdDzq^eo7PHdFoMfLtb>v9;_u`{n`(=m&ClTDpL>#oVB&L!4ele=RwvruX#cgLP4 z9mgq0tRU}E8=D~lRZyc@m_BiUO2;Qt+j8lH!MBi@DPp`8-%sHQ>%EPQ+ZJt-nT_bc zI`sJ#$xI_loEV>C7rf{EL;;0+BVa5jAQ_1@%w6J1$pAF+Nq4lSK_-Lxg5s)0;U0l{F>1s4q{E=ZPS8c zqifFIvF~6u_8I9u`SA*(<8I#Unok#wT(dio;zzev4atI7!p8sp8QCJ< z!jfw0>4KK-_Gaw(p<4_1{v0X+_opW_Dfu{xd26H$D@$aWR+gk00VkgoY;t+3if(EY zVxi#!?36g}3lb8rvN#bhvWcR{88Sojh*iP7MjVZ)p+B7Vk+?Ua^9BO2u`lvpvoC_h zLVtr9%ApvLZ1z;b105J+XDEMSe#{4xDopcYb^07ZhcQfYa8K`!PU`N!vG*!1Ns_{a^nG!je@B-V+B@`-u*Mv`!0_Df#?W8J-&hZbqu z+C7lY!adF86FeFMVj+COPMv5u#q}Kih4>=XwTC~RBdwS^X)F0hY*;anLRt;Oo{729 zBgPITGclNl+u+)fFt{&d6n%if5DU&z5mY?EDzinQgY{2uNoMB2+Ow=aURaKhI?TSz zS;{X^$2Y>BRVG+W(QX&tV;s;S4J7~JLlkOGPauiC?8+wxXr7E@&2Q;W+%T0rGEx}M z6-ueK-f;<-aRZGcp-(K)dsQlei6fg&55RQ#IYo!VuE9HA2(;hB_NB_pI+?4Sqwzj8 zhPK9J>x|riLU)t*f&|(NTz!?y|xxxF~qz+pq~okG-H`<|L3jSzvbTf8j3p&D$R@2ZPM{4KEjUayF1} zVo8z&1f+N4CZS05H{&H#G(y_eW(p9ZnmGjB#s;Dj)9<4R((g&Og&!|RqdECOfkWEG z>nF^!jXzK_U`s~@xP@#Q7!|(pQ|1iB0)EC%17q`9LL6iZ$vjIm0;JPpAz4E`>(Gws znsK(8CzL&UmpN#cHhfOi#d{3pm@f1n{Dvq>j)63aL9gr!Px-kX+?z)(t9cZw9u@ey zNkBbSKO>{G!QpIIG{rpNxBN15C|NS{RP0RuC0!{0qA6HE-XFzKJgIb?Gv!P<@&@0f z1jb{aZ1}{bjzI64B}$X*v+7;5L}`v(5Vah#@R|kDv}>)qWxbN3Ys??SoT@gwUlDxryonSW#5-6VHAAG7Xa zVorU#>`JD!a<|)i+QIyyoR<2|y4Aw4Snl=|t-Gkqr@piITX#{9Pj}~Rx9;M>1l^r$ zFD+3|O?S;}+*J?wo+jO$FQbm$#W?}KE1O+pDucM{<=HK}tf zH1e=9-ObV~#SUh)0T~n=5reo=>r`=1I;X7&Y`?YD&Ej<$G>O;dr@dwp=#D2<8GHq- z`AXC}Q&Mp~-`9YK3i&rU(0;S^(GA!Y^@>Z{Dwi~1r|=4t9YeVoSbrkDD1Us#Z}a6d zHdcIG9$H~05l=T-COO+PNvE0w&-B(R`$-`Eg|FBu<=-0ALs<%J4c(;c&!qDq} zHHNNb%HP343eGOsiKfW>3J4Yl=He^O=iE6mn-s;pFQ_j_x)v7v#(WJQo%6-k3iCxd<>9UGPGY`zBH5vA&fKYQ=F!}!SCb>VAE`?V*bw7A%34dV zrV3h+Dv^IHE!-N8i<$H;vWhE*uCJaVI;dxqyf-{bcAQ;J_Rdqq{`JUS49h-aRrMS& z^U=C2|Lb2fo=6V(c-Z^f^+l5!`+7AwprbzjKee>*v9K1}P=v~BOO;-)Mhi3kq%L1L zwZ?Z2y3Cay_zRX`{F60gL-no9pPNi)LBjTmQ%(4^~nCaVc8pd zs>$B`z-eUn&xd7i!1z~f7SMD$=D*v+ksq&-{~Avf|38tD@ZX2EfQp2wzR>Xbx+3A% z|2XnQv~X8g3tAGV&!56qJg_yjpz>aQ6i{)OH}Dv*$!SR?Zq81YQhsS%unG^gr&7Ng zTWvl0+~Yl?Tr`aGSiIcBEsbZ~(Za-$!eq9Tarres-nnponA~#?mnh}Z^qR{tyvUtO z^m>-jlhWd60~|G{2JsG|Nfa@Oalt3I;`uQbgZ-hYDAq+$xcyOiQf#2{c+&g}@TwZZ z6O(ch>+bR6rE3GvnS=G5AwAJ^zGcdmuVMM_M5Wpo**j`?*(*UnqOu*@t zEAbak8swpn4R#v?zlTm|F*EuM9aqxp@!#N0AA$dI1lfLu-;C-XDy0#512|YPX^H^0 z-#4gcz!hLxvmAPROU0LJRXN@3y@vxkg9n5~7}c+;VG%D?@zLoA(g_cw{Z7kC$x?xb z`?8fp=ig1?;#LMn35k!U(lKF`6NUh-{c#^6`t0z9ikdYD;%s#(KbN=g%eN=gX`p`b z6H^=@g@^O&K7Oaq*&Bo#ZKptMH7s${Q3MR->n2?x}uV>7d?o zlCr)%N{Q~?N2G12*bG%uFO#Vt-C z!WP*Y;&kF&Pw_LtpH!T!5~J~(F_SswORxr-9*$#n-sJR94I>?$8^CMmwx<$<^d35r z?OmT?g1%nI@(Y zH_)`CD+vV|F;EZhCD||hR9&81_gC%}b zQI+LX#b_7fguX?WMaKz&Pw-vB%Bk8azLs~LNg=S9aDE^}MyHDStaHgk4D`nDnzzhW zyZc7rO6lvt>X9hTs?9_0A_86{DH}gjt>9>yNhno3CehD}*bRnHNfqx;r*V1IHt-fxi^4^;${y)H2RYd>* literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltstrdr.nss b/35expandedabilities/nw_s1_bltstrdr.nss new file mode 100644 index 00000000..dd03161d --- /dev/null +++ b/35expandedabilities/nw_s1_bltstrdr.nss @@ -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); + } +} \ No newline at end of file diff --git a/35expandedabilities/nw_s1_bltstun.ncs b/35expandedabilities/nw_s1_bltstun.ncs new file mode 100644 index 0000000000000000000000000000000000000000..0b8993e35ccc680e669713799ab4941826b8f9b7 GIT binary patch literal 44819 zcmeHw3zQtyd1iIbOPU!;Go#V_K_MZKgak+efrSJb&9qR1G!ip|1Q^`3W?GsSJ>5f3 zk3gK01jELU1#|o$cpVJJ#;?RqNOoDW*E2VeR+- z|NX1#R#!hpVEc%(aL$yv?)~47`>6j`_4f|Cd)J+F-Zsa1c=l2U|4nn9ctc~8GkwoM zZ>le`?W)W8_WacjUoSb^S>&8JapJh^G{orYps({&2Y)uiV|3?rr%`$=A#}~!yRn&m z#+&6zxZ+nZhGUH3^D+Jb;Kl~DH8nZ0E8_gmR_)d8T3zDv+|Zp^x62S{;hx})e>-jN zX+(S>|B5k}pemfj8@TVwPNQNc-sV4M_fmWibAPO{k+9YJd+BZHL$b)>y2#($4xWvccp2W_bsiB^M%MwGW-P>v>3T#97>@BNkI6YCy6n|AJYTH>^MQtltp(Yzad!*C0Pe1{) z2GaSF!dPGCKn`Xsh+_uT6e~oe3bK&|y9C(}S+Czk?&^6E>D6(*FRi5Q+nNI&AThH# z#%}dR!w<-*b%>*V+1$vk^udhy*914cC@i;|;Xx%mqX9$0F-f&`u!)=qhN9VgZ*w?u zf%?jLGm{dwA#w%wAU|nzhRZl!^|OB^03;g%n3)yc#hC-74jJvXd1DQ0Y$106e!jwv z?aL(dwOq`1kbg+o9iy{sxcQ2jS}(bOrYlgf$Ky?2OOw;QJ(Dga`@nPa1O@m6u{i6q zq_g(rOkc7bw83&h2xj~>io$7sY2li-FMDfhuuvQhVcSdC+LkM~jCH+%gdb4v-dv`b z4Z|%JxMo|f^DM~5ZRz5OO>gEuM#8PL;F|i1li4ufA4LLgumD^3q;u(!Y(7M@7zrAZ z5^;xdAOv}lLe|oD%RbL;6pJ@tLbFfC;KmuYiY(JRH?|qmJ7P+>P`N3ae_^DAp}|lS zvublX<8GL7GsQz}sExAu0veq56mHHGQv;cik;3>yHq|p+${x-zqo4zT4ROov=hudl z#Ihm2tRZCi-)BtZF(m(c{5V;GpNsV-33}C!NIxS{kV7A8vUb`$^>r`p|rfEe+=U%|s?VbcF2390U*mGovf_yUaXgddr zGfUW(rHsQ&m-nn?lV@2c7s{kv$9A7IBngn#2#z9M-m?~IXc{^)qyf$nfFCCK0;xT| zRDv$R0wg5qo6kZrJI~HgW~l+3DH)LCUjB4tPRtanfiU)%nKZyRXaJq=p#+-M;@U6> zJJj3rzL9aVw$O`-_k2|#&XjHw@E>fK((OZItdJLLt+^hZ&XqE5rjV-l?z zGQ2Qy{)eUSaii}hXB8;uDlR#)$vse*%#Zl%60vJ`1dBJHVduIS>!BmCY~wDZ6OhLr z>ai5tH^21k-$?WG6V?Vvg{;DMvAGw!99O&WzEQI*d6_NE$$=}yne9`YmKY9odPUiD1cWq6uP3#tkU5W;y66kuH?VV);babtUtSl z>?FQkr}3CIc-RW^H+xZr3_UY?x(R}6%oZ7Ec~Qg6=m;XJldVe{8UvyO+=$N9c_eTy zkZl_qJm`+~O2pYK=#Hu$;pm`B%n~%2txy>r(34wnWmEPle|m)w)6E8}1D zzCy)(1!^Yzi*7fxvK8fPu)zao>8N&xVhSoze1sB}wt~4f$>kw^`(1$`loMF_v37w2 zlfiw6CA5JpvqNPc<}m@BT+;!Mq214JcFA*8Jie+JmPV0J|1ZV`-Z6y(w8X`)`L8A$ z5JJSeh9u?;6~;TB z)X3Gvyzawm{IZhN8ojjhDJh5f}1=Ewns{k zFL=ZC8n>7!O&0SsCEA}Y+?+0E%*?E&L^N2xF{cWjL1P|wAznNt0ji!V`S^SGtkzzA zH|TDY^EguisHDNjH9G|%jd&QgO_E&AP

{p3D0549^a^*{qfnH>T;F(9W=6@#Mya zRmqhfhKYQRqdhH$f1PQIj${)O`KyACVwZ}J5ZZ7OUtudCtFxZbgL!s+rN!KcbvWMu zs@W(dzJxo8_Ww|pCJTIhGNf$drb-o7 zjG%gaYE)&VuMPk~ECtEPBx*I9SmbwM^@_4&j%T_oDcjPC=ro@?8U8PZX&#h_1t)SbP|jZxtM@a;R6lwK@j&KTOjYoyJ<2i(7)N8~@!P!=mI zEA>}P(VTGW_n*uht3uxh!|I3 zLxDw~%Q8s7qJ#0N%YEdCZmb5`yPyEyyK2y(ML?4?k7k2IySJtKl0Cb2_xGU+WP752 zFrnxXUgr6%w_>jarKUA|n;uV$Qe*H*7}7iknml0jotpwUbQ1Arbs5HoOq-T!HS42!4bRK((JvgS&Ntz zsLtjtn(A^*N$*fZ{dS&!Y z=x{}}4Iv@?_ePm3ZnWmdYW#{a`hba$qYHmP;CI$vrep3U9Co*+k;kd{sP)CAwMnB7b*%&%Dny+U)wfMWeO&q znqCT-u)*-;O_~`g`R5WT8M2X9I^P+OZM~n+C zTu%GwuW|<%Tm}R(a6>+1nHB?aLXol4y;@1Qs!rE6>4Qmmi8@ymXp~K%FO$I_tlV%U^YO|Yg zfMGCd6NZj=voh5=&gV98X7$DNo%+sO8qO`!YnrTilqcCL(kXGoMzvy?~2iBwA4vG3*P~p*R|KYr`0~6?I18-6rG0W{2B^Naw@# zg$P(!aP|7s&eTpkn)!+MGZ54C`_+RVv$m1HEe-i_UVC+EH@cPFz0p@mV3vnlC`J@ zpsG6T#u(;d7Ks)4YZmJ8Wpbi3FJZj1Lvwn0UaV2q&pdKREL^P&pd-W$mVsjRo zIwygB?DN=yo2P<<4G6uuaCdKS+jm?27b|%M5Vv2ON#_ca6N8gDie%}-M8ios!Kyn$ z+K3{h%qmwQCt&`z;efzc?_{2y&cBWPt&|e5U?jDdkt*kp^cI`Od}vD5C*>dHyC!+H zcJb)OYCg$WUzrSP&>G8-O5TUuLG18A#-36Lt>pg2PqH0mvufwbIrmvn=Pfl+uVXSS zKJ+O}g|e({*F&G&ijBQc#M;~W)4dTvmYSNoB$H#9!GoDUmE!VXp*4nfNsD!`g26)> zHIDu?Ln(`Y=c{gd=sDZjMup(RGr)auO3!Eih;KA`53?rhQI zmOKlRZXofs+Z>2Xt`c+oX5Ao=_N&7;T&4a_E zg+h-0#dWJVv~=Rc_kY4YkeP8m)?*5o&J^NI0P6ro$Mra|ZxNZ;LxGtez zIgc{fhi$Na3#=uA+V3#fH8vQI2yreE15Aqm+reN|ph-zVW-m5BfW;o@i3nKn4zEtw z^NnEb@iJW%lXv{hgN(%sxOfBoAK@Iw85jC-+gx*~<9Fdx)3?zGyepHFQ5dYk_r0=0 zBv<@2C)T|rtuDz|WFIq0mop+DVl$PNgP~TJ+o2~v2n}_yBMPZt6Nz)uKQ!)hVU9`o;r_h5Jz$xwL3Szc4FSq9S;n}d z8*nxdVOEYa)HBk;Fc1PDTfBKVeq1bj-cl@qu;+fjVAdiz{tYo1OJk>@!@mR#+SsnL zrOyMk(?dG|9p|lEzv27~HePtqyVCoIM=}RMZCitR2Bzu)kB9{C;frNRp6VM_dPf@6 zz2~&q8dCX)vpMSCa)ut#s8mRW=82UQ+d^Pw-kiHtBz#ZGi-f^1SdO~IbJY28)Smq~ zCZ5ih=)`F+LaF4rD+ohoJxcKHn;AVwS`JfQd3PLBMml8=ckRne3>UNGILs_V5zv(# znF#yqJ&fM=S8xKw#2Y`@Dm$^8RUy8w^BtIleg45nua??Ab&`|w{nmg;WzPQ`-jZPLEB7Wj3yEhOoNEe4k$8d@}HO8mjkEAlW%ouhU zCL)Z&^U_wev|c%0I@;V7lu#tkLXCXaHFrm?zPFjX5`U&|3lPK@m@jAY3%0^Lox0>8D9rPhyi%J2bXLLb;V zLf9niB$-SVot3w)_wv?4s>^~1O*}XtMnVwn7KBV{ zZ5r!C5X}ZcmN+td_8?ezm{(jYwAzxbHm}uR%J^Gt-l>n^pmTCaXL+l&+DQ9DoUSw@ z0S0g;j*zBw_;0tfTy6fdCT@lCDzY2KZ0jJf-N@`RI+&j))fJd{{mr+TiMxD5w35#1 zV&ay1m@ryo?IF3mU}3g3@n=30{xUn#aFk*AkyB={Fqtb+{UhUrUvUOv-ATROF>VNE zlkQ}G81F^FL;{J4Ds6Lxw2VL&xYRMht654ZzT$tPAe8Z6sF;;>pre`8c`?Cpw|K3? zJ`!Td*AOEzGmh9#D+^)eu!N> z>6H&kzmMQWyJAq5(Q^??yW2eNF5x9ue`dH?7)}@SlVdzM=s>{Y`|71k@#KHvn>q|Y z!JM_r2m0f@9;#=R+GJL#{}E>FNZc|`ZahLEFouDOsrhE)pE7LKxmXPzj)5pL#;9QI zxxuAs&eGFnPfzn`Bn`3VEdYG>NJC#g%-ErM%gZXQSNUxbbj&O<(2FOrgHb2V{KWtp z_{$cPw|h)pgtY|t+==NcY8P`kIzGnbz-8yh=$sYKs1H-EaO9ck*@0tY+KZ2p^Xs}a zpq{vsMU8ZZ*hSbh{HaVSJuifXr}qzTOZi30;$22S^kd(}`D;bY0#mW-qvj-R8{Qve zHOkB50BZIXWp_e(@=R{&>{d@_8!GF}Kcp6=F5l=7YKH4c1$9QwpB_(HZlN>e^5lcS zQTbRIU-gv{NIR;k(<-D5ZGWRiJ9g7UZ()$MrSRA~uG;>;YqVENi;DmL8t{WP+P_ev z{bx1WH`HiH9YR(4Q4UeH{W~?<|5uInAJu3-T%&z;jrMD*wbS+`wR0lVR4@BYvP-3> zpAl{Bt4pi;D(XtB>S}k5_GFFr%WJg%MUD1LYP2t|(Y~cd`)G~!TWYjVuhD*ejrJF7 zwEwt9J8ITL_ParI8e2bnp3^%Dfa#ej0rw%$heob`X>Tg}1&f0oI%BVsIPXbZ6BmP!T zj)Nb6PhJGMKD48XX$J48UJ-%jTn!Sv0*#rx*2t+$Z<$xAv4U0|a~TWh(V~Z5iNqlw zJ1H{TvXQG@=n$T=KAOG>d$`urIVWS z)j(jNV7h+|yjKn;cH(8Q?%{N9GUIL^*uBf0xG9HqNN!?0mp+11ZKd>nyr6a8j>JI1 zEgc!pU~aXQuRZ;J04wIxV|>s2QyyLm&!6`*#nyiL3G6-N9&?Rqa+QG*Kks)$T|sDAvAg!w-}RHBt^rMTmusrYD?DeG zG8S+EbV&s0mo2d`s|4B+0eX`Kx}p+j=m{H{wn>fz>a6aMDuK=`r`q`M7S(-~KszHq zAGbii;)AxB%_;GY^CLj%2{*scb8s|!fR4e^78t$NIW>?TmO3lW3xVfqtavFeRzYz{ zmT_wa<#2CY#cY`cOIHqTS$-}Cw?G3?kODL7ohPbUqUXX)R~0;lmclSHmEp zC!5OkL6ELu7$l-TqCr%o;(sm-BJN{RiN6t~(iu2xBnA|>u|d8O1nC+JQ|T%fKmHL5 zBp(J553{Mf#{wA-gUpDaBJUJa@jnv=nO+VOJ7!VA19977>`|J1EcTZc$iXm(Jm<4y ziG9=p84ZI(RsVQf5R`|yvSE;@%AYkBl|x~WndRa;Kes?`41+|K?nt4pD!C8_X^)`t zF^kGgVUSr7AU9Yb4~0P%M1V-OJ{ZGf>&6HxSS293b3>CedT6DU-s1H(w5+1_5tKrl zFo{k!E$z~wlJ{pR+ zLJ7Ihv$vp1y^8E0`_P?CI*3H?XptnucPUy&5~x}|WAvu}G+SXOhy zg<{v6HO-6iOz_JR`fvmGm%w6}r&;zk;S*(B19tmG)XrY`3e!Fcto(ksnWyvJ-wC}- zARMSsou$&XG3{NH5L7l0QL@y8t;BUU7VcC&I+s7|+O<5MTovt}?Cz3xh%B zELpi~bhIIFq0wfxPZbBaII7wy=gvF~K04{~Fg@SHXEQSSiA-<87b83;mdFKD5<0Yl z62OLs_jErga|!gKXI|gk#(iGHj`{dxc2&X?C>d}sAq)c*FRNcDCxR&eSarO8D>fB&Ah zjn}h7wwM9?X{Du*WP7E(mR& z8voEsj`9|&hnd!Vg#4{u1=3t8Ay#WWXWa7=Wfq;UGoj4?G;hchc+Q8huj24y!+?w# zTc!x-+=Pur05jN8PDeBtH8yTu{(LJ4ws>W^Qc0l>fn?C3|AsnWHUkM5GPx`~Fx=uGaEyWgj@;xdrsCME z_V2)vDcT9_*`KAC+V!QmN|X79AMh1^Ax>#ZCvUaxB0;YJX6JtEF7grIecZZ>xg6hp z$-0Z=Lw94%)?K^^fbXs%zGK%32UglX&i!fVhX)J}4RkN(W|+n|Z0xXvM`ggi#MP02 zTNu#ZowX?T?(UBS6lKYJ&&yOnRjw%aVvsQKF=xo?giUhR|E_QnGZgI5F^wX zglwDujT}R2lgaUCB&%c2LT{u5!U+D6R!l-1^%COw9I0mr1!e;D^hzwA@3^>ue}vN| zIINPC?(%)tNvw4|dUAYHa;@ftz?CR&xZ6zVAR`lDRIhWiFQsVT)4wOxvn{zZIdn~` zuV+`!WeI%9ZaW?m4AQWB_oq$f3k;x5_p(Tu0dy_)S>WgQIPc9COL!Y*%J@iXa2U%= znZ3YrV1itPQNX^7~tYPjFPf7-$kslwK zd~0Ohf`A+=KQzlba7NMo4;l90z~g@QFxT{gZn)Q_+>477j2U}bK6oglob>~ttA_5+g?5E5sxGKQJ%(>VmQI(A8pWsYM936^Kk)ZO*Re|O zo&fE|1^)D=iz3B6y@NMq^DE7b!k*q$Xm2NxvU&PQ5Pza>4Rsulo~!T;pIi=OegV^f zLVoRV5eKm*@#c6zvB@=O@7Q-R8~ZeW`(-sS$oD>n@ceis(Q&tIam{B)hpyR^Nb#fF zs|I92EMen+%aCjlZ(&I_^>ji@_jxmR{Lrlhd`l9Qfcw)EnUs9!$h% zjDVBRN;bJXRYf;73bD}ees)S6_XPH*=xs1VITQnu&7Mklpo4p}Gn79uKkkD`6{h(}0)1L!rZG&ie{avu zWFHGXhWoLz0$hqd%{N(_&T`kfXPE(<`NyZD*!1Ns_+S;cG!je@B-VijW*fN0hnaNw zQOrP4#$EzrT|JnG7HQksJ&?}AJxULe1$8B(Yar`Fse? zlaZ|XE!~NmCbQ#1g~42*lv?KhTOMye$#p@@`vyDGcGVBOuGP2Pu4vh+r{e(FKv4EfP)4dQVjl2Yei=`aB_mJ8PWNBZh4L?&g7xD4Q4GbCO2;`} z&Xgl>@Le7IF&|q2i^rvoK<}C*N|Wrf>Rq!$X^vbFwH&hWng!9cYpuIxK{Wkx>nGU4X9mpgS9E=Hm&f6#LJ2Rz%E`Yh^ zS<^=esX3_*8f~aNAzE0FuHv>BbLG3)?L1ClUty#QU!xeaGN>V zGrbQ?<&UrUZN6g2#)^;1Lo3WA;^{`qBxiai=}?p4nI4;jEB7f^T6dk!(_O)NLdBpb;XE5{T`-?;Zoabfz*DlaC=;h4*%#hWJ&!E@ z`6(j(CAFkyJ%|S!3VXnUYpZKv(Z9X}wQyrt3-gDnYhmG!-+@}lg|#rRzq%F{{L?#7 z3u9p|%-vBfC(eKA6wyIFIq~${VfFHR*pl+Bqt^vyh)8}({(WY-gQX#pEz zyhmAU$<(avQ;kcMZ?;@+Xa_IcZDWZdVM#%@lqvXsptI6JRs@T6C*^6P> zXRNNC17xs3)Y#Xn$pJI#^Z!#z3m*$>p$$c-ytY*7^=h;* z8kDt)4%i%^n{zjT4-*s<_XijaEj=lo?P(Z za4u--s3v>Msbc?nWdFUe?2X;kWN&`>9c1^eENchb^j+}}X?hR`}&sK6&=)=sw6%TApEvUR#9|cr8DZsu< zODb_ocA}K>OXGr7c&I&&fR{?-}LdL6pbhNX1*;2;k*8q9v z!uerx_gP$`luOfVE=TYpcPi2AUQSO+^HQ{cX$m-MPW9s*LK7%r65|FYFI)`vho*=} z7e(RrC*?`8fyUEh^RK`oI>Hl^auVzAi4)^@2c9zr>p4SuqUU_eS&cy8YgoQJQK>dY z_Kw1UPN2*yuhd}=S z@w*cNGr{#m=?!cos89^ZiiE*o+=h3+@jEylLX&EH;H>8OoxB72zX#;iD1a6?kXZ=; z4Ob_5%AwQ|b@<6sF!xlyu5?iEsHCj#3{&EIUdlE#*7S<33zn?Wj9&Ie9~6>#qLiP2 z6w0xK2kv8cF%PCjtmFG=ULui;Tbw|IEwVMl>A<_5;-`f_sW?X^M&mbPCUY#1APY1- z7RT(o$?2vVMmjpzhu6^UNG1B|J#-}7zHuh_3-saFV^N<39fs<|>4{M~JDJUl`1rh3 z%7?~kK(ORckXI2ZCujUa$?|(-stwab7({cU?T;dgs z7Vt&Bm(S;EjD5C3XTU(t)5a~v>+l;kX^~m94A?p-mmiFI4bB|F89NOc%GIY%#GVRL z8prMO_$_coHtrR^o+;h*pb#B!_?~uED%>@_rIL;s3wb;RbQ(PyWXlQh% z?i%b(^(A|*xq@%cUFq<3^ZCvK=fsH<$6Y58qpO3y&g%~Ttc%C!&KpjH^jJjbnzVOA z6a9=g$(3-$?qLjXF@`V2_y>R+64bBJiCq=vf3|3^F4yid$L(^thk(AOpmd*mf;Vn= zTHUjV_SZu7LDyy51P!g!1UUgCylS;#jM z{Not^xIGR%3rb;u6(o1K+w-7B3VliiBc;vBFA*dVj)hvl5TXJ=fc)L@CXx3728Uj7 z^QiOyX}+m?j-lz8XyTYl9XrYF$*rmG!QSqHWNK^w&@cmtmDa_X<`TXI4$2Ka?JGbs zeb>a%!NP&bOkX;GAX7X!1P9?GjgCuv4DCv8-<}%o9=swsoZ8uQWwIBS-O0hh{=Os_ zH(tjq{p4g|){CclK5(A#WXAL{_RtvctpyKPWJ*JaGr8Pwx_BT{+PUvwW~8*i9WRVd z<}z;KNTyiKj%M5vx4N6$fcZr4Z^yfq0#(;4w@}O;$mY{IzcX6c{t)Ft8bH*SY}{6` z^b17ns&CPNYP+f)K^Y!422x|P*H04c9jj<0JyFUOe_1MO-CkKmt;<=VaTzDj9_h68 zGf=>c!E}DKFy5EhpMx0-;+R1-#R?IDfNUgVS;o*ytk>_w8XCGk=aAigAg!eB4>kon zK*r3<7`xSjh98hq>kvnKvboV6=>r+@uL*8?L0E1xkya%=CxKw_R>i0lW)njl3`Mi~ zp{DT21?sEgO-xGIhR7AzgZ!k?X)fbw-BvGbv&QCg z7vSeB?AW$M0$cNY`3~X_DZ71ah7C7YQB&*Y`=+}B75i4a(Q9dRnzm-rrT#t$*)%}| ze1c?}@deUZ+ft@4Q4ZQ*IUxiy{u+(KDc`YhP1%#ZH8oTyj)bu7CTy)sm0QNT)<9AO z2JPNlrkD-GEf%;YTds>N$cCPDanzv?jeZ|Ra81N4x0oPf8&AZaM^k_C8 zqFIat4M~Y{hj}0bd6`1i(suJ6&u--8HzGIKBU5a{G+RZM>77HZ#`KPu5-wD3%BG(i zDPd?Z)X1#boKE`$%(#)pLu|N}qWL_UoOTs%&J-l3_+c2LS8h zmfbI|4JUzRU3^I*WclA=Oyn^n|NH%MvJ5{R5gJ6fbw#V&>?tLpy|+gDt<~EvT}|y} z9CoUOs3l-ej9ykbMB~x(Dvh4Tk3bh4feHSa!GZpPD=O>mG?YL7No(*l_2={HQU-Dd zqD||1xXH_Y_S)#oEmKNrdvbSj`;e-a{i?F|B<8P+qepdA&j(!;p1&l)M*9HM3549~ zVob3O?t{M0g(k^{-?dApg$xYL_PjtAcNVX9s|i%nULdN{B$KJW(w9s7<<$t4e$+`K&N^r zfo7$+HVnef^&7-)3jTPd2h94?Neij(Y!ueJ!XO|0t0>cYk3rKkBbb#ID&5`+aT+y)6J^>{g2L~h9G+{J^WP<_ z9T@`5t=&U5<=&{%c+47nVHx?Gy(mM3o*tcUf}k3+S>{<@)G#wTgNQ#}#rSDz42TYJ zBf7TY=OwajV}l1ZU#~Jg3(sKhKmquFJY=>a{t6<0Q8ukxo?2r<>{|5=(Z zA3O+v3dC2an6E(1gn!=UhE}$sd>w2E`ZIJ^yInB_l_)+!fl6D!T&u+LkiPw{KoE)v zJPpU%1P)9F_aPS1Ua(|`%0A3v25|qXc6bbJZg#Ot%6_D3P{q*StWm_%f5N=L8=|my zb6otI|7x%SAvA50VF)bJg+&xGOcVGHG~t(OL9dvLo{+czl)%}r691V2*-kW=>*?Gb zJtBNJjFL=}SDz}&^O&0T%679RDG2w4 zJ2T{U<~NK$1Ap=F$?kps62F(@xWCUM7t^rP;ZU>K?DUJ(+0h;6>?ch|%7Ms{*!HZ^ z+#BS2i!Wg;&?aH+zY=;3rR;r?i1SK(8IU+iT-=|<0r4xngt#L4MUMo@UzsTdFd#zN&PrEVqlQN&xkDz*|b0iV}&&YRvMH7$k?`&vB=A686weUtM~%Y znblt`RT0+H!_o{|EQS7IC~X9jNlSk``wH1=vtH({N7 zA~nx8ug=(|32!!$1ZR1r{%R?jN49*6cj%jCMs}1zj0NYh3lRUOC4gntw)DhsVRB?_ z=l;IzM5zde&K6`4F|NQOgta`IWsm`j4#uah^pV4ZkwIGX1$$QwI+QpxI&)|S8Q$5G z>g(^`v2&mg4`H_^2ZoZ0p2rjO;br-?pwzTxKLkGm6Qhp7$6-jbtr|B;@qYy3rNmC} zWU-jZmv*G{nMn+*RDV8O%BE>y+M7#Hcuy^uHC9e+mgjZ+`&B<8va8EbKrH3fS1Rl| zYWqJ>JBvJ@laH5K7oHdaVT_k9`6jzQcf;snP$6l?X8*I~k(Jx8oad!h=cwYv>XAAG zDkHER*G2CDPh+`*a-5CV}|SrKsVxk0Qme#j!SXdxEEuE$_Het*KW zgj-|g5O}1727K@Hm8j}wn`f0E)mgKAu=U)4aTA3#x zp`yS9zV{Vh+cr;S3MQT!Ukve-Fg*QPkf*)mpNpi-z(!h?7bhUfG$YDN%kpL5JY`*B zc+$}kK$D2nNVI5ELZV^kl)dw#LD7D7JO;Vw{M;!ixbv1uV2RqJX^TH70-;!Sj*P;D zKHK1Bs#Y=l(RS3h(EO#e_x7q9TqXoEa3UYFOtXPFp~%>iU#%ounb!otIwyTFc_fW- z&I2ou{5W5dh|)-9NtIMZKpkK4vDK*v0_(b~ZZJ|vd~Zl0ZAKwaS&|*`k-l@ux}NZ{ zorGk~GwKE-$zr#MB%5L+`-~;ogpahF8&1|{95*gEw2TjT-t1$oAt8f5A7Zu9uzGzZ zR!_|cOe+_n)nsT%U6%?_@&!0GTFg1^qfjods{be^u<2Xz)MiJakWUR4(|O4iWj-{e zNi`G}REa}+)+BYBq=Ytj)d3pd$_T;rtp5B&_P|(a|76bX%N{{}VA;}>;SZ`Bs>5i;81{wgP&^uSYr`0~1+@v` z-6k_cV%{>E1nhXIz99k@=3ToswLP^R`=V0WIn=vtCychcdyu7j!KAzVLnDdK*Vn*m zF!HwUq0~UKcW~!$KUSsJnc`G42F`t&btM5o7Ye!%M;|{eh~IC5qLMK|F=pkAd*ASV z)<&uUz(We&W((Ur$G4)Xlv0IO+C0zh3+YamVzL1OD-utwQ&@M5U&GB(v(HO2gk(r; z@>plWs~WnVBObQu(S>TjzsVan?aiUvf0_WpD6{7M9i{<^_^LZ|fx_nFE#)dj=BNnkvn4HYDEa` zqU#1v+lCBg0~Vl;E3va$JP9geYFK%x_^di9OnZhZoD3H(_mlmVr;VUome%xyLQ1JY zgRBvZLwg&apMqCR>nUJ^dH?pp(R8jPJIoLRK50^#gGLtY-!RTPt|ZHbrGSOl(dumLce`gt!6$t5+0^2O{p0lx4 z)`Po6w6Q2fltY;j=(Be$ogc{r3n@7~K&PRdy3K&*ZOI5|Y-bm-yFExn9;|xB;o1MW zQxkjTXF_6g6gzoN0{hq(u?07t3=TFR^yfGJA$R zx_*__^Aa9iH)>y~vT0~!tWe0&zqr;72OUnF_~F;M2O=}>$GT0?!?{A731A(-==d3a z?9Yfy?14b$2e4iXOrD3?V0ST??m!r7eHK_Eg4+8S>=K(=(gKre44c|HtczdRV7o1_ z#&T-Tj~VPq8?4^~ljAZLHRllqyVC|6u)vxlsQo&FU1x*gSOLcpF~F1vux$)RMO_pW zBzv*>0W9`FPej0m3L8A%2-Yhu(N!^d$6w_bi#Oon3Hm?6IV814KW>|C3c-I9J~g$6 zX5bx}oXo;t6~6D4A|bfqr#Ud{1!;9jz9Q0^BwgytLBwW?d*Lpxj!Z!-mm}R|6_;Gf z!;MOUJ5dGNKS3-pZ&Y*3IDFnn_Ge$`n_!B`Az<(@;A20IXz~pi7?^{R2~rj_G`Vj= z1{rT_uxN}09&gH4&oNO23{xm^wlVf-(ZNuQ%k9vUKL`zVsS!o-7;GZrob(Tk`&^jP zYJa%@;Atkh#MU6Yly^W^879jZcXR{J1|rPLafW(YT2xg4+2rNn`0-v-K(09X3Jhi~ zlH=bHld&{(7&`n*(4dX&DqH$IQ9IqV1JHianzidLzGVHSm%S&wZ)7yHAJlph<{6l( z3p`>Zcn@DJLvpHbROyvLt9#FCwKb&j5ofd1y?3fKdPOKSPpqUs4_0U9%~?G~!uP~? zguyRcj=ITn)VXlf?tM5~n$DN#lv*!_Qps~ys1Y)2`SD-$GJ24-9ER(MjFg5AcGv0T zu6>z_kz)2R4nWFO1axI()?t7B6r;EOmHaN@#2Y@=B0I4gRUy8w^BtIl-S2aeUcFWY z;OnXReoH{4GUtEpyELxfUS^v%!ucUxLog<$py&}7N&mV?yNAd{HgvI{M7 zGrid@>m~Xyj{(PH>^kl%*Vu+lYfX3G{Xm&@I(B7>`*B8?W{Zij^x>#O>?q|f~zQSmh93#-( z3|HW{HnP%Gh9H^@ge-9+d-fn$c$imQE412@tv0XKU&{DfZC<5# zaMC$7q%*wLT5Y5QAx@W@nE(?w6UUIIaQM%+v0SbGvnFnZ@hY+##%${#u-(Y)GCG)_ zlj;ggyz%zC%)}kOAzDahbun>EJxmxavi1;Mp0_aDn)qX%34fU#X*h~7{KzRYRG7?_ zsQ!`h!ml_2vF@ba?k#QzMw71o{0QEqfJ6d;i7IV#g>*2}H~XMc#{{otDP?z>|A~T7 z#($||R?>lvCaLqr1dqFgs~z@{5KF#>7?H_1Vy{;g!ir%xcrk1tV%U!KEgHsp(}&X| zsBGTg=C}2UMZu3B#hMV`(zj>`6V+*I_SAza9EUJnNtCB%IJUxKJKCRq^3B9?Z0Jnb&xCD=e_q*xe97xRZ1WwTrnN9Xa80;IcC(bT$L$T1Ti>IP#q3 z%)n6-?ZwAW`4vAppuQvTfzX@)dSLa+4%KDYG<;oBO3w>n;i&^dJt@CPS-i^#h<@z5 zIJ3z*)Cq%%RUa{@=UVa35v#FX)ou0_Wp_e(@=R{&>{d@_>niKaKiCqbF5l=7YMSdw z1$9Q|Pv4dUjS!LDLNny@;Ddpq^06|$;VUB$c2reoRR|l}{$`DK?52lKZcErwcx)Y4 zZU5gj+AD=c#eZK7_@Nr@U#`*q(;DsTYP6#cp{o2Shp5{A-5Txxt48~eYP27z(Y~@q z`*qdYY5S7etxzxfO|na+Cnho4*jE=<^;OiBR@K$c8twfx+OMq9{>AB(5aS+ING_jM{XN-Mw>p>Y%gjUx^M}{hiCx zQCn{a8CB@uNgxV$#NXz*- z(r9?VJ6Y$acg_X8`m>*ZX;M?Z8VF1jO!t2R@6|)e?RbHtdnBEk%(zBVHK+Wp@uoCE;a;gpgVo}{w3A7^u^jj9_*L~1tvpFT+ad8AFJ>lk;01l01_tP<0 z+5)3D!KMb&BT{FjUadq}@lsx_g5r=Ycm-XKV4F$@w>ACV9hsVrX%gNXZBRN`+2 zsdNMm8;JqMZETQl2SGZ=!&ExU#gBi|0?CI##KUYV@3%k>he4)AQ1O=SZ2ixNL8g|2 z#JsIg2EhYy+hOckS~g3*V=;Ch3?kcCmMpQmEReA(MLFI0X%1vRA84)1XYNhjmFvz?J5UJJ&V@S3RMOeWq z0nwcsFVzaZHw#v$1LSH$$@ugUltP>^flf9p?b4y+JbCC_P!s}dY7S)d!q~R5w`}N6 zDR()KHHKS^Nb*1=HeB1s$(*>lJ{pR+LJ7Ihv$voXyo&4~`_P@AGsNyN&)k%KE#`a} zY|NxLwifa|nf)m5A08`A;uwyy49X@Sc~_(uuUm?kj8;nu=ZTOMdT{#RlN37&^lW(N zetlq#H=q2Hq{!DTg>#&p&y&Kknj}|rw%C-jV z_RFZ9z3>&LeGFLnol?`!=DWWhdY8xzfkICBsQjw+H}p+_wQ!n;8)ekspT`=^#wuvz zXS0;+-+%%>W`x;#*GL6iet~foD4%&zmzP2E^9aMh0K$_|&WAkZNI~WM102(EX8vpa z^_9btKFdmoQV*#6>UqDVo_CR$dLWDcyonLzo8d3}o8bu8pN#p-ZeB*7V-hxm6JO*0 zCoY%>k~_$=GG+>aBn6RCZG%1JcaM)sySS4r8i3(OOq+*`tw%Jsz0<8Ys zv9Y zm05JY!3<^or+KTMz;ir|eFKLd6N55mY&uCe=O%140+_*$aX6yMsG(uw(&t)0uvuCl zn^aP$Lm*vj*MCEuFPn)344GIKo)~Uq3Yxg7X`p|WN*j%c`ctnM2_&S&EX&R_XMkDG z72ju=d1u5_DN2V>C*Gn#07q_g7E*ESHT$;V$Q11acJIs5OYQp7T&2l;!w>ih-HB70 z(#cz`y9m(BfZ4gvx{G+kcfV!bMJ~s8U$pKb_|V;0lXVv_0^qwVi0{}9!hsdGk8^*T z`r!dX!-HK*xf!PM4I4Wm!=o}_U-H^Wz)cKj@6K8jdv^{*0*bO^z2`-$AgkDHi~@B2 zJ5#i$CX3>p{-H>~yBJVP{URy$ZtIQ&ybhYX@S6OgJYL1^=8X%uhf%nITEp^Agp~3K9q-_(xbV0ddR= zh!^unJx3@o6QHM8V)0_f#SQ!;94^6Om7sKo@4HTNwd2u~{Zu+Wk=mL|9|*pM#H5Jv7JNU26W0418n!OnD4C7uz&iB#4#`X*OPm~^Vi&yU z{A2-zdm~^hC?FY$HOyV&{SpCa=08TW)XDK@lX(XM@>qGvEboAoM*H7p*n z(+j%cUYBz(E>19J>}C1jp%ik~4u+P?oQujRg3!MyIgj_-9PK^jX~!Q){(Duxr*X}6bEuMuU$4NSOf&a|z-i`oJ1Fz&!D#;(zKuVMv7r1KZ{zPb3=%VU^ zI@DwM7G&vg*{D%``c8yMA@~D-UvM3(fg+|@gDD4SnyZWMO)u0VSm ziImOLhei0aR;#Gvp!8gU?|$TRnDYxr0}A=oBSjp|q!|GRpXF?Fd8&$TY7}B2@ev*$IPMD)GGJwK zB3@(@MUS&2L-UAL!Ms`=jj5qOoc6J}H>2|g0}H{8-dFhP)5I~vLp^YV=(;lk{fz6i!TyOD<$Y1`V}pU%QPP4WpI4FRzb zK4GU$w2a2}Z2pDuMXGBHe>_K8kveHB`A2L>F_1!948xv@xzQuW4keiw%)@PP?MN8h z7cz=Iz+i|4=a~p9o?w;PqM?KJPj^W&b71XSS|2YgM@SuJU*;U;7pUVKV9zQE7E`p_ z#rGHobVw7)zxx;sHK!{O#9npflLM3|BUtlWx|26eW)BY+hH`~cYK?bX0%lxKGfC(Z zOY~lqieTc%=F}fv=kc)Km2{GD;g9&T>Ul z%maSQFOx&bl95xfv;CKJq5O+duwJ}BilI2Ebeyy0OgZ8P-=zS?bD(Va#HEfv@0uk_ zqwKTlU9&`Kid+yiAGGkA1<{o2t-EGHH1$gBE*_n=BBf|Id&kD$lzd1@N?ciY1^JD6?6g2EzfX#^cM9%(nw##qmlW&wc#gcR|Y=Yb5WK-M;45!Hn&9TtP)5cUcORp3=kkJN2 zP;f*H;!3TP#og(gwqjuWtu1aAuhXC;UYnownn|ELpH^k?6|m+jQEN>}#f^Ml2Q*a3 zzrlg_o28F#z^7H_{Ie&YaNPjXh@!qfpbZxCZ4rc$&8K{NNhP5zrOLZ;G`u-WHh5N!< z=-g0U3tfMCnrNY~R+hkdm*jR&)2bnUl#8tBh2}`JDP!umpt>$*K3SJ8TI$RfTPoy> za>~P7-{a}>xp0EO&@{(Q3TmuhTnwhA1b90c>_3DFlmYaw%<3XX22C-TC*H_drQTa zYE?Pi>%E5qJA?a$MHtnus$mf?SMky5htdfTr2S6INXb%xhx@XXMCad4;o=qsM+u3K zrqVHCl@o>lt$lGHBKqv`#fq9W2;yvYDLOOv_&*QZo z2KDMJyj}D3|Bv6DfTH~Yi24Q^0SPt|R46TMIv5<5PMiV9@8EnGnpE2Z&o#&ITW zH6X8!0%(B;GAjX~;p!w$Ib4Njyj9+y;IJA!1#?gJ>q-apj!DS+?g$00=cH^?$C_Rd zb-|J~o6*bO=z~I%C%Q@s<=DXk_pv*;!HkLaAE0@Wj9lE}03vLWtszc3-t`neEBr~t zSt>Caza2A?W1bAwK+~gfWao`e7u7J*(YZdnhHhIbIY95BBiY{fPfYOV=)kKY1kWaD1p>pApbEBGBO@tcaOET<|)yA&t%ExIf^ zP6&LO?-EuH)mHJfyz5K~fyIRL0z+hEvWU+*m&}NP-uPYfmf31|-ymEmeLYw`9Hm*X z%!`GPyNH07NXW(yRVz4}VuFgF?{gzMQLz1&dqrlW|HGckbOl^Srx!(RV1LmPZGGjj e%r5~4hAyTvC-5(X_gb2awbs|oRNi}u;{O9dpgG$B literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltweb.nss b/35expandedabilities/nw_s1_bltweb.nss new file mode 100644 index 00000000..9ed210a0 --- /dev/null +++ b/35expandedabilities/nw_s1_bltweb.nss @@ -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)); + } +} diff --git a/35expandedabilities/nw_s1_bltwisdr.ncs b/35expandedabilities/nw_s1_bltwisdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f357cf1be973c793134bf39ab9af812efd01ac2e GIT binary patch literal 43733 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltwisdr.nss b/35expandedabilities/nw_s1_bltwisdr.nss new file mode 100644 index 00000000..49643c08 --- /dev/null +++ b/35expandedabilities/nw_s1_bltwisdr.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_coneacid.ncs b/35expandedabilities/nw_s1_coneacid.ncs new file mode 100644 index 0000000000000000000000000000000000000000..bad07028ebcb858076fc005ef72d47d190adc552 GIT binary patch literal 39662 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

HVOK@DTw>523R4#aQw@_Tzkqo5~U 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_coneacid.nss b/35expandedabilities/nw_s1_coneacid.nss new file mode 100644 index 00000000..2ab7dcfc --- /dev/null +++ b/35expandedabilities/nw_s1_coneacid.nss @@ -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); + } +} + + diff --git a/35expandedabilities/nw_s1_conecold.ncs b/35expandedabilities/nw_s1_conecold.ncs new file mode 100644 index 0000000000000000000000000000000000000000..21c9e7e254567529d9865d7561ce4c1ef0a62db3 GIT binary patch literal 39662 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 m66`OV; 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); + } +} + + diff --git a/35expandedabilities/nw_s1_conedisea.ncs b/35expandedabilities/nw_s1_conedisea.ncs new file mode 100644 index 0000000000000000000000000000000000000000..3bac3ebd08b57992dfdd93c9bad6af7e7fcc54ce GIT binary patch literal 3025 zcmbuBOGs2<6vw~&9G}z7WH=U67t6p`SVpvn$`@|L!l9&~rl?UT%Tl7Xz4kp8ZdycA ztJ<|Kg348!h-f3yBG6@om|;-Pg|!D zl^?eY_?3CWv}{L|A0Oz-boX?g=*8`1lfeJO&0?EaU0wa{3CocG0&K+(0he~ukUNXQ zCX1AG=LXicE0?B=)G|`f4Aa8pcVSEC){<#~pE+ULxDB3QxnkJ1MAy3>nFJdPE#`-l*J<3sJ2B0j5%l*J@|S5@ zF>i;A?cu7b*k0UeC1vwO)C)2~GKs5M-(N+{bHg4hH6HgV9xI|mY{eX0POOow!!1#f z|I0R_@wj%jWg5coF-?O=#SN^|$g5^|cz&bEW}Bq)K~8GapnSO1WJtY@Q`ETu?+D|w zSxu|E5~ux_D7V)C}M7ahghZg4eQ$$()XsKZwekBe;;E(vz}BSnojp; zIy?G0`n!5Eecf0FJs#T4(4-_$3-)Y@#L*ZILFQcj2Tmrn4&u&*5pf!jK~mfDXM*NZ z6V07ws8c{U7Y4KePDktvYCtK!6b#FwUL-%u8q@BLn?6!ZLrT>YE9K0y+_MZ0p(zde zoT0s?PzreZ$aK1vJ9CW4{Ky3$0uy zUzzEV+|c#h*zmC%*@=nV#cXEa{Dmy~4Z1oAg2FciD{K~Hi-*30nO~NZZZ`(Fv`Jis zv{;|hfiuKfV#t(=&}nhxZ5WAvP?3t_#H@P^d95O(6OVExj3g#hgkA_7A&EdeEdQyB zQ2Q{%{27iCpHUHN8;-mSBZ(_2k|-|Uyw8v^6`>B}QO+{tnu=6wqBJw)iHejLBgQgA zhEzmokoOE3RuMykJYdL(iqO{}E8oa4B&Qgx*LjikM-@ qRTZJ{G>$xE$heAZ(j<0{A=4^Sr$Jf+1m5VQno|%}^l?B}Py7RrDGh=E literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_conedisea.nss b/35expandedabilities/nw_s1_conedisea.nss new file mode 100644 index 00000000..9abedbb0 --- /dev/null +++ b/35expandedabilities/nw_s1_conedisea.nss @@ -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); + + } +} + + + diff --git a/35expandedabilities/nw_s1_coneelec.ncs b/35expandedabilities/nw_s1_coneelec.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f1cfdc771abc0f063ad79c0e12727a68e0ab85d9 GIT binary patch literal 39799 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_coneelec.nss b/35expandedabilities/nw_s1_coneelec.nss new file mode 100644 index 00000000..a4fa75ba --- /dev/null +++ b/35expandedabilities/nw_s1_coneelec.nss @@ -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); + } +} + + diff --git a/35expandedabilities/nw_s1_conesonic.ncs b/35expandedabilities/nw_s1_conesonic.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f7b256b4d0d3eee6929ef1b8d8a7d3c27df00029 GIT binary patch literal 39656 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_conesonic.nss b/35expandedabilities/nw_s1_conesonic.nss new file mode 100644 index 00000000..79c1d466 --- /dev/null +++ b/35expandedabilities/nw_s1_conesonic.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_dragacid.ncs b/35expandedabilities/nw_s1_dragacid.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9a9f1091e4119b03a7b16f497324a9252c8af59c GIT binary patch literal 71192 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 7 && nAge <= 9) //Very Young + { + nDamageDice = 4; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nDamageDice = 6; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nDamageDice = 8; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nDamageDice = 10; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nDamageDice = 12; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nDamageDice = 14; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nDamageDice = 16; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nDamageDice = 18; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nDamageDice = 20; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nDamageDice = 22; + } + else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamageDice = 24; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamageDice = 26; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamageDice = 28; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamageDice = 30; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamageDice = 32; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamageDice = 34; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamageDice = 36; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamageDice = 38; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamageDice = 40; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamageDice = 42; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamageDice = 44; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamageDice = 46; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamageDice = 48; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamageDice = 50; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamageDice = 52; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamageDice = 54; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamageDice = 56; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamageDice = 58; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamageDice = 60; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamageDice = 62; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamageDice = 64; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamageDice = 66; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamageDice = 68; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamageDice = 70; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamageDice = 72; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamageDice = 74; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamageDice = 76; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamageDice = 78; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamageDice = 80; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamageDice = 82; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamageDice = 84; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamageDice = 86; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamageDice = 88; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamageDice = 90; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamageDice = 92; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamageDice = 94; + } + + //create the breath - 40' ~ 14m? - should set it based on size later + //was a cone originally, changed to line to match PnP + AcidBreath = CreateBreath(OBJECT_SELF, TRUE, 80.0, DAMAGE_TYPE_ACID, 4, nDamageDice, ABILITY_CONSTITUTION, nDCBoost); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(AcidBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(AcidBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(AcidBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_dragcold.ncs b/35expandedabilities/nw_s1_dragcold.ncs new file mode 100644 index 0000000000000000000000000000000000000000..d72ee7e461a3de28b0ce787c6b7e8b90a3caf04b GIT binary patch literal 71192 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

)m9{Gv)1ep40r_A2=uRq}ECGPT!M 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 7 && nAge <= 9) //Very Young + { + nDamageDice = 2; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nDamageDice = 3; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nDamageDice = 4; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nDamageDice = 5; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nDamageDice = 6; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nDamageDice = 7; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nDamageDice = 8; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nDamageDice = 9; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nDamageDice = 10; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nDamageDice = 11; + } +else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamageDice = 12; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamageDice = 13; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamageDice = 14; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamageDice = 15; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamageDice = 16; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamageDice = 17; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamageDice = 18; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamageDice = 19; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamageDice = 20; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamageDice = 21; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamageDice = 22; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamageDice = 23; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamageDice = 24; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamageDice = 25; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamageDice = 26; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamageDice = 27; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamageDice = 28; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamageDice = 29; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamageDice = 30; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamageDice = 31; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamageDice = 32; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamageDice = 33; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamageDice = 34; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamageDice = 35; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamageDice = 36; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamageDice = 37; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamageDice = 38; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamageDice = 39; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamageDice = 40; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamageDice = 41; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamageDice = 42; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamageDice = 43; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamageDice = 44; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamageDice = 45; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamageDice = 46; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamageDice = 47; + } + //create the breath - 40' ~ 14m? - should set it based on size later + ColdBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, DAMAGE_TYPE_COLD, 6, nDamageDice, ABILITY_CONSTITUTION, nDCBoost); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(ColdBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(ColdBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(ColdBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_dragfear.ncs b/35expandedabilities/nw_s1_dragfear.ncs new file mode 100644 index 0000000000000000000000000000000000000000..e0a66afa555b22842ecfc1a427a475119d8dd542 GIT binary patch literal 40503 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_dragfear.nss b/35expandedabilities/nw_s1_dragfear.nss new file mode 100644 index 00000000..f95e3975 --- /dev/null +++ b/35expandedabilities/nw_s1_dragfear.nss @@ -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); + } +} + + diff --git a/35expandedabilities/nw_s1_dragfeara.ncs b/35expandedabilities/nw_s1_dragfeara.ncs new file mode 100644 index 0000000000000000000000000000000000000000..717ef4f6c1ea33cf9fb2d25b2f11c93ea2e69a16 GIT binary patch literal 39010 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_dragfeara.nss b/35expandedabilities/nw_s1_dragfeara.nss new file mode 100644 index 00000000..2bb50095 --- /dev/null +++ b/35expandedabilities/nw_s1_dragfeara.nss @@ -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); + } + } +} diff --git a/35expandedabilities/nw_s1_dragfire.ncs b/35expandedabilities/nw_s1_dragfire.ncs new file mode 100644 index 0000000000000000000000000000000000000000..7a50490b9d24fc35984d82ac7a8c19cc0d360c6d GIT binary patch literal 71192 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 IIUWZ87v>Pao&W#< literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_dragfire.nss b/35expandedabilities/nw_s1_dragfire.nss new file mode 100644 index 00000000..efae0a6e --- /dev/null +++ b/35expandedabilities/nw_s1_dragfire.nss @@ -0,0 +1,251 @@ +//:://///////////////////////////////////////////// +//:: Dragon Breath Fire +//:: NW_S1_DragFire +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + Calculates the proper damage and DC Save for the + breath weapon based on the HD of the dragon. +*/ +//::////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: May 9, 2001 +//::////////////////////////////////////////////// + +const string DRAGBREATHLOCK = "DragonBreathLock"; + + +//modified to use the breath include - Fox +#include "prc_inc_spells" +#include "prc_inc_breath" + +void main() +{ + // Check the dragon breath delay lock + if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK)) + { + SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon"); + return; + } + + //Declare major variables + int nAge = GetHitDice(OBJECT_SELF); + int nDCBoost = nAge / 2; + int nDamageDice; + struct breath FireBreath; + + //Use the HD of the creature to determine damage and save DC + if (nAge <= 6) //Wyrmling + { + nDamageDice = 2; + } + else if (nAge >= 7 && nAge <= 9) //Very Young + { + nDamageDice = 4; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nDamageDice = 6; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nDamageDice = 8; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nDamageDice = 10; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nDamageDice = 12; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nDamageDice = 14; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nDamageDice = 16; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nDamageDice = 18; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nDamageDice = 20; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nDamageDice = 22; + } + else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamageDice = 24; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamageDice = 26; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamageDice = 28; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamageDice = 30; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamageDice = 32; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamageDice = 34; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamageDice = 36; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamageDice = 38; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamageDice = 40; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamageDice = 42; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamageDice = 44; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamageDice = 46; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamageDice = 48; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamageDice = 50; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamageDice = 52; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamageDice = 54; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamageDice = 56; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamageDice = 58; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamageDice = 60; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamageDice = 62; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamageDice = 64; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamageDice = 66; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamageDice = 68; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamageDice = 70; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamageDice = 72; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamageDice = 74; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamageDice = 76; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamageDice = 78; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamageDice = 80; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamageDice = 82; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamageDice = 84; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamageDice = 86; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamageDice = 88; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamageDice = 90; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamageDice = 92; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamageDice = 94; + } + //create the breath - 40' ~ 14m? - should set it based on size later + FireBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, DAMAGE_TYPE_FIRE, 10, nDamageDice, ABILITY_CONSTITUTION, nDCBoost); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(FireBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(FireBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(FireBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_draggas.ncs b/35expandedabilities/nw_s1_draggas.ncs new file mode 100644 index 0000000000000000000000000000000000000000..1921e1a9b7b5178d6502d52c689b2dd51a8329d8 GIT binary patch literal 71192 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 I<#-tUUq3{^tpET3 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_draggas.nss b/35expandedabilities/nw_s1_draggas.nss new file mode 100644 index 00000000..4769ac2e --- /dev/null +++ b/35expandedabilities/nw_s1_draggas.nss @@ -0,0 +1,251 @@ +//:://///////////////////////////////////////////// +//:: Dragon Breath Gas Cloud +//:: NW_S1_DragGas +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + Calculates the proper damage and DC Save for the + breath weapon based on the HD of the dragon. +*/ +//::////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: May 9, 2001 +//::////////////////////////////////////////////// + +const string DRAGBREATHLOCK = "DragonBreathLock"; + + +//modified to use the breath include - Fox +#include "prc_inc_spells" +#include "prc_inc_breath" + +void main() +{ + // Check the dragon breath delay lock + if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK)) + { + SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon"); + return; + } + + //Declare major variables + int nAge = GetHitDice(OBJECT_SELF); + int nDCBoost = nAge / 2; + int nDamageDice; + struct breath GasBreath; + + //Use the HD of the creature to determine damage and save DC + if (nAge <= 6) //Wyrmling + { + nDamageDice = 2; + } + else if (nAge >= 7 && nAge <= 9) //Very Young + { + nDamageDice = 4; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nDamageDice = 6; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nDamageDice = 8; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nDamageDice = 10; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nDamageDice = 12; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nDamageDice = 14; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nDamageDice = 16; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nDamageDice = 18; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nDamageDice = 20; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nDamageDice = 22; + } + else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamageDice = 24; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamageDice = 26; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamageDice = 28; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamageDice = 30; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamageDice = 32; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamageDice = 34; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamageDice = 36; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamageDice = 38; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamageDice = 40; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamageDice = 42; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamageDice = 44; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamageDice = 46; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamageDice = 48; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamageDice = 50; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamageDice = 52; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamageDice = 54; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamageDice = 56; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamageDice = 58; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamageDice = 60; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamageDice = 62; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamageDice = 64; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamageDice = 66; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamageDice = 68; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamageDice = 70; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamageDice = 72; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamageDice = 74; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamageDice = 76; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamageDice = 78; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamageDice = 80; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamageDice = 82; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamageDice = 84; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamageDice = 86; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamageDice = 88; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamageDice = 90; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamageDice = 92; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamageDice = 94; + } + //create the breath - 40' ~ 14m? - should set it based on size later + GasBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, DAMAGE_TYPE_ACID, 6, nDamageDice, ABILITY_CONSTITUTION, nDCBoost, BREATH_TOPAZ); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(GasBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(GasBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(GasBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_draglight.ncs b/35expandedabilities/nw_s1_draglight.ncs new file mode 100644 index 0000000000000000000000000000000000000000..80fe60f4044a593126b113906b43dd0d6f357b68 GIT binary patch literal 71192 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 NPt<2+=W;v@{x8CP!JGg9 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_draglight.nss b/35expandedabilities/nw_s1_draglight.nss new file mode 100644 index 00000000..c283a417 --- /dev/null +++ b/35expandedabilities/nw_s1_draglight.nss @@ -0,0 +1,252 @@ +//:://///////////////////////////////////////////// +//:: Dragon Breath Lightning +//:: NW_S1_DragLightn +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + Calculates the proper damage and DC Save for the + breath weapon based on the HD of the dragon. +*/ +//::////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: May 9, 2001 +//::////////////////////////////////////////////// + +const string DRAGBREATHLOCK = "DragonBreathLock"; + + +//modified to use the breath include - Fox +#include "prc_inc_spells" +#include "prc_inc_breath" + +void main() +{ + // Check the dragon breath delay lock + if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK)) + { + SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon"); + return; + } + + //Declare major variables + int nAge = GetHitDice(OBJECT_SELF); + int nDCBoost = nAge / 2; + int nDamageDice; + struct breath ElecBreath; + + //Use the HD of the creature to determine damage and save DC + if (nAge <= 6) //Wyrmling + { + nDamageDice = 2; + } + else if (nAge >= 7 && nAge <= 9) //Very Young + { + nDamageDice = 4; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nDamageDice = 6; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nDamageDice = 8; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nDamageDice = 10; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nDamageDice = 12; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nDamageDice = 14; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nDamageDice = 16; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nDamageDice = 18; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nDamageDice = 20; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nDamageDice = 22; + } + else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamageDice = 24; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamageDice = 26; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamageDice = 28; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamageDice = 30; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamageDice = 32; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamageDice = 34; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamageDice = 36; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamageDice = 38; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamageDice = 40; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamageDice = 42; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamageDice = 44; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamageDice = 46; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamageDice = 48; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamageDice = 50; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamageDice = 52; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamageDice = 54; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamageDice = 56; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamageDice = 58; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamageDice = 60; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamageDice = 62; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamageDice = 64; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamageDice = 66; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamageDice = 68; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamageDice = 70; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamageDice = 72; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamageDice = 74; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamageDice = 76; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamageDice = 78; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamageDice = 80; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamageDice = 82; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamageDice = 84; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamageDice = 86; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamageDice = 88; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamageDice = 90; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamageDice = 92; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamageDice = 94; + } + //create the breath - 40' ~ 14m? - should set it based on size later + //was implemented using a cone before, changed to line + ElecBreath = CreateBreath(OBJECT_SELF, TRUE, 80.0, DAMAGE_TYPE_ELECTRICAL, 8, nDamageDice, ABILITY_CONSTITUTION, nDCBoost); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(ElecBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(ElecBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(ElecBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_dragparal.ncs b/35expandedabilities/nw_s1_dragparal.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b1be0defe76d1dcd7a6ac1cda820a73d87d13d60 GIT binary patch literal 71661 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 7 && nAge <= 9) //Very Young + { + nCount += 2; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nCount += 3; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nCount += 4; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nCount += 5; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nCount += 6; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nCount += 7; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nCount += 8; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nCount += 9; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nCount += 10; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nCount += 11; + } +else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nCount += 12; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nCount += 13; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nCount += 14; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nCount += 15; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nCount += 16; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nCount += 17; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nCount += 18; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nCount += 19; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nCount += 20; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nCount += 21; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nCount += 22; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nCount += 23; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nCount += 24; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nCount += 25; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nCount += 26; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nCount += 27; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nCount += 28; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nCount += 29; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nCount += 30; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nCount += 31; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nCount += 32; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nCount += 33; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nCount += 34; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nCount += 35; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nCount += 36; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nCount += 37; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nCount += 38; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nCount += 39; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nCount += 40; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nCount += 41; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nCount += 42; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nCount += 43; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nCount += 44; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nCount += 45; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nCount += 46; + } + else if (nAge > 178 ) //Great Wyrm + { + nCount += 47; + } + //create the breath - 40' ~ 14m? - should set it based on size later + ParalBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, -1, 10, nCount, ABILITY_CONSTITUTION, nDCBoost, BREATH_PARALYZE); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(ParalBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(ParalBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(ParalBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_dragsleep.ncs b/35expandedabilities/nw_s1_dragsleep.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aaeebf837d7c793f3764ae1811386a6dc4519d76 GIT binary patch literal 71661 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 dS^c}rJcN{{RWJUY+hQ= 7 && nAge <= 9) //Very Young + { + nCount += 2; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nCount += 3; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nCount += 4; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nCount += 5; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nCount += 6; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nCount += 7; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nCount += 8; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nCount += 9; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nCount += 10; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nCount += 11; + } + +else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nCount += 12; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nCount += 13; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nCount += 14; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nCount += 15; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nCount += 16; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nCount += 17; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nCount += 18; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nCount += 19; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nCount += 20; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nCount += 21; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nCount += 22; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nCount += 23; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nCount += 24; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nCount += 25; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nCount += 26; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nCount += 27; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nCount += 28; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nCount += 29; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nCount += 30; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nCount += 31; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nCount += 32; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nCount += 33; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nCount += 34; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nCount += 35; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nCount += 36; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nCount += 37; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nCount += 38; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nCount += 39; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nCount += 40; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nCount += 41; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nCount += 42; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nCount += 43; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nCount += 44; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nCount += 45; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nCount += 46; + } + else if (nAge > 178 ) //Great Wyrm + { + nCount += 47; + } + //create the breath - 40' ~ 14m? - should set it based on size later + SleepBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, -1, 10, nCount, ABILITY_CONSTITUTION, nDCBoost, BREATH_SLEEP); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(SleepBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(SleepBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(SleepBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_dragslow.ncs b/35expandedabilities/nw_s1_dragslow.ncs new file mode 100644 index 0000000000000000000000000000000000000000..186c19ed8f137c0139a804785c1c98ff8f0aadab GIT binary patch literal 71661 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 7 && nAge <= 9) //Very Young + { + nCount += 2; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nCount += 3; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nCount += 4; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nCount += 5; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nCount += 6; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nCount += 7; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nCount += 8; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nCount += 9; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nCount += 10; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nCount += 11; + } +else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nCount += 12; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nCount += 13; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nCount += 14; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nCount += 15; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nCount += 16; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nCount += 17; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nCount += 18; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nCount += 19; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nCount += 20; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nCount += 21; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nCount += 22; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nCount += 23; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nCount += 24; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nCount += 25; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nCount += 26; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nCount += 27; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nCount += 28; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nCount += 29; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nCount += 30; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nCount += 31; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nCount += 32; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nCount += 33; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nCount += 34; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nCount += 35; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nCount += 36; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nCount += 37; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nCount += 38; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nCount += 39; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nCount += 40; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nCount += 41; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nCount += 42; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nCount += 43; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nCount += 44; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nCount += 45; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nCount += 46; + } + else if (nAge > 178 ) //Great Wyrm + { + nCount += 47; + } + //create the breath - 40' ~ 14m? - should set it based on size later + SlowBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, -1, 10, nCount, ABILITY_CONSTITUTION, nDCBoost, BREATH_SLOW); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(SlowBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(SlowBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(SlowBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_dragweak.ncs b/35expandedabilities/nw_s1_dragweak.ncs new file mode 100644 index 0000000000000000000000000000000000000000..a1071d4055a9c5189d67aa3d56478cc8a2257135 GIT binary patch literal 71656 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 Ygp{ULFaDm}VlZG$>a)CaIS~f`7wnjN-T(jq literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_dragweak.nss b/35expandedabilities/nw_s1_dragweak.nss new file mode 100644 index 00000000..06209a53 --- /dev/null +++ b/35expandedabilities/nw_s1_dragweak.nss @@ -0,0 +1,254 @@ +//:://///////////////////////////////////////////// +//:: Dragon Breath Weaken +//:: NW_S1_DragWeak +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + Calculates the proper damage and DC Save for the + breath weapon based on the HD of the dragon. +*/ +//::////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: May 9, 2001 +//::////////////////////////////////////////////// + +const string DRAGBREATHLOCK = "DragonBreathLock"; + + +//modified to use the breath include - Fox +#include "prc_inc_spells" +#include "prc_inc_breath" + +void main() +{ + // Check the dragon breath delay lock + if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK)) + { + SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon"); + return; + } + + //Declare major variables + int nAge = GetHitDice(OBJECT_SELF); + int nDCBoost = nAge / 2; + int nDamage = 0; + struct breath WeakBreath; + + //Determine save DC and ability damage + if (nAge <= 6) //Wyrmling + { + nDamage += 1; + } + else if (nAge >= 7 && nAge <= 9) //Very Young + { + nDamage += 2; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nDamage += 3; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nDamage += 4; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nDamage += 5; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nDamage += 6; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nDamage += 7; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nDamage += 8; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nDamage += 9; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nDamage += 10; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nDamage += 11; + } + else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamage += 12; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamage += 13; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamage += 14; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamage += 15; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamage += 16; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamage += 17; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamage += 18; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamage += 19; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamage += 20; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamage += 21; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamage += 22; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamage += 23; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamage += 24; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamage += 25; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamage += 26; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamage += 27; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamage += 28; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamage += 29; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamage += 30; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamage += 31; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamage += 32; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamage += 33; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamage += 34; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamage += 35; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamage += 36; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamage += 37; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamage += 38; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamage += 39; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamage += 40; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamage += 41; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamage += 42; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamage += 43; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamage += 44; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamage += 45; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamage += 46; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamage += 47; + } + + + + //create the breath - 40' ~ 14m? - should set it based on size later + WeakBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, -1, 10, nDamage, ABILITY_CONSTITUTION, nDCBoost, BREATH_WEAKENING); + + //Apply the breath + PRCPlayDragonBattleCry(); + ApplyBreath(WeakBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(WeakBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(WeakBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} + + diff --git a/35expandedabilities/nw_s1_feroc3.ncs b/35expandedabilities/nw_s1_feroc3.ncs new file mode 100644 index 0000000000000000000000000000000000000000..25681cdaee5738a436e65dfd02258f95f97a70d4 GIT binary patch literal 409 zcmeZs4ps;=)H85mU|^gn#{dKz3Jff4AOUm zOinP#2v+%pfki|CrUxv}z^xz;GDr%diV7FL*PFd8U$9AX8~R+#NzK`ah~c)N%ZRSL(xYDoY9 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_feroc3.nss b/35expandedabilities/nw_s1_feroc3.nss new file mode 100644 index 00000000..58a44cbb --- /dev/null +++ b/35expandedabilities/nw_s1_feroc3.nss @@ -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) ; + } +} diff --git a/35expandedabilities/nw_s1_gazechaos.ncs b/35expandedabilities/nw_s1_gazechaos.ncs new file mode 100644 index 0000000000000000000000000000000000000000..584a1fd8a9022dc50b9cf4023d45471593f5ad54 GIT binary patch literal 39021 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 VG$tTjP1U%~(`#m~BlrWw{{xi#bgcjY literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazechaos.nss b/35expandedabilities/nw_s1_gazechaos.nss new file mode 100644 index 00000000..950ce623 --- /dev/null +++ b/35expandedabilities/nw_s1_gazechaos.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_gazecharm.ncs b/35expandedabilities/nw_s1_gazecharm.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b27cd59fad943da60e0b4380f3874e63dedfcdb2 GIT binary patch literal 40339 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 U*IgLdHR?z)EXjn%|3S?E1G~iv&j0`b literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazecharm.nss b/35expandedabilities/nw_s1_gazecharm.nss new file mode 100644 index 00000000..e4a06224 --- /dev/null +++ b/35expandedabilities/nw_s1_gazecharm.nss @@ -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); + } +} + + diff --git a/35expandedabilities/nw_s1_gazeconfu.ncs b/35expandedabilities/nw_s1_gazeconfu.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f5a010fd8ee491842b8fdb671a19d9896b5c1751 GIT binary patch literal 40365 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 aF|gSGCfaou*6kWKq!^N9LgW7+=KleG6c()j literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazeconfu.nss b/35expandedabilities/nw_s1_gazeconfu.nss new file mode 100644 index 00000000..4add32ff --- /dev/null +++ b/35expandedabilities/nw_s1_gazeconfu.nss @@ -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); + } +} \ No newline at end of file diff --git a/35expandedabilities/nw_s1_gazedaze.ncs b/35expandedabilities/nw_s1_gazedaze.ncs new file mode 100644 index 0000000000000000000000000000000000000000..d63fc808e0375e6c9536f1edc34ced3fd55075ea GIT binary patch literal 39623 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazedaze.nss b/35expandedabilities/nw_s1_gazedaze.nss new file mode 100644 index 00000000..f0a8c2dd --- /dev/null +++ b/35expandedabilities/nw_s1_gazedaze.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_gazedeath.ncs b/35expandedabilities/nw_s1_gazedeath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..149369aec94724bfef9df0bfbd9fc556d9c17ce3 GIT binary patch literal 39058 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 YLKkrw6OgW^YTV}OH8a-{{DI>C0THi$ivR!s literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazedeath.nss b/35expandedabilities/nw_s1_gazedeath.nss new file mode 100644 index 00000000..635ee53b --- /dev/null +++ b/35expandedabilities/nw_s1_gazedeath.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_gazedomn.ncs b/35expandedabilities/nw_s1_gazedomn.ncs new file mode 100644 index 0000000000000000000000000000000000000000..ec2f33fe9cf546a6c37c0190c238346ce09e9dd0 GIT binary patch literal 40366 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazedomn.nss b/35expandedabilities/nw_s1_gazedomn.nss new file mode 100644 index 00000000..56e56e0b --- /dev/null +++ b/35expandedabilities/nw_s1_gazedomn.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_gazedoom.ncs b/35expandedabilities/nw_s1_gazedoom.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9b0f39adaabfcc327857c29c80e00bbe21ed6056 GIT binary patch literal 39290 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 xf7}m@?IDwaIu%Br1pBk5cFzhgiX%b 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 WIE@KNS5q}^^YogT>j?fp@&5q4kb3w4 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazeevil.nss b/35expandedabilities/nw_s1_gazeevil.nss new file mode 100644 index 00000000..eb2a269c --- /dev/null +++ b/35expandedabilities/nw_s1_gazeevil.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_gazefear.ncs b/35expandedabilities/nw_s1_gazefear.ncs new file mode 100644 index 0000000000000000000000000000000000000000..bb9fe90231c210b73bd8c5e9bd57565cd4f62186 GIT binary patch literal 39661 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 brBJz*F5)yMz+FwzxXsgRX09XniQ@kOQz?4+ literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazegood.nss b/35expandedabilities/nw_s1_gazegood.nss new file mode 100644 index 00000000..6ce014de --- /dev/null +++ b/35expandedabilities/nw_s1_gazegood.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_gazelaw.ncs b/35expandedabilities/nw_s1_gazelaw.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c4d06dc9c769a53727a7cf6274a0440d80ed0048 GIT binary patch literal 39087 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 TaB*bUs3XO&Boi9{2QmK-L{0#j literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_gazestun.nss b/35expandedabilities/nw_s1_gazestun.nss new file mode 100644 index 00000000..8c443992 --- /dev/null +++ b/35expandedabilities/nw_s1_gazestun.nss @@ -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); + } +} + diff --git a/35expandedabilities/nw_s1_golemgas.ncs b/35expandedabilities/nw_s1_golemgas.ncs new file mode 100644 index 0000000000000000000000000000000000000000..5d6dbb86c8985f2369738c49825f9c8f0a629e00 GIT binary patch literal 402 zcmah_yAAX=?0-+e~o93A#A4vDJ^G_^>ASLRoa-q%TK;NB@0U|M=2`JI{+X H%sjmSQ^Hng literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_golemgas.nss b/35expandedabilities/nw_s1_golemgas.nss new file mode 100644 index 00000000..6fb1495a --- /dev/null +++ b/35expandedabilities/nw_s1_golemgas.nss @@ -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); + } +} + + + diff --git a/35expandedabilities/nw_s1_hndbreath.ncs b/35expandedabilities/nw_s1_hndbreath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aa1ea7e9228600fc73fcd2e1db51a47c98baece2 GIT binary patch literal 39482 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 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); + } +} + + + diff --git a/35expandedabilities/nw_s1_howlconf.ncs b/35expandedabilities/nw_s1_howlconf.ncs new file mode 100644 index 0000000000000000000000000000000000000000..10cd02097c83210821262d99efb076d8a4fd2826 GIT binary patch literal 39544 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

ZP?iG5$Qep^%r69B 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 X7jc>rkgl$3+?MGzGuILPf#UxGsN+T& literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_howldeath.nss b/35expandedabilities/nw_s1_howldeath.nss new file mode 100644 index 00000000..5730647b --- /dev/null +++ b/35expandedabilities/nw_s1_howldeath.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_howlfear.ncs b/35expandedabilities/nw_s1_howlfear.ncs new file mode 100644 index 0000000000000000000000000000000000000000..a2af6c1e35774174add9ddd6eba3c5c339b0f28a GIT binary patch literal 39540 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_howlfear.nss b/35expandedabilities/nw_s1_howlfear.nss new file mode 100644 index 00000000..13dcfaf0 --- /dev/null +++ b/35expandedabilities/nw_s1_howlfear.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_howlparal.ncs b/35expandedabilities/nw_s1_howlparal.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aed441579b1c078d61ba975704c08b515062f150 GIT binary patch literal 39421 zcmeHw3v^WHedoP1BMBq{LP)&9*F0>%;0It#2-xU_5e7jd8EnU7GDriAJ(`h6BW!Zc zwvN+e-PS!POp+((E>EnmyUHn|c$cNo}|5Tt=g)ag(xs<^w$4u+{MeLmspO24k`~JdU8A;6 zHPUOMk)h5q)Ms6O0YEB=x`qbFy(PiFHfyU6&uWrd;B|Q1LO|azpj^%^!4KCvE#75B zaIv&z&OlYTNf6Huqb0Sd_w%Ov(T4bwpMM9?FE!Ky;^wIc=-{+L-31J)y5Q$&*5NY= zt56jCj99{#SGeVd&p`^Zl4_0&cPbSl4oU2a+zjv}lY7ZcrMf($3ew{JjjY-iRJGjp zMQ*#!B@4KJCYI+4G=q^}N~}ooD~!cPS{7;o27&f8nly^-wb5e5z|Uu$RO^aHvGH46 zB1G2;&&><2V7^{ez7j$a3~=L9PKw;wUBazi(N^Lt^wXWKWWdcC9~dtmN+3SiAGifz z`T0$CJbqI(Lu=eN$<+RSMUv&+x4sR;$@{M5Ai0)dz$?(76wg*hH8@;Uol2RYdyQK* zC8lq-4@S(k3^DyyKS#$49(*FmgosO=kkwitK9MENQUHW7v8T5zrWRL>0Bl4(QDtdTQJ zyOn=GD?ceoa$B?^(=Pv_d56^W?!8N#q<=-Y)rwb`12@nJbF$nxl!P+knlP+<%V^UR zNtq+~c)-!}>lrspLoNFEAhNC%6l$Q}Sj3-EA=w;CTxHD*=v%f1{Yzb9Ks zeiQt;IJWxDuZ2|1QEf)r&?@o+)8CETf+#|eUh!d z)3J)L1}mNYrD9=Ut}vRWANx;aOWnoMlNKLFblBqzwtnzcUF~Dk2z)U|I3x)_6 z_l0@f@@KPc9<6ZNx^NC;=Jv2ATWTx68FRn;r?JprgD7t=5H#6PF|Zbv@SADV{yZ37 zmWVW22QlXCDwamF`;Q*V<@2{rWJeiFa!!n?_J!GU;M+`Uk&*(D*If>vd7+{oN+w~X z?rGOg9goCnp0cf5o3R^`eokG()YepMua@$ls+~_^*x@+Hq(s6|1`!L+*RMtvoJAv{ z&fS@b;o{`T@%=}8a}(tf96DDlXj}GQe$l9#&&Z?;1~KDPdlW!wJ0!h90fBebp#$#% zHw$Q7HoU((-P_-_Z~s6q#%R0x28Q|+J@dmR*ri4FpwzUT5uO-cWAGa=>B*H4)U&xhnnR2dhtS6tDm|#5UCz&-C-|h4rliyDV8F4ik zLP9}%kk_e?U?ds}cKr|hK4kH#B*r$caa&)tqF^pF!L#CP?D~q5wIwJ`{^);^JhFQI zo<$U23@2TWi76)$t3$9NVoPwiw=rhb>?5pMiO#>`WZ(10I)xf<0}tYQpUXJ-Jmh1r2VBOUBtFi+^(qlhTln?7p> z2C8ZF7$my8EG%5d#{)9gDH(k-dYOVmDJTy3@7*%I++vM8)c93p3;_EgjxPKGLC|DZ zg|}1ZHEU=*n;qR%Dvlk<BBGgLtNUPBv|k>NVJ_PLU|I@pzpoltvVJt}41$6UE2&s@juFKL zq*_1)p>)!?(BhTUEu3aKVQ}dX$iT@$#4=3=;(S;qhfh}%uBOwqPX=J`R@xj`p}~*y zS;;63w6al6RRlEmj{|IV!YRyq$H%4&MhZzBjwqznDCF5N()JSp(zh>J$I}6}3y`d7 z&XmDOGWSCf$z~YIK4D2V5g_fFmd!YC++=7OA8x-lz*oxN)^pWjz37Sh9|OhLwq(jRV$OY;>8Hq53& zde%Yethn)6&47)7E6bdd>}fI>q&fP6nX#Fvf`~N@hffe}$8yEL8gEW4{&_z$Ya_Rr z)r6xAgN~mtw1141sm`&P>%f`S7K2P`yXe+vZjn|qWX@xFn)e&Z6U!VkIKjZjh#Z?! z8QeJi+%E(^Q@8QqSAxcez?v);%M#1WBEsd5ksvGolv&%P!s-)A-(=F5AtKyt?xFpA z)4MZcW7*Q7TzTYpHtcE369AXxO6SHZ)Gs6It4}fYy5cyr7;{Mcw+ce&#!U{V#CdNTZ7s)pJyI%16aLTxCHMqS!4#%qH@8#>Z$A3=0yEo1~~@Oj2~MG2`JgfzR4V zH39fY!P}gnCAos1W2yuS`u+{9e({~SIWISc38IZ9 zNkDiB|Nae%m7KBjTH_c#--@Q%kSa3M=6?1_M0YwB+oPn2rd(_4k*B6p57jNK>Wma00e#u(;d7SWviG!u3BGC9$jNya-bGN$*} zd%1RidE{R)akVmp2Byv%d|xzV&>JvYQ+N_P*KD=K#mr0JSwHRk_JWi0UCd*yWPRm1 zBj{;z?8c`RQg(4tGDmMmk|`RLx_$xOa1E6flBK52$DcNtl*oX*@pC2xEXUgS#mie%l%uSEU4bN0C zS%r{xDRAc%($i}u*aGgB(Zb?^;=Nc-9LkPBpFPJjg^_H!3#+dugk4S#&}n3)?nXfK zvSbW2ma|J(-5xAX7DicQ#o^ok+tU+!{Rq&I`T{u#tz*mH;PwlVh7Ab4dT>gA zZ98yV{f%9JHMzhY*-XATIWaU@Iu_NbCikNt$+nrrs=d=w*V_MOGZU88xsJ(j5i*nJLVnkHmIWQ?lWVcC z7l~M@SLm63k04V`&0R7kKsSSpnJ>y%PI@g#*67+p{kbBG?zIZ3mjgzPBR#_mD~taa zsBUItpY1B6Lh#`m;L!x9XX!c`{LQS1(76kwcy2CMo8f~VAp`C=2MXAhJPML#fce_} zjxn@=gnmlj@uYOSSASJ4z@~cEDC0Hu4B5Iq&FXm-xuL=7pzO+{?Ec>L{)2skgZ;g- zg#^WcjZOYWvN^JF84AyeqA>+vOlKMQ-(G2s0kOA_GxxMtw-yv`&X%!kozM4=Zu5>( z%Jqua9xCNVv)%-id%00>hjhrW9w^YpFrIDey<#bM4AULcq+=zMH!Vonj;w{i!&0=i zcixQH!VUpRLJonJtQnho(abq%$C_!}KJulze*Z?*Ci9cpe$B{@#6w~gwhP@8q8xHD zny0$0D_HjHziqS0*Sexj94Tl}s)T81d` z$%L;Er>GRq{Tnio`$T9&4zL~zO!g@)t+*d!FkKlk)Osy2dvly!!F?}-U2jwCv%q3( z;I3jnddmhoXn{3U%I5r#!Je_f`YkXy@6#t7?`eO~1!qdF!#^WV z8{QpeTn<5jD6@y&Efn}+_Rg4tNfZ*{a9p8_Da&!b=;y!1SbWwJN%|k-yXTZiuAAQ` zGn5a5tC`)DMfPR$GI)b!O-f)0nMRpoh_-Sd0ylvOCQ~d`A~sW6%9H9hBrnk6sPp$& zdF}>3&$T1T^-mB>%$t{+kc1ZS#~THxRK<>G>0FaZL%>NIAM&|qaGJ+UBWcY>=g+@c zVxlsZ^3BR3`Nuw4Y{?*waW9X}8tJqd>N%-VRYBq%(&>xazgyM@{H{rDWu~xseutQh zB{kR3;Wt5pI<~9q1o8OJ>7s?Bwrj83xM}nCTW;9;uFR2<(d?oOJeAywBo_JaqN zie*TiAv$76<29^GcJIy>ZtH7EclaBj|oJh4QX!rrd*2D*NsV=1eG&yPg&FAZa;Fg{T zW7+grhE^F*rnC9%7#5}`VvItA2e;W$6cons($?awMy(@xR!coodR$?+?fs@y;?J~o zaR8e!jECFK(9$w1>OqE=&P+QO@v+CbMtW4c=GTNKOK#WPMKvkOD|XER)FdD)ja2QL zEt27x$B^T3OO1OO=Z3pGq)CQ|n%3&>&OBaWow*0HrK8!AGW8Y{$1~$*6&PqZSa>kE zg}OxWd7kCm%XHwr#(1<79($|Z2g53S-AD6 zS0IU{qlKA_sCdrw3WM45WU1hp6Q*`vJF|+#g+%o&%=(vpL)2%kE2ugyGaHQ3&BzE9 z)B@8ukAy~xG*@r8AcO@QVl)ELYC*`D+lJT}foL=kG7*x&y$_+zB(4=%3Y8UF7+-49 z{g|E9V1-sXB4{Jr=}Zsl9DkBuAL&4Z(>10iKnKpm5z>?n|M>ytyd~J8b$(26N3?WF2Pe$YJ|3 z_h}mI$&6=4a3Fr0SJ>Sv76m^+7HdR)%iO0aOk}5APG0_FN$^k`r!bvKR1VEBCu6Zg zT@^MCZwg{*HByp&8>4?`#o0qyFEhIC@2XSZU8laMPJJ)ci+07JETiutmUg>+?Jnaf z*g$rqR2<2a3X@~pIcP_~rVG?dI{cBGY|w513g)a`+0mbqLHrbEsSRe9`WrA~Ti<=- zJX)SBXK*{%9Zi6@W-0)O2Z|P~fucrmnlSWwc zCjhpWo&Gsvk9t|P`RYQN0Q6wzzHhJx8~8)DmlWB+pSPHNz-Mx+tQ+pd@RipNd+-aN zBCl9N9N`hJH$q3uW0w)Y%>KEuDS9*V(4( zIxF#L2)idoHYWrWg>s_L>TX+i7% zrA|FIVQO9wz>Y)B`u|p^zFJyT{vN9XKUAmwkLuL_v`+n|I`ufdQd54MqN!Q`cXjIj zYn}S<*Qq~Ir+!_X`rB*O(_D(`t?0&53I53{mCoi6ZS1SdYx*iSlxpf~f1UdNI`w<% z)c<9j`Wx%iFRfF*qfY(tI`#L}sh?S={&1c8SL)RNuueU$Iz;UEe$8oY{Y8QGIc@tl zNYGoG+aI@7Y+x?oR4n7InLJje^8_{NEUZrlqDH!jY0$xRNHcLYc{aWibmr8jgVEjF zmuCuecK=_Z16P0h^31KTH>8Xjbg+SpnY#GfRB{~r_&aB8Le@fb$RcC?tGOGnx998@am#+_D46cwgZuXk_3iEJ8TL+O@{?I_ z*Wmtr-o!n5%tP`M@N0c~gOH1MGYzwaxZ4XP`jmD3!WDmFL|_6+uQ4flD& zUEO>8y#8I@!2V&c@3#J-;h}h$*031;1H*kc_YJQ1Wf|_fZJ6FjA@X|}D~%K7%-Fc+ zH$E`fzprcXcJG$H+Zl}yzIJVl2B2}att_sEf6D&D(9l4-yK8UPKu=$KZ*O3A>_BkR z6VF=6YVZfsWc#MM+}L#ev))83nN63fAdTM*gE)6^__4d`m9XldPgtO|a$(lk<^`ur zI6zja42<~OK|>rziF7M=)845!{bZzRNK+k^nrir;7VlXLI0U*Z2K4h5=*`tY+hRcP zu|QW>1C8vkk!c&`CaI3<{-he{f=a3>nf)s0p=zLWV?dv>82*m|Xp>o-67Sd?14=vG zi)bc2bUb&IZcoz^7@d|$4`xQ>cpm44(7qZgUQVSex42u)xHW@vxTn@KTV}%2o(Ef& zpNqjQkmOG-kl&4hh_!5xZ-hbSJ{JXPu4F9vQ48d&Q4rCSP33SHq`edci8;QJ6cwrX zpNWEq`&d*G{}QG$H*`l$3@C16gM2d#(mocY(q1Wk;bN_`3g+B`e+rJ7qCp1_wan=X@p>CtMtr&jr4Z*$qLVEs`()EO#;G6AQ3%Yb zIg$Md5@2h^$5}8S!zj`8GJL!^iQ8Ms@;fZW*p#JkC0Z>hoTnpF z=zaS?B`Nk5X>WM{QQfe{2XlTwQWT~vg>#O5+n2(!njVYi&%O*!uE{4ArEQTXp z|F#=UyLlS9$_&_$P6CYwA5LT<7~Dagb*?!GB*|E!+6MbV&^$3J=j9w_6G?JJrpI!Z z0>(tqQFG(Y({eiAZ)VYXxhKB)R7f&XzQzhOkiPmOID+jykf&Gg#b z3T5VqNqgX}t=|rQcRs%X{X47IqV`|D7pvZO#tKgT8(8@`=znDAqeT+0j*vmdi!quHNUD;IQLHg9}2NUE^2%-t)e*$T~eBVi}^`dc4xv2nDXndy$W&Ra67nordhV!BORot0P4oaV~Lxr3ooO2Hr z8Uf5;rC(lw4z>yoAr8J|z^~i4A zw4;^4t|K}67GiIPPid+V_zAxdr!+?=KVX$&kh~h0oyV+FLLUu($8FSil_&Xs^y% z6npj$!~%-4WWMKTDi+PKip9n_K<7U(MZ0UVC?4t`iUl+u+^8;N&+e{Rz}um@Yi=#v zT`1mL@CwESym1^{z*)v}(d!x?&!4nBW1Gj4h)>Z`1@zSBrVyVsZ_0}9)s*~{EMU$d z05p2mi5tOeEdLUI({zHT`8M;*vbx>WN`sR*gWL)VwVoVl&JB_%K}c+GMi8=a0yJ`a ztwjdMpOUPOF$DdMNN+ zr*DJf)011bl4~_Dgq}ok^Al#&0vVYIqdLRUzMP`{z`%iYS9ky3{^8rxy z?b?NHf+6a5KmDA^e4!4s;Sm-|Gl0&;J`Mbf3FE@Prj3uJhej~Hl+g<;2PXWZ zzA!Id&1`vK`tYLgPLI`Z-vf#_9zw9wW2mGo8Kj<6nfS@|TEgud>)Qj7IjYqXLy{>- zqMe}W7NpBCPO6$U^Td=KUR3W7)vktt9Xs=CHXXHiGTGD_uu4rfb+%fiCU?6MFiOqj zZudpfae{Kh8nU(8*mMy%1vQd`>HCh-(ea7&u6*WL_~SKZh?r>hj9WdPO6^*@T}C#d z1M9Bv+axoCEOB9cid}A?&hWwjg?l5Q8y1j^#2V%%iGIld)brzG=5LS8+Ypdr#DoHoWG8hu2 z#{{kxy61&RU;qTmcv5P>1*R)NoK*uEi<5d>(y%5yOCDVZ%rX7qKQwSx-=G z^UU2l_8pAI{*bR9uLFktOmrCg$7_g=w_}I5zk3h5l=SfJ2l~>yb$jceOo%0H?(*mL zl|v^@QJ}^8x~}QOFpw z@;fFAJxSA*Lop!P=&OWBDPWA9p>oIkTmYsgI$8YXz%ttyrhnjI*WUhK7J3Zj?v)`f zMW1gb*uV`}dKFfOK5-{Ty>Pgl~TtZ@Ioj%7?6-*o%x7N&G74iQn2ZvqKzg`Hm-@)>w z%FBosDCekr0+o@aFw8H(6sQTogfxU08%OlNRPAlswU1zW(6;vnqg>KTb=i zn;Frs__?T!Lvo3rQ3y!yB}_t*=x@Zg%V@3Jwl=qi5Vgz!hJbDx?}fR`gH?N0KO=xu zS3@du^MeA1w2QBnn7xgEqhtW0y#m}q77dIF&;FP>1F?{w@ou2Ih$X~DwusF0L?b{t z(~Za)X*mV$sOA`FvzbP8Xeo2hDs}SbY8J>fT|du6C`yijG>So=>*^ zVk?b!Xx?U(zDr7jp)&KkO-fs3OToQ|bKO zRw*_nsC0onwZwU9Dm7pKSM6+&(nZqiXesUqP}@ba*rlaCQo8uRTh!J_>5^xy(zQ~$ z^e?Q^%~HDTa};^YKWE1IFB`wp=PNRmS#gka2QrBS2V+7o@bXFP-fX$36JV}+fuqh} z-T;yYe4NCk$b4yIbmz<(tp5k;9npS?!RYnkj#w6BTW{rc+q_~wa(_731h*NJ&G04= zPLmTl#zG}`8#BEeeTnW^Rx6M}!4WZtC)G}t4&u8-!N@77ZT52boCXczwfaRLm<0Os z534fxiG*bS+Sx{Pq~iTtt^o}d@;f-tcAdI)19nBd;*z$?xlB42KZRGJ>=??W(EJnW zMfu|=-p$`>V`C+b%cd1Z5{XR8GRYObN!rvT*wbT^ko;f%FgcLh5_DTi$H=EEM&Gxv zKI&tQG4#e?jG^n9^51{OR#=Mf^s_iH7e8q{=gpVVq$uu#Va1UumfT6JrgVdaAtI4< znH(vqh@^BfyZ5v$DX5E zL*gVKvcgwGX_!qTrny(w)BX`X^a;yBrYn(%x(H*9?gyV zG&yqKx2B{8EQs+MWxXj^LlrGVJ_z*-*1`kPxR^uVBC9%cX#dX_i4LYRb9g-3OU}Nc zmh5vc7W+>{_EJ>#S?g-&fVP*XWcgqI_~=4%z{64RZ`Cg)YV7ON(gjq_H$G6g^Q~{_)t^}%?oQ~gIUi`Ne91tPnb$JC`7Zt%%!zGp!IJr z66r4_8x*4+Fk^l#4`_M%64b$XR0mD%wLPKvsY_4`_e8bO*jmdIW6@33-9HnRJ&FFW)+nIyQp|r3MI%2^C;v5EEdGBX zJ>hRfwSW@|HGLuVl_^ESFMm7oLbUKmR112ylA}U5Geb{o*qXDT@?Cu#pyH-y`RGkk zy6?W+L^&O7@P<#};q0lL-*wkpdz1(LJ<6p+I37zMWGo-gdLzZL@!|vyA$j~6Apdqd zZzgwK$w!p(8GOjy8^wp*>4=_u1@;r~4RO?%9>6z*CUA&Jj0--w7JIvV80_Dg6U90y ziq?Nac8U!&wkOSRfL9d}9#@W&L`zGdedh3a&WN69pKqnI6=+yKI#BIwjI5fpdhC@T zETm|ytMc1@!08`X;=hQK{9z2(hZy)@(d{f|2Fq0Xq#fw4wH_K1t*510$=G_&U99P9IH z1<`K!`wq$1W7A^UJBjdogeQeOqQu-uln+CHMKqzV%1<~F zTAO2z0F55m;zo!D%Uk8M5)S*iuV8MeeqHVM;wkF$&YypNfPQ{U4l`=3=~Hr+)y2~n z@c7Hj%!Z^ZkV2vhe}%w(NJXP&ZU2DkWfHjv6HXw)mJz27AHYgn7X9<2ohmUZzv-IH zu}H)ZRXv%&l*Rm^KDtlXi*NJoPWKJa$N5OM{70DJ&(May8AfgT=!RG?u9O_73#Ga2 zXn@b}U$6mQ7lI|n7|1^+%iBv%a8p~}N9$vPCfNEc9==RgA3|xvAbbQG;7y5ej>jbp zaWhj$$~GU>W{oTYg!yDQaM>P7%(TcT1QuIO*<8+`3so9F)cqFaP9SNayD{bCIJh<{ zmoUME8Qlmb^GC>#-Gk&18M09CSA}oHOkKX^WGASJOp(hM!O?mCu1eeGk$RC@VzY|W zh?0PJcSlvJQPG^n2)4w3o8D+aqh9PD2Mh5{TgfNpo~8&?pw+OIhF&-=(yGw+3FmkjHj%7#!}w!2>Pu6IggGy~B7N-q|xnK&w-(ye)(=N}LMV zX;4wAK6N4`t#RBcdy=7x!wLU1@G9Ev3;%I2h!96r^-)PxjCKP)TVT;;(Q$3!ce#|X zQXi+|OyPxPcI9-mm~c@jL`Eh{_!H@66EPg0_+go?e)Da@mD0!1gTsBemW&a15dp84 zl#LfvE0~#Kl1eZM;z~54Wc%|+MP{S_aX&G3gj@#ZR2Y2{>|4$8)>k`J_@!{UnJ(fq UB_Lg0)wnHFYi6z^_yfiN17$|#(f|Me literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_howlparal.nss b/35expandedabilities/nw_s1_howlparal.nss new file mode 100644 index 00000000..b0ecd43c --- /dev/null +++ b/35expandedabilities/nw_s1_howlparal.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_howlsonic.ncs b/35expandedabilities/nw_s1_howlsonic.ncs new file mode 100644 index 0000000000000000000000000000000000000000..62c88721ce08adeb68201fca92d80d53aec0aa04 GIT binary patch literal 39081 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%0Ah2o^k5Oa}+|)&i@etV0*>K zS&)z+OEgF4uVvy;B*gI>5*sYjeLBg>oS3?94aGcxD<9c=3v0puf=QTs$WD?D>cV~0 z?71oVdItD2AY&e#PcIgFvqy0&Wb}A(8n?HUWM{QQfe{2XlT#TofAS!a2{j?Q>yi&5@OI_pq7MyexZyUz6|9zzo=4LX%-mvt)Mz z7`gUK6-xtl{Z^{y5%)Fj`!wMAi&C?%=F(q`e1hiQ(D`53Xv~+WV!oVaf9lNH2&4H- zlXwk&J)JTOtLPiAEpp4_UYsvvR7}=e)>X*lml$JFQK`v`ll(YFF;IXdocH*`k@KGK z3QrsTD|@EZ^w$ald*zQ{{~h*4*HuPe#>aRPH1In#5W*o#x64d z)ufU{`cKIDLy8)l4#ipr2Rpi|(RQ^6+|~R1;vBZ$sB?j7vupf{9~|Z5WuM}{7Q*G< z?VmuJe~l%97maz!O$DGr<9m%O^RKwMzyvcC$3yoExHFp^mN8?8GT9)U^8gka0nA{h zxjPz+QmO4LztIXDE&j1wIZ2@gf!&u5{T!s9JV#CdLvC`G(v1GjBfD|aj#dJD zj^yZDi2WHprKw8bC+tFu(j1+9w^fQHc{MOQPgtdhM_l@}Rf=4WOTTTEBKT0L+iaEM z`w?8amgsix6$-4dEr)?AJir1*Mu)pray6tCDAqkG)>a*`f8efIz#R-|ug+RM_U#{v z1r%Y)e9wJL5V5BxTh4`#_OIBpBs^q6c0do!kpwY8V z+z4u8{+IBZ27f%wcZ6S()$NvcN>1hsb1Mkcda|cEw@9EwN1}U^LCC@h(4_eGTAL)t zAC;(%oP|!|0$~jO2rDKa9`^&{X70KY`TWmCL^cb_G5kTi+zX$w_3FE@Prj3oHN5(L{l_82NDO9rXWD^L97dM)90j`i(<$Q;#biIk)PPIM47 zl8_<87^zCu%o9^`cu}oCRJ$4qcI?Qj(RAFR$wX6U$SO6_)Y)p4n%M1%!)R|NcDpZ< zj1v?i){w4M$7YDYDX6g=R6lT(j*d^IcjYt3!XK|ODPp2k&FaZiYS+^3lG%t1th>T* zvYQ#CiHoCC^l}Rgh8G7Y)ay4x!wiy=Si;;SF(?s$Mt*$s`^|OpCKzO2dBsfcKpA=a z|ISKq3i3v_FweAtY`E2J+=>q;nCQ^Q{J}yg$J?>P+uyqfLrQw|?gIm9-nzYWSSG~cHYfafJsD7< zg*nyGGZ#{N+|StYqDu?-4n9r-9?48)(|p+vJTRaPE6XKKs~7+n0ne7#uno$tDw;8@ zvEk&uVWY%tWON}8>+j=Nbcz;NNrvWkRs-_}v3%|g?P0WE3O*dq3kbkQE@Qft-!WO} zOPZk^f<_73(l(-SCnuMJTt@_Zw~ z3U0dA+u&VmhApPw`2@yuz*N>Gc1cZ&V8S472P&9s;1(O^t}Cx%vLMWQ>9^5IXAknw z5-nSMM>9E?r%676$8;cm?zBsa0a>jkSSgki`GA&^!> zu&-h@7Xe|3N+t#Xu7hdE!k}DW6n%)m2no&$F}?VVRVPbmPWF@~GY8hLm5tHDd_=@y z)@4>Hz34Zw4f?E+9dnO%z1SY(fDCCM`C>15yVDg4VrM+L%~{aV8nhO;K44?bT4T0;R4qvjrYRb<-w{wi=PodtE)k< zx%okkL(;`pOU&NJA80oK(NO_rA&Uk^gy(+1l%cbbo$+ppbX0PTv(-!^y0nxjXqP(qvn~tdnyw#bB0Wls0XK?4pKJ>+1hF2}n=P01Jc`x! z3b#EG5>MzG35;Ge9bA&s!fsC_rSI})EJ>z}oQho?eA^AjzbFOk!)M1Bijzvmxmxa& zBW`dh1uzr($p8{^jzCMz6s1YlS+&$mQJP~XL@g&QykVc3IO_%HA%evt$~erJbhqbqntjDV_cIRw+(G6Ag2|Zk2AA(vD}W zQY7ZocCLMr=_V=d^mjX$UL2>Tw(}mbFf5bOu98)Xllj!P`-oMF^Y~Ocf45bNjR`7U zU{5V^o|;O{*Z)-x8>DoRj5=D1djiyUkt}v;X`hrX{$EyaYov6^vsUR^DP8)fR_SIb zUG@p`yyc%TdHzer?)3SxOl4La;0(Nc(!MuaF6soBYhK`h<}YsmNfSO! z;*w{6ZDVxj%u3e(Oh!kvUt%zN{kS8RMQ-b@ylI*Uv$Ff?12nvdbKs>2-x^xiVEebNHptjY^;d2_4#B247J}@!#C+|~X@Dl+E z>mKB?8_ki5`?y>k8Y1L(P@wI)b?XM?ig*Ry7CD#6;NpkyDm^=<=Td0?iSVNI@e}Xn zZ;G+9631oJ3YkPAld@EDjjxgpRSEX=SS7^&XWvH#FXAgDkTgWan=9q!x@`#E5HX0MV^#h(d66h1dJ}6sD7c(+^Br1h@J8Mf}{`apyDLfICLg%*HQs{p5GLb@my)1$AE{S8$(X1hHiVs=Q zckq#BQ^qv+`r5MSI^B>gS{uw4TdU-Ya?8VyL6?v(UW{K<c6g6mTM; zrY)pC*N`Xt{I?@7MhcHbrJ#2!*(-E2GxWrUtvL%S-_^$fDsFm?kKVMT2Oi2zmD9ln zZ}=1*&YsHoU3a~;M|sfSqg*Z!6b>y$t-X=ynzpgJmjx(hl^6U*JU_f&Wend>_N_!08{_mlu9RIG8c1 ziUGF2H>hgB6JUB~Ir88$7C^46<`1=kc>j0?YVrCuku5bPDdBIdG78Xb7S-gEakL)qN?KHoHV5I4 za=jitomJz?^Is_mSS~#(dIL+rQ6tv-ZQKa@M5Av>BlH|JT1}QG#}ZL4>udB;0CSpi zCxb&10h(%er&Wh6u*4BLJ}Di?UZ~!zs4WG_nS2q4{6P-&B%rd?E2l9RHGC&g)g3Y` zX5Kys_Ahr5=`XefQ36W-JBhG-xF@+hyu{o|ln+CHP9&kG%1;;)TAO2z0F55m z;zsZW%Ub2L5)RwCFJNw|c3tiE;%OT5E?jtih<<)u4l}B+=~H5sHN?{w@c7HjOooIj zbcH|{{tAKnsIo@QI=+eOW#YMT6AmCkmSLv@AHYgng+IlsP~4#b5omz7B*HNsmo&u8Od$!| zd{mnyvIr37lik2&TO<+FCRqqHwwj{3oI#gfDSxQ@Ey|rh(nfb<%ExhVZCoy4f(Vn{ z2qyDK$PnFw;1Ee!X!NT>H+-fp-Ey)My$Mf|%NN1XdH$|S$JLQ~;aYsN3fJ(GfOdCB zRjyIdnnng&;=fIAq@Z3edXIwz`=+hL6LU{f7^;vjw+5P)wEU4N3pA8&#HdC=XW~*8 zsKj?EE#R$zl`rJnP7Z^^JlJ_41%3hx=h8cj)#05jQy8=c<;vSa$Wh`%z(#|LO7W=? zY1itzmX zVV+$%9W5$c6mpTV=@R}#df9jk`zL-_YOCLTn^2|wBlTc+AFah>#9V~Inj-|L`2PV&u77?2 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_howlsonic.nss b/35expandedabilities/nw_s1_howlsonic.nss new file mode 100644 index 00000000..4de9768f --- /dev/null +++ b/35expandedabilities/nw_s1_howlsonic.nss @@ -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)); + } +} \ No newline at end of file diff --git a/35expandedabilities/nw_s1_howlstun.ncs b/35expandedabilities/nw_s1_howlstun.ncs new file mode 100644 index 0000000000000000000000000000000000000000..28a19f6edc13097f4acaa2b8e03fada14e0dea0d GIT binary patch literal 39498 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 XF5)!BAYDz>xGnWH)7KIFMDgDMVbk9= literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_howlstun.nss b/35expandedabilities/nw_s1_howlstun.nss new file mode 100644 index 00000000..962d9b90 --- /dev/null +++ b/35expandedabilities/nw_s1_howlstun.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_krenscare.ncs b/35expandedabilities/nw_s1_krenscare.ncs new file mode 100644 index 0000000000000000000000000000000000000000..fcbbba78d1528f0481ecbbf95cf90d4f4cdb492c GIT binary patch literal 50625 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_mephsalt.nss b/35expandedabilities/nw_s1_mephsalt.nss new file mode 100644 index 00000000..03b0b97f --- /dev/null +++ b/35expandedabilities/nw_s1_mephsalt.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_mephsteam.ncs b/35expandedabilities/nw_s1_mephsteam.ncs new file mode 100644 index 0000000000000000000000000000000000000000..91107e1c6aadea3d33fbf1ebf17818f6986ec50a GIT binary patch literal 44593 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_mephsteam.nss b/35expandedabilities/nw_s1_mephsteam.nss new file mode 100644 index 00000000..9b46d89b --- /dev/null +++ b/35expandedabilities/nw_s1_mephsteam.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_mumundead.ncs b/35expandedabilities/nw_s1_mumundead.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6897b909756de3a6d5e937c1533561316696091d GIT binary patch literal 1028 zcmbVLJx>Bb5Z%2S@T<@m6rw@*8WT{7#@0Xtjh!(XZT%f~7+Zgbzd$QvVeL^F6AB6n zqZSm#P*50g_RXE#og^eu?6NoSy_tDCdr&(zr<il9RSA*Y~;EOOLZsWZl=lJ${`zDbQD0Zs|(U4)84TIlFmI${eX z4WpVgB!R6#3j}OGU=!__pg3!5J&mT@Vbj3A09(}78@(;IBET@_bR3xW&b5dTDhVly)me-CcEi$Z7R J@kG|1Q9piU3vU1b literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_mumundead.nss b/35expandedabilities/nw_s1_mumundead.nss new file mode 100644 index 00000000..f11db57b --- /dev/null +++ b/35expandedabilities/nw_s1_mumundead.nss @@ -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)); + } +} diff --git a/35expandedabilities/nw_s1_pulschrdr.ncs b/35expandedabilities/nw_s1_pulschrdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..e3f8c5aca63d0f9f14c5fbf68259400690b764f9 GIT binary patch literal 39043 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulschrdr.nss b/35expandedabilities/nw_s1_pulschrdr.nss new file mode 100644 index 00000000..b55902c4 --- /dev/null +++ b/35expandedabilities/nw_s1_pulschrdr.nss @@ -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)); + } +} + + diff --git a/35expandedabilities/nw_s1_pulscold.ncs b/35expandedabilities/nw_s1_pulscold.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b17e5afba826e11dd087a5f6e66950908694c3c2 GIT binary patch literal 39605 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 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)); + } +} + + diff --git a/35expandedabilities/nw_s1_pulscondr.ncs b/35expandedabilities/nw_s1_pulscondr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..a13019212ce2330a392196dfcf6245c9749fb473 GIT binary patch literal 39043 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulscondr.nss b/35expandedabilities/nw_s1_pulscondr.nss new file mode 100644 index 00000000..bfdbfcfe --- /dev/null +++ b/35expandedabilities/nw_s1_pulscondr.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_pulsdeath.ncs b/35expandedabilities/nw_s1_pulsdeath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..230f564b49d847d19a577c4fd6fc8f152ce9b04e GIT binary patch literal 38932 zcmeHw3y@UTdFH*{Ju@&fz%b1423_%x0D&HW5XK-eFT@}i@XQE=EZlBp8fdAfd(_i| zBv)-B%d4!CC{>Q_$eWcVd#zaUZk%|%(Z{ZS=qw2%1a#9 zMrObN|IdH#J-2T^K=OK_7OLjXJ?H%Y`QPV1uRBA1Bi_LquD!n3asGAJatHrrcupdj zYI0^C8175=5A@!CD;Fncwgo;Eem7>aeKW}*uZHOfKxe?5Lwn-35F$x|AGHy}lX9U+_!Now#+6(Bzh|R}+ zDvnN~$CV}w@HLjYQ@XKVViHtEcWF_N+MXujxenJ zd9xU}$1vh@5H|OJhGen)#xVDTd!XOz1qFPB5%?sB_Us$B5830B!`i)0~JzhV@dYO|>k zZ?}Z8Yz;%4F%Zdi8{f4crF*bcEbPk_#?$m;|H*8rw>bWQMTg;eCyPAErVKlhm{J=9 zv<3mp6!}-9;{Gs=TmHjrn?~W;81vSJbHFpVS50l@H&g%ipTt6g45EE|fuKo;ih=E6 z3BQ>(ozH>bWr;|Wbzo!8u3~8{yZ_jsTt0vMRCb)9U>WhM+7~9vaZOlWq+Owt*Iahp zd7+{o$cVs5-P7)D)$e1mk{5@qN!U%vNT66#jSR zs?!gw3)C#2;d*p`Z@Pc5XW#yzehl5a28Kok6g|_!+TNu_^`KO>-4U7?UVZSZP~;(r z@`>3Jnf@aXuOxE%rc0%4p}a3s$WFtp(u0LuIhQHt3dj5MnW-tp^RlrYX5a1h4U^wb z2N7{KDMDNUv6O3HYlA5>5_JW;{`*wVEH7S_L}KzPxAjFU0_HN~JS)D$rmrX&R8Shv z9ejZ-vU>fVMdV)$w~AXCpK=nhG6X5Ywm64-2g9gjA7jZ{omr0R{0=v;;<3ZlV@1G) zSB0_8`3|!fM`G0U7|ck<`4RUe)EYH6!l3~_@=~>4Q?Y_EVBOsT*cK)S@{A0yf66o= zFN`9h*wXU!260}MG)4?!-CY)DuIqzAH#cZE`egKynMQk19B{3BBr)4!qMR+7syqgO z0}(?P`Zy#h?p+nuPJ`F1k;!a!d{?PBaUheE;G=HKlqYAY4@78+YMaE>d|yOdt%je6 zlvT$0=YcKEh_!{P3={Z~*8*wVG*vhW(bV+a2u(>t(_e>aIzsljED>YYHED4|tjsd3 ztg|#<0nS6#t%fG`ju4t;tVH5jn-O6xVXX6!Fl)a&8pBj{e(a(I+W|6F`>mPX;?U|3YP(a6r3zXG}B@r&WB}kz&fU|k<*7>opxI1&*^yAjAY!bm$$21wsL zXI;+(*e-yxmN^ZB5ohlEBAm@Ioc*rF*;IhEhbwesZ&YU-H*PU~85{1rFTh%dLk52- zLTZyC_0DRfUYruRuY9DhX4BWG)mJ%S;NtpXY)IeO{#Epkz*lGQn$G9<6^n)RXem>W zTv5iuO>tqqBEW{pbV$ycq|S=V&uThs1YAkxm}F0rK_Jc17tD-}OckA2({R`X!FDZI z{G9Q|;-B|Zlh@v1Ruhgf3@=G}Th7$V{8Z*`pEJ=~Qfwc11L`&0yJa z5roW)tYoj3bVx>9R=L}mq~$?wawkVTEc=35_^kUSUXbW$i4^~35(Ix8OTVa~*Phl*FB@o7?ZWgE2D2~d`?W8p# zVQvnA>65!yqP?;hc0ewNu&l>bImORaGQCw;E^_Bc!`N*UZmFWfYK$QsY7t+NpJt*C zTP7n~GtGGCMRIz7y_ai;m`45;6IUxjsAKB9!M8=zjV}5(@Fa4s+iJ0knU}t^d^-8< zc_-zYn8#Gf`pUD0(bHtu&Ce*LY)zzOjsRgWgf4u32v#wxw}=JiV|$AaWb$QMVFnv8 zIg`@dZFs@@4dZO!NxWQ}=T#plLIhu*Cm6|9pgP3Q_KbQxaOozMeI> z{X%fC0wGrqM(M9@2WG3kvFWb{;`TeUnS612YGk@}JStO(9~UQ$YyL7KjkvCqSfwgr z1WaFVCZCz;n=TZvmTc)um<}_xI%X-y`E@Qe!K<~CM>m$> zMf&=>2O|_(V;MrpuOW62IXsZDr4%DGxgQ2Ww!n#rcqpO9 zkiO1PO5#5RqMI4nXS>FT5Onwocs#-3S%!`#e=}<;v{#J~&&@?^Gknmaq`>`Vmz;IU zS&%dX%$FW?jG_f3^i#%;FUYWa?H848R@FC*FkWTLXlKEk=AW-1HZ(b16kR#X9_&x= zKR7TvJlHQ=NYDbv*yL{{n|=5zPlLv*RLYHKy(ud9a^v0(8IYkp^gtWKcy_G!ily9fOm|F^u9e)qX+gqv zWGw_1mZG)2^Cn{p8w5BB83bCgWNhk1GUucnOQw1I*k|wl=*=okrYE)iy0M#yhQumt z7rG}!IApIhPj$`di5oz94QR&5Y$^hf1eDjiB264AXwqH@)5zF~Vlhv@v8<+u>x5*p z#5L&XXo(Y+1tteLEZ&^YG1&WUuptYqC8oDuWw66G z*r)|IBL-|YgRR(L{5hrtlt=a(QxmaGwhcBJXGi3?lbQ|u!&KS95N~RI`h?*<<0oA( zrqnw8GwgKW-C@FKYo|;eMz@gThsir*4&9JTgxzt4E~YHU*_ogH7Gv>AOC;%kjP0IN zBDrpUhs;nO230eADT?gN<|TQ9W=%+72${o~(`gmn&rQIBi4;q<6PqY4Tx~fR7HR7L`6U6zQ(?bhK9oOHmant4-x7@V#ZJDEEJHyf7s60`j$-)D6w14@nQ|XosqC98hy%|w{*t+#6&FO8mcj6`GsC4J zgU8I-WUl?$sj*USvRo{2mvpYCuDyPU(cAV4N}#et>epMv@3*T!0$b-2sD;h%W3g7f zQDw%@i?jXK5K9%t|I=v_)Eld9)y5bRE$!1I@4+iiaeF36&-EfYCIf?vs&tz(h~~9 zZ67qH;(w;Ci}SgRVKUryhL)CDP>+ajG8a0yh>bnTH8P^wHUCojjDfkEYElwcY?uS6 zNgxrTOx3R05^|=H;c-j#d&zUd!yUq;Y9>{6xI6PCWAVKn+L?PGTRN5TXCk7^t7RPgB7@_9IU4h?P|5WX}b7lAdxzazdbwsd<+ez;iiq48#NBp?87;#H^ z8!Vj6!mP)=0&y$@Ez|_w%*T8(gFXM(N$edzV zaa>_G7-g7|4AoaQoA+a(Y>}L*(}EBZY>4p)M7sqcIkye5F#^$SAY>vW$-NK3%tO6m zT9KttS)ui7G5naF)L?~H1|mo!Jm_2;(mDPlzdq8T2&HSxNPq#HJBLe?a{uWe=Bq8( zqU73IuG6=0wGr5co>SsT#Ld2Oj-eMvi4HVHzGHZy4`x_y`NRg$7K=P7>*_Ong z1VjX@GqH-J2*W#-*^%OOzD&nv887TAh;edE^DI|{qe<6bVJuS^M)dV||&)%oq;DZ}SSf`$eOmCx~Lrh;NzuHH3-iG&TE?1bB#zLzvDa zDpNDe$(ZfXP=$@dTLNENjgVwc+8S97?yNX_C`)r%-&3c)w@!Uuo%(*N7wL*ZnMdD5 zEa~?8(p|<=u%YZ&sW_G?6{aV6aL|E(RTqetBE=8oWP=U^5HJsDl>_}bN#Yxrr8b#a z>Tf`e9Rv4Ik{OSa3rt|3QZqCfR%2p^usP%^(8W)9rnRgkvwpB*CoOEb;i+oglGAoy zP77!xjgaO~0BkEe{WGQ@YGu{ts|#rY(1)G-f#E)E;E&W^Qe*{x$|CY1pUADUZnzie zE3X~);TJwdUa^EY#u=_RMn}wJml5ZMmJziTuj277Hg%}e9V&EIg=GxxR;-i!SQ1Cy z3ZdbdLnFQE;B32Cm&td~j%^qDz9MFZ>5TK|a2wzd_KKrS=@)GSBK>Vz7ouX0Of z@9|}}sk+QcoDE_3#ETPGpmZ=b%k#N{IAimt@4sT1g=WZ=!3U0`%(F1Q7ziU2c2rbX zR0#`O|Ic;mu?bW2f&g|LYS#a^I`!4UqSE(79r%$t^}k=I{wHeL^uRZnv%s<*rwOC|Uxt5iChgSWA*F0W~;*ypb)tNnHA z2kX@DsZ;;wb?R@fQ@^xM{f;{IC+gJSU#EU%o%$nn>R+x?|ARX9xattm-@7%YvGx}Q z+UKzC-yp$gZEk(9iDwOZ~vq-#kBa>&p!xqeeg2K*mg6?5&X)2Rr^Y-w$^-MpjgjX7GyY zZ82!BQzy}9ki2TfR3)Zze=GdGrqvX9=Q9@cN0Xkml_ux+*a0QmvXTB;qT7eyQxE)x zHcYR-#MtB{KQ63o5>x@P$){v3L{k>Y^{?e&z}}v-Tf{B6mfxc1i zWF|kI^>z*K-{(!;o5wsPKQ)=pJb=?n<;>B1);qL&V0geQKQNg^Zncx2JwyEfD-|*m zTxNciGY`ltz|2Qvt3%|}#84^*)IK3Hg%r?s#!dqtYVc8C=&Vp(`K+Ag&{VO>d8BW6 zpl5Wz8|~@cJKzoO@`m=0dINV1j*O1P^R$N97#tcMxOHH7z0b?&z#XIXMgo!F%UEfg zDrY7pJ-_jR;lX`9!-u`w1`abCAAIfF7zse)tXrA*gn!EZ!^p@`y0>R<&rsh$dT)QA zb?iWJ&=bpA$YSu5Y0`bmTyAWJ{#kFpm&~S1RgmWIgh8A;+5Onu^h#KD(5Ea=TDdT5 zZ1aLsChQ<9l?O)rt)L-}qeO-kyJ>&pO+ON88j@63rKFnvr$u|#0uF&Livj(V1$t{W z(2f|;do9q_)j%UVY^2&Ixk;*7-5*v1T~OI;N@l+bdZ-%c+!)X=TLk|_0NP>}r^Gro z$AHof_ad4}kDSOIqubN81V*Q2(!-fCIiAOHA+)c?f|pb2N-geIGj5Hb?CzpW#^)B3ncjy3*^I55Yd(m^3^cN+-IX8t(Al&-*16@F$yAbvU@oa2I(wCL1K`Sqb9$OQ95jIh9!^$hT5LB>2fpI$8VW{=@k$mogUG;VJx$!{?i6Ag3Winm%^ zIL}15(EIj(L|p7E(%$g?W4d9D59a)WxF|Htg>#N=+vmd4njF zg(K%Z-xZ>m+?naG_cIUbB_8x1i056Fc;3R!)B>6PmrRVPTnv9TSPVzF z{%tpycJnlHl}XqTP6CMs-_zqxklcZvb*?!GB*9p`+6Mb{&^$3N=j9wF6G3uJrpI!Z z0?I_uF>~Y2Y&A*zM1Kqg-*4`P;_ zGZ%4K@)-4)riJZxuhs#q!Go2(%6<|efg!eJ7(S@-C5HcDC%+*hMIOxCs&|609H9{*>BfbGy zGj@^rZzh!_(tkqEA5zrdbSTz3IM~rujkYUA;I7{17w543Mx6^xn_c5q{NN~GIs7#D zwGb}<9{&W=eEGhUYU>4Ko^n$GsL=Q>+Pl*EN z90EY2XPvka)W-ZT;WrH@c$!c4z9g&LE$x(?%o*lZ5UBNJPjhaPK#7h-_a=jog%hBW z+iPu-9DiJ*I&u~|g$sl+^dqd8fOx_Wh@06{S4j^{1p3n_k$7XbhXVW(4VO(dgVLjc z?K%S+9KS!gbt|z}<3i|3J#K!=WGJ7H93*xQ$rw;vcfknZUn+&egWINjf~ujkf* z^uVrN*d`dEVfX1jHjythfHpnGENKMLx!CUk|6;;;Fjp$$BdTd*Bk7SbOfMySf#yI2 znFynRdhu#z%R?6rF9PrOSp4=qpm^oM1-m_lO3IQ!>I=#fKe=8@xSeBtdmu7LwOS%2 zX@CkrkghJqbC@@h04w`ela)ETl$O*D13TBRm-yW%j~ zn~B}-3nb$N#fUYeYt^wCB5(?7EC&E4reIcL}&*X7bl5Uh` zkP@XQ1g;jk=cMl{O;lVEhgu95ftR@+D>aVJz=$xM3I5Q}mp#Wia`zSVy|j4rZaAWc z!;}a5M()WK)|i6gfxfkWMb7Z8Ar zT*h=Ozhkn{mo!5;1cNS{eUWgM0>aoBDtFA!1z>ujli6PmEVGSb28Ryz>>cc9rYBJD zULB%Rqq z((j^^&K~5UC0e%jj%9K%Pm_ECkLf@(jkSS zgki`GA&^!>u&-h@7Xe|3N+t#Xu7hdE!k}DW6n%)m2no*fF}?VVRVPbmPWF@~GY8hL zm5tHDd_=@y)@4>Hz34Zw4f?E+9dnO%z1SY(fDCCM`BE==yVDg4Vy8X1%xISQG&01r&epD?^OyK-IpSu}4 z(C0^0kV+ytcN@D_8$L-<@^ZKgM{+lT7oBmFHD5lNlyn+<#I5 z@bbrLadk5z`V~JGb+Ah=5i|+`?!ANwDB}Ii_;wkMkhZqDJ(#Ga4iE%%+juX`T^_93 zv-lYSw7MDuo0}ixI3!(swZ!ag{5$OiAUZ0*EM(EZi16%>m@;%0vNPTdbQdv)xX2da zd7elFNN2hcUL!3Vkd8`@akiRiM3oOOjgH?TMuHUEYi($&`^(u`7dbyW#j3rC@#d z>=;9FQt3EX%AIn=4KAesWD%KDF&WYL((V zK9$bjZIxnUf=U_8+D=U_~523|gC-r&&?uccP+j=W+*ya@n5&Of=Cb&&b zHp82OJ55h%j)h7dHfDM``V!sotX3d`f+8XiPpX|R9mIEwg3KwXZS`{aoCYQFTK$3# zObq?W!zv7ZA|PSigIso_Ia2X%E?0+!2>BfpXuEFRx&gT&UV*no&Sf&V_#wPX&yMN2 z6q*GGw7)5XV#VER-D*yQNw!l(+r=Qt@y7)=?oHt*xNfF$8!-6AGEV+wTO_5m1 zw+U(7GBlo~|m!6FCfe5yrE{mW9&CPc|M{N=~M$Vl>42;&<1MBg^I3 z*8lt5-&~J-mV;Qp-BAlzbZ2cTER%0!TwYSRCn|-7qqU{5RMsUfFDc}sQdlrlTMCQi zfYjwBg^8#X=I^c*6BnJehdTBxWEUE9%s_H!#KeCSjfvg*0Z$zX^oik~=KTxhB-Z6+ z0gp#5plercKUi?)60v~`85uqjmBPH8wWToshnJxgo`_1Jb6agGbiaCuNTI)8mcV(J z#Ia{-){uCB4_VQ7@R4Ry#x(cZ+Op_6)sQS&8_XA5tK^Gv%fpXB7m+Vsh+kCX%pLk= z9*vFqG%<4CHye@y7Q}dsvfh-dsfrXLAB6e^OW~oYU(BITZ&sZ-bpGc{L#rxb#MgNWPUW)QQYhCRa(D713n*ZhJM;8(UJ`}b7cKuSK`o2C*44BiH{a;#A z_+V5DZ8(I=d9QM>Pa}od&o*QWm)3ajzNi#h7uJdfv%b-g41W2R&`2~WM5DpXrL`@f z{ckQ2?k^-76r&a}V}30QXnW=|l)+?F1}&YnEur%S^H#ReMNljb+TtB44XE5}KqrKQk5bND=GL{7BNw^GRpBrG2tsCG6+R!!PH zwn}s?UC~-s<+uBQ(?71ne-S77gBY;)G4Q{j+gVHumZ|hfJJ9EUg%^DU{(CX-eGI2H5`IpsE2+fa#g#$k$uqKB^T3WCrv!hn}|fh>GO*nF{PQv*hF) z>vO6Fk#6|=4$0SI+CRzdb=MkN0J*N3Khz51{o@&^#p~Ndw$zlQgg<4uhB;V%#p{P3=T~MXsX?vRvogy5=Z6uq;wp6p?b5TwiG01@{5>C&P!C&5Y5@GppPjY#9iMf*~ABO(CNJ34O zpD-k}Hpd(R8a=Ybjo=NIwaRBD9JX~|z}!;py4vljC(r^GC4 zh^H^$@t2vI3<+203V|;C6$1BBWsRD3{5`6diRZ#iIDiOQhMf+404s4t^v{!aE61q( znrkA*B4IyN^@RkcEangO(S5>xe4B4~dSHk?&PTizirnE((T2YnMr{V@hFCwYl$@Xo zrMc{QfX^RaumN5df;mSHqNm#ZFwKBj|q}s?K6A$GFg2H?HdZ=BhUbENrYoO zE@_CFnL-k_`KUHaWDy|DC%b{mwn!qTO|lSZY&Au5IfE{}QvOi)Ta-J2q>b*zluzK` z+PGZ81Q8~?5lrTfkRiGU!6A~e(CAl%Zum@Hy5(didJ~=^moI{&^ZZ?vjw>Ve!nOEj z6|UhW0qyRNs$8R@HH{3m#DAOKNI|_`^d1Kb_Dx%fC+41}FjOI5ZVfaoY55~l7HBBl zh*6D#&cvlGP>JtSTEJTaD__XDog4;-d9d?93j72X&ZT!4tHV26rZ8v?%9Xc;kfX$j zfQ<$fmEuz)(yrBy+htEOba6Q0p9WqzmXVV+$%9W5$c6mpTV=@R}#df9jk`zL-_YOCLTn^2|wBlTc+AFah>#9V~I z8zp4pMa2qYW|*K7OoF%)jVRdu>~Z1Q$bZrgj9npj-|L_(8X8x%2!v| zWUXl(yJ_9lT`Nser>$c*jhi%`rp;tlCheq|yz8VLFOO$xC$yzmo{6X9#3b>`(3DAV zm~a38{?9pk-*X?xPE%NgwRCj$-v7V<_x|_mXrO1{~2bm^k!#9j4t(AN2(gCARBt|~e2B)G*2g|1Or zCmPjjtdXED5Y)$9dI3Npj=F{h$Gs~?zcx#&4$o*3TjW_K4U4!1=paa^#k)pzw3Oal zq6ob)6|qDjp(<i7wi{d}3-^o^(G&f*uA=fu)(MpY9O8d5 zwkl3l2U&dTr+XbWc%Cqxj|Z)tM`HAXzUT?WAm@Xu!Hz}O5n1PiEEp9@l$ySxL7vrG zV||Ncz$kaGEY4lUBspIuNZ{i-Q2Tky;HUwc*8Qyc^V0jqHlR|vUq@ECKBNzDPJpjz z%rVl3Hg6Q-wJBByyilfG;cUW!k1(A&)%$Ksy({2-KfRXh`HXT^k*AW?%1`Nc2tmDj zZ(*tTuL`$X^%6_4#rGWYn3Y;XtW21^LT()#t zF{0Wz_qrXcMJ{;V0^4siMY5QxU)F|^Xfdf_6ElRdVjV%i>_}YkRukWiAf>avSjg|s z=EqX%$Ka_*{n&ai#) zJn&5IMN`}9P1nEmN0HFl6?Wzow9=tqAbVIwZ@NwUb0By{%xba$Y|QH`6h||I#}8+7 zxr0-gF@l0+M5}6lm@LQDqrejB3Z1;_lIt%B6@8BfAVTV%bLWbFACHtgJ8V_LZi`!i zVqGOhL{lD2W%m~`_^BvE-8w=be8KtBjSWt0jv9|U_oSyr3e%(GgU5TbQ>7vdI$Ov~ zTM`Prh}SJ7WbCl$Oxx660pQvWkE{y<2&}6{Kd>%Pvq)tJBZJ+k-u|xrg9E+D6#9|_ z!%0C;^pLjuq^K5@sJ7FhiQvTtzXC-bW;w;?a%B3CK)hO!(=%NxX7Z)|>3n7yZk6iK zXG__1DVsmhlS@xc5uTT{{Sf&{*evi&%^z(KbEmSxd(G0rkbyYBkrx zp$0#Crc$qoNWo~Z&dvaAo5<4|VE>$GLK_ToH>f>#DRkAy(#SRyG)#F9W9`>rPFRct;3LJW?Xjtj)4mi)rh8 zG|bx1kH#<+?H`_zfZHFe1QxIDO}hi9AjNVh7MUZXxQtK>sKDD!YZF?!S`7>5MBzLj zCIPE+i5;~B(y9gW^)S-*QvuR9&RNGZ0k+HFtZ81|V2U&M5sR}~nzP?AIGYNP zc2R|l?Dgu5;>I1iFKxr^4+L0ia7f^1EK(aZsrOVOb!JMSzH(Myjk>Q9qpwoHz|8t0 zY)Ie8{zdeU!dK_^P3Lm^3x#}Yq?pcguE^uzmZ&ga7GT3lz+O4IfDE+c(^^XAnv|)HOuh$pn&KB$CK@eGpoMlJ|5Crv{QeLxUszn3WzG<{+kh zU_C9cIvjvyq7c*hG1>%aLF_3V6r~#-6kQ`{JbFH`Sre%Q03Ru6n>Re39xFUBQp}Ft zH&x0MiH);*QcOxTag-4zLQqcMzlp@pwi7kyrN&T!-I#*}m}mFz-y~R-F?Qap4a28f z&{RsPteG~Av&Ssi$y98wbfsu&nMJarA_$onSxsKg=@5^$q;j`Cu9gR>$vqVDuxt!! z;j``+XhEW_$twPG90Y$2dk$)Shx!0V^pur37Y)v8jZ*~~xlF;%>oL&Mh%FtZ)w{4p zR>0y%SAH~$B@n_TZWg6g8%KHPX3}a&n3_Xi@}w@7Nv|Y^U69LREbCEKR`635Pj3a5 zirjhJFml(1T8ikf8l#DaTG&_kr=F<8mX#5$n&jsRg0 zge-i109G-lyMP7eS6T&rR zcYmOrQK;0;=sX74)}C}OH&WlI;mj!H*)yKbk7iO`SbaUkk`d5Y&Msngd#Es-A0w6p zhp+!{&W!Di&s%J(5anJzC82ffn@NK^F9!!H5OVckl>XXwV7Brbnf_WJZoMay&K0Jo zhNp`sY?*TWn3*(g__8I9sIG)qp~^A>qOUuhOHcGn=kr)gHuNR&ZHDx%DyOfkt8)63 zNZeUOhaOuUy_DnpDwXQs)!a^_8%c16zP{lhi$Y^8Ln!%W#12Ic4P;~~1#2ev{UFG; z>BXvjGZWYP|7#Kx=GD1{x}hROCW(dgF8<65I*=#TVqwqnSgsf7+5U*YQ%#9ooD*P} z!N$y|IG5v5i-R?Wb`Fbmkb=QO2-Sx4HG&cn|2`1iY-^wG1}#F+;Va;Y7=>pZIvV`V ztf|mmH$pr$XRXchL60c~4(c6x(j{d<+zc>Zc*xO;W{}WN9y>nA!|sir7q&@NU)RET zg)F0$1applzKqz=;B=_yN?CS)Z))&Ra%iZ(m$#6h1(31D-$>SH0Iosd1r{`>0EFoR z;r{FE^;^a`xQ6QYvzv4rSy3>oLH1 zpVE+u`#u7bl_A|*uK^a1=5fg000Gky7wuiu0ZPNZ6(E`d-_8U=S*(TWrnT)f` zI$b4Z1OL!fW-!E?Sf4y$c+dDr7mO*f0sk~RZFqNx@VU|{k%!SOVJgoUKAp!ZebhGP~HQoW_PP7vOkmK2zCA>dRJANHweaGEEJqbZ3-moB|tq)s`P^3_T#`G*gQZH^$0HZPCVY7N>1 z^(@zjsK}fJ0bbt9YXkn!L{;clPhoTP4mJr(V!rN&-Z*za9qE;Kf+)Xpy41o^+s(IZ z-m>-9ZMSWIOZwR8Smro->yGQCAraR_vV%vZ7ekRWLv&b?+GJwjGPWHi@DB|`-Q^qVVi;=IF$}-ye5o&!F7?2b zO1`;*IPk2-UuCWr*agw0VK8*;OmnHppfPi35C{dkXI%u{A;w9<<*8~~(bnRv#lzt^E2W+;9TymC`;abW|I=+<90w*0li{|rq_jkWdX#;WxRAkx zZR{zk;StrW`6cc%0_LQuNpM^-VGf`shD1nZs%Fi$kTZo0k6Mb~bDkR>?hqzLGl`1B z-T9{oi|_T&&in(J;_=LANsSg$fOfNfO>lT%aBb2d#7fjbMK)C1bi8!41B6Um8Vg|VzMj8Jp!uE1}se~R|q`8<4p zT<#y(+AM7BcHH~rqBG*wQ9o`iMcfkJ`tzqUFzYcduQ=v`7HR@-dgd_O%MWEr)5W}} zPnZURP#$xB4Y3Q3YHOI}&*KIwNFSOPaa^M}7~hLI?tcv z*G4*EQMyi#1Q@`nbGWop?ms8 zKoQMKW_1zqU_C@=DU$RMNX{6TO-cM&Kt!-Q6R9{AVQ8l^GhCR?mDI6W!V9|!VjLgS zyg(J*aGk{syZiE_qXfe#JRr(#>sxS-K82)JdK1 z6XdDOH(^^4G1np~kPso#8Hf8r>Lij0BZl4U$FSvyVf)h$N*L=&Po_t4Aby9J-_y$) z1wBC&YealYKPVxLMJK7*4>-U>Y!t#|CQ+W6VNOPDhlVO_9NrQ5(prQhebQFTvVV8k z*+X8Mllrb2_1!h0*9*f(8c}2uO8- zcvYnMKA&umVE_WA0j+$XzsN~^9kbL1Jxl#HsIe{i;G{C+G35di7^uVywT8u*$RSJ) zsS0$_6P{@-YgspIs0|n+%MDLebB3ID`f^&NMpBD3e*$1y*}0z(cH7D-%~uzz2|y2a z?vq13*uWpIzNAPB{)9o~!#eJg~9XAcZ_r-HNXY+X9vK|8WtpK!Kk#E<g2aY4mlQ2FX2qP4BL{!&Q2n$mG&o%0?2~+ig0CpUz*8k5M^_9Y+ z(D!5w_~9D$e^{gbM>XoV)Tqbtm8$&X6iwCo|5l^^A8OQpr$+s$8uc4$)E}uR{>bof6YX`%41tQ`q)zkYKddw?FPG+rV5#p_ucn*_11* z^8{7w%pkYgP0y}@UVs(z=?N;+zw(&}WENoNL%h|&a%vzb5d&(UWSK$= zXgh1Sh7UFPJzwagP+9pbpXR8kVuSN&&rq^!BuSY>P-oRe=lLBajKM_nDqR{2Zs9hcMTo!?n)jZG(PzH^$`+) z#7VcD1&4p~{=@L_K&rcIU)MlSGPSQa&^mS?DCn_eEhaJe$+Xga(|l^IhyFRQ!2}^qpWEpnO3O7LFKQcf*XoIk}OpvdHLFPYe zgEW^D7Jsh+@_8GCRd4~ZqX@ks(=;a0j~av-UkX(bs2v;Proot_ zG})N@mqsrqY!F_)GI(*{XMl{`AW?^tQU*xY28lYDw9x=LX@kryXW#jM2FQIjNYu$9 zJ|8YNR4kiE z<~VMJjEoniaeGThev`SFsGAFyz185tdB);G?%V&V;$nY6?F|nemkn!tFz08)MZRt> zoQq`JJ{N}899}7RkLo$iOS~ueB7cVlW@isrGPR~bX?!K(_2j(KhYmS0XZgKF<0-J z0)j~lDq|UITZ&G}@wg5wBpQgEz{*8)QHw@diyCbf1c-6(kG!f?#oW24K*xNwJ*@Wk zdNao}`Ke4#^oezXGWIR8#())+5H@VytM2+amjIJ$SMbGdA_14vi3kuMfeD5m#x%#6 z4DQAE3hi65CL!3+vzBsh0%LQrE0-%|ONTH^&gzReBzcT_MAPC{vsdE)R{x>$UU@$W zkw6n$)C?aI`6`D0emA`#BcrGIHk7R`QuL-rZEA%weZ-_au-4XZ2ERL>*o5(&#B22S zH{XsFZ#!WHrTz`9Tom-*ec(-_^#-PusA1oLtO+~I{MX|`lG1;S&mXF&LFrJWbx^QV zS2bF$Wr4eLpP!w>^c!(5Fs*luU-p9|eV&JeMb zE52P5BM4^JnFvMtQK;h=loP;^8=U28Mt|_w9^AB3D}i0dvg%uiy=gk7DN3Lx?1GI_ zADw)cQHmsaEigMz8l{LwRQg4u6uBIge%mNT@KL31qfv_QM^Nc{MYnq|Q(%N`J`AkF z11w;8WT;~`RYO{VV%<}0ZIuCglXph~?jk^Qb=K&yXK)}AkcGwbJwH+rYnoInHbwzD z|CM?)hbE)P!~MgNfck?Qm3i#h(-jGL1d_YyVE(>*;eouD*Cyai;@|?#GL{Nn*W_gG zv|$-LJmQ3HN*z_eNUd)Q(OL7R49i|rNl%Uf`Wym4?XynQ2x=q#m(iPq6Fl`7g3s{k zc2lcLPUa0!D+tthlBYShaiBy;tb3h7@WKhu@a?r0PL4mqQ5`vpI)w{_5%eRh=zuux z2gI%9scX0gA_D!%Q;~RUr-uUkVu#CyszK?oz;>PFCdcoOZ{2dNmADXksvfsKt+N*J zNSzR>^W^O-mA4-lIFRb^)zQ@1Zj|cS?Xts2Z#s6nFDMzuRE$`sbS*m8Lj+Dijb@?x zgTyhf*pv1U)3)l-Q?-}0TD*{}?ZyTWg1)8s^Ji~T#r+Dxg5s)0@8p&e$!|X7qO;`8IMuy@buj~vK?e&zfaeXHvq#RbvlCm z<8`VZZ`UqwuzN3tl+?(P1IZL^-5wm`2{F6PNq=6i3@Fw_oJ#1K4=Fw2XY6>9r3HNB z9wz~hrKd6}y6guY2#|-Bm7J!P4FH6IX3Oiy26=Z4o;SA01tP18$Z28n1+QVqS6nr?I77&0C$Ya0SmtWQ^bZ{B+SlJpOi!TPy*@-G%k%XZDY)T!Zn=i?a9 z0aIQR>*Jb)f(e7TZKxo!ftziZx-P$pNrKSprQb#;?On)2i)z{0JD$$MJazI3Jh}tc zkkiU324uBX$#Nmd8~z0xsI&H^xfZFD)G7hF!vv$u5CUn|1p6u$b72sYC}&~-pgNd# zBn-+KM$m@{v`BECkLbl`tTI_lbG)m>nK`g_tgeq1;=>Y$UYA)T^rGL`4(PK=c1%5* z^=x~D12R+t$rrknw>ur7Aa>5<%iIp~WCUyaxO?*c>Fnf4VK`SPrEc-BOF)g=)JU>{ z{Sq7#>FRSl6~Wk$acfPb^{|sx9Bn2ja=W;Hy%1>s7R#5yFEv>tl%w)#R9Z`8ymY2) zPg(3v|GOG$EpTJN#=7;|Z2hQOn3%x%dpdVBaG=MJsvuQ~=;B@ES}ph_MbXRRGMtjT z4!r1$nyk|kF6BY7J}koNNefXD3ZBHU;>GEf#;dT-;8 zq#J<9r~tFzMFTCu3qK&r&{@dNXgAPZLLA~Eo5k}2mI#o}b}e45mUT!+Bu6-#^)#YG zN{ND2u1h4kJbb8=uj%@6#_Ew{47d>t@+4b$K8W?8UT?WEM#26n1(nDS78NZAm<3q*UzM;M;CE{-si|9(;C;peU(yoNM_`IpPMDssN@#zcPRr zpCgb`Jw<8Ybyg|WQp zX)CX33uSNR(m6a0kkWQt`kH}v8JEueN23%cp%o4DzG0N^3S|*{^v&NRxVxfapid{Kd$rq zGurOt`4UfMRvn_)fk?v6L73nSw0zRKFHn(H z>;IWYN3>t2F?zkYBbGsK>#e?JhgaxF><>E|~43%8xtE5d-f;~M_iQ@k=?@n!J_k5hz(rM$nYUs z3JZ2um%_sDUxiY5(w0K|j_OkAeB}y}LT{}sf$}bnW6!EtL+msivQpo{N1ClNrujEk zmqo|fx@6H@XTI26Az$QM9)1j(LB4o7eo>Y)x5<}zBsR)Z$H)cWs7nf15TiB9T2rou z3R18>2=z0T!o#*-%u}DrI zq%DJ{_Ue|<{KczK3isPmXl$)!39~HVWN?{SQO)v|!bt14;J;jSsndWB8D}I-MI!hbU@H4d5F>Q#i!L$_1TNi@jYs4EFE!iDH=)+4W!Honj4*?MeL`;6+3VkITnN z?9yUrpE-P<(~^_g=UXjg1rp|u4pcfD!>cB(9$6(i=C0IQSNXU5fYU#&M1K({{=EpW zM+o@esoPmZ43??nsdk_*{Q@oeF#LBS;Cl#u7f%1EeR<|Lgo7C4st927dxN3|JOL(W zmaVV1M154t1|$aLG>4qF_7oNI?-CW*X(q|>Io9Vy3oPC6_Z{M|Mznv5+RLsrv;cBl zF@LBP#QVoHP>a{MuxwRRB_;eRQ$hi{^`aVIGPdjSE~MFVG&u-=l8vVOp8rxv zz;fwv)*Dy~jvA5P@1RD|CmMZ=8=>c*(OPABd@K>=yuPMB3ZRcX?j~?(B0y8=?zHHT z1Qt8S$0xbt$P3k51+}3dK9kSl;6KPAo&;2edigZwlDh9Cin>E)Ma-KA!T#+|;w1<= zh)Os;uMGa`zLN;chkGiQhnMI(iTq*c&$1-MROtyrLTi1@5uo;wEouaBFszk7E8&o> z`vRtxV%L>!FP>Fn-la>=4XB^r;KPjKYx3lnWeoA^3wZQpW+H>b6}m#83x9>ceN0$W z&D#DB)hpO@;U*M7m@Lgs8$N&)yT<~Wtu$k#XC2ajsZIZ|mKi9!icH3B*tm$E=5zDsEUZx5_|G39oA z7#!w7&I2jX6Idvh-leS$?_`-rOiFD%G<%CNF?&v~zT=gu9CX7L{Hobx;X^UghY?(6MHdna1< z>}?mKEVE6(Z<8l1+i^w7(Y}sMXIK02ZZy}X1l|ueiLGL7ZSAKgY^m-7V#QYhmsU$E z%d&7NBB|0vf@mkA9<7LFBL`6`pM5iUf&>p_DCIe6*_LBfI*#Htx*nQ_7#kzuDoY{T z6L%ws60d_|IdAa|7pS%`PzlO_z@mfx4Ut0 zXy1}!SRd6}Ng)W#`OSBn!*~4^R`WI;LD|LN#W8jXV^eaw%Fz;-@DBRr^~x?@(;T7| za979$tKLS}W7I`;nW8X|TBdo$SaH<~(*E_&Scp~E?8K5jvy$KmQmjgJ!R*jxXs(1p z)L8GrrECl}3S>|Lz)++7y#@&&Th#jhzFpD!mV~YR`xRET=&9_nbhBL%AP`1^=Cef*G!^w4oSUW>DSF&_~74nnKiBWoUmfG;TnjGxTX5jk4+3XF#vPDA%b2EIphX zoXU+29l4yHoXibmGks^zXEARu)qw~$J{3IS%E&Dq<_EKb%e%;saW5` zD)D(8p|Rn}To_4Q)R9DCVHSN!1ci<12u&DQIn7kYb)>?e(!`K^I#N=I$Q6bR>Ij{! ztT6eKAwxRC&l4O=d5a;#Izr!OTqVPhoQ}|k0!Nw|azRI8g|9DuFl0nW=tN>FVxA$F pbfny%a+@I&Izpc|T;&WyW_6^_pt3ta;2a(?tb!<~1Cg$t_yd&Z?N@3LJwKWmNu$w>{v|)_&yui=Ey=PGlC9Cq$QoOk5i?`SHWuyHOiR;J zPxrWIMz*P1VoZ`HiBm<4V`^jU5F7~EKv+@~`Qyg~N06-7@op(t*=Q*fT&%$YT$Dnz zAfx@xIrqHx?(5e-8k?|Ettr&q_ulh=?z!jQd)}M=?ji5M4cA@2%WzLIzM*s&*p?nE$5u1j95^9~x(b=m7I@Z5#1~|F32hT_>nm(9^7#f3y`t$~~R* zK>k($;YVX4k&K~FvbrKMBYVyuOD1=I%qW43^>72*38cg}JoXHa-QZpY9EoeSi9b&{ z$<~$B?mj0*dgzn=uq%{`YLdK7XA9XBT%R|pAk&r(;%wVtZ@PRrW=DRL;oi+A$ z=6EEcbJDllI=0(-+inc=y25~mGf8WXG$v|*hc<-8+Td>mTTB<4v3Pdl;AieK?~l05 za)f|4{u{f`X^Iz2Tj%j9%;V(=R+-1bNL=u3z{;o1I=nImD2!y;o)e~9_yu?dp8Nff2B_An%*VSd^LCmU-4 z_o#0p2s3@~6XJ4v#Gr{5(bVe7u-eNQ!7XEaovF6+_jCO3Swz2jXU@=2e`;6P-md=c z-qc><7y1iSD*m>}p3H=-aUK(bs3g|xHv(@f3)1kdFo<&xKn_Y&sWSngJm@nPC@pLT zbp9OQzt(^)XB7{G46N;!f`PNIDuL7yP^pIVWWUD?Vp(BIu8Pd+(6EqE9j>Giv3_5`0?x#fd``axZR| z6bzXGVOaHZlP$?YDMmhJ!qqtnS1WF0mZ4vQ?z5b3*X@wC8|3hFGxkBz z)RA#xf5D1LQfe7mKE*tiGM2An2qa((QP*m#_&U((>?;=X`?C4b6#YZX#;(HXLn=1& zVW{jB9F~_{sEh$tg92uW{>yRkV3^0P|0PIgShhvnYs`7`qPd}Tnk{v6xc{9$iG?<4 z?)E%ElMNY0lhmdB%ZzE4T|;EZ28c0tccD0v88~tX3KF+=DJu( zK`XDh!pv#!52cp_Hw@Eh#SD>8OdU1Wo}uH1OF6q4fP&S%Y$0F!l; zLCgi`tJl>#iP?0R)43--Ib4_?85=m#gZ)Sm4y}79#s&XnK-KaBMkW&$1B_4I9w3J_ zCEJi1=)k)$Y9Zx5!vnigJ$+sK2Ksw&%(T0=f2dc{vmdiR?bfDhP-IfmCc z_%#^PB&jPBj*;IWfOq( ziyO_B!Z{m6M0RzV3T7>GUTcY_^LGFDsh>q&vYPgRuQG05jF2#9a;^LdgjsG|O;DPd z+jojQQdtbmPSbz;VwzvvzM4mwIpri`bqH42C(Pt=Ue6i zIU?L@?a$TtWn~Nidn1l6r+q*W4B1`c?X-B!9-7ExMt2trw@`b;KHq4Z7iuHxE0+TWiy%uQO=BY%%#8druB0SX@p8hV( z(;@OtvnjKYR^-JAi89-WBD8 ze8e)12I8V}$)0?+oNyJLu6;THd#BRoFcV6CoKH$bsi(`Ca;hSrd4CdMtKxHE-a8(v z8H^N?I22Jxt5L`|!bsas1W4b!WF4VngG-RCac;mw6)=*_{Xj&rCL`H@vLu@fkao?; zW*j$eHMEQmw?7bIt$|hNbcEGnAKc_R)e86Y|)wu1eh5u#-{0>s{Vsm zz~=0p&gJ$M3i;GtH& zL~Ze%(byuRnq<#oc$)v4$`i{Rlbj&&F(SvtR0cOrKku`F&r}_J=;dJWL9izG-F1xb zw1{x^QzXc$KV{Z7tFZcs)x<#Fe@$pRYV0LO`EED#$6$yaL^{sPD z8R}ON^)+XhdR1{8I*d6eH&ta2dM_}--ztv~TzB^6C$mS#rjAVKyq@fd@U@*aM~OVDy?gf# zb?+H~(GGMCvUIwEQbl&! zyv`nu=uWp{w}%C2X=2@R6O_z?tm0WO>5ybdY;w1~j*bU;$UPkKuxSIgn6vIz_&A}h zG1B}ubzu1GDD$B69i{<^_)|~jM5ZBK`7jxEkQ%#c%%}HYIw?(JtD`71WAR)o-rsrv@s7Y!M#1}s1g zpXAfmeAf~eJ1_mss%z(8FFHxz#XROp&R3o{f}SPEZaArsQnizmJpz=$5PI0EBOuq!<^m6Hk!i^=TFm|Qzu!ekjjx}?CJSISDSkzgyhTTTay`wI`?IB_U5 z0)2LmQ6)&K3#YFqgk25~&}rnP?iN7vv1AN1j#qUg)_XGPTw!{0Xu5bbs#6{`Lnl~0 z5z$5*DP>lcC8LDwai059h z8j8n^?GBRx2TTnb+fw#EW^nQ=4?D)t0uuUH){ZYq?siR1Ex@MwhEc|=>=|-(eU{bp z3StAw0l9*Pvh2Q|)WCt>!NI;Bxk7^Cz(#PTC5xSN6&laS)H67Le~qbRW^bP`Ib6N7 z9u#iNOySr%m+Kqd=5bMwYs2A1)1-clCNkP3*B}_vjV}(MFzOk+* zN$P}Tvm`b6=xSNTN?$8ZQ7WGMcVvF|nNUU!ux<-1u6pD#2Gf%vL#@XGi>n}cH-l+$ zssZb@z+!CRN+I{pZ6*&`VD+W4IX__6{<;m;XMx2PpnQSBK4gRSTVOG@QO>V0*xfeR zum#o>!{i>KPd&JHPnupL|`uIaLaA%3a%=_efTq@Q%b znUWjupAn}Gza3_LjuK_|u)39*I_FHWHcg4}bX=*2DJxL({IlO?EIw`hXWQUY4Q8_WJDj2KKYIjl2`y0ljJJcsAm9G<5SPf85n z(=bR{5|vk*#Rxj(pty&z$BPbznmz7^p32w})L|0|L%>NIAM&}VcbX@PBPoqWC}J-% z(UrCa*>U_QS6FNb1&(nqkIfocv>EDo=}}cd;vKT+i`&0b&IbH@d$pC>!paH=F&Rs8 zo}t6P1P%Jwu5uH^`JK~62S;t!->_-(mK(R;bn`pXhet*;sN{2Y)tRePRo4af1OLv> zG9>R1&1z!2hE>V#-5DvoRr!dsPIYfQMFB4h%~V8cbJ4kkyPyMR{=7J)BH=cv^A-mG z$a2&jzN0RJqjnuet!z3!wL6oZ>c&)>^4%4L%~T?HJug!bBrS*GvNI#4VT0Xu4!LVj zW^$yMotP>VnIt`GQ`KJ|XY{telHb)iiR5oI%e>#NiV1w3TVNJ;zmLUw^(NIBf6mPJ zn?oX%IR8(lNl|aCsp|ZYE*XxADJZ(U!fbTRJP?>9Os6|qi1@`j?a@HII9(hW8&4n2 zq{h>9%J@(!lgo_bU}`ePD7>9%wiHD(l~U8T7HY3Ith2gOen^u{BW~}R& z)`{@gCT*SK`TjwMm&HsM7xA&Dxkpx1yXRMhCQEMj9HXA3#1*?|KY9{KglLA@JzGPQ zDdc!OQs;eXrid`9ma$B0EqCXhF0szM{h8vC%*Yh27L#M?33CbzbMj>2WNs@hiQw}h z%ej~7z6VJb7;JASw@nkB~w z4L8#j_^tC#wZ1z~mJhHi^ntA{f=#BKP`^}kR@^$|$E_uZTPj;${zL|DJ?iC2Vp(Wm zCdg)X4zs-cU}kE%nDijvuvuN2yTni%RMpz0o#E4AB;r>{>D-ObnVfXqmY#CzMzVw3{#=6rJ z=@AsfZ}akddc>mOCx~JVh;Qi!HH3-m6yV6qe5JBiZN40|#bJG4~c;_%jB zF0DaGa^&dE=(2BTN$sKC-&Li5SC#(mD*ZjwFWMD@vW&iqSlZp?Yj-(s!TK{J#llFs zn4cc!#X%PWHeH}z(%}!KvO$*tD43&m=|X=&lK2{Ssr6=;`kOFgTknGtu4mUF|sNMHHvup3{vioE0qafCBm zZ-h$BV~-K%hmH|-6rbYp8y9p!oo!R4vnecRaBs#r$&V#*^t})kp4C6JD;3nXi+7oP z2jkdxaU`jTSzxMh{sJBcproy3Wh9Ub4*)gC(Q-PW4(glS(%E}`ooz0!vm$3hxIOXW z)D;*VLe2Jksi4l-{OS9zSZ<*ia%u3v#8Kf{8D9>R5ehr1s;kO`1?~U0D*d>Gi9GKs zVN2n0<502x+g19@g+;~xR2BH4D*b;{rT-^Y`ZrhUNBK%c`B6nvvHu^c^#89a{okw7 zf1*nNhARDcSL&y|6!lxP8%HJhPfn?HH>ZjHii*C9d;W^L8mQ9WSEc{;H z{mZKK@2Jv0R;B;JD*dyn^dG9y|8kZ7A5`hbqYe@K-KQ~)Bh})-`W&_;Rggew%7gAG zxxie?p;+>*S)40VJwZh}i>lLssF7u226V6;(nwrRo=tBBow?QNAiI0>^3*_Q&%YBL zxcZxyXI^!^A!Jmbg9~Kr)WzRwiE+p}|B2sJEAW+^1pzwfF5mnT2`5y-{T1=*_Ms;*AtyS1f8V#$N9{!f5cet)O}n;+bpO8 zX6v5uAIJ>l`q%L?U|-K^Qd7Dc2rU#$_rHVtcMbLK?d=}+PNZ|w8E^OCz&>yC{v7rp zxygxK`XN*=O{EX#GTy;Gy@S2p)I$>)du1gMItD2JiOn z=)IfK_~7f;$7ldcGuu`U*TVmrJd;$!j$!VC#Fb>jWV@0cm?^|Xb7mk1X7)Yo1@WR_ zng|WEDfLKRpmmOc+Q=2JCYA-^kg1U0O~V})tdnk&no{8maaUb7T#WWU9V zIvJ5dpAP&}l44(hPO=A%=;7u6bw_6L zJ8lsDc+p#Jiog+00*wc6s$?P@uJJ&PxwZ_i>o(YDgW-u$x!sp@16U40azqw$sr;0t zBj))46N4pwf*vCRax4=G*PQVJLRbts6Pd^%8sF(ZrfjfkpmGK)Rm}yX8uAwM@%aH_ zJf*<1s+FSEoD<+<9vx=WX=G34NG3m->5i|jV<_vC6&Vroy%08BH4wQzd8rSCq%+Jj zk24E+luntC!34(-W14NfmF@O-!M>4acx*;+{1{0*-wwg%;0!TW$W9%=nw~Xf!>oC% z7tGV5R-3AIUEGJ)ct)wp=@%k_VYX-lKA`#~f&WFUgw>o|VO%B#V;hfDyO~v+N1@GJ zh_wga+WJ!P-TCxJl)SKdEo%RKW2}1H87nyT>&0_%(BGD)4&Dl0-zK~=H!?S%Yt;*) z#&1cI2bReG38|K#sKMz_taos*qr%dbt3~0iK7A;Y!=5)fxj@03alhgRM|qd$XPMR_ zF!NsjzI4G_=210p$~@yEb(KJc!S|Y}%wJJw$qX|T$3yqac*3V{P}Yncs`nbO+fBGP!-#OU=O1=ob;mEsi<_&WhUfJJk8ASxCT;iDl7+;XbCIiJO`R`e#P9 zlYf{KRUL~@%mfnBVwPp+l{3UFr$FyE%qW7H5mTio9YS4qo+betx!zeuC;4|C-h<}? zXy4LxI7@GC>Pd4=i5h`F;TPhRrqJWPRx9$-HNfmVWwjz6aqF{ID{?t*{f^a&;6tr$ zgVl_ahaHW?046C=Ss1uS`+$&RD>MeM7N;=JDY2GIsCjiUqtIntS`5`Q!P* z19>lRT)>;aH47>)rV3uy#6<2P%QLpgA|yUV7b{r2OT03DOn{z#5{ox>dT79xXt=De7?d6jeAnsS z==k*H86kvfJt-O4qgo@8lGGrH zE`mlAAP7wuCsoawePU8dE!6u%y=!1#$Bw)jO-C)BOf+@+tyU9Fotv#z6T4lRFiOqD zZub=FI6*OD9obrKY?cVz*^Xpk`rac{=r)I6 z4xG_!|HK&yPC?$t9_E=*&<&6J0*~UW6l2D2mJc3EA!qZ^$aa}iJDEig`qw1q@qe4= z*Jixz1T!gEc4YJRLkXLPdvFJB&kuX;z5-rVSKvDKEg50RtPA@>K=LOIP}o8B?`fn& zsd0g;gzg2QU1o@?3+hmh;U>s3&ts#;@fkP~B8A`&{rj@#SOo%K1?^>p!^bcYJ(Paz z?;bjy&95^Jh5g;@(celUW%DTOM<0G)O9KaG z=9wo2*msbP{Q*BLwE-9gnCLK0yVnsNZ^sUAVAt(fQc}Zr@9$0VLGzu1vLTjfbIjk@ zlLI9hSyBx>^Pr_C{fr$y^k~5)gU&vjp3J29(FDlAfU>NtkTk7i0bm5YTVBT|m)DzP z7{eMLuKSNXKk)1nNXUfsZyidAV#HOFq4~rrVBRQ>#?&w#PW#p1&l~Uo0U1OFl=HK}g)^os=_9S*oPm*B5AZ{Bvm~G$|A7;{}500=R%z5c|K%~73 zd1#T2t-T}ZEZoy1pTJ`X$UJviCB=ZQ){rjc&I$7iIM5floRwarPTETfa)*33ghHAP z!@h~tT?B+RDw!Baavxkf76$DCqv%5nMp$rOjG^KS1}tURqN#)ZPuG-W=D^yqsy1F& zj)*$Uxy)+i7pN24V9yHKF;ler#rGHobVv)y$;WB7I~}1QhCf!oj^H3qMzH2r(e~ay zot+pi4CM+_sT=&_PMC2ktt1;{UP5AKon9VL7EBx&HTIO&!%tdKh{aGm?dtr8A%OOu zaD1uq@{onfIXa&~XXI#1j?T#U$YZzrPXW_e;I)Am>((2$^`mNGd>qw+d`sBBzuS+h zV3kyK;SQc!EqH*o=w(s5PkJ|j7sPnTI57ylI8bx@~LocnDF+9AF6Ow((t>xP=@V7!{uX5pxD&AwT2WYIiY9h_d^L%=1MfKsw8f z$Ql`0gLYJNjI-HnBRaH|IcSx>WU|Y{YsKWDB0tVVC`ychG>Sn#*%w|6Vm-JwS1#A` zDpq+`xUGqhdO}ZhGJ3Ie@JNR?c6y>I{Vl(YC&`wPQ?aXqH__m-no_WCyd;I8IH`1; ztK|te#0_qx0A@n}8dyB>9;?-CQR*MJTFn-vA$CL5c+47WHbhPLSgmG5G)rDqq&(m% zjd*C@W{rJ^v<9g%^Se!2Tjfk!F}zb+XUjG~TiZ?R>lWUn(mLn6Rx9eZh=;k~v|6`I zYuiby6^S{Go%d<0^#*Be_isCxUljk)*!hoGW0y;7N6~6U9U+bFJZ!b1dXQQd?6F#L zF+r^h?X4xMzo^x`t6250QCb(vs-vx_YNWA?<#zgX1PN$b*YSgq@&b=hB7 zty`pZ`KM^+t@xD5^G_SU)6bV>E3@(d#|}ginH-D>lYx&b?W+m%?DXSyKFEtpw9#phvklT8zZrJ7(`VjlWlTC1&oUF;4#B`dT z)Eo<)yll+!vh?1ZqZ#c$1O-RLAU>&gx_AI@SqL(xptsq};^ALP;&k0>7-?nwZ2K()FimmW0R2lUwVlg$ZZLhEu~}R(-WibSy-R+ zvBnsB(=W!*)lB)NR$F07egcujfw}mT@;PsTWRs$}_lFfns#tn2oth%Ck~d>TX3|yi zw>?T`QbcJTH9Aj68RwBd(&JN^f%9y&b)o$6Cp!;3B`e!iaT=0+$$gdM$O`%UDL!9} z4RJ)V8<+XzOMgo>>6v5kfMZb)SbR@qEi9KOdao=k9FJ;Y(QsugEQ@&A2?&`&J)wC`Uel~`An z2Rs?|fR5dj=fT2rmx&Kt%F6K3s21k$tgM9vKfD69@KjU_?b|AAq4U+tL<>FDvINe% zB)fT@b`6P#xX6m$+KV)sGNyUgRn|qvnVNLbTw}i2Tqa+XKey<|pc&+gmohI(a^^OD zkATKT{WLLh{x@sV0uIFZjI!F6tGGjiSVb1e4`NHM39(*9Gh2}+-qQUHM)TD!7z9-ZY4f4@wFl$+54`}`S z%S8H1$p{Kj4`^CY$pczWUV%E8i0YuRy|O1XKYImg;r^%=8d@uP!mKY|COW7k7JMig z3+me{$=-Ci*uNIpe>W<7vZIphjn7>{cK<|F_ByP8m9l__D>42(8lCxxD)F!Wa`FF5 zSqXnTss&UeRP=@9U)3}de)-ptm!gFyqFT^rD|uGvWoGCT7q+GrRNexN0xCU5#<@#l zs`o+s(dtxi!5gl^L+z>5@4DAoca#VGJIZB4D37JrM@@}oyph8AL}3y|NFKkmz<;`( zFOxg2;S!}>8n2!8M)BHND$$d7)_v?VA&weS{dnWSB#M~CxaWgQFfIoB&!(bSH$~C@ zugOiZfyVWu`G&h;RT1HFrJN+%S`6JYhwC{bdZK&2Rg4Y@0u5ha=yJ6&a%$4*u~!04 zNYPnW>6?at(=S)z_xIQRAO`FM4E!JH=`3aj$5i@BH_#W~$A>-w|GgOaZie51>L0q7 z7kNWCSTN~|0k+?cq-MY;z_e!Blr&TlHVViBXf=meakhm52B_^qr( z^=L~Fevkj_;p(gkk39davVh~#BVsp*6qFjV-EZYVuqOt6O9p{*FlY^Vo)pfZUC!6& zr2wYnaVLYr5&@cW&rYiiSz(F8Qa&k!V;`vAqNptcNlm_}LtY=QGYP0H^GY@5;+mgH zRC9;iiiNie!T$dBtEiFqbbUSs)Jq6u|X{)8i8v?+50 zXtZRD2Vpi?-YTz^aM;&<1@lPt>vB&oo{<9H7y2ohe^ZJXb*|~B#4Kxxr}y>ndnB0+ z30EM6Ko@=sf%~Y6M#I|vC%Tu*%*8a}03vJ|aoV1Tg071GF||&W7@g0#CUPtm@k3o- zOkm4m{;Uu^PuPPu3GGSs_S36`NVemhOz@`|vzUrMX-qFYA=ZOOO2+7c(rjilz~`?o zD2u5I!IC2f^2=oTddUf%)Ry0))iFU6Y<(8b?YsoqFbJ1G1H3U2j`4U%L)^?XlCsS! zKv^S;0byP+3OQ_#BxYJ93xUPfP&Ahsbdi|yhpKPR+6g2r^lZ%37z)=$8rsPjzSfHVFBgQleItveF zflIta%L2YR@bX2R+etAv+=B&y7WflbIG5gGybizFGetmaQ7(O22suie3fO7TQK~+5 zA|=hA7~U#(lA#BO6Mi-DYJS~ziQkk}WhqrL+D&+Efkl@^$72&8;Z`U{VwF{q&N91F z9W5qY9GW5{(?$G2*C{h&cz)s^%WTz$ZxgPRK2i^!?!$4KRhviLMFhN2LN 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)); + } +} + diff --git a/35expandedabilities/nw_s1_pulsfire.ncs b/35expandedabilities/nw_s1_pulsfire.ncs new file mode 100644 index 0000000000000000000000000000000000000000..20f097e22b21a639e2e241d85cf96aa8d2e5a46e GIT binary patch literal 39609 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 PZfkwR%;N}tqWFISgs&Pc literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulsfire.nss b/35expandedabilities/nw_s1_pulsfire.nss new file mode 100644 index 00000000..9270aa99 --- /dev/null +++ b/35expandedabilities/nw_s1_pulsfire.nss @@ -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)); + } +} + + diff --git a/35expandedabilities/nw_s1_pulsholy.ncs b/35expandedabilities/nw_s1_pulsholy.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c2302071c633c2ef9c9f9cebda00741a70c5f803 GIT binary patch literal 39936 zcmeHw4Rlr4b>_WKPZCH1gpdI7=W7HQ2sk!i>=1Aek}$GC5J?8xHF!S62F$AE!wjr}gr9X3>~VnG9{bGEPhquPmA{ z2@dn^z0bb)p8M|mL3WyfHL#Yh?m1`w@3YT7e^&!NL*Bvbuf1-U<9yUv;o#pa&q>rJ z>z&yL276MyeYtqAHCK?#(JVSlbrhu;@3^-m_}3QZ>(QPjTDz?p45%IIBhc1bsk#M0DN0XbnTZYC)goCTW+eUeT&V9m9hV zIYr_rW^HkcM>L$DM`^UI;^mNjA?ODdwn5Y3BghMupz!Oz>=SC+gq5F@Cm31Ve z+l9`=p3g|;FiWruKc6>Gqt01>Xe&F=jhH zn61UOGRdHg^SLo18?~782Ex+vDj*Ht3WGRz0pyVMt~z6oveX)$wm>Ne8qfuErBi^B z)nLo%QW==>mxG40=X#Bmn)cS-^rMlc+)st~_EJsN|8I-;j0GG5T^=;pLFT^@1!*c}tnNb=$d{rZq9>cm;V?*BF$&TcLq${s?Xmcu zh=PdwSX2@}2~(N>Togpy#s>LX7^H1H3er}}SmJjrkbD$GJj|x@9t&h53Nj~#%G)fE zk4Hgfmx8$GEsUGMxY?<|mGQ4kr=Em_=0Es(J&h-8^INXi1qMnPo6v_UplAjhL1 zb4z7${*MK6ZxlpEB#VmkoCQ*dg0#d?`LG3YUle3s49Gne$kS1f&KQu53WBug-WV%5 zEt0rv`ff5mWE~t(PDW{nRnVCPfYY%XHabj2fnE%NmPlA)#(W@zy7oi+_ojM^+40Fj zesDUQPfukFc}4=gg4Gq04Pr>-LQO8H>WM_lN-jjDj6H_u)0C}Vy!eyXnPzjd*WeG9 z+-|Y(qEzOhp3B2L`q>tRAVTYl3SW2V}P+jLgA>Z z4ihB57ll-{#;8gKO0-MBMqVeakVaBw1ohKT#(K&qA?C?#6FhPIb4w?Z2SFOfKIRfg4Cwl=tBjIT3Q@v?JVa+YSE+!j(3?<+oQ-l0Ew z_ue5|=odSiRx8gi$8NK2Rd|X>!Wbb3Vd(m~v8|*u;)E$DRg7Yq4) z+5BjVeo%6qIMXN&&Jaq&Qy$F2V*NSax;#axTvLDX+r zJTKJwSHs-SP2u`?{x}xebjs~{f+ia>jE0$|{ASv;NsNm$Sr0Mi?Jg8YGW(An%I0#n zPi96LN>x;1s(oR$9QZa1)2XE37O%P7ffj^{zAx)3jMP2r`ho26Sj|&7aVs-+W1T-i zT+7tfmTRw;!qh9d^I5FrU>YS8Ac`6}!7p6zX_8;v<^en=m zHPSOK_%BPQT3*O9NQXrO<5Rb)^imrQnl;dYccIlH%CLv`?@IOdckkOj(2Iqy-F*W? zeTts@6PsYS7FB~%)0)g1uM$WZUi;uzVMsIEOPHy^p966hvC}hMEN1dk`_lQ$G`dx) zKcAh-Vm!&c}jCmGKf)74pgB>7wjmGS%8AR@A>OIJWF<=WSpqmxFv{(Drg8+ZQ7wjOkn}zYJlP+g1~lrswvbB#%@UL%q|~-`Yw2i_2v|VW)wYCSr96Rzz&+ z9PS;ASvC7OYt|xWbyVl~xPcV`C4W5`9u5|-31gl2Efz73#i;8sn9+>$L#8F%8Z*}- zp#eX9svOm1tYQpUM@IlA(_ZK^GQj>N^MqB^C?e|Zjh{5by=odG28r%24-41+;egEb zTmdrrWc2lDa9g|$!794ey|To))ygK+_+@1b0Q(}2F8l#O&}4Usx6|M?XJ{gm8Qonh zj2}p6CC!AafZA*pZ{}zpu+5c>TAS3>aDPNyO-7!F!s>GV2HG%Pepak6lognidHA(J z+cr-n3MQWFza8PJ&hYe&Fi(fcKh4zNMp}`VuqbnkC^DxmYdao9ZZSM*?+9r`SIcZJ z;zgSk5zQo{?gzu7{qlGWbJ6y(87a8!fpTDV(f+E`0*~Jrbc#@@Rh=WFxP(w^b<+op z3oYTvjBG5x;4&bPf$Q=S%QPB@i^?T?^4W62Rdl+x=>Y7Vj8B~{l>9iKl!#JK+ePJ6 zMNG{9(*Ro)p9}Ne{%Fl$q>#knh(cP7LY@yJZ95Slee;sFhZd(UL9)hq0TWfgNHX`~ zh-9;jWdF&MY%)OFJtLcO+<2FvWqi2p{s3zYtU9M6tkxS=?<&XY%#6US<|4Ej46R{{ z)>I(C%xEz-P4`swAH)DQclUHIx35shr-qB^yyS{99-4KDDhdm;>5!f^Nu3jypH=Lz z5pZRhW0E~h27@$5Uo<;5GL;aqrs41jf^A=+_*dhNR*N_TNph*dzu>1Puf0QR`;T%h z27bcO_9#QBb8Jyat1XgDYTJ2xG`2{qSu*D_JT3Sw<%wmENluXX7?ERRDuWxRpZ}S_ zXR0e;g&MmyL&$kOQql3z5E=y-iQtOg_R=^jcA^z{txAMVGj z^v)p(Vx|wQ<85w7;)zZaboCN#g0vvKEUMoAYvG7%tjaf&_$@?%ywK>rgG( zs^dE27(U;MCdk$7lqxdQ=5h8&M0YwByEQC8^DNdK7eUD^NEi2dNrxmuVw1aVb+qQh zP441|he;c_MW1!Q%#)wi#z^ts)`8)#QHK!hgqave%gB%|7#25T@cCX{q_ZT$98c?8_F^rUmS;li%;)KpHk=Pf3)Gh=eibP1DX2`6%QF*u_4^`XQ;4E9>r3P$w2plpTX6fO;9vtnuO6JzU)v7cR)1sHUk$`9cV*JK z!t~_Obn#eJr`%|UPOxesqK!CG%B*q~aRTOVS2~v-@0rf$v6gJvOXJ(jtkv~WDSsuT zO8Fy|xU-lKGqyUqulSo>YO;!^HXhwrgEQ>wUDrl9w8k=olHWk=Aa-~lV^1kWW^z9W zf^4f<^V&Nzb*+@+e)hPa8PxSmhQ&t%jfMQK{aM!5p--;G!d|4u+ROQ~{SiT?ni{(# zCpb-kH1S!<7V2zh7%&@Zf&w=W2V$G7}ZAOLQ!#BVaynnss zMJ}lKH?t-~JKzZMTq{zWjd27+OF=KV|Irg5+-3qr zs8_0lX=r4uP{`45tgA_qIw9FCNew=_o4Z))Ys4u^#dE(w=69bCW#j=lcxybsMbT0*gE5^mzvR zkPS9qfyJD_bAFY zxNRewe*;o;W6TiEwvZsf#Ie zs_AFH!&rRQa5)11V|@35GRbudTV;kq$4h7LqQq@qCMU@o`mzZL3?b7fbGO4*4)n%N zAcBb$%an-Cl$P?O`gMsPbYT19eO8>i(T{U&2y*?C#1ix7WhW(|1-!BBf69o#6qCa^ z!>CJ77Msvz+W8T7^N z-zjSY{=U81%1mKp1caE3B{|>F;Wt5pI<~9q1aW@nbko97>vh*}+Pvk4tvBBEj`Wd{ z(G1RuI=kx3)~TxN0{el#XJ;9bXNcw?qVXD5CA)V=~wx=cP2g6gRV5?yDJEru0-y7 zUb-MiS`Nd<&Wx0X4R+VLim!{8IFl5D7w7DY;?>#5SS!P zyE{sV_{H1p)P#WWW9-`RCC?2HcLF6N!U4?W{99W zE2B&SZRZUarZVGw<3|dkS#pd}bJJac-&+4v>$~%1_yD^?AJ|$W*reMD^-D!(#jV4B z+**RTrLy(sPh{ZMqh6jQmVp*#f^25yFx$%yW~Qc#dC#0M4HQ8==G-b47ZO#sFza8& z4Ka|p1FGt{%4{&oFe4c%s0F5R9uH-U)T!Dm2w}m77>z)*SP+rhblinDMIagsgiM4a zx%X+X@G!5qR%9tuR%rcN3_oTkHCUmQfe6|N4>~hLI?tcvS4TP!;dHGT2{3>&adc@i z?!P_6a`CBo?n;-A+15d5m73XA-(losm^k;wTg=2GfgzemXEibLKrKudEwc6yNKRRp zZB6_|z(lY*6RTc|FuYTl87fTYrs&u#b8kEHXXNF)%L=zw;v zkd_h10+-`&@M@M)HZ}NHoFiu2+^Cq9bf}?8>ij;zy=d7+YzrdhMpz0o#E4AB;r>Xx zD-ObnVR!p6Y#CzMzVrhc#(L5d=@A@=-{$4_^om8nPY}f#5Z}@dXb2P8DZr7J|4;%v z)W#u9XA-5U8Rldxc4(-=#^JkyzO))4$&sZuqs#uCC1(%q`tBJ zlx6f?#M16AU%ShB3O0}#DHcZ3#r*U*4-PsIu;~Kzk`8|$CmVDafPy({mk#t7B#EzK zmRfISslNp?w)Q5I-A0B2KOec zll(|hO5Y1%;n@R2yHdf~cJVHg@1Py~E|w$}F$+v*oIfwu@7?B=kw7jy0Msl;%j$$W zsBdyhXYciOwz<5{ikuB$_r!}+S73AqHOKR%f;waKr|-RDxrJuPrNIXsM}=o)d?`>y zDD0@Jt|}82wEibm>ahtExm7Mi@V({g12EZ?000 z<0}>A$0?eM_5Za>{r{{||J^F}C#ux1uTpu~dS8vPz}1IZf{wnqTRqAi8QvWwq>Tj-6zpP6AjwIz;Su zkH$2PRGoqKIc)nkNHAKP<3YETY+x?sP%Qb@Y|fSGJV8Y|i>uRtsF7h}26QkT(nwrR zo=tBBoq5&iAiI0>^3*_Q&%YBLxcZxyXMT0PA!JmbgAHWN)WzRwiE;4bf8sAKIh!IY zsz@_ZaU-b9^Ajro4hZFc}Q+@BA0#;rQZ=CVNzo}Zg|@SH8u(CyKk${#2Gy0%Qo(4d zSnqtWXRxn(xX&Bz-nF;S>)-7S>>u{}?&u#H9*UP~EsN1VFx+=b-{1ycmf^lThUtwI zBEL^zr4gSU7@zR`#s>!b_jM26>D|_MC!_Jf*R6}u0ET9^tt_sEf0{hgcMP)^B(5YA zCfk*C!Av18nl%GiFthhzFNhZf-9((vOv*kDo?1$-lFM?WIp}u{TLVQQuZ0;fsrYOi zyPka6L>IDRp6DOB$V#C)wZ%-BeK?P(h)B4Pm=!`5SWhf{4s0x-({zRWuFO%KVI3YT zOyjJ%vJA>^r4-{eOW{W5Tdb((B2wt>z&|4?_7!L)d;d{gUdQ$RUyu~}nx$|qaHsQa zVOh-)7jh39*E%CBn5XaMR&WEhZD{D`sA*4XzEYCN*!4G2JrDV>G1k+-%3tJ|do`E- zYUINF-J#P;@KJfI_A~PB!A)=)e72B6H0}TSAF%^%yf(_2)VpySBKS1OTShA6@=J}g z==@AwUOLH7V+;cW2v0^iAMlkUr&Hb&;+VQK^Iz>}pd2>9NmfFfdO$r;&wDKOyoJQn z16ll2CPtJ_-Cqr+?#L{D*A1c{4|=Q2A#j9~K;yx;Gnoj7Yh0)?+m_*R-3I$i&^$3J zyZf?k0Lvjrj>upxCqJd=sJS0tVz9(d&|^eEj$tC5F=hc*>6G~xOmO@#ra9KP|89LZ>>IhmV>5!~$4KJ&b_g~X zYlyi*cIqI;^sG5H%$mn|!93wBn-*1TySV>gDOFkhLL@L?MI-P*)h`MBuVN*P=3ENn zGBFt2c%<6RjN04^WoARHE%4TsmxJG(XEx%<3#-?n_RlxOs<(}?f>ZyzcrFh5U*y)o zTfytwgjeQ9`UZ5ZdO_6qZAtRL64^f?rzI$AaGo6N9UScFU}^K!qHtGlA4=!2`;B%k zP%vxUulT`HKDF{0rnMN%yw~3^UATsMR1KUocYNerB~YR9-KHz^uQ+GP3^NqRL-$L# z;Zrv#W5y2EdyR0;eV7&jn89T9p}{Db+}`za6L2*8hlpesM;!udMXmZf)cL9zNWhSZ zWzm7*9;Tp)o0U(AZCw#5@YfrPY}W!ZV;3^B_o(61O~6v51hsZx{U=Z2Mi4lws&zgv=tcEJt5v! z97VfF5gaR`Gdio?5Z|Lw) zfM25Fvc6(adL-~&r*EU<(~~**;zNIhKw|h4hHHK)|{rERba;^^dbi8Ub`J_D8_KgfJe=7N_vZx0Lab z)X)f~my*4}a$tg7gi*k}cs29PftkaL!aF=xzkO;s-gxLq9Ueo~$&x|x3n~*oxn4`S zonzgUjLcE3mPkozkVFSTqX`g%CXAD+X3ab?DMu~T`$M&>VPMCOyc$hMEuKs?bq1_b z6HU#hfhhwpJUPAp(20BUzZf?mz>9cKb>S&W<2Z!Jt-J=Wb*a{37dv{a0hKK2z%|m0zOq&;B)L-GQyA< z7xsmK@46L3N^1Dd z1AQr8Xuf?=CdAThj{Ea^a-c*bORAw~KD6|NpRwabmlp8XC2(%xNP04p;;RXefdOS$ zSs`g!$pF9zc(%NjO)ekNM>B>sK3w-7*(q^%3M8b%`nwJ#MA70Z$%j<6!kdg-@8q^%oyXpxq!y`$+Y+|wkVz+(tVKX+Or#el9>lP+b?3H=K= zP#4*pm0F}uT1yIYhkQ4LLYfT2zKPXc1cWsznHWfN9b7vW2IT^y=tB%fSa4p7q2db$ zEM?fDu7mkc_mpJjz}ntb8!s$JL>*>bW|i^_)QN4dXNByTDcbeodyE4*q=DqQ$EdeE z?V%usPb;${ILMO`toc*4efLdgCx#0{xx!THdjD`I%(#_ClJ(LrAu+Q~9}g%CCXS3V z_LSDcPg-ygi=nvN)%lkpfcBrTe5vwslSRroDxXGWWNA#6&dB%3W4HUafN3poLm)bV%%h{nQ)Qf61%Yo zXC^JoNho--z$Aj)Z{x~aL-Hd$i^Jf>WY>B0UMj;@*moNcEdVd4Hv_fm$wzauE zgs5Z=Fa&hlcrVOd5v`m?PLjY>^>s%0?`PN&UPcRMq1XO9n~D;Y%RAQrnIrRw+&oQt84yRw*_nsC3ayRw+(@QK|V>vFc%?ly=Ifqop|2NNqc1c}+`u zq;$!@T6ot=>C)$|(sfe0>@Tg-EmFGtQ`GZTe9Gkcr;Oj}^NdVoRvzTofk+~qgE65q z@bXE^-po`%C%|0u5(hMYc>_r5ah2Moo_YG$qC00+vi?^xI->njgVF27iS`U~Td(W- zZC;@tu|M3|1h>h_W_gq7PScZ`W1*6VjoDt7zMFF_qZNpt;D{K+lWM1n2l17KAae?8 zo4hP8|56gK)hB&m66i}Wt1|eBfP{4q>av^6k&1h`Tst&W$nW4l+jZ#H4cHa+3cRgy zE|bB<58-7fJBD&GH2*|+QU3Ueck`$E*jR}%*|b6?kw_;kldSPg(yAuGo*tWoVJgpW1G(3^fShOTDHFSghUOY#jw76<0yC*^bALdhmYaUTdP zj#RPqZdx@(VkKY3iu9zbruAs5xcqJhdy__OC_uVpR4y>nnSI>#3S7e|gQC9*cT^ zi+(7Tn~D|9n6^u&g( zIScClZF+8co{!!%rurVhAFWOW8@%CDcsP41=Xc!=)*j_Se~)t65RS*v=cA^^GTumG ze4;RkLr5Nfw7|dJ&YQ{Y*YFXgTpFL9^+xg8SvsO8->m!Cr$Zbyqz3TCgGn4>661nT zuEpLi9|rr+=0vehilX&jm7QV(jqOSE8{kz%gvXWRB+=4hXrDQJo-?8++UM(1wgL@b zVCZsZV`SB&#bd7oVIf6pU8P?d0#5(95`VwH?)x!d4>Rz8pxar@43??%NjuON-^YtS z0{`6@_#TGefzv;BQEN` z$6R2inKdWpSYK2th<3x@cc^avnpJ9{ySv>%cV!fZV)LrYQ%Pb7dL`E(db*! z2$X|HtI6}^;2g?jeT_Z}V2(WQWN=s_KvVASwAzprmN+8ECxvkAh3YMe+A@%w$rp9V z=fkxp0hMK5IgQy_^PNOBcgU?+c>5sO|G$$+-C&P!(Z8V65;vip48>hOU#`_ z`HbaXizd`n`3XltYjeyIpwS~++z7qF@>cn*gu}k>E0|lVUzfYRc$&t%ix*!Upr7BA z!;IS3^eHjR8sh1DJ^Ytvm<AwdTK@;CmrKt@H{k#xY#DJ{Ux0$H zivBUR4wV>{Uvo|5=oIloRbNP8%3}Vk5Zx#2#g~Nkr1}QvQ$i%$@rRkC6?3PC%Fsj6x3EBZ--2$wFYU)fCO;47x~6`9sw&XYB-% zX1W_QHHL$0qjCuoOqlFOFquD@g6JLuhe*moqhA@m(PygiEhjrcO=OB(zK}7BNbq-6 zTCa}Oi`3FL%Ser067cTsC@VE8no`JMi)l$u+2^#^i{0a3!JE;T#1nH*Qv@o}FSiDo z#+3X?3=1@rZp4^IL1*Jq7P!P$v@GD80xw_8xt$yahkLLf&;mb!g>&g0#_RCTo+$!a zgL3I@A>=4=DqyEUMXCDKiIg-y(Y!_WBtsX66aH!7Rs6Z_62B>{%2KLgv>Wl+0*fw- zj%yPi;Zi6@VwH6won?0AbhMbTGt@;!ri=K4u2ZJRaR0;)%WTz~ZxgPRK2i@3fWvW` zRhviLMFhM-LN;Dhtzc%B2`a%Ph%3>Eg6+?q5SfksC;Y(J9&#DjM`83yus?5#x4!aN c;+MkZ7P^Sjn1FOuRpU0-*34W-@Ds)V3o%f01poj5 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulsholy.nss b/35expandedabilities/nw_s1_pulsholy.nss new file mode 100644 index 00000000..20ae4638 --- /dev/null +++ b/35expandedabilities/nw_s1_pulsholy.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_pulsintdr.ncs b/35expandedabilities/nw_s1_pulsintdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6730fc8f4b1c016d12247dcc5b49306618fb5a2f GIT binary patch literal 39041 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 G;{ONla&X81 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulsintdr.nss b/35expandedabilities/nw_s1_pulsintdr.nss new file mode 100644 index 00000000..8558364b --- /dev/null +++ b/35expandedabilities/nw_s1_pulsintdr.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_pulslvldr.ncs b/35expandedabilities/nw_s1_pulslvldr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..de1184e196677ba16a462647ef74bff0932f7bb4 GIT binary patch literal 39017 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%0At}#si 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 M*34W-@Ds)V2M(fp%K!iX literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulsneg.nss b/35expandedabilities/nw_s1_pulsneg.nss new file mode 100644 index 00000000..9bfa749f --- /dev/null +++ b/35expandedabilities/nw_s1_pulsneg.nss @@ -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)); + } +} diff --git a/35expandedabilities/nw_s1_pulspois.ncs b/35expandedabilities/nw_s1_pulspois.ncs new file mode 100644 index 0000000000000000000000000000000000000000..cafb629b8de4725d3f9856bda84efef7e84a5ddf GIT binary patch literal 3747 zcmd6pJxml)5Xaws+@1&b%^5&*usJ*h1mkzBd>9J}8ZME)2;}x6RxAXhYyqUK%+uf0|kM7vE zy`8b}cpc-vbv83C@kh4|ZE0z#z)T-w4>h=1V5Vt^XFjGK(&2A~W0kP6NwuA@bpzJs znJKibdEL-WJ!+alf3@qrQEnrg!Bwl^Q9Sj5+$X*wLi<^aCQ)gpgNKIogWSl3s<3C*TNx(8a(mn-kTvjhwx}11*p^!{sZiWW6hk3N zY=9W*y@audA}}Iu4=Jy`HcdPj(Q+|cB<2Q%;uWH3l~oK7#Z3yuMxw|o0lQS^HAocG zUPbnfCu9vAj^V+Ym_PRoGZM8QQivL^f zYrHXf-uu6+eXT;VeC?|ggeCisY>;pc-WEHa(|;LnhI6K(gNlBs$*u|DBy{f?%{2Gl zE4EY7&POe9%iEW9dtu z50KCICBs12_AmEug=y!Xo8Bd+u1qCx=|!e|A5rW%1iMf#Rg@+%1=S%l;%Vkq{~f{?Qm340Ot4IzURkrN38#- 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)); + } +} + + diff --git a/35expandedabilities/nw_s1_pulsspore.ncs b/35expandedabilities/nw_s1_pulsspore.ncs new file mode 100644 index 0000000000000000000000000000000000000000..723d855979cd16756ed4a1a6cfd355f4c2056c33 GIT binary patch literal 527 zcmbVIy=nqM5T4naJA(*X2q}W*un0s%lsrH}(x(x99wiTv*GQ4VCrFc8u&}hSu&}UG zynOR5qJ%)eEoOG-`dzl1DUsG0fwzxX%?Cm|D2%c;m` z8byf~MX>_vc?&1fKv>uxt`2IXP%sw*b*5%d!{(HL7si>o-CFEMkoV+n$ZhMbdpsOV z%;;Zfd0oEa=U9b26`h4vLg<6`?5=GRmUP@EC$_u=KG2I9#u(>4P+Gsf<5&RWSgck- y*eL;gKLVYa&w^8Lc)UMb6^1%?pj;qdSS~EW0MAmmd~=gun`>Zyhc8aG&gBP~RCk{M literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulsspore.nss b/35expandedabilities/nw_s1_pulsspore.nss new file mode 100644 index 00000000..7e9e34d3 --- /dev/null +++ b/35expandedabilities/nw_s1_pulsspore.nss @@ -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)); + } +} diff --git a/35expandedabilities/nw_s1_pulsstrdr.ncs b/35expandedabilities/nw_s1_pulsstrdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aa85653d1125544a58de88e1a76d7704ce8bedf3 GIT binary patch literal 39043 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_pulsstrdr.nss b/35expandedabilities/nw_s1_pulsstrdr.nss new file mode 100644 index 00000000..5f88eabc --- /dev/null +++ b/35expandedabilities/nw_s1_pulsstrdr.nss @@ -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)); + } +} + diff --git a/35expandedabilities/nw_s1_pulswind.ncs b/35expandedabilities/nw_s1_pulswind.ncs new file mode 100644 index 0000000000000000000000000000000000000000..92fccc72b820e44e3339ec0bbb527dc45e8a5b8d GIT binary patch literal 38697 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_smokeclaw.nss b/35expandedabilities/nw_s1_smokeclaw.nss new file mode 100644 index 00000000..6db3666f --- /dev/null +++ b/35expandedabilities/nw_s1_smokeclaw.nss @@ -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; + } + } + } + } +} diff --git a/35expandedabilities/nw_s1_stink_a.ncs b/35expandedabilities/nw_s1_stink_a.ncs new file mode 100644 index 0000000000000000000000000000000000000000..bb2bc5b12f5747046b890fa0fa9162eb42d3a898 GIT binary patch literal 39100 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 DFe(mR literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_tyrantfga.nss b/35expandedabilities/nw_s1_tyrantfga.nss new file mode 100644 index 00000000..a2752cbd --- /dev/null +++ b/35expandedabilities/nw_s1_tyrantfga.nss @@ -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)); + } + } + } + } +} diff --git a/35expandedabilities/nw_s1_tyrantfog.ncs b/35expandedabilities/nw_s1_tyrantfog.ncs new file mode 100644 index 0000000000000000000000000000000000000000..609cad3bef159eab3f9ea8bd93363347074d3f72 GIT binary patch literal 173 zcmeZs4ps;=)H85mU|?7)2P7Cc6d0J8Sy&l31A?66U0j_)-NC{VS`1*?PMblR;s5{t ze-s#)89_7yP%XnJ1|VU~#0V1k!oUJiAqz5&4W=5T433$BGSWbS)hsL^W(ts5#mK@2 U(f~FUXa-n<5h!s7YMcTC0OM09kN^Mx literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_tyrantfog.nss b/35expandedabilities/nw_s1_tyrantfog.nss new file mode 100644 index 00000000..e3ab9e63 --- /dev/null +++ b/35expandedabilities/nw_s1_tyrantfog.nss @@ -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)); +} diff --git a/35expandedabilities/nw_s2_bardsong.ncs b/35expandedabilities/nw_s2_bardsong.ncs new file mode 100644 index 0000000000000000000000000000000000000000..2c2a62056550860902a511e24ac7b229d7851b68 GIT binary patch literal 56696 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 P<(^~9t*E(#KM(&uHkQOz literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s2_bardsong.nss b/35expandedabilities/nw_s2_bardsong.nss new file mode 100644 index 00000000..7805ffd4 --- /dev/null +++ b/35expandedabilities/nw_s2_bardsong.nss @@ -0,0 +1,2222 @@ +//:://///////////////////////////////////////////// +//:: Bard Song +//:: NW_S2_BardSong +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + This spells applies bonuses to all of the + bard's allies within 30ft for a set duration of + 10 rounds. +*/ +//::////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: Feb 25, 2002 +//::////////////////////////////////////////////// +//:: Last Updated By: Georg Zoeller Oct 1, 2003 +/* +bugfix by Kovi 2002.07.30 +- loosing temporary hp resulted in loosing the other bonuses +*/ + +#include "prc_inc_clsfunc" +#include "prc_inc_combat" //for Dragonfire type getting + +void ApplyDragonfire(int nAmount, int nDuration, object oPC, object oCaster) +{ + int nAppearanceType; + int nDamageType = GetDragonfireDamageType(oPC); + //find primary weapon to add to + object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); + switch(nDamageType) + { + case DAMAGE_TYPE_ACID: nAppearanceType = ITEM_VISUAL_ACID; break; + case DAMAGE_TYPE_COLD: nAppearanceType = ITEM_VISUAL_COLD; break; + case DAMAGE_TYPE_ELECTRICAL: nAppearanceType = ITEM_VISUAL_ELECTRICAL; break; + case DAMAGE_TYPE_SONIC: nAppearanceType = ITEM_VISUAL_SONIC; break; + case DAMAGE_TYPE_FIRE: nAppearanceType = ITEM_VISUAL_FIRE; break; + } + SetLocalInt(oItem, "Insp_Dam_Type", nDamageType); + SetLocalInt(oItem, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + IPSafeAddItemProperty(oItem, ItemPropertyVisualEffect(nAppearanceType), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE); + + //add to gloves and claws too + oItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oPC); + SetLocalInt(oItem, "Insp_Dam_Type", nDamageType); + SetLocalInt(oItem, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC); + SetLocalInt(oItem, "Insp_Dam_Type", nDamageType); + SetLocalInt(oItem, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + + //do ammo for ranged attacks + object oAmmo = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC); + SetLocalInt(oAmmo, "Insp_Dam_Type", nDamageType); + SetLocalInt(oAmmo, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oAmmo, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + + oAmmo = GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC); + SetLocalInt(oAmmo, "Insp_Dam_Type", nDamageType); + SetLocalInt(oAmmo, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oAmmo, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + + oAmmo = GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC); + SetLocalInt(oAmmo, "Insp_Dam_Type", nDamageType); + SetLocalInt(oAmmo, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oAmmo, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + + //now check offhand and bite + oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC); + SetLocalInt(oItem, "Insp_Dam_Type", nDamageType); + SetLocalInt(oItem, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC); + if(!GetIsShield(oItem) && oItem != OBJECT_INVALID) + { + SetLocalInt(oItem, "Insp_Dam_Type", nDamageType); + SetLocalInt(oItem, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); + IPSafeAddItemProperty(oItem, ItemPropertyVisualEffect(nAppearanceType), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE); + } + oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC); + SetLocalInt(oItem, "Insp_Dam_Type", nDamageType); + SetLocalInt(oItem, "Insp_Dam_Dice", nAmount); + IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DRAGONFIRE, nAmount), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING); +} + +void main() +{ + if (PRCGetHasEffect(EFFECT_TYPE_SILENCE,OBJECT_SELF)) + { + FloatingTextStrRefOnCreature(85764,OBJECT_SELF); // not useable when silenced + return; + } + string sTag = GetTag(OBJECT_SELF); + + //RemoveOldSongEffects(OBJECT_SELF,GetSpellId()); + + if (sTag == "x0_hen_dee" || sTag == "x2_hen_deekin") + { + // * Deekin has a chance of singing a doom song + // * same effect, better tune + if (Random(5) == 2) + { + // the Xp2 Deekin knows more than one doom song + if (d3() == 1 && sTag == "x2_hen_deekin") + { + DelayCommand(0.0, PlaySound("vs_nx2deekM_050")); + } + else + { + DelayCommand(0.0, PlaySound("vs_nx0deekM_074")); + DelayCommand(5.0, PlaySound("vs_nx0deekM_074")); + } + } + } + + + //Declare major variables + int nLevel = GetLevelByClass(CLASS_TYPE_BARD) + + GetLevelByClass(CLASS_TYPE_MINSTREL_EDGE)/2 + + GetLevelByClass(CLASS_TYPE_DIRGESINGER) + + + GetLevelByClass(CLASS_TYPE_DRAGONSONG_LYRIST) + + GetLevelByClass(CLASS_TYPE_HEARTWARDER) + + GetLevelByClass(CLASS_TYPE_SPELLDANCER) + + GetLevelByClass(CLASS_TYPE_SUBLIME_CHORD) + + GetLevelByClass(CLASS_TYPE_BLADESINGER) + + GetLevelByClass(CLASS_TYPE_VIRTUOSO); + if (GetHasFeat(FEAT_SONG_WHITE_RAVEN, OBJECT_SELF)) + nLevel += GetLevelByClass(CLASS_TYPE_CRUSADER) + GetLevelByClass(CLASS_TYPE_WARBLADE); + + int nRanks = GetSkillRank(SKILL_PERFORM); + if (GetHasFeat(FEAT_DRAGONSONG, OBJECT_SELF)) nRanks+= 2; + int nChr = GetAbilityModifier(ABILITY_CHARISMA); + int nPerform = nRanks; + int nDuration = 10; //+ nChr; + + + effect eAttack; + effect eDamage; + effect eWill; + effect eFort; + effect eReflex; + effect eHP; + effect eAC; + effect eSkill; + + int nAttack; + int nDamage; + int nWill; + int nFort; + int nReflex; + int nHP; + int nAC; + int nSkill; + + // lingering song + if(GetHasFeat(FEAT_LINGERING_SONG)) + { + nDuration += 5; + } + + //Check to see if the caster has Lasting Impression and increase duration. + if(GetHasFeat(FEAT_EPIC_LASTING_INSPIRATION)) + { + nDuration *= 10; + } + + //SpeakString("Level: " + IntToString(nLevel) + " Ranks: " + IntToString(nRanks)); + + + + if(nPerform >= 125 && nLevel >= 180) + { + nAttack = 36; + nDamage = 36; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 348; + nAC = 36; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 179) + { + nAttack = 36; + nDamage = 36; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 346; + nAC = 35; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 178) + { + nAttack = 35; + nDamage = 36; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 344; + nAC = 35; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 177) + { + nAttack = 35; + nDamage = 35; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 342; + nAC = 35; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 176) + { + nAttack = 35; + nDamage = 35; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 340; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 175) + { + nAttack = 34; + nDamage = 35; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 338; + nAC = 34; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 174) + { + nAttack = 34; + nDamage = 34; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 336; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 173) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 18; + nReflex = 18; + nHP = 334; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 172) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 18; + nHP = 332; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 171) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 330; + nAC = 34; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 170) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 328; + nAC = 33; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 169) + { + nAttack = 33; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 326; + nAC = 33; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 168) + { + nAttack = 33; + nDamage = 33; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 324; + nAC = 33; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 167) + { + nAttack = 33; + nDamage = 33; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 322; + nAC = 32; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 166) + { + nAttack = 32; + nDamage = 33; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 320; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 165) + { + nAttack = 32; + nDamage = 32; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 318; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 164) + { + nAttack = 32; + nDamage = 32; + nWill = 16; + nFort = 17; + nReflex = 17; + nHP = 316; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 163) + { + nAttack = 32; + nDamage = 32; + nWill = 16; + nFort = 16; + nReflex = 17; + nHP = 314; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 162) + { + nAttack = 32; + nDamage = 32; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 312; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 161) + { + nAttack = 31; + nDamage = 32; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 310; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 160) + { + nAttack = 31; + nDamage = 31; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 308; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 159) + { + nAttack = 30; + nDamage = 31; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 306; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 158) + { + nAttack = 30; + nDamage = 30; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 304; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 157) + { + nAttack = 30; + nDamage = 30; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 302; + nAC = 31; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 156) + { + nAttack = 29; + nDamage = 30; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 300; + nAC = 31; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 155) + { + nAttack = 29; + nDamage = 29; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 298; + nAC = 31; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 154) + { + nAttack = 29; + nDamage = 29; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 296; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 153) + { + nAttack = 29; + nDamage = 28; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 294; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 152) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 16; + nReflex = 16; + nHP = 292; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 151) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 16; + nHP = 290; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 150) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 288; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 149) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 286; + nAC = 29; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 148) + { + nAttack = 28; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 284; + nAC = 29; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 147) + { + nAttack = 28; + nDamage = 27; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 282; + nAC = 29; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 146) + { + nAttack = 28; + nDamage = 27; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 280; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 145) + { + nAttack = 27; + nDamage = 27; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 278; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 144) + { + nAttack = 27; + nDamage = 26; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 276; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 143) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 15; + nReflex = 15; + nHP = 274; + nAC = 28; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 142) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 14; + nReflex = 15; + nHP = 272; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 141) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 270; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 140) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 268; + nAC = 27; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 139) + { + nAttack = 27; + nDamage = 25; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 266; + nAC = 27; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 138) + { + nAttack = 27; + nDamage = 25; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 264; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 137) + { + nAttack = 26; + nDamage = 25; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 262; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 136) + { + nAttack = 26; + nDamage = 24; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 260; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 135) + { + nAttack = 26; + nDamage = 24; + nWill = 13; + nFort = 14; + nReflex = 14; + nHP = 258; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 134) + { + nAttack = 26; + nDamage = 24; + nWill = 13; + nFort = 13; + nReflex = 14; + nHP = 256; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 133) + { + nAttack = 26; + nDamage = 24; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 254; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 132) + { + nAttack = 26; + nDamage = 23; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 252; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 131) + { + nAttack = 26; + nDamage = 23; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 250; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 130) + { + nAttack = 25; + nDamage = 23; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 248; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 129) + { + nAttack = 25; + nDamage = 22; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 246; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 128) + { + nAttack = 25; + nDamage = 22; + nWill = 12; + nFort = 13; + nReflex = 13; + nHP = 244; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 127) + { + nAttack = 25; + nDamage = 22; + nWill = 12; + nFort = 12; + nReflex = 13; + nHP = 242; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 126) + { + nAttack = 25; + nDamage = 22; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 240; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 125) + { + nAttack = 25; + nDamage = 21; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 238; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 124) + { + nAttack = 24; + nDamage = 21; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 236; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 123) + { + nAttack = 24; + nDamage = 21; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 234; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 122) + { + nAttack = 24; + nDamage = 20; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 232; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 121) + { + nAttack = 23; + nDamage = 20; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 230; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 120) + { + nAttack = 23; + nDamage = 19; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 228; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 119) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 12; + nReflex = 12; + nHP = 226; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 118) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 12; + nHP = 224; + nAC = 24; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 117) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 222; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 116) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 220; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 115) + { + nAttack = 22; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 218; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 114) + { + nAttack = 22; + nDamage = 18; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 216; + nAC = 23; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 113) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 11; + nReflex = 11; + nHP = 214; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 112) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 10; + nReflex = 11; + nHP = 212; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 111) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 210; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 110) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 208; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 109) + { + nAttack = 22; + nDamage = 17; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 206; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 108) + { + nAttack = 21; + nDamage = 17; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 204; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 107) + { + nAttack = 21; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 202; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 106) + { + nAttack = 21; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 200; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 105) + { + nAttack = 21; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 198; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 104) + { + nAttack = 20; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 196; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 103) + { + nAttack = 20; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 194; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 102) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 192; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 101) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 190; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 100) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 188; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 99) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 186; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 98) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 184; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 97) + { + nAttack = 20; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 182; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 96) + { + nAttack = 19; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 180; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 95) + { + nAttack = 19; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 178; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 94) + { + nAttack = 19; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 176; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 93) + { + nAttack = 18; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 174; + nAC = 19; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 92) + { + nAttack = 18; + nDamage = 13; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 172; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 91) + { + nAttack = 18; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 170; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 90) + { + nAttack = 18; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 168; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 89) + { + nAttack = 18; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 166; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 88) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 164; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 87) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 162; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 86) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 160; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 85) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 158; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 84) + { + nAttack = 16; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 156; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 83) + { + nAttack = 15; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 154; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 82) + { + nAttack = 14; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 152; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 81) + { + nAttack = 14; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 150; + nAC = 16; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 80) + { + nAttack = 13; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 148; + nAC = 16; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 79) + { + nAttack = 12; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 146; + nAC = 16; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 78) + { + nAttack = 12; + nDamage = 11; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 144; + nAC = 16; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 77) + { + nAttack = 11; + nDamage = 11; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 142; + nAC = 16; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 76) + { + nAttack = 11; + nDamage = 11; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 140; + nAC = 15; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 75) + { + nAttack = 11; + nDamage = 10; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 138; + nAC = 15; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 74) + { + nAttack = 10; + nDamage = 10; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 136; + nAC = 15; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 73) + { + nAttack = 10; + nDamage = 10; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 134; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 72) + { + nAttack = 10; + nDamage = 10; + nWill = 9; + nFort = 10; + nReflex = 10; + nHP = 132; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 71) + { + nAttack = 10; + nDamage = 10; + nWill = 9; + nFort = 9; + nReflex = 10; + nHP = 130; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 70) + { + nAttack = 10; + nDamage = 10; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 128; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 69) + { + nAttack = 10; + nDamage = 9; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 126; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 68) + { + nAttack = 9; + nDamage = 9; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 124; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 67) + { + nAttack = 9; + nDamage = 9; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 122; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 66) + { + nAttack = 9; + nDamage = 9; + nWill = 8; + nFort = 9; + nReflex = 9; + nHP = 120; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 65) + { + nAttack = 9; + nDamage = 9; + nWill = 8; + nFort = 8; + nReflex = 9; + nHP = 118; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 64) + { + nAttack = 9; + nDamage = 9; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 116; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 63) + { + nAttack = 9; + nDamage = 8; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 114; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 62) + { + nAttack = 8; + nDamage = 8; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 112; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 61) + { + nAttack = 8; + nDamage = 8; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 110; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 60) + { + nAttack = 8; + nDamage = 8; + nWill = 7; + nFort = 8; + nReflex = 8; + nHP = 108; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 59) + { + nAttack = 8; + nDamage = 8; + nWill = 7; + nFort = 7; + nReflex = 8; + nHP = 106; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 58) + { + nAttack = 8; + nDamage = 8; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 104; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 57) + { + nAttack = 8; + nDamage = 7; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 102; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 56) + { + nAttack = 7; + nDamage = 7; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 100; + nAC = 12; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 55) + { + nAttack = 7; + nDamage = 7; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 98; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 54) + { + nAttack = 7; + nDamage = 7; + nWill = 6; + nFort = 7; + nReflex = 7; + nHP = 96; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 53) + { + nAttack = 7; + nDamage = 7; + nWill = 6; + nFort = 6; + nReflex = 7; + nHP = 94; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 52) + { + nAttack = 7; + nDamage = 7; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 92; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 51) + { + nAttack = 6; + nDamage = 7; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 90; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 50) + { + nAttack = 6; + nDamage = 6; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 88; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 49) + { + nAttack = 6; + nDamage = 6; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 86; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 48) + { + nAttack = 6; + nDamage = 6; + nWill = 5; + nFort = 6; + nReflex = 6; + nHP = 84; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 47) + { + nAttack = 6; + nDamage = 6; + nWill = 5; + nFort = 5; + nReflex = 6; + nHP = 82; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 46) + { + nAttack = 6; + nDamage = 6; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 80; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 45) + { + nAttack = 6; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 78; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 44) + { + nAttack = 5; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 76; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 43) + { + nAttack = 5; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 74; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 42) + { + nAttack = 4; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 72; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 41) + { + nAttack = 4; + nDamage = 4; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 70; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 40) + { + nAttack = 4; + nDamage = 4; + nWill = 4; + nFort = 5; + nReflex = 5; + nHP = 68; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 39) + { + nAttack = 4; + nDamage = 4; + nWill = 4; + nFort = 4; + nReflex = 5; + nHP = 66; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 38) + { + nAttack = 4; + nDamage = 4; + nWill = 4; + nFort = 4; + nReflex = 4; + nHP = 64; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 37) + { + nAttack = 3; + nDamage = 4; + nWill = 4; + nFort = 4; + nReflex = 4; + nHP = 62; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 36) + { + nAttack = 3; + nDamage = 4; + nWill = 4; + nFort = 3; + nReflex = 4; + nHP = 60; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 35) + { + nAttack = 3; + nDamage = 4; + nWill = 4; + nFort = 3; + nReflex = 3; + nHP = 58; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 120 && nLevel >= 34) + { + nAttack = 3; + nDamage = 4; + nWill = 3; + nFort = 3; + nReflex = 3; + nHP = 56; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 115 && nLevel >= 33) + { + nAttack = 3; + nDamage = 3; + nWill = 3; + nFort = 3; + nReflex = 3; + nHP = 54; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 110 && nLevel >= 32) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 3; + nReflex = 3; + nHP = 52; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 105 && nLevel >= 31) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 3; + nHP = 50; + nAC = 7; + nSkill = 20; + } + + if(nPerform >= 100 && nLevel >= 30) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 48; + nAC = 7; + nSkill = 19; + } + else if(nPerform >= 95 && nLevel >= 29) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 46; + nAC = 6; + nSkill = 18; + } + else if(nPerform >= 90 && nLevel >= 28) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 44; + nAC = 6; + nSkill = 17; + } + else if(nPerform >= 85 && nLevel >= 27) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 42; + nAC = 6; + nSkill = 16; + } + else if(nPerform >= 80 && nLevel >= 26) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 40; + nAC = 6; + nSkill = 15; + } + else if(nPerform >= 75 && nLevel >= 25) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 38; + nAC = 6; + nSkill = 14; + } + else if(nPerform >= 70 && nLevel >= 24) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 36; + nAC = 5; + nSkill = 13; + } + else if(nPerform >= 65 && nLevel >= 23) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 34; + nAC = 5; + nSkill = 12; + } + else if(nPerform >= 60 && nLevel >= 22) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 32; + nAC = 5; + nSkill = 11; + } + else if(nPerform >= 55 && nLevel >= 21) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 30; + nAC = 5; + nSkill = 9; + } + else if(nPerform >= 50 && nLevel >= 20) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 28; + nAC = 5; + nSkill = 8; + } + else if(nPerform >= 45 && nLevel >= 19) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 26; + nAC = 5; + nSkill = 7; + } + else if(nPerform >= 40 && nLevel >= 18) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 24; + nAC = 5; + nSkill = 6; + } + else if(nPerform >= 35 && nLevel >= 17) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 22; + nAC = 5; + nSkill = 5; + } + else if(nPerform >= 30 && nLevel >= 16) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 20; + nAC = 5; + nSkill = 4; + } + else if(nPerform >= 24 && nLevel >= 15) + { + nAttack = 2; + nDamage = 3; + nWill = 2; + nFort = 2; + nReflex = 2; + nHP = 16; + nAC = 4; + nSkill = 3; + } + else if(nPerform >= 21 && nLevel >= 14) + { + nAttack = 2; + nDamage = 3; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 16; + nAC = 3; + nSkill = 2; + } + else if(nPerform >= 18 && nLevel >= 11) + { + nAttack = 2; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 8; + nAC = 2; + nSkill = 2; + } + else if(nPerform >= 15 && nLevel >= 8) + { + nAttack = 2; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 8; + nAC = 0; + nSkill = 1; + } + else if(nPerform >= 12 && nLevel >= 6) + { + nAttack = 1; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 0; + nAC = 0; + nSkill = 1; + } + else if(nPerform >= 9 && nLevel >= 3) + { + nAttack = 1; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 0; + nHP = 0; + nAC = 0; + nSkill = 0; + } + else if(nPerform >= 6 && nLevel >= 2) + { + nAttack = 1; + nDamage = 1; + nWill = 1; + nFort = 0; + nReflex = 0; + nHP = 0; + nAC = 0; + nSkill = 0; + } + else if(nPerform >= 3 && nLevel >= 1) + { + nAttack = 1; + nDamage = 1; + nWill = 0; + nFort = 0; + nReflex = 0; + nHP = 0; + nAC = 0; + nSkill = 0; + } + effect eVis = EffectVisualEffect(VFX_DUR_BARD_SONG); + effect eLink; + + eAttack = EffectAttackIncrease(nAttack); + eDamage = EffectDamageIncrease(nDamage, DAMAGE_TYPE_BLUDGEONING); + + + if(GetLocalInt(OBJECT_SELF, "DragonFireInspOn")) + { + eLink = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); + } + else + { + effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); + eLink = EffectLinkEffects(eAttack, eDamage); + eLink = EffectLinkEffects(eLink, eDur); + } + + if(nWill > 0) + { + eWill = EffectSavingThrowIncrease(SAVING_THROW_WILL, nWill); + eLink = EffectLinkEffects(eLink, eWill); + } + if(nFort > 0) + { + eFort = EffectSavingThrowIncrease(SAVING_THROW_FORT, nFort); + eLink = EffectLinkEffects(eLink, eFort); + } + if(nReflex > 0) + { + eReflex = EffectSavingThrowIncrease(SAVING_THROW_REFLEX, nReflex); + eLink = EffectLinkEffects(eLink, eReflex); + } + if(nHP > 0) + { + //SpeakString("HP Bonus " + IntToString(nHP)); + eHP = EffectTemporaryHitpoints(nHP); +// eLink = EffectLinkEffects(eLink, eHP); + } + if(nAC > 0) + { + eAC = EffectACIncrease(nAC, AC_DODGE_BONUS); + eLink = EffectLinkEffects(eLink, eAC); + } + if(nSkill > 0) + { + eSkill = EffectSkillIncrease(SKILL_ALL_SKILLS, nSkill); + eLink = EffectLinkEffects(eLink, eSkill); + } + + effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_SONIC); + effect eFNF = EffectVisualEffect(VFX_FNF_LOS_NORMAL_30); + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eFNF, GetLocation(OBJECT_SELF)); + + object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); + + eHP = ExtraordinaryEffect(eHP); + eLink = ExtraordinaryEffect(eLink); + + int nRace; + + while(GetIsObjectValid(oTarget)) + { + // * GZ Oct 2003: If we are silenced, we can not benefit from bard song + if (!PRCGetHasEffect(EFFECT_TYPE_SILENCE,oTarget) && !PRCGetHasEffect(EFFECT_TYPE_DEAF,oTarget)) + { + RemoveSongEffects(GetSpellId(),OBJECT_SELF,oTarget); + nRace = MyPRCGetRacialType(oTarget); + + // Undead and Constructs are immune to mind effecting abilities. + // A bard with requiem can effect undead + if ((nRace == RACIAL_TYPE_UNDEAD && GetHasFeat(FEAT_REQUIEM, OBJECT_SELF)) || (nRace != RACIAL_TYPE_UNDEAD && nRace != RACIAL_TYPE_CONSTRUCT) || GetIsWarforged(oTarget)) + { + // Even with requiem, they have half duration + if (nRace == RACIAL_TYPE_UNDEAD) nDuration /= 2; + + if(oTarget == OBJECT_SELF) + { + effect eLinkBard = EffectLinkEffects(eLink, eVis); + eLinkBard = ExtraordinaryEffect(eLinkBard); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLinkBard, oTarget, RoundsToSeconds(nDuration)); + //StoreSongRecipient(oTarget, OBJECT_SELF, GetSpellId(), nDuration); + if (nHP > 0) + { + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oTarget, RoundsToSeconds(nDuration)); + } + if(GetLocalInt(OBJECT_SELF, "DragonFireInspOn")) + { + ApplyDragonfire(nAttack, nDuration, OBJECT_SELF, OBJECT_SELF); + } + } + else if(GetIsFriend(oTarget)) + { + ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); + //StoreSongRecipient(oTarget, OBJECT_SELF, GetSpellId(), nDuration); + if (nHP > 0) + { + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oTarget, RoundsToSeconds(nDuration)); + } + if(GetLocalInt(OBJECT_SELF, "DragonFireInspOn")) + { + ApplyDragonfire(nAttack, nDuration, oTarget, OBJECT_SELF); + } + } + } + } + oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); + } +//:: Crystal Echoblade + effect eEffect = GetFirstEffect(OBJECT_SELF); + + //:: Prevent stacking + while(GetIsEffectValid(eEffect)) + { + if(GetEffectTag(eEffect) == "Echoblade") + RemoveEffect(OBJECT_SELF, eEffect); + eEffect = GetNextEffect(OBJECT_SELF); + } + + if(IPGetHasItemPropertyByConst(ITEM_PROPERTY_ECHOBLADE, GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, OBJECT_SELF)) || //:: 104/*ITEM_PROPERTY_ECHOBLADE*/ + (IPGetHasItemPropertyByConst(ITEM_PROPERTY_ECHOBLADE, GetItemInSlot(INVENTORY_SLOT_LEFTHAND, OBJECT_SELF)))) + { + int nSonic = IPGetDamageBonusConstantFromNumber(nLevel / 2); + effect eEchoblade = EffectDamageIncrease(nSonic, DAMAGE_TYPE_SONIC); + eEchoblade = ExtraordinaryEffect(eEchoblade); + eEchoblade = TagEffect(eEchoblade, "Echoblade"); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEchoblade, OBJECT_SELF, RoundsToSeconds(nDuration)); + } +} diff --git a/35expandedabilities/nw_s2_divprot.ncs b/35expandedabilities/nw_s2_divprot.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c2f36e0cfbbb17f5105b953fc22159e787f0a0af GIT binary patch literal 20552 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 Zp5Mg{0 + || (GetHasFeat(FEAT_TOMB_TAINTED_SOUL, oTarget) && GetAlignmentGoodEvil(oTarget) != ALIGNMENT_GOOD)) + { + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS, FALSE)); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eEVis2, oTarget); + } + else + { + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS)); + //Make a ranged touch attack + nTouch = PRCDoMeleeTouchAttack(oTarget);; + + //---------------------------------------------------------------------- + // GZ: The PhB classifies Lay on Hands as spell like ability, so it is + // subject to SR. No more cheesy demi lich kills on touch, sorry. + //---------------------------------------------------------------------- + int nResist = PRCDoResistSpell(OBJECT_SELF, oTarget, nLevel + SPGetPenetr()); + if (nResist == 0 ) + { + if(nTouch > 0) + { + if(nTouch == 2) + { + nHeal *= 2; + } + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS)); + eDam = PRCEffectDamage(oTarget, nHeal, DAMAGE_TYPE_DIVINE); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eEVis, oTarget); + } + } + } + } + + //-------------------------------------------------------------------------- + // A good-aligned paladin can use his lay on hands ability to damage undead creatures + // having undead class levels qualifies as undead as well + //-------------------------------------------------------------------------- + +if (GetAlignmentGoodEvil(OBJECT_SELF) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(OBJECT_SELF) == ALIGNMENT_NEUTRAL) +{ + if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD || GetLevelByClass(CLASS_TYPE_UNDEAD,oTarget)>0 + || (GetHasFeat(FEAT_TOMB_TAINTED_SOUL, oTarget) && GetAlignmentGoodEvil(oTarget) != ALIGNMENT_GOOD)) + { + //Fire cast spell at event for the specified target + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS)); + //Make a ranged touch attack + nTouch = PRCDoMeleeTouchAttack(oTarget);; + + //---------------------------------------------------------------------- + // GZ: The PhB classifies Lay on Hands as spell like ability, so it is + // subject to SR. No more cheesy demi lich kills on touch, sorry. + //---------------------------------------------------------------------- + int nResist = PRCDoResistSpell(OBJECT_SELF, oTarget, nLevel + SPGetPenetr()); + if (nResist == 0 ) + { + if(nTouch > 0) + { + if(nTouch == 2) + { + nHeal *= 2; + } + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS)); + eDam = PRCEffectDamage(oTarget, nHeal, DAMAGE_TYPE_DIVINE); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); + } + } + } + else + { + + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS, FALSE)); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); + } +} + +} + diff --git a/35expandedabilities/nw_s3_balordeth.ncs b/35expandedabilities/nw_s3_balordeth.ncs new file mode 100644 index 0000000000000000000000000000000000000000..0722edb941629377f5cbae6fa4a2d5394fbdf6f9 GIT binary patch literal 90827 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s3_balordeth.nss b/35expandedabilities/nw_s3_balordeth.nss new file mode 100644 index 00000000..96d0afb2 --- /dev/null +++ b/35expandedabilities/nw_s3_balordeth.nss @@ -0,0 +1,62 @@ +// HCR v3.2.0 - Execute default death script after fireball effects is complete. +//:://////////////////////////////////////////////////////////////////////////// +//:: FileName: NW_S3_BALORDETH +//:://////////////////////////////////////////////////////////////////////////// +/* + Fireball explosion does 50 damage to all within 20ft. +*/ +//:://////////////////////////////////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: Jan 9, 2002 +//:://////////////////////////////////////////////////////////////////////////// +#include "NW_I0_SPELLS" +#include "prc_inc_spells" +//:://////////////////////////////////////////////////////////////////////////// +void main() +{ + // Declare major variables. + int nMetaMagic = PRCGetMetaMagicFeat(); + int nDamage; + float fDelay; + effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); + effect eDam; + + // Apply the fireball explosion. + effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); + location lTarget = GetLocation(OBJECT_SELF); + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); + + // Cycle through the targets until an invalid object is captured. + object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR); + while (GetIsObjectValid(oTarget)) + { + // Fire cast spell at event for the specified target. + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL)); + + // Calculate delay based on distance between explosion and the target. + fDelay = (GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20); + if (!PRCDoResistSpell(OBJECT_SELF, oTarget, FloatToInt(fDelay))) + { + // Adjust damage based on Reflex Save, Evasion and Improved Evasion. + nDamage = PRCGetReflexAdjustedDamage(50, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE); + if (nDamage > 0) + { + // Apply effects to the currently selected target. + eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); + DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); + + // This visual effect is applied to the target object not the + // location as above. This visual effect represents the flame that + // erupts on the target not on the ground. + DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); + } + } + + // Select the next target. + oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR); + } + + // HCR 3.0 - Call default death script. + ExecuteScript("nw_c2_default7", OBJECT_SELF); +} +//:://////////////////////////////////////////////////////////////////////////// diff --git a/35expandedabilities/prc_hexbl_comp_a.ncs b/35expandedabilities/prc_hexbl_comp_a.ncs new file mode 100644 index 0000000000000000000000000000000000000000..1c7d42b5243bafaa1511e23c33f8584852db351d GIT binary patch literal 400 zcmeZs4ps;=)H85mU|^ge#{dKz3Jff4AO#Bz-XZ08zv=Y zd7vUjADAEuGmvWw)D+GHW{U7BfD|wYfq5*lAT|$}%>>r+g@FZKiw0DS6j*|d5o)b8 z1JL?ExHQ@DLhONP;vh~_0E#9qR83&p;hu)@fc`qd3}OnfBT0W?U;#=TVupnQFkp@| dp&7>FaDV|~7*I8eCqRLFhXw4r9}rT30RS|eV)Fn1 literal 0 HcmV?d00001 diff --git a/35expandedabilities/prc_hexbl_comp_a.nss b/35expandedabilities/prc_hexbl_comp_a.nss new file mode 100644 index 00000000..65809ac8 --- /dev/null +++ b/35expandedabilities/prc_hexbl_comp_a.nss @@ -0,0 +1,42 @@ +/** + * Hexblade: Dark Companion + * 14/09/2005 + * Stratovarius + * Type of Feat: Class Specific + * Prerequisite: Hexblade level 4. + * Specifics: The Hexblade gains a dark companion. It is an illusionary creature that does not engage in combat, but all monsters near it take a -2 penalty to AC and Saves. + * Use: Selected. + */ + +#include "prc_class_const" + +void main() +{ + //Declare major variables + object oPC = GetAreaOfEffectCreator(); + object oTarget = GetEnteringObject(); + + // Apply the Dark Companion penalties. + // Doesn't affect allies + if(!GetIsFriend(oTarget, oPC)) + { + int nPen = GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) > 20 ? 4 : 2; + + if(GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) > 40) + { + nPen =6; + } + + if(GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) >= 60) + { + nPen =8; + } + if(GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) >= 80) + { + nPen =10; + } + effect eLink = EffectSavingThrowDecrease(SAVING_THROW_ALL, nPen); + eLink = EffectLinkEffects(eLink, EffectACDecrease(nPen)); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 6.0); + } +} \ No newline at end of file diff --git a/35expandedabilities/prc_hexbl_comp_c.ncs b/35expandedabilities/prc_hexbl_comp_c.ncs new file mode 100644 index 0000000000000000000000000000000000000000..126ad6f615fb76e5cc2a1d79207123f2de6c5fe8 GIT binary patch literal 474 zcmeZs4ps;=)H85mU|_r@#{dKz3Jff4AOo(5SYgz3u5zt*-T(9KQOguK($DLm9a5`Oa>~GW&qiMOOp*R#2$zy4&pQgplISk z)daSk0mVL$SC24*Bm~%zq(3mQ03{AF!_=}eFdS#XW*ArxBRtgDAUc4d2GpU&2o9%w zupvMbkqmpoq{IxCRA*svIKTjR6HF<@SfCkqAi)pR3=Cz2J?zY=j*$h0WEVI*KPWH& E0C;b2umAu6 literal 0 HcmV?d00001 diff --git a/35expandedabilities/prc_hexbl_comp_c.nss b/35expandedabilities/prc_hexbl_comp_c.nss new file mode 100644 index 00000000..c0d03697 --- /dev/null +++ b/35expandedabilities/prc_hexbl_comp_c.nss @@ -0,0 +1,47 @@ +/** + * Hexblade: Dark Companion + * 14/09/2005 + * Stratovarius + * Type of Feat: Class Specific + * Prerequisite: Hexblade level 4. + * Specifics: The Hexblade gains a dark companion. It is an illusionary creature that does not engage in combat, but all monsters near it take a -2 penalty to AC and Saves. + * Use: Selected. + */ + +#include "prc_class_const" + +void main() +{ + //Declare major variables + object oPC = GetAreaOfEffectCreator(); + int nPen = GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) > 20 ? 4 : 2; + + if(GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) > 40) + { + nPen =6; + } + + if(GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) >= 60) + { + nPen =8; + } + if(GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) >= 80) + { + nPen =10; + } + effect eLink = EffectSavingThrowDecrease(SAVING_THROW_ALL, nPen); + eLink = EffectLinkEffects(eLink, EffectACDecrease(nPen)); + + object oTarget = GetFirstInPersistentObject(OBJECT_SELF); + while(GetIsObjectValid(oTarget)) + { + // Apply the loss + // Doesn't affect allies + if(!GetIsFriend(oTarget, oPC)) + { + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 6.0); + } + //Get next target. + oTarget = GetNextInPersistentObject(OBJECT_SELF); + } +} \ No newline at end of file diff --git a/35expandedabilities/prc_hexbl_curse.ncs b/35expandedabilities/prc_hexbl_curse.ncs new file mode 100644 index 0000000000000000000000000000000000000000..084939a026c4d4b408b5573147a47230f7fba511 GIT binary patch literal 45716 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 aMrTf7UkLAwB 96) nPen = 20; + else if (nClass > 88) nPen = 18; + else if (nClass > 76) nPen = 16; + else if (nClass > 68) nPen = 14; + else if (nClass > 56) nPen = 12; + else if (nClass > 48) nPen = 10; + else if (nClass > 36) nPen = 8; + else if (nClass > 18) nPen = 6; + else if (nClass >= 6) nPen = 4; + + //if(GetHasFeat(FEAT_EMPOWER_CURSE, oCaster)) + // nPen += 1; + + effect eLink = EffectLinkEffects(EffectAttackDecrease(nPen), EffectSavingThrowDecrease(SAVING_THROW_ALL, nPen)); + eLink = EffectLinkEffects(eLink, EffectDamageDecrease(nPen, nDmgType)); + eLink = EffectLinkEffects(eLink, EffectSkillDecrease(SKILL_ALL_SKILLS, nPen)); + eLink = SupernaturalEffect(eLink); + + //Make Will Save + if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC)) + { + //Apply Effect and VFX + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(1)); + ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); + } + else // Doesn't count as used if the target makes their save + IncrementRemainingFeatUses(oCaster, FEAT_HEXCURSE); +} \ No newline at end of file diff --git a/35expandedabilities/prc_kotmc_combat.ncs b/35expandedabilities/prc_kotmc_combat.ncs new file mode 100644 index 0000000000000000000000000000000000000000..01bc55e06b427e8a424f3865b47e81d93852ad4e GIT binary patch literal 52152 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 U01HU(;`ZblV(MD<2;M9D-*`AnwEzGB literal 0 HcmV?d00001 diff --git a/35expandedabilities/prc_kotmc_combat.nss b/35expandedabilities/prc_kotmc_combat.nss new file mode 100644 index 00000000..68abba33 --- /dev/null +++ b/35expandedabilities/prc_kotmc_combat.nss @@ -0,0 +1,232 @@ +//:://///////////////////////////////////////////// +//:: Knight of the Middle Circle - Combat Sense +//:: prc_kotmc_combat.nss +//::////////////////////////////////////////////// +//:: Applies a temporary AC and Attack bonus vs +//:: monsters of the targets racial type +//::////////////////////////////////////////////// +//:: Created By: Stratovarius +//:: Created On: July 16, 2004 +//::////////////////////////////////////////////// +#include "inc_item_props" //adicionado por mim, pq na versao 3.5 do prc essa biblioteca nao estava aqui. +#include "prc_alterations" +#include "prc_class_const" + + +/* +//adicionado essa funcao direto do prc 2.2c do inc_item_props pq o prc mais recente nao tinha essa funcao ou eu nao achei +object GetPCSkin(object oPC); + + +object GetPCSkinKMC(object oPC) +{ + object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC); + if (!GetIsObjectValid(oSkin)) + { + if ( GetHasItem(oPC, "base_prc_skin")) + { + oSkin = GetItemPossessedBy(oPC,"base_prc_skin"); + AssignCommand(oPC, ActionEquipItem(oSkin, INVENTORY_SLOT_CARMOUR)); + } + + //Added GetHasItem check to prevent creation of extra skins on module entry + else { + oSkin = CreateItemOnObject("base_prc_skin", oPC); + AssignCommand(oPC, ActionEquipItem(oSkin, INVENTORY_SLOT_CARMOUR)); + } + } + return oSkin; +} +*/ + + +void main() +{ + //Declare main variables. + object oPC = OBJECT_SELF; + object oSkin = GetPCSkin(oPC); + object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); + object oTarget = PRCGetSpellTargetObject(); + int nRace = MyPRCGetRacialType(oTarget); + int nClass = GetLevelByClass(CLASS_TYPE_KNIGHT_MIDDLECIRCLE, oPC) + GetLevelByClass(CLASS_TYPE_PALADIN, oPC); + int nDur = nClass + 3; + int nAC; + int nAttack; + + + + if (nClass >= 1) + { + nAC = 2; + nAttack = 2; + } + if (nClass >= 5) + { + nAC = 4; + nAttack = 4; + } + if (nClass >= 10) + { + nAC = 6; + nAttack = 6; + } + if (nClass >= 15) + { + nAC = 8; + nAttack = 8; + } + if (nClass >= 20) + { + nAC = 10; + nAttack = 10; + } + if (nClass >= 25) + { + nAC = 12; + nAttack = 12; + } + if (nClass >= 30) + { + nAC = 14; + nAttack = 14; + } + + if (nClass >= 35) + { + nAC = 16; + nAttack = 16; + } + + if (nClass >= 40) + { + nAC = 18; + nAttack = 18; + } + + if (nClass >= 45) + { + nAC = 20; + nAttack = 20; + } + + if (nClass >= 50) + { + nAC = 22; + nAttack = 22; + } + + if (nClass >= 55) + { + nAC = 24; + nAttack = 24; + } + + if (nClass >= 60) + { + nAC = 26; + nAttack = 26; + } + + if (nClass >= 65) + { + nAC = 28; + nAttack = 28; + } + + if (nClass >= 70) + { + nAC = 30; + nAttack = 30; + } + + if (nClass >= 75) + { + nAC = 32; + nAttack = 32; + } + + if (nClass >= 80) + { + nAC = 34; + nAttack = 34; + } + + + + + + + + +/* + //codigo antigo prc 2.2c + + if (GetLocalInt(oPC, "KOTMCCombat") == TRUE) return; + + effect eAttack = EffectAttackIncrease(nAttack); + effect eAC = EffectACIncrease(nAC); + + VersusRacialTypeEffect(eAttack, nRace); + VersusRacialTypeEffect(eAC, nRace); + + SetLocalInt(oPC, "KOTMCCombat", TRUE); + DelayCommand(RoundsToSeconds(nDur), DeleteLocalInt(oPC, "KOTMCCombat")); + */ + + + +/* //codigo prc 3.5 que nao funciona + + if (GetLocalInt(oPC, "KOTMCCombat") == TRUE) return; + + effect eAttack = EffectAttackIncrease(nAttack); + effect eAC = EffectACIncrease(nAC); + + eAttack = VersusRacialTypeEffect(eAttack, nRace); + eAC = VersusRacialTypeEffect(eAC, nRace); + + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAttack, oPC, RoundsToSeconds(nDur)); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAC, oPC, RoundsToSeconds(nDur)); + + SetLocalInt(oPC, "KOTMCCombat", TRUE); + DelayCommand(RoundsToSeconds(nDur), DeleteLocalInt(oPC, "KOTMCCombat")); + + */ + + + if (GetLocalInt(oPC, "KOTMCCombat") == TRUE) return; + + //effect eVis = EffectVisualEffect(VFX_IMP_GOOD_HELP); + effect eAC = EffectACIncrease(nAC); + + eAC = VersusRacialTypeEffect(eAC, nRace); + + effect eAttack = EffectAttackIncrease(nAttack); + + eAttack = VersusRacialTypeEffect(eAttack, nRace); + + + // effect eImmune = EffectImmunity(IMMUNITY_TYPE_MIND_SPELLS); + // eImmune = VersusAlignmentEffect(eImmune,ALIGNMENT_ALL, nAlign); + effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MINOR); + effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); + + effect eLink = EffectLinkEffects( eAC, eAttack); + // eLink = EffectLinkEffects(eLink, eAC); + eLink = EffectLinkEffects(eLink, eDur); + eLink = EffectLinkEffects(eLink, eDur2); + + //Apply the VFX impact and effects + //Fire cast spell at event for the specified target + // SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_PROTECTION_FROM_EVIL, FALSE)); + //SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); + SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDur),TRUE,-1,nClass); + + SetLocalInt(oPC, "KOTMCCombat", TRUE); + DelayCommand(RoundsToSeconds(nDur), DeleteLocalInt(oPC, "KOTMCCombat")); + + + + + +} diff --git a/35expandedabilities/psi_sk_manifmbld.ncs b/35expandedabilities/psi_sk_manifmbld.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b9fee17f38db749060894261bee4b853ea430f2a GIT binary patch literal 16388 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 11 && nSKLevel <= 20) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d6), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 21 && nSKLevel <= 30) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d8), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 31 && nSKLevel <= 40) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d10), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 41) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d12), oMbld); + bLight = TRUE; + } + + } + if(nFlags & MBLADE_FLAG_MIGHTYCLEAVING) + { + if(GetHasFeat(FEAT_CLEAVE, oPC)) + AddItemProperty(DURATION_TYPE_PERMANENT, PRCItemPropertyBonusFeat(IP_CONST_FEAT_GREAT_CLEAVE), oMbld); + else + AddItemProperty(DURATION_TYPE_PERMANENT, PRCItemPropertyBonusFeat(IP_CONST_FEAT_CLEAVE), oMbld); + } + if(nFlags & MBLADE_FLAG_COLLISION) + { + if(nSKLevel <= 10) + { + if(LOCAL_DEBUG) DoDebug("Added Collision damage", oPC); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_5), oMbld); + } + if(nSKLevel >= 11 && nSKLevel <= 20) + { + if(LOCAL_DEBUG) DoDebug("Added Collision damage", oPC); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_6), oMbld); + } + if(nSKLevel >= 21 && nSKLevel <= 30) + { + if(LOCAL_DEBUG) DoDebug("Added Collision damage", oPC); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_7), oMbld); + } + if(nSKLevel >= 31 && nSKLevel <= 40) + { + if(LOCAL_DEBUG) DoDebug("Added Collision damage", oPC); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_8), oMbld); + } + if(nSKLevel >= 41 && nSKLevel <= 50) + { + if(LOCAL_DEBUG) DoDebug("Added Collision damage", oPC); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_9), oMbld); + } + if(nSKLevel >= 51 ) + { + if(LOCAL_DEBUG) DoDebug("Added Collision damage", oPC); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_10), oMbld); + } + } + /*if(nFlags & MBLADE_FLAG_MINDCRUSHER ) + { OnHit + }*/ + if(nFlags & MBLADE_FLAG_PSYCHOKINETICBURST && !(nFlags & MBLADE_FLAG_PSYCHOKINETIC)) // Only Psychokinetic Burst + { + if(nSKLevel <= 10) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d4), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d6), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 11 && nSKLevel <= 20) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d6), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d8), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 21 && nSKLevel <= 30) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d8), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d10), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 31 && nSKLevel <= 40) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d10), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d12), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 41) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_1d12), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_2d8), oMbld); + bLight = TRUE; + } + } + /*if(nFlags & MBLADE_FLAG_SUPPRESSION) + { OnHit + }*/ + /*if(nFlags & MBLADE_FLAG_WOUNDING) + { OnHit + }*/ + /*if(nFlags & MBLADE_FLAG_DISRUPTING) + { OnHit + } + if(nFlags & MBLADE_FLAG_SOULBREAKER) + { + }*/ + if((nFlags & MBLADE_FLAG_PSYCHOKINETICBURST) && (nFlags & MBLADE_FLAG_PSYCHOKINETIC)) // Both Psychokinetic and Psychokinetic Burst + { + if(nSKLevel <= 10) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d4), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d6), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 11 && nSKLevel <=20) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d6), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d8), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 21 && nSKLevel <=30) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d8), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d10), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 31 && nSKLevel <=40) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d10), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_1d12), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 41 && nSKLevel <=50) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d12), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_2d8), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 51 && nSKLevel <=60) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d12), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_2d10), oMbld); + bLight = TRUE; + } + if(nSKLevel >= 61) + { + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL, IP_CONST_DAMAGEBONUS_2d12), oMbld); + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_2d12), oMbld); + bLight = TRUE; + } + + } + + if(bLight) + AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyLight(IP_CONST_LIGHTBRIGHTNESS_NORMAL, IP_CONST_LIGHTCOLOR_WHITE), oMbld); +} \ No newline at end of file diff --git a/35expandedabilities/x2_s1_dragneg.ncs b/35expandedabilities/x2_s1_dragneg.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c0f688f572cdcb74a82bee8031ef0e6b066843d2 GIT binary patch literal 72134 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 7 && nAge <= 9) //Very Young + { + nLevelDrain = 1; + nDamageDice = 4; + } + else if (nAge >= 10 && nAge <= 12) //Young + { + nLevelDrain = 1; + nDamageDice = 6; + } + else if (nAge >= 13 && nAge <= 15) //Juvenile + { + nLevelDrain = 2; + nDamageDice = 8; + } + else if (nAge >= 16 && nAge <= 18) //Young Adult + { + nLevelDrain = 2; + nDamageDice = 10; + } + else if (nAge >= 19 && nAge <= 21) //Adult + { + nLevelDrain = 3; + nDamageDice = 12; + } + else if (nAge >= 22 && nAge <= 24) //Mature Adult + { + nLevelDrain = 4; + nDamageDice = 14; + } + else if (nAge >= 25 && nAge <= 27) //Old + { + nLevelDrain = 5; + nDamageDice = 16; + } + else if (nAge >= 28 && nAge <= 30) //Very Old + { + nLevelDrain = 5; + nDamageDice = 18; + } + else if (nAge >= 31 && nAge <= 33) //Ancient + { + nLevelDrain = 6; + nDamageDice = 20; + } + else if (nAge >= 34 && nAge <= 37) //Wyrm + { + nLevelDrain = 7; + nDamageDice = 22; + } +else if (nAge >= 38 && nAge <= 41) //Great Wyrm + { + nDamageDice = 24; + nLevelDrain = 8; + } + else if (nAge >= 42 && nAge <= 45) //Great Wyrm + { + nDamageDice = 26; + nLevelDrain = 9; + } + else if (nAge >= 46 && nAge <= 49) //Great Wyrm + { + nDamageDice = 28; + nLevelDrain = 10; + } + + else if (nAge >= 50 && nAge <= 53) //Great Wyrm + { + nDamageDice = 30; + nLevelDrain = 11; + } + else if (nAge >= 54 && nAge <= 57) //Great Wyrm + { + nDamageDice = 32; + nLevelDrain = 12; + } + else if (nAge >= 58 && nAge <= 61) //Great Wyrm + { + nDamageDice = 34; + nLevelDrain = 13; + } + else if (nAge >= 62 && nAge <= 65) //Great Wyrm + { + nDamageDice = 36; + nLevelDrain = 14; + } + else if (nAge >= 66 && nAge <= 69) //Great Wyrm + { + nDamageDice = 38; + nLevelDrain = 15; + } + else if (nAge >= 70 && nAge <= 73) //Great Wyrm + { + nDamageDice = 40; + nLevelDrain = 16; + } + else if (nAge >= 74 && nAge <= 77) //Great Wyrm + { + nDamageDice = 42; + nLevelDrain = 17; + } + else if (nAge >= 78 && nAge <= 81) //Great Wyrm + { + nDamageDice = 44; + nLevelDrain = 18; + } + else if (nAge >= 82 && nAge <= 85) //Great Wyrm + { + nDamageDice = 46; + nLevelDrain = 19; + } + + else if (nAge >= 86 && nAge <= 89) //Great Wyrm + { + nDamageDice = 48; + nLevelDrain = 20; + } + + else if (nAge >= 90 && nAge <= 93) //Great Wyrm + { + nDamageDice = 50; + nLevelDrain = 21; + } + + else if (nAge >= 94 && nAge <= 97) //Great Wyrm + { + nDamageDice = 52; + nLevelDrain = 22; + } + + else if (nAge >= 98 && nAge <= 101) //Great Wyrm + { + nDamageDice = 54; + nLevelDrain = 23; + } + else if (nAge >= 102 && nAge <= 105) //Great Wyrm + { + nDamageDice = 56; + nLevelDrain = 24; + } + else if (nAge >= 106 && nAge <= 109) //Great Wyrm + { + nDamageDice = 58; + nLevelDrain = 25; + } + else if (nAge >= 110 && nAge <= 113) //Great Wyrm + { + nDamageDice = 60; + nLevelDrain = 26; + } + else if (nAge >= 114 && nAge <= 117) //Great Wyrm + { + nDamageDice = 62; + nLevelDrain = 27; + } + else if (nAge >= 118 && nAge <= 121) //Great Wyrm + { + nDamageDice = 64; + nLevelDrain = 28; + } + else if (nAge >= 122 && nAge <= 125) //Great Wyrm + { + nDamageDice = 66; + nLevelDrain = 29; + } + else if (nAge >= 126 && nAge <= 129) //Great Wyrm + { + nDamageDice = 68; + nLevelDrain = 30; + } + else if (nAge >= 130 && nAge <= 133) //Great Wyrm + { + nDamageDice = 70; + nLevelDrain = 31; + } + else if (nAge >= 134 && nAge <= 137) //Great Wyrm + { + nDamageDice = 72; + nLevelDrain = 32; + } + else if (nAge >= 138 && nAge <= 141) //Great Wyrm + { + nDamageDice = 74; + nLevelDrain = 33; + } + else if (nAge >= 142 && nAge <= 145) //Great Wyrm + { + nDamageDice = 76; + nLevelDrain = 34; + } + else if (nAge >= 146 && nAge <= 149) //Great Wyrm + { + nDamageDice = 78; + nLevelDrain = 35; + } + else if (nAge >= 150 && nAge <= 153) //Great Wyrm + { + nDamageDice = 80; + nLevelDrain = 36; + } + else if (nAge >= 154 && nAge <= 157) //Great Wyrm + { + nDamageDice = 82; + nLevelDrain = 37; + } + + else if (nAge >= 158 && nAge <= 161) //Great Wyrm + { + nDamageDice = 84; + nLevelDrain = 38; + } + else if (nAge >= 162 && nAge <= 165) //Great Wyrm + { + nDamageDice = 86; + nLevelDrain = 39; + } + else if (nAge >= 166 && nAge <= 169) //Great Wyrm + { + nDamageDice = 88; + nLevelDrain = 40; + } + + else if (nAge >= 170 && nAge <= 173) //Great Wyrm + { + nDamageDice = 90; + nLevelDrain = 41; + } + else if (nAge >= 174 && nAge <= 177) //Great Wyrm + { + nDamageDice = 92; + nLevelDrain = 42; + } + else if (nAge > 178 ) //Great Wyrm + { + nDamageDice = 94; + nLevelDrain = 43; + } + + //create the breath - 40' ~ 14m? - should set it based on size later + NegBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, DAMAGE_TYPE_NEGATIVE, 8, nDamageDice, ABILITY_CONSTITUTION, nDCBoost); + + //Apply the breath - note: Level drain was included but commented out in the original, thus not currently implemented in the include. + //Information on the level drain amount is kept just in case. + PRCPlayDragonBattleCry(); + ApplyBreath(NegBreath, PRCGetSpellTargetLocation()); + + //Apply the recharge lock + SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); + + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(NegBreath.nRoundsUntilRecharge); + SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(NegBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); + DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); +} \ No newline at end of file diff --git a/35expandedabilities/x2_s2_cursesong.ncs b/35expandedabilities/x2_s2_cursesong.ncs new file mode 100644 index 0000000000000000000000000000000000000000..05011c764636379afc3fa4de43c81393802a9c69 GIT binary patch literal 61595 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�LCf|Tkxm4Whrz? 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 125 && nLevel >= 180) + { + nAttack = 36; + nDamage = 36; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 348; + nAC = 36; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 179) + { + nAttack = 36; + nDamage = 36; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 346; + nAC = 35; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 178) + { + nAttack = 35; + nDamage = 36; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 344; + nAC = 35; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 177) + { + nAttack = 35; + nDamage = 35; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 342; + nAC = 35; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 176) + { + nAttack = 35; + nDamage = 35; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 340; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 175) + { + nAttack = 34; + nDamage = 35; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 338; + nAC = 34; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 174) + { + nAttack = 34; + nDamage = 34; + nWill = 18; + nFort = 18; + nReflex = 18; + nHP = 336; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 173) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 18; + nReflex = 18; + nHP = 334; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 172) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 18; + nHP = 332; + nAC = 34; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 171) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 330; + nAC = 34; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 170) + { + nAttack = 34; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 328; + nAC = 33; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 169) + { + nAttack = 33; + nDamage = 34; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 326; + nAC = 33; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 168) + { + nAttack = 33; + nDamage = 33; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 324; + nAC = 33; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 167) + { + nAttack = 33; + nDamage = 33; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 322; + nAC = 32; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 166) + { + nAttack = 32; + nDamage = 33; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 320; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 165) + { + nAttack = 32; + nDamage = 32; + nWill = 17; + nFort = 17; + nReflex = 17; + nHP = 318; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 164) + { + nAttack = 32; + nDamage = 32; + nWill = 16; + nFort = 17; + nReflex = 17; + nHP = 316; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 163) + { + nAttack = 32; + nDamage = 32; + nWill = 16; + nFort = 16; + nReflex = 17; + nHP = 314; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 162) + { + nAttack = 32; + nDamage = 32; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 312; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 161) + { + nAttack = 31; + nDamage = 32; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 310; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 160) + { + nAttack = 31; + nDamage = 31; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 308; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 159) + { + nAttack = 30; + nDamage = 31; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 306; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 158) + { + nAttack = 30; + nDamage = 30; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 304; + nAC = 32; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 157) + { + nAttack = 30; + nDamage = 30; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 302; + nAC = 31; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 156) + { + nAttack = 29; + nDamage = 30; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 300; + nAC = 31; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 155) + { + nAttack = 29; + nDamage = 29; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 298; + nAC = 31; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 154) + { + nAttack = 29; + nDamage = 29; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 296; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 153) + { + nAttack = 29; + nDamage = 28; + nWill = 16; + nFort = 16; + nReflex = 16; + nHP = 294; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 152) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 16; + nReflex = 16; + nHP = 292; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 151) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 16; + nHP = 290; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 150) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 288; + nAC = 30; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 149) + { + nAttack = 29; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 286; + nAC = 29; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 148) + { + nAttack = 28; + nDamage = 28; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 284; + nAC = 29; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 147) + { + nAttack = 28; + nDamage = 27; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 282; + nAC = 29; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 146) + { + nAttack = 28; + nDamage = 27; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 280; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 145) + { + nAttack = 27; + nDamage = 27; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 278; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 144) + { + nAttack = 27; + nDamage = 26; + nWill = 15; + nFort = 15; + nReflex = 15; + nHP = 276; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 143) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 15; + nReflex = 15; + nHP = 274; + nAC = 28; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 142) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 14; + nReflex = 15; + nHP = 272; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 141) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 270; + nAC = 28; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 140) + { + nAttack = 27; + nDamage = 26; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 268; + nAC = 27; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 139) + { + nAttack = 27; + nDamage = 25; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 266; + nAC = 27; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 138) + { + nAttack = 27; + nDamage = 25; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 264; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 137) + { + nAttack = 26; + nDamage = 25; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 262; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 136) + { + nAttack = 26; + nDamage = 24; + nWill = 14; + nFort = 14; + nReflex = 14; + nHP = 260; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 135) + { + nAttack = 26; + nDamage = 24; + nWill = 13; + nFort = 14; + nReflex = 14; + nHP = 258; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 134) + { + nAttack = 26; + nDamage = 24; + nWill = 13; + nFort = 13; + nReflex = 14; + nHP = 256; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 133) + { + nAttack = 26; + nDamage = 24; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 254; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 132) + { + nAttack = 26; + nDamage = 23; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 252; + nAC = 26; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 131) + { + nAttack = 26; + nDamage = 23; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 250; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 130) + { + nAttack = 25; + nDamage = 23; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 248; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 129) + { + nAttack = 25; + nDamage = 22; + nWill = 13; + nFort = 13; + nReflex = 13; + nHP = 246; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 128) + { + nAttack = 25; + nDamage = 22; + nWill = 12; + nFort = 13; + nReflex = 13; + nHP = 244; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 127) + { + nAttack = 25; + nDamage = 22; + nWill = 12; + nFort = 12; + nReflex = 13; + nHP = 242; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 126) + { + nAttack = 25; + nDamage = 22; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 240; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 125) + { + nAttack = 25; + nDamage = 21; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 238; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 124) + { + nAttack = 24; + nDamage = 21; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 236; + nAC = 25; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 123) + { + nAttack = 24; + nDamage = 21; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 234; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 122) + { + nAttack = 24; + nDamage = 20; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 232; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 121) + { + nAttack = 23; + nDamage = 20; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 230; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 120) + { + nAttack = 23; + nDamage = 19; + nWill = 12; + nFort = 12; + nReflex = 12; + nHP = 228; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 119) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 12; + nReflex = 12; + nHP = 226; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 118) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 12; + nHP = 224; + nAC = 24; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 117) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 222; + nAC = 24; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 116) + { + nAttack = 23; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 220; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 115) + { + nAttack = 22; + nDamage = 19; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 218; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 114) + { + nAttack = 22; + nDamage = 18; + nWill = 11; + nFort = 11; + nReflex = 11; + nHP = 216; + nAC = 23; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 113) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 11; + nReflex = 11; + nHP = 214; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 112) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 10; + nReflex = 11; + nHP = 212; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 111) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 210; + nAC = 23; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 110) + { + nAttack = 22; + nDamage = 18; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 208; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 109) + { + nAttack = 22; + nDamage = 17; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 206; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 108) + { + nAttack = 21; + nDamage = 17; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 204; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 107) + { + nAttack = 21; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 202; + nAC = 22; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 106) + { + nAttack = 21; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 200; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 105) + { + nAttack = 21; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 198; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 104) + { + nAttack = 20; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 196; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 103) + { + nAttack = 20; + nDamage = 16; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 194; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 102) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 192; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 101) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 190; + nAC = 21; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 100) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 188; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 99) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 186; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 98) + { + nAttack = 20; + nDamage = 15; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 184; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 97) + { + nAttack = 20; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 182; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 96) + { + nAttack = 19; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 180; + nAC = 20; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 95) + { + nAttack = 19; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 178; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 94) + { + nAttack = 19; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 176; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 93) + { + nAttack = 18; + nDamage = 14; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 174; + nAC = 19; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 92) + { + nAttack = 18; + nDamage = 13; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 172; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 91) + { + nAttack = 18; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 170; + nAC = 19; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 90) + { + nAttack = 18; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 168; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 89) + { + nAttack = 18; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 166; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 88) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 164; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 87) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 162; + nAC = 18; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 86) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 160; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 85) + { + nAttack = 17; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 158; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 84) + { + nAttack = 16; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 156; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 83) + { + nAttack = 15; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 154; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 82) + { + nAttack = 14; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 152; + nAC = 17; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 81) + { + nAttack = 14; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 150; + nAC = 16; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 80) + { + nAttack = 13; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 148; + nAC = 16; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 79) + { + nAttack = 12; + nDamage = 12; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 146; + nAC = 16; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 78) + { + nAttack = 12; + nDamage = 11; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 144; + nAC = 16; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 77) + { + nAttack = 11; + nDamage = 11; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 142; + nAC = 16; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 76) + { + nAttack = 11; + nDamage = 11; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 140; + nAC = 15; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 75) + { + nAttack = 11; + nDamage = 10; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 138; + nAC = 15; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 74) + { + nAttack = 10; + nDamage = 10; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 136; + nAC = 15; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 73) + { + nAttack = 10; + nDamage = 10; + nWill = 10; + nFort = 10; + nReflex = 10; + nHP = 134; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 72) + { + nAttack = 10; + nDamage = 10; + nWill = 9; + nFort = 10; + nReflex = 10; + nHP = 132; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 71) + { + nAttack = 10; + nDamage = 10; + nWill = 9; + nFort = 9; + nReflex = 10; + nHP = 130; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 70) + { + nAttack = 10; + nDamage = 10; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 128; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 69) + { + nAttack = 10; + nDamage = 9; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 126; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 68) + { + nAttack = 9; + nDamage = 9; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 124; + nAC = 14; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 67) + { + nAttack = 9; + nDamage = 9; + nWill = 9; + nFort = 9; + nReflex = 9; + nHP = 122; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 66) + { + nAttack = 9; + nDamage = 9; + nWill = 8; + nFort = 9; + nReflex = 9; + nHP = 120; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 65) + { + nAttack = 9; + nDamage = 9; + nWill = 8; + nFort = 8; + nReflex = 9; + nHP = 118; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 64) + { + nAttack = 9; + nDamage = 9; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 116; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 63) + { + nAttack = 9; + nDamage = 8; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 114; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 62) + { + nAttack = 8; + nDamage = 8; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 112; + nAC = 13; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 61) + { + nAttack = 8; + nDamage = 8; + nWill = 8; + nFort = 8; + nReflex = 8; + nHP = 110; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 60) + { + nAttack = 8; + nDamage = 8; + nWill = 7; + nFort = 8; + nReflex = 8; + nHP = 108; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 59) + { + nAttack = 8; + nDamage = 8; + nWill = 7; + nFort = 7; + nReflex = 8; + nHP = 106; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 58) + { + nAttack = 8; + nDamage = 8; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 104; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 57) + { + nAttack = 8; + nDamage = 7; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 102; + nAC = 12; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 56) + { + nAttack = 7; + nDamage = 7; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 100; + nAC = 12; + nSkill = 20; + } + + if(nPerform >= 125 && nLevel >= 55) + { + nAttack = 7; + nDamage = 7; + nWill = 7; + nFort = 7; + nReflex = 7; + nHP = 98; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 54) + { + nAttack = 7; + nDamage = 7; + nWill = 6; + nFort = 7; + nReflex = 7; + nHP = 96; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 53) + { + nAttack = 7; + nDamage = 7; + nWill = 6; + nFort = 6; + nReflex = 7; + nHP = 94; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 52) + { + nAttack = 7; + nDamage = 7; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 92; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 51) + { + nAttack = 6; + nDamage = 7; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 90; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 50) + { + nAttack = 6; + nDamage = 6; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 88; + nAC = 11; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 49) + { + nAttack = 6; + nDamage = 6; + nWill = 6; + nFort = 6; + nReflex = 6; + nHP = 86; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 48) + { + nAttack = 6; + nDamage = 6; + nWill = 5; + nFort = 6; + nReflex = 6; + nHP = 84; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 47) + { + nAttack = 6; + nDamage = 6; + nWill = 5; + nFort = 5; + nReflex = 6; + nHP = 82; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 46) + { + nAttack = 6; + nDamage = 6; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 80; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 45) + { + nAttack = 6; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 78; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 44) + { + nAttack = 5; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 76; + nAC = 10; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 43) + { + nAttack = 5; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 74; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 42) + { + nAttack = 4; + nDamage = 5; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 72; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 41) + { + nAttack = 4; + nDamage = 4; + nWill = 5; + nFort = 5; + nReflex = 5; + nHP = 70; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 40) + { + nAttack = 4; + nDamage = 4; + nWill = 4; + nFort = 5; + nReflex = 5; + nHP = 68; + nAC = 9; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 39) + { + nAttack = 4; + nDamage = 4; + nWill = 4; + nFort = 4; + nReflex = 5; + nHP = 66; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 38) + { + nAttack = 4; + nDamage = 4; + nWill = 4; + nFort = 4; + nReflex = 4; + nHP = 64; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 37) + { + nAttack = 3; + nDamage = 4; + nWill = 4; + nFort = 4; + nReflex = 4; + nHP = 62; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 36) + { + nAttack = 3; + nDamage = 4; + nWill = 4; + nFort = 3; + nReflex = 4; + nHP = 60; + nAC = 8; + nSkill = 20; + } + if(nPerform >= 125 && nLevel >= 35) + { + nAttack = 3; + nDamage = 4; + nWill = 4; + nFort = 3; + nReflex = 3; + nHP = 58; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 120 && nLevel >= 34) + { + nAttack = 3; + nDamage = 4; + nWill = 3; + nFort = 3; + nReflex = 3; + nHP = 56; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 115 && nLevel >= 33) + { + nAttack = 3; + nDamage = 3; + nWill = 3; + nFort = 3; + nReflex = 3; + nHP = 54; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 110 && nLevel >= 32) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 3; + nReflex = 3; + nHP = 52; + nAC = 7; + nSkill = 20; + } + if(nPerform >= 105 && nLevel >= 31) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 3; + nHP = 50; + nAC = 7; + nSkill = 20; + } + + if(nPerform >= 100 && nLevel >= 30) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 48; + nAC = 7; + nSkill = 18; + } + else if(nPerform >= 95 && nLevel >= 29) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 46; + nAC = 6; + nSkill = 17; + } + else if(nPerform >= 90 && nLevel >= 28) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 44; + nAC = 6; + nSkill = 16; + } + else if(nPerform >= 85 && nLevel >= 27) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 42; + nAC = 6; + nSkill = 15; + } + else if(nPerform >= 80 && nLevel >= 26) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 40; + nAC = 6; + nSkill = 14; + } + else if(nPerform >= 75 && nLevel >= 25) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 38; + nAC = 6; + nSkill = 13; + } + else if(nPerform >= 70 && nLevel >= 24) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 36; + nAC = 5; + nSkill = 12; + } + else if(nPerform >= 65 && nLevel >= 23) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 34; + nAC = 5; + nSkill = 11; + } + else if(nPerform >= 60 && nLevel >= 22) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 32; + nAC = 5; + nSkill = 10; + } + else if(nPerform >= 55 && nLevel >= 21) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 30; + nAC = 5; + nSkill = 9; + } + else if(nPerform >= 50 && nLevel >= 20) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 28; + nAC = 5; + nSkill = 8; + } + else if(nPerform >= 45 && nLevel >= 19) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 26; + nAC = 5; + nSkill = 7; + } + else if(nPerform >= 40 && nLevel >= 18) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 24; + nAC = 5; + nSkill = 6; + } + else if(nPerform >= 35 && nLevel >= 17) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 22; + nAC = 5; + nSkill = 5; + } + else if(nPerform >= 30 && nLevel >= 16) + { + nAttack = 2; + nDamage = 3; + nWill = 3; + nFort = 2; + nReflex = 2; + nHP = 20; + nAC = 5; + nSkill = 4; + } + else if(nPerform >= 24 && nLevel >= 15) + { + nAttack = 2; + nDamage = 3; + nWill = 2; + nFort = 2; + nReflex = 2; + nHP = 16; + nAC = 4; + nSkill = 3; + } + else if(nPerform >= 21 && nLevel >= 14) + { + nAttack = 2; + nDamage = 3; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 16; + nAC = 3; + nSkill = 2; + } + else if(nPerform >= 18 && nLevel >= 11) + { + nAttack = 2; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 8; + nAC = 2; + nSkill = 2; + } + else if(nPerform >= 15 && nLevel >= 8) + { + nAttack = 2; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 8; + nAC = 0; + nSkill = 1; + } + else if(nPerform >= 12 && nLevel >= 6) + { + nAttack = 1; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 1; + nHP = 0; + nAC = 0; + nSkill = 1; + } + else if(nPerform >= 9 && nLevel >= 3) + { + nAttack = 1; + nDamage = 2; + nWill = 1; + nFort = 1; + nReflex = 0; + nHP = 0; + nAC = 0; + nSkill = 0; + } + else if(nPerform >= 6 && nLevel >= 2) + { + nAttack = 1; + nDamage = 1; + nWill = 1; + nFort = 0; + nReflex = 0; + nHP = 0; + nAC = 0; + nSkill = 0; + } + else if(nPerform >= 3 && nLevel >= 1) + { + nAttack = 1; + nDamage = 1; + nWill = 0; + nFort = 0; + nReflex = 0; + nHP = 0; + nAC = 0; + nSkill = 0; + } + effect eVis = EffectVisualEffect(VFX_IMP_DOOM); + + eAttack = EffectAttackDecrease(nAttack); + eDamage = EffectDamageDecrease(nDamage, DAMAGE_TYPE_BLUDGEONING|DAMAGE_TYPE_PIERCING|DAMAGE_TYPE_SLASHING); + effect eLink = EffectLinkEffects(eAttack, eDamage); + + if(nWill > 0) + { + eWill = EffectSavingThrowDecrease(SAVING_THROW_WILL, nWill); + eLink = EffectLinkEffects(eLink, eWill); + } + if(nFort > 0) + { + eFort = EffectSavingThrowDecrease(SAVING_THROW_FORT, nFort); + eLink = EffectLinkEffects(eLink, eFort); + } + if(nReflex > 0) + { + eReflex = EffectSavingThrowDecrease(SAVING_THROW_REFLEX, nReflex); + eLink = EffectLinkEffects(eLink, eReflex); + } + if(nAC > 0) + { + eAC = EffectACDecrease(nAC, AC_DODGE_BONUS); + eLink = EffectLinkEffects(eLink, eAC); + } + if(nSkill > 0) + { + eSkill = EffectSkillDecrease(SKILL_ALL_SKILLS, nSkill); + eLink = EffectLinkEffects(eLink, eSkill); + } + effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); + effect eDur2 = EffectVisualEffect(507); + eLink = EffectLinkEffects(eLink, eDur); + + effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_SONIC); + effect eFNF = EffectVisualEffect(VFX_FNF_LOS_EVIL_30); + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eFNF, GetLocation(OBJECT_SELF)); + + object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); + + eHP = ExtraordinaryEffect(eHP); + eLink = ExtraordinaryEffect(eLink); + + string sCurseSongHP = "CURSE_SONG_HP_" + ObjectToString(OBJECT_SELF); + + RemoveSongEffects(GetSpellId(),OBJECT_SELF,OBJECT_SELF); + + float fDelay; + while(GetIsObjectValid(oTarget)) + { + if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) + { + // * GZ Oct 2003: If we are deaf, we do not have negative effects from curse song + if (!PRCGetHasEffect(EFFECT_TYPE_SILENCE,oTarget) && !PRCGetHasEffect(EFFECT_TYPE_DEAF,oTarget)) + { + RemoveSongEffects(GetSpellId(),OBJECT_SELF,oTarget); + int nRace = MyPRCGetRacialType(oTarget); + + // Undead and Constructs are immune to mind effecting abilities. + // A bard with requiem can effect undead + if ((nRace == RACIAL_TYPE_UNDEAD && GetHasFeat(FEAT_REQUIEM, OBJECT_SELF)) || nRace != RACIAL_TYPE_UNDEAD && nRace != RACIAL_TYPE_CONSTRUCT || GetIsWarforged(oTarget)) + { + // Even with requiem, they have half duration + if (nRace == RACIAL_TYPE_UNDEAD) nDuration /= 2; + + if (nHP > 0 && !GetLocalInt(oTarget, sCurseSongHP)) + { + eHP = PRCEffectDamage(oTarget, nHP, DAMAGE_TYPE_SONIC, DAMAGE_POWER_NORMAL); + ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SONIC), oTarget); + DelayCommand(0.01, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHP, oTarget)); + SetLocalInt(oTarget, sCurseSongHP, TRUE); + DelayCommand(RoundsToSeconds(nDuration),DeleteLocalInt(oTarget, sCurseSongHP)); + } + + if (!GetIsDead(oTarget)) + { + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); + DelayCommand(PRCGetRandomDelay(0.1,0.5), ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); + //StoreSongRecipient(oTarget, OBJECT_SELF, GetSpellId(), nDuration); + } + + } + } + else + { + ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_MAGIC_RESISTANCE_USE), oTarget); + } + } + + oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); + } + DecrementRemainingFeatUses(OBJECT_SELF, FEAT_BARD_SONGS); +} \ No newline at end of file diff --git a/35expandedabilities/x2_s2_discbreath.ncs b/35expandedabilities/x2_s2_discbreath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..8617928f1dc9b4f5d7712f6fb8f6e3f354733e6a GIT binary patch literal 71248 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 3) nDice += 2; + if (nLevel >= 7) nDice += 2; + if (nLevel >= 10) nDice += 2; + if (nLevel >= 13) nDice += 2; + if (nLevel >= 16) nDice += 2; + if (nLevel >= 19) nDice += 2; + if (nLevel >= 22) nDice += 2; + if (nLevel >= 25) nDice += 2; + if (nLevel >= 28) nDice += 2; + if (nLevel >= 31) nDice += 2; +if (nLevel >= 34) nDice += 2; +if (nLevel >= 37) nDice += 2; +if (nLevel >= 40) nDice += 2; +if (nLevel >= 43) nDice += 2; +if (nLevel >= 46) nDice += 2; +if (nLevel >= 49) nDice += 2; +if (nLevel >= 52) nDice += 2; +if (nLevel >= 55) nDice += 2; +if (nLevel >= 58) nDice += 2; +if (nLevel >= 60) nDice += 2; + //Only Dragons with Breath Weapons will have damage caused by their breath attack. + //Any Dragon type not listed here will have a breath attack, but it will not + //cause damage or create a visual effect. + int DBREED = GetHasFeat(FEAT_RED_DRAGON, oPC) ? DAMAGE_TYPE_FIRE : + GetHasFeat(FEAT_BRASS_DRAGON, oPC) ? DAMAGE_TYPE_FIRE : + GetHasFeat(FEAT_GOLD_DRAGON, oPC) ? DAMAGE_TYPE_FIRE : + GetHasFeat(FEAT_LUNG_WANG_DRAGON, oPC) ? DAMAGE_TYPE_FIRE : + GetHasFeat(FEAT_TIEN_LUNG_DRAGON, oPC) ? DAMAGE_TYPE_FIRE : + GetHasFeat(FEAT_PYROCLASTIC_DRAGON, oPC) ? DAMAGE_TYPE_FIRE : + GetHasFeat(FEAT_BLACK_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_GREEN_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_COPPER_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_BROWN_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_DEEP_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_RUST_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_STYX_DRAGON, oPC) ? DAMAGE_TYPE_ACID : + GetHasFeat(FEAT_SILVER_DRAGON, oPC) ? DAMAGE_TYPE_COLD : + GetHasFeat(FEAT_WHITE_DRAGON, oPC) ? DAMAGE_TYPE_COLD : + GetHasFeat(FEAT_BLUE_DRAGON, oPC) ? DAMAGE_TYPE_ELECTRICAL : + GetHasFeat(FEAT_BRONZE_DRAGON, oPC) ? DAMAGE_TYPE_ELECTRICAL : + GetHasFeat(FEAT_OCEANUS_DRAGON, oPC) ? DAMAGE_TYPE_ELECTRICAL : + GetHasFeat(FEAT_SONG_DRAGON, oPC) ? DAMAGE_TYPE_ELECTRICAL : + GetHasFeat(FEAT_EMERALD_DRAGON, oPC) ? DAMAGE_TYPE_SONIC : + GetHasFeat(FEAT_SAPPHIRE_DRAGON, oPC) ? DAMAGE_TYPE_SONIC : + GetHasFeat(FEAT_BATTLE_DRAGON, oPC) ? DAMAGE_TYPE_SONIC : + GetHasFeat(FEAT_HOWLING_DRAGON, oPC) ? DAMAGE_TYPE_SONIC : + GetHasFeat(FEAT_CRYSTAL_DRAGON, oPC) ? DAMAGE_TYPE_POSITIVE : + GetHasFeat(FEAT_AMETHYST_DRAGON, oPC) ? DAMAGE_TYPE_MAGICAL : + GetHasFeat(FEAT_TOPAZ_DRAGON, oPC) ? DAMAGE_TYPE_MAGICAL : + GetHasFeat(FEAT_ETHEREAL_DRAGON, oPC) ? DAMAGE_TYPE_MAGICAL : + GetHasFeat(FEAT_RADIANT_DRAGON, oPC) ? DAMAGE_TYPE_MAGICAL : + GetHasFeat(FEAT_TARTIAN_DRAGON, oPC) ? DAMAGE_TYPE_MAGICAL : + -1; + + if(GetHasFeat(FEAT_CHAOS_DRAGON, oPC)) + { + //Sets the random Element factor of the Chaos Dragons Breath Weapon. + //Affects damage, saving throw, and impact visual. + switch(Random(5)) + { + case 0: DBREED = DAMAGE_TYPE_COLD; + case 1: DBREED = DAMAGE_TYPE_ACID; + case 2: DBREED = DAMAGE_TYPE_FIRE; + case 3: DBREED = DAMAGE_TYPE_SONIC; + case 4: DBREED = DAMAGE_TYPE_ELECTRICAL; + } + } + + DiscBreath = CreateBreath(oPC, bLine, fRange, DBREED, 10, nDice, ABILITY_CONSTITUTION, nSaveDCBonus); + + //activate override for special breath weapons + DiscBreath.nOverrideSpecial = GetHasFeat(FEAT_SHADOW_DRAGON, oPC) ? BREATH_SHADOW : + GetHasFeat(FEAT_PYROCLASTIC_DRAGON, oPC) ? BREATH_PYROCLASTIC : + GetHasFeat(FEAT_TOPAZ_DRAGON, oPC) ? BREATH_TOPAZ : + 0; + + //vfx + switch(DBREED) + { + case DAMAGE_TYPE_FIRE: nVis = VFX_FNF_DRAGBREATHGROUND; break; + case DAMAGE_TYPE_ACID: nVis = VFX_FNF_DRAGBREATHACID; break; + case DAMAGE_TYPE_COLD: nVis = VFX_FNF_DRAGBREATHCOLD; break; + case DAMAGE_TYPE_ELECTRICAL: nVis = VFX_FNF_DRAGBREATHMIND; break;//VFX_FNF_DRAGBREATHELEC + case DAMAGE_TYPE_SONIC: nVis = VFX_FNF_DRAGBREATHSONIC; break; + case DAMAGE_TYPE_POSITIVE: nVis = VFX_FNF_DRAGBREATHHOLY; break; + default: nVis = VFX_FNF_DRAGBREATHODD; break; + } + + //actual breath effect + ApplyBreath(DiscBreath, lTarget); + + //breath VFX + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(nVis), lTarget); + + if(GetHasFeat(FEAT_FULL_DRAGON_BREATH, oPC)) + { + // Schedule opening the delay lock + float fDelay = RoundsToSeconds(DiscBreath.nRoundsUntilRecharge); + SendMessageToPC(oPC, "Your breath weapon will be ready again in " + IntToString(DiscBreath.nRoundsUntilRecharge) + " rounds."); + + DelayCommand(fDelay, BreathRecharge(oPC)); + } +} \ No newline at end of file diff --git a/35expandedabilities/x2_s2_epicward.ncs b/35expandedabilities/x2_s2_epicward.ncs new file mode 100644 index 0000000000000000000000000000000000000000..3b55040117768f683b4681ac7356aa0326fb3a3d GIT binary patch literal 44278 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 PPPv0{ue4c=%|-tPZ>9UO literal 0 HcmV?d00001 diff --git a/35expandedabilities/x2_s2_epicward.nss b/35expandedabilities/x2_s2_epicward.nss new file mode 100644 index 00000000..b5e97d27 --- /dev/null +++ b/35expandedabilities/x2_s2_epicward.nss @@ -0,0 +1,61 @@ +//:://///////////////////////////////////////////// +//:: Epic Ward +//:: X2_S2_EpicWard. +//:: Copyright (c) 2003 Bioware Corp. +//::////////////////////////////////////////////// +/* + Makes the caster invulnerable to damage + (equals damage reduction 50/+20) + Lasts 1 round per level + +*/ +//::////////////////////////////////////////////// +//:: Created By: Georg Zoeller +//:: Created On: Aug 12, 2003 +//::////////////////////////////////////////////// + +//:: modified by mr_bumpkin Dec 15, 2003 for PRC stuff +#include "prc_inc_spells" + +void main() +{ +DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); +SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ABJURATION); + +/* + Spellcast Hook Code + Added 2003-06-23 by GeorgZ + If you want to make changes to all spells, + check x2_inc_spellhook.nss to find out more + +*/ + + if (!X2PreSpellCastCode()) + { + // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell + return; + } + +// End of Spell Cast Hook + //Declare major variables + object oTarget = PRCGetSpellTargetObject(); + int nDuration = PRCGetCasterLevel(OBJECT_SELF); + //Fire cast spell at event for the specified target + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); + int nLimit = 50*nDuration; + effect eDur = EffectVisualEffect(495); + effect eProt = EffectDamageReduction(10+(nDuration/2) , DAMAGE_POWER_PLUS_TWENTY, nLimit); + effect eLink = EffectLinkEffects(eDur, eProt); + eLink = EffectLinkEffects(eLink, eDur); + + // * Brent, Nov 24, making extraodinary so cannot be dispelled + eLink = ExtraordinaryEffect(eLink); + + PRCRemoveEffectsFromSpell(OBJECT_SELF, GetSpellId()); + //Apply the armor bonuses and the VFX impact + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); + +DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); +// Getting rid of the local integer storing the spellschool name + +} diff --git a/35expandedabilities/x2_s2_epmagearm.ncs b/35expandedabilities/x2_s2_epmagearm.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9cd8e81229cbda971da80d4a3900e105e5ecc560 GIT binary patch literal 51290 zcmeHw3z(f%b@n-DF1gI)0)|^4a0m$?5`=_ngg`Pgfx+CEnOs0%ILw?R2j=FPnQ*aH zY^}9ks#PECZ`Gnjr55{Re@d}MjhI$!)Bi_}Hd;iaR?)_anA#L0`QQDnwZ8N1efGJ4 zt^e~sPvLp;%~^Zh_F8MNz4re0_kA0>`tw`PJLlXrnapF?ot(jcGxM2TOKV$Z)~3F$ z!S0?lo3AAJ__H#+u6jl0#LST+M-JyREm?QX05|ho2LG(cWgX;Trd2Q&Id<)a4YU)s zEgxJrxNdd-z+nHTo^|W`yRO=}aoymS)qSn)4!13not0~C!C$$iurn96h$@WS5ogKgnbt(P`9J%gu+?OeyzEjKsD&j*C8b1q$ zPqenSx-c@fyqdWcp~-PV>+a8Mw3%iwN9RO&XmFxjoSZ0*j6mj0H<)H_>hJ0r>?=+Y zQEak8Y>ED`D;5t2Ic_`2{}A}MWsY{Kpl9vi>b|bk8+r!U_Vy2WY#73eO$9PTr^Wq_ z*_=NClewEF@8}!fFkB)I5?{#fm{oPY=+xQQdb*?qZHH=R z+E7hNP;oWi*dC5tu)ZeOPEn#ZX3ZMvq5saJb7bO5W+GM+(f%NvJA%0-(Ot4lO4Kc4 zzida|x=M>J)wiUAy0}b3Mw|HHGr9FK_PmqIBnZbZy<`=~77e$td9p zk8sAO!boAbG#1D#M@fTTV%%XK2q-T$%0||nu{H6V3-X&#J8qTQv2~7bBG2`iTRYVC zC>h+24{L4$dc}z$1^7{%hYLo zOj}W&5(_*RxW&$k6-8oWf`omHOi>uwqKdV%1DScE_ConZrK>R;8S-)3zYnBTKo4Di+s{BUJ2zPraKxS{eudo! z#l^WKf99norUY*y%s!$;1KjN<&{+vfusKUY8xA4=H`Dx3pe>VI>$2%=w|Xg0j}-^c zt4xwh!6ox@qQYE;I@h62-a0)pGF2EUO?I3XUa3Ff|44JBp(YU-Qxr zykfssi+vZ-5}}fWf8mDE$@!gy$-FCM^MyQ%g#7emX>136IjyBw&pc{Tg&r?*>pCs? z?(zg(Q%}(8`O;*5Y9|&Hw~e`)c{_h_-QlD=k)^5Ps0zHs6G)$U={1uWBhn^oy=NsN zxZ-QSbm+lb{%{qU!Z}>7v|jqkp;Ze`gY}o7z|HOwue#WAyDQnw#dPR-uu&cAic5?E zA^|MV%~HCoHy0!sueUo{+nFvfW@Q%D6m<%KhcfJ$4H+(sGJosYdqVBqmU%fO*eb4f zcx8V3`1IItWnChEEe&JwR#7-}eU^5ZpIWvN#n}Yn@sGne8M|XIB>r!8_4$#GCbCLI zd-2O*^9zgVc3JXLEz8NNs~c|_8B{Q=3|^JK)}w))VE63c0;xnXfK`87XXv_G+klF; zm6FcD)r%mpb6V49b!QNf5%rm*R#htRezp8C!t#HU*r~~JsEJwd|0RO|q2{`0T+yRT zq(>$qr;``-)*0>_h`&}4Wo!cR6jcsgq11#kz zkk@n+P|>EVbbqcrlQZt(WwKo)dsjY&Y}6iX(s@)3v9Q#|o4+VShMpTQHzClRIYUMS z7d14U%^(s_uO@#tHKw`_a_zdc;^zgjZR3-tE#GX9n7z{BXyy@(c36+ugSG|4)ae13 zY{iwX>@xlAicaXpwr~0B!Gi>7M7+Ypyn;0aKffR!tZc>jHrSB#=h>|Go5m?^M2QiX zsH_#rbx1A`>|H?xgCHkx8qRhK9h6M(Lo9Ol2c$YQ_2C{Jz`bYBN5r^2;ROuIbF6#3 zS~on4BA@;Qvl91_;qe(cNr?Q{k_`l*>9W|StaL-0ptn$4@53wRqQ8;60G8m{dKUiE z0Xg5vpw@Fq28>AT2EhlKg~@!@g?k^p13l|wv)YA;F(F0kg>Rc2&Rm%enPV5qJVx2* zopi{X>E4#ibQh*(x-QfWy{H*#%y%qmTuo7D&+_Q>_cVE4^e_(yj27goBn8N>a2g=h$XZ&J$U2#nI^CXY2 zz@*~4(a3mp0}``e#{pRD+$vOX=7KJ*jO~OQIs8$nmYCwc?FGu8BxXKO%xr4zDvnfz zi8Cik(UBq=qovWy^0$?ycIFGiw@gn?jTXnIfaMhtT0*@n6-CBP@i6kC^MI?Ft(y8b zxoKg!1V&M#0hb}gI~EJh@i%uDoNlIM;=Dl%jwOl(T9>PjJ*fJ5|jMC#yZ=)gf+rXP22YfVRt`61!Ja>?f(FC$ruj z+-$CVddG%~w0VxYL2KwsEP1gNcRoVW5fOpl%p z2!XBe4tr5oNQU&K5w$HrGS9m{xU9)h>vc#MJ|fNr;!pl1r8*4D@Hr&tlgl7Q3La#RhQu6ZZg$^*#Gz$^URSJ^Ls< zOB*byZ_B0?TbZ94#~zZ5U>g*%@!*Htzy726Ow%F;vrCI7?J=zuCxs-n%_|(gb_Dp~4I4KyCfMF}D35L_G%3!3(MQnxFq?HV9H$MAu zHcFRnO%gRRpVD0U3VIXzLeJw#&3p+O={ZyWwUwP(A})^*chn+2DIo5S5YMYYocVS@ ze3cTvDy6m%Q?Zs~^St8JOm#Oh?+%#VuFSgP%-WUNjN^nU2495fWdYMyE7PSZrYA(Y zmrAte+wfMX?^_g12p02gCP{`Ep@DCEBPtwKUj_Kv8Sd&!fEH{J|2~7r(tS$Dr3jgz zmcZU|utj@3sjb#%YtTNULHkVCuC>Y;so?&YOqa=!VV3*&GMsZG5{8Exhn=1Lh0Lr5 zT4}%a;MNiT-Y?iE-m68Z&-EJhw^}Uo2o1}zcwvPd{{o@Mus>uN;DaS0cHJk6oL*`` z=d6pZB{{s~ad=!fEPJCG0+AMLU;p$1OI@b3%I;rLt7YKTHCz5BX;D*d?hPSZwuO*w zuSp;^w7mAbDh$=~`ZJRjm3aM^svzG>AVD9m|9P#J8~&(P%Z;}sEh@1zPz8A?gxqp} z0ts}u_0|RX(97^?XIEhY3*REnij;=vInK{^yk{FhuF{C1THVt;U(EX!9!#UVE3y56 z*6NUNLfw#>bSJP{*Otn~%Do(ph0_6_Gcdkp@aj$L2VMIbl9^6AhL;#G$=;!+No$JN z`a344HhH{4s!HM=+>Q<`lA}YZZ8+;^-WW-&U>FD#Bd zJ1i{x?0Dht8L?)^WaCcp;5+B?OERIsjZX0_ec4q9>8T%SK&NS}yLU_Ph90j&n#Ruj zOO;R~LG+$jYj|xKNm_KcUh@wjr2m@M?&?(aqKC$CX;-PKq47`GT6F2E z=yr>Y$|@NON;T!Fu`wB;XGKP+t&$tB0iON`(*T2g{?_qzZs}SqZz|$c=aekmEURgO znCJt7c|9Y;<ZP`&Oi#XUQ3OJ-GIy{Thw172 z@3Q2R&D>`s8uCur)c$D~o=fPD?aK%Ir}ukW|3;$q#bU2@a6h-ITpV@y0t3H=BK*x`AD_=?J-p9pnCb_F~Lq&t+(XLl*zwJZnS$nn7ws zT9K+91Rm#E+^sgooU4z)Z1IrZH|)S^ORsT0e}Pn|Y=4Rb|H#n0GqKr<+BU0f>8sPt z5EO{cR?IagpY*D--&`@M+mQM8d8Q{#f|#UU-cff8i(Cu0Q+e1ty|uo!w+|1lNSO3( zUf1LJ{=J;z9oLx$Lfssg`+c*KW~ICswpw;>J263L`oY+n<(6h*JW-5G?bUA4LIvH5 zT$VNF_`}AE!e;6HHo1djgOGNs5}?{!CI=FG@!Qr5hQaY3`x`oKp*2jn382}r5G4>{ zp_S9+_S-XoXl$govM%w1)}-hw}&< za;rh_h0KmhG?PF0+Lh7if+KSa)n8mkfh(-7>fZ1>DNeFeU8Ri!@lUSnGVDA=_ZG}$ z8ymD^SEMfe)eYMJszLjz2JI&`XuqsM`_2aK*v+cjKkOXVZO8qyy6xC8tlR#h2JN$} z+Ha!w&3_n@77dI%+5JNFU>>+t?jm7tEts87JRo&e|b4bHI3w8%k@_x2fMSs5;+L%PWz>;V*^r$f8^f0Ac%M|C zi^XxD=8KIz@0GdVOXUeyYK!SNoyzrQQ)*(5loy)qZS4n!uCjUlcdYxIAFoiXV1p-n zwqbFwNR0pvRDv~v&U1GY4^uqx6-N5v>WUX+ z)e^5Od`;{1LY5i_tfn+8(Jr5@gjS^XIHf8Pid8KU{(FP=TAS=f-_n5oI}O^eXwd$_ z2JQU~+CSc){bvo@S2SpEZ_r-rCWG1U|1_ZgR)h8*G-%(|p#7`{?bp_8m&3>n5>gwZ z)%6#*4f=<6j*pMHzbdCK_P;xcXXKOBdOGfO2DiT^k;UkjxOVxY)U7a(b$Mj6q-k;#MaKG|zXc7adU_;@yV7j@4VoXZSlz3B4zfENcKgatk)xx=PEsE znTJUBE}v|JM>ZoO?F}SL-*AN`@%$OHsyJX~gzPGkxzoR{5{ebxpmnhkp$$&Jndj|F zjwnu<$>gr1tz0mY2))?D#rPvMSvruzYZb~DIArpKMPedzx@1(gOQrP*8gX zv|m9pDxiG|nn{rAzgK4C=ho80vWo#kYK=BZ`gIU&wSy#&+m;JaLewFmvgt9U9#d)$ zcy<-gMMo77u{0b5{(cPj)fn*oG2nm1fNNvGPse~)#(+1)fIp1^*TjHwuS=g0Fw?D$ zVg7Rr_&^MJK@9k|7;r}n_`VqM?ig@72D~8#?1=$a#(+=9fWJl{gA$Jd@|rsicP_oy zx}zDS#myiMG=uc@W{|p?L3*eeq@Of{bf_65yt@O#x`8oE)krPQ;=0xDX9N5qy8?;m z6y$1V7I}Ie2!vYJY&k}pm~G2sZiYvdD-w^UVLY$byJ5?q+w0a>dSGk-8Bd#XgEFXe z*LZ<2K{Xcp_cCQ&zehEFm!h~uJN5i?axgt@Aa++<0dYrEN?Mm_L5UT zd7lD93sDDTVW)g{p(b^xZE&~L`q9b!1y^ulyjrm!k8pI>Vg2;;fu-__x7)`%@Oae@ z$5aiD;{nITagIN|((RgebWD$?$k!MxoFJ4vIY#u;0%}@Lwlv6q&CV< z&`_pQvw$mO(OU2;1lDEA~>5yiKI(R%U2 zf_2$pw~4_ZCrE0tiyRjW*`^}Rv0(zGFUWtJxvJWm*oY!Z%ph{IuZ}2$BR!2YLIw7+ zj+UzbaYDFBMd=7cNdK6ek2&C;r6<_@YIl1iqJ^y=(S{j&*xko`R>z`IV1M6b$K2DN zM2tj2zvn@*mrUpnJt#It2>n+NitP|WpYx!)NXh-ogX)4N_q+$ieF<`S!GmHO$3bzk zPLH6|pV*urwB3X1@~LIE2gMx&;?DJ;*nS~YUan!*!KMnK$9lNfDj{^C2gL>fp~)Em>(z1pv zCr4V&WXma$mbq++?Ad1zvgOojn(Q~(vN+PRn=PkBT0X{>C6Si5vt?YBOOXgX&+!Sf~I$K^5X?cV#uZgsLge{+ow7i8ayCW@Q zZ25eoWq>V@Mp{;~%1~UsrmSz&PKRmM%FWiH^>T2>IN^W?@@(H<< z1`5vTl*%D(1yfg!5qyOB;DwIs8FJljw5I`K6P^gTt6Ia%aGF|+!&#b8Bw%K zZ%X13a9y{cf^eF2d{2x|+0c%^vhbVk(7Dby@8l{Vvqx%c4+bNabGQ=1G6bcz_H4H= zwYB$zV#z)pmDpbm+NU6=*OnZy9#@dlOF?@TqLL~}B*RLn@ntXRGL~|KOaWM>Is~ z4_47z|G_y$55Gp~4~6tItpDJgqK7x4^oOhHt^eShqObTlr3pFSEA#)ec)E&ntMB)U ze@%mjRTHB-D(dfwUm=-t9`WgZ{EeueEB=IJ((MlDJ{o6w`gH&LA4=!@vEncABi-Wx-RG4q@t=;52NVzXclFx0zM*xW z?4ks-Wk3Vlljfrlnq-^?G_X5qUK^o-ZzQ$?8rYmPmqln`-zW|2O`2H|n#5Ou9N5~? zJn^*%P2#7326iURha)tJj{=%~N;4XvN&G`ET9m^(-cw+JGkO3|jYf;@5F79awnb)$ z4R{3G;xWVqJc12tQU4Gd@CY{S6vYNSf_jl#;lV%a)007D69UEY~@rf9i`qqW?Jx zF!#bi5dj*%7BN6_G5?KEvTws41852czltOH7uB($WfC62&zvLnG<9YlSOPH$|6(zYBjxEZ7d=PdSl84ACg**o0OS(MWWM$T?w z3|0ml_Ml!*;aVB`T%HI{4PcCt6f9is|LUjs3p1FzgOIUP18@i7;N`IPKDyXHUy;`& zh3YJg_tl}Arv^ff69Gp%H4t#zdsWR-1BR(R`O5c$Qv+rsTqQ-i6D^!Gd<&tSP-w{c zVPC3N*e^4Nzc+Z~$YW=aV}^Y{sQmwXZxB@%?c!#O#(RUfUzys4LnTaFe+R>$u^kLV zc4|Jy+Jf{xSJV#?t_F>9g~SwB#8`yuGf}Pvjd8U)MxIr)WasO8Aj;LCF|Lr9(v`C> z#<0)T3IyM-290rr#1vPIm52o_=6$XPjd6v<6jvLQzOIL&7BFaxD<3B5%?_2tibl}J9 z-hl3tO6Pl%UL!vE@%nf`H?4Gu|Fo)kK=ELISN(ipPh@{5@m)Xz+mq&95t_tr0S)X< zn(HGpiO&KW*qk(HMraa$1vId?qj~gTgeLJ-Km%KoW_N@p@l!wpJCo+^5t_tD0nI+8 z*%qNm{6jBVl*2p!y_a@GDhgPLwh3(lIBQ$LQ!^SyMid+H2sR>`(EF7~bT5tkK<{SS z4tL%xk%+%<&1fx&2SHhGuun0&lOJ3lHAFtBy78y@o z!9m}TGQ!^$c&$gNhLBfM!hy!=5)}~8t)Mq|Kr^)k=e#@KKa#w`r7T3}$Vdc|oLQ75q&TqLe zKIq8ZA52xlM5M8I2rK80pTD4fN@onTrG^EMUgCJD>oEfZ-=zF76E#Q1LPn>|CNN}5 zIYmCk?QrRtwT8$yxNi+8@{+V0GWLWaxcV{>_WA}6J6hiiAyjSFVz?XN`mPpxes4pI zy@vkwEOyL=m44MWLi0-DYb2gh7ri87wGhG2(LAzR!dy{8n zPrvM{hAc^J`r%2TI?OI_$V~LhW-9s}IdV{bAp)!Imwi=}Ea!VHfBMNfT3*(Wr4iHX zR`*ojqL=l{9JhYypT2ogUJ}CR=rAfOZ_Es8P(%ic|EtKoDz{NK%>5FU9J4A~RINDP z^G`02fBFE0CdsPCio*?z9#~1wPrx&giQTXA;bfEzp*#Ri!$YfYiLb zK!T0|Uc2&A}I*v5) zN0_H=x8w@qVw5}Y9zI`FH6HA6@_bI&w@`Z3m~HF_v$HqL;HI%GE}i7J9z`z6&}{M* zr^o6yrhf|-p0&n(!F7FcWZ1f&wmRa3X(`?XGlJgLJc+-djIWeIx!OvJlcb`|k@i{bp3>#_Jy0?K6(=rb!n*2fPJ+PCgR6?;$fo8_Gq@$ntzEI0kg!a*FQ z&sv)~PSIyhqy&tu>h4axQpzzq+M@_!nu%*Tpy>1{Vr#nP0Y$q~$cg1(7BcrrXazNt zBw=_6X&z3o;kYyGi16YFtPsV~@g|2Is>AV-gbVI=OOx;Dr0Hs2jG=DDVN$@t$ zrqvBO`!?86u>sY!(Lh_&P~v$$Mw$7~Q{wFvC1yLDHKoKNI|5e5 zDoV_%?>LuXy7|d~{_*LNsqyI{*=$5yF~g*)iC|TY_65CT_zuS~HsO(&Hts5xN5%{3 zNo0k5AY_c1Vq~+IZP4x2IsTc|TUl}#7I8{M3u!?N?{ae7;mcPH=|H85g~$k*hH3b@ z+MV!n*!4*cI|(^#ec^UXWB67~VW>29$IATJRo&vzN}hrp+L7N1w_6Gm(^(38<8#yn zo%1HC>ax@=3tZO87{2?}dwFFnEp?5@vsG=`dqvgF9KU^agZ4EI+PfOG<8>l>n@I9k zaOT*v?wZ89i#WS)C=Qj!hYIDf=}}G&HW63{5q@UFyZ)3wn+9NDnbsK#>1p7woNw0x zT(mK4Nqk8ZY60|CxNm;X?GrAHhushu#Y9DE6*uzdi>iat)__DQM6F|0RnUlMr%Mw% z9p`4!K(!jB&>P-P?qQVGE`@Yfoa8C^$!hv3uah%>f@>?W2lT9<2_Ne~xu^k(?ujVI=HaY8>>zHtB zW57D-yM9Q@v`@W>5g_Blj^m~SuY9SQ?>56@Vw98ppeBy5e$yS()C(P*w?1*0lAXdY z>nlzc%e#tei-oDlzUeXdscDLr@l|=-nbT#)cWmeqMGJ+elUK7)UvKmCrjIa~tb*X! z3U>W%->iPym8G!qOe0UZfv2%|w^os^!eImfuP4yhT`kv{{ySc`RlBGp^;m z&9TINxHQYB{GFL!H(rS2!Idk%cJj+X8Liux=`Y$K%Z z-GiItW?;SW@tEOsMIFsP-cU0H4$1|5W_@^kl#H~RYdg9Q+k2W}>q-aDEl)mGhoyU% zpuPAgPd|PlM-|P1iAF0Fg&zfVInd!6K zScm2RYLcaH*sFJ*d87`@2VWY?QXQ6m-Xu%C>#kb zsQ6rA(+F3C#<==!vN7p%g(D(d4I1O>`xfy^dY>!27vXBq7*{_aEX(*@;qnMqgT}Z* zVk!nKo%vi5ClRg&jdAru4-pZuz@aEtgT}a4#j8zCI;F|uZip0JXvpJk_ej?Jz|*=d zT@{~EE{KdMmk%hHs(6fYK_o=EY*8*%@fYO+&quk;S1wiY7Ucp@$GH5#-zt}?_=<9Y zXQN!+q+F`vDar+&jB;6}T&m(H$_23!3na}Ys3dXUiSucZ&td*e_FrXr+Bcx z+p&Cm?6paW?*bawo-`lUGd=ZQH)V2QchbaOo0Rx0kOP~O=8}k<#9sjo>`j`s2n}p2 z`8lA0tsTwVz8s-R{1ni@&ZPNZgeLJ(K=ZiLlp-{Vf9S;r)I0D1f8(m_1H`}n1*_>_ zu!a7G9_nAvTmOPK$>%rjHw&b1xny6F+;TZ(b9qy_gfk0W>+-TgpI??Q@vG10tt;-5 z^~*lq8`TpGo!Y$IHS5VJXsdUxa5aP#DFk$)8sYpD0{T{sa6t+IU9LvBFogh1R3luJ zLV$s)5iU+4z;24*99=vsZL-YeiOCkGOor1Xg%Mb6O#Yzj?(^6T|C9Nbvp8mEX03bF zFZXjbCnvWaAcm};p^HRroz)&*6VAoxt0>{HRs^n&t{h0DF!Y?vUgXje);QK3+Fai= zuzLOKD|@?|_~QA8Jflq|Mmtx&-o3s!Rp5DVcXy=fW9Or2#j{1Fq3D;+=bW7%FPCd!n>P~mwl#>@AW7Ik4-tq^A3kGK;ch_jnQ`mHfUR)$iFrfRI zxod8HyN+=pq?mQcX{0y?v0`vSWkWvbV$V9i@r# z#9(DBr1WYi`b==U*_f$D7(=daH~(0KW&gR-k(OMdXDbhH1>5@b&24&P;QYjKCvPf` z-;77R^2OT=qa}AUD__F-tcmhCPKQn1L4g@l#I6iv+=o~SgJtgYp!#Knj6CI*1g+xU z?criGiX86spm^Yt&_DB_IJQXWZVs3y*#@^!lbJJR&>=;n2Gw7BIN2zU=wp0xQ5?CQ zX*jJ>9Qkg5;mnWX$QKd}Cm+Sp`^(Y``Io&wSR?+5L43GfxnC5`wG8gxNE~}kbVNGe z=7;cTpL6tWrKz3tHpZLeCJK{G`->b8v@JM0zug_D%%=yhP78iQ9sEW`)$oq?dBJlK za;gJEjAD0IJp$pkU)Z3%lspU~j}XFIFxNbn+pbzW*gLj;da^VwhjwHhT4A0}(lAxW z97H3YUW=NOl-;owDaZR6banUDoBIdW_iPv-$GYOcfSC-FCtb~N-p;t2e;+gz`Zx8g zTQ}IV#W;%1^&rwWJm0@3@%@UZ@5PVIIr-u)oN)4d3V|)tdn15DID0b6cV5ajCBF3@Z@OK@H8Cpx&Zh>!Mh)78F zMpMM#O%Sjs+4ClOTK-T)el|H1_X*hHgl)?Q*A1>)-9I4C?C-j2s>-#C`B6XQU@?EdNDVLVcXLL%B1_CapTfs81ywWivn7lhkjKQ+SE z#<^>f!-R=MHl?0wp~TV33{Bn|OmAM8(g)H5eSnp+2T}#GsZSu3X#{zPs!kL~MurPx zLvm}xG7Ndco8%!!9>G75XhZF==f{;PKR!V}E^^(KN{v+u#ZBf5DNpj=6(90(@qOKE zC~3coc7)A0q3GPz<-%}zd~#4?!rC#sC3$7<^OWdHlGn0m^5PLYS;27i;?9i?^lk2O z(yx_!YS10rgHzHt!R(plcy?BbMYtpxIBz1B3*&U)!@A<48Xel_M8Yv%S5~C#2?Ssq ztG39CExaMYdIl%8NtE2s(Nol~|9_>G^xEszI};C`8uic^Lj~)t;)s|WBd{`I%s)FX zRK)5XMuCs*sU(25Ev%rr^fkK?;?hqjdQlJHte zAjSo!qQ}+UPtYlHqwp!3f=|^{)SdoXWtBh<9Pzj}n!0i5o}tj^ycQD&qqBO#%i<{o zx<07wjDl@5^>F7NLQ|Op!KXK$08AwlL&24^gmGhbxUn+j5e}2^`JhixJD(AJC<_X& zCx8;yhKIboqLfkqedYaQJt)Zg$IEp+1ZzX9_TI6v!c=fa`1)>yfi8pKbux^e`E-#* z<*6WY4!-kdom`5adaf9qp#kx2I6d=tg?Af$=GM}kgZ<;>A*T>4qe+)gUh^4tFR2k+ zIJB?PCml>8j!w~>t2~bFeTA_d#d5%Jw3=Vra{)iBaLDg+kKc?kHVW9yE_w7`LW_*YHRUZyvzc?$iT;y}Cw< zn^L-r}fc5A1hfd^}5%(24~Uy-d+3S2)C(#8@}omvwjzzAt+5w1q?qFVR%}= z(2f!W?%aU7`;I~oAJ?w0X4vwTfT4X{a*fyD*#pIq?IVTJ(U9l1|A_E>eZccu@fhwN zA1xI}{7!HC;|RZV0)F`BUM%GL$9EP>0lVv}+2y_+u*2sGV@_F9*jX5z4xF-WR)pd2 z1`P2fMluX+xMrjs>;=MkPO1D^QaVob@dorRIoP>|oY4p%eG{vcrZab?); zIl6OwX?S>~*i|YIjf7n1M!3Ew;EK;T#?7)et&cBaxB-vnOZkZyLF6 z__3?Y6&qM-?5xBcrY@PIS>KG|>jZ6StlV3@jw(Dk8E)F&(q@IEQp4SNgD)^Vp13X8Hg)ekzk+EDBW`|<&;HR=WXEp;1Z zIw>mi173Mu*-Ky5)7Q7LZ)G0cuawj)^P9&C*r?4+5S7AG|j(1@hiPco)FVTBAFH1AWNSYCo H<}?2n^VAQK literal 0 HcmV?d00001 diff --git a/35expandedabilities/x2_s2_epmagearm.nss b/35expandedabilities/x2_s2_epmagearm.nss new file mode 100644 index 00000000..982033fb --- /dev/null +++ b/35expandedabilities/x2_s2_epmagearm.nss @@ -0,0 +1,73 @@ +//:://///////////////////////////////////////////// +//:: Epic Mage Armor +//:: X2_S2_EpMageArm +//:: Copyright (c) 2001 Bioware Corp. +//::////////////////////////////////////////////// +/* + Gives the target +20 AC Bonus to Deflection, + Armor Enchantment, Natural Armor and Dodge. +*/ +//::////////////////////////////////////////////// +//:: Created By: Andrew Nobbs +//:: Created On: Feb 07, 2003 +//::////////////////////////////////////////////// + +//:: modified by mr_bumpkin Dec 15, 2003 for PRC stuff +#include "prc_inc_spells" + +void main() +{ +DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); +SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION); + + /* + Spellcast Hook Code + Added 2003-06-20 by Georg + If you want to make changes to all spells, + check x2_inc_spellhook.nss to find out more + + */ + + if (!X2PreSpellCastCode()) + { + // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell + return; + } + + //Declare major variables + object oTarget = PRCGetSpellTargetObject(); + int nDuration = PRCGetCasterLevel(OBJECT_SELF); + int nMetaMagic = PRCGetMetaMagicFeat(); + effect eVis = EffectVisualEffect(495); + effect eAC1, eAC2, eAC3, eAC4; + //Fire cast spell at event for the specified target + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); + //Check for metamagic extend + if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND)) //Duration is +100% + { + nDuration = nDuration * 2; + } + //Set the four unique armor bonuses + eAC1 = EffectACIncrease(nDuration/4, AC_ARMOUR_ENCHANTMENT_BONUS); + eAC2 = EffectACIncrease(nDuration/4, AC_DEFLECTION_BONUS); + eAC3 = EffectACIncrease(nDuration/4, AC_DODGE_BONUS); + eAC4 = EffectACIncrease(nDuration/4, AC_NATURAL_BONUS); + effect eDur = EffectVisualEffect(VFX_DUR_SANCTUARY); + + effect eLink = EffectLinkEffects(eAC1, eAC2); + eLink = EffectLinkEffects(eLink, eAC3); + eLink = EffectLinkEffects(eLink, eAC4); + eLink = EffectLinkEffects(eLink, eDur); + + PRCRemoveEffectsFromSpell(oTarget, GetSpellId()); + + // * Brent, Nov 24, making extraodinary so cannot be dispelled + eLink = ExtraordinaryEffect(eLink); + + //Apply the armor bonuses and the VFX impact + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDuration)); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oTarget,1.0); + +DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); +// Getting rid of the local integer storing the spellschool name +} diff --git a/Compiler - 35abilities.bat b/Compiler - 35abilities.bat new file mode 100644 index 00000000..2349fb9b --- /dev/null +++ b/Compiler - 35abilities.bat @@ -0,0 +1,4 @@ +:loop +"C:\NWN Work\nwnsc.exe" -s -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\PoA-PRC\35expandedabilities";"D:\NWN Repos\PRC4NWN35\trunk\include" "D:\NWN Repos\PoA-PRC\35expandedabilities\*.nss" +if %errorLevel% == -1 goto :loop +pause \ No newline at end of file diff --git a/_haks/poa_dev/nw_s1_aurablnda.ncs b/_haks/poa_dev/nw_s1_aurablnda.ncs new file mode 100644 index 0000000000000000000000000000000000000000..376b84a9e62097082c8776ea058a0089a22c2fb1 GIT binary patch literal 38708 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 J1b?9Te*k8;GYtR$ literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_auracoldc.nss b/_haks/poa_dev/nw_s1_auracoldc.nss new file mode 100644 index 00000000..49cd95e0 --- /dev/null +++ b/_haks/poa_dev/nw_s1_auracoldc.nss @@ -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(); + } +} diff --git a/_haks/poa_dev/nw_s1_auraelecc.ncs b/_haks/poa_dev/nw_s1_auraelecc.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6e622d9924281b8ced41542d722f6d931c4f2893 GIT binary patch literal 38792 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 O+g4vQa~;7SDE>c<^D0XK literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_auraelecc.nss b/_haks/poa_dev/nw_s1_auraelecc.nss new file mode 100644 index 00000000..06994f44 --- /dev/null +++ b/_haks/poa_dev/nw_s1_auraelecc.nss @@ -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(); + } +} diff --git a/_haks/poa_dev/nw_s1_aurafirec.ncs b/_haks/poa_dev/nw_s1_aurafirec.ncs new file mode 100644 index 0000000000000000000000000000000000000000..50fe6329e9693c12fe9c7e1c4cbfe95641e0540c GIT binary patch literal 38741 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 T;I6J{+}4>jGuILPMDhOs+Sexc literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_aurafirec.nss b/_haks/poa_dev/nw_s1_aurafirec.nss new file mode 100644 index 00000000..a6b96381 --- /dev/null +++ b/_haks/poa_dev/nw_s1_aurafirec.nss @@ -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(); + } +} diff --git a/_haks/poa_dev/nw_s1_auramenca.ncs b/_haks/poa_dev/nw_s1_auramenca.ncs new file mode 100644 index 0000000000000000000000000000000000000000..cfdaf28aefecf63306fe00e414c30932cec0c01e GIT binary patch literal 50538 zcmeHwdz{==mFKUjpXu%-olYktyC`eNWct4fgK!BSr#>FnBMO>=bqp1 zcW?cwsuOVigwN)WuGGEvyw5%N-g6(-*EQhpS$F=0ou2ot14}*pYxKQjO>LbwV^@Dy zs=KFi_Z3{c;5?5%FMXA_$eWs)I^laY3HtQV)_dN=pAE?bmAv59N{c0gu3lT$*3;KI zFVUDl+l5|j4ZbEA2Ov=NnFJTroZ+|oTFfPN0JPG-^*@A8-kU;uK{=W)FoR9#m2o#0fI0$N12Cbl4nu-yA4SKen4A# zFVsX@zAb4OQ#M#JLXMjq0aa4u186{aYKZQ|bC%aIg`L8@BIM8KOiQxDQ2~CEx%$0; zMQ#U03xC{>EpybThV#kTJ9-8?c640P+m+h6r>DQax4VadplvkYkmN5gH*<04ImY<> zZGt6DpxuQ)bVX)jM`j|uBfUR6v^A5S*yQgkOy-CE!p)gtF*}^`M^QUUwf>gC(jakt zqJ0HW%v|FairM|yd^(5v_7$kfl3-L#nrL~ua>DKg7hpk-le@Ltn59LD&Pxs@s73OFA@1Zpao+2j88~@Or0TIm zvQ9}syrzM%OfJ`(AI==Yx903vaV#}XMdQTq%;&-A(+QRgl%?}1GQ-g^ua=t5+9$*k zPbu~~uO=DrSz7}anrapWtIVxxHWAXhC@|d8UB$xQTxQhI97>O7^V$4do()9M2Z=T!lUamN%%SAwfjTh@Fh(>~hc?ToW@SBvMeV^A^|F+oOhwr^#&_?qG&qP!e-_hMdur2)Op0R{RaZuZ-}+M zL}QLQe&*&(e!>dKAUKy~5rV;(z+#9;Y)BewqiMBZUH@<;d@6+1YhNJo>puhVVy>FCa7H5j=)N=o8J$S%#Hdua2*72v3N(p$SK+8$n=+J^V)L4~6s-0sX u{7+ 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_auraprota.nss b/_haks/poa_dev/nw_s1_auraprota.nss new file mode 100644 index 00000000..548f2840 --- /dev/null +++ b/_haks/poa_dev/nw_s1_auraprota.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_aurastuna.ncs b/_haks/poa_dev/nw_s1_aurastuna.ncs new file mode 100644 index 0000000000000000000000000000000000000000..279ae96099e74379edcc4b871e906a62d86245bc GIT binary patch literal 38953 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 yjsB1wLRZJAv&a~;7?6#ow_4D7K0 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_aurauneaa.nss b/_haks/poa_dev/nw_s1_aurauneaa.nss new file mode 100644 index 00000000..6f4a75bc --- /dev/null +++ b/_haks/poa_dev/nw_s1_aurauneaa.nss @@ -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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_bltacid.ncs b/_haks/poa_dev/nw_s1_bltacid.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9e9d57ba90f6ca87327f39ee35136f4aca0bf4de GIT binary patch literal 44454 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 Y)0vZoIHaqpnpo4+s+pblUZVK_0Itb3LjV8( literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltacid.nss b/_haks/poa_dev/nw_s1_bltacid.nss new file mode 100644 index 00000000..ef53a16a --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltacid.nss @@ -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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_bltcharm.ncs b/_haks/poa_dev/nw_s1_bltcharm.ncs new file mode 100644 index 0000000000000000000000000000000000000000..60db2a7882b4c34ff5f9db9f27a8a379c0fedad3 GIT binary patch literal 44764 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 J-g}AS{{usMCr$tW literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltcold.nss b/_haks/poa_dev/nw_s1_bltcold.nss new file mode 100644 index 00000000..657f0fe6 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltcold.nss @@ -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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_bltcondr.ncs b/_haks/poa_dev/nw_s1_bltcondr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..e8c357f88ef17d5575971e6fed0363a58664b051 GIT binary patch literal 43740 zcmeHw3zQtyd1iI@JfxYCG&35#9~2S-Nl1Vs5LlLk=Fvg}(n!n<5@6(}HPh0x)YC0` zdIaJeCpIL0tXT(R2d{%6j`4%U&a&BM$!3io1RKbPjoAbT+0i=e;v_iWm}QBd)s|I?9+}&#~x}?W({^0mx2meiRop_?5(V4ny zus7A0?78kLzCCxP!`IChIt!eWCr_SmokWbT4*EK;Iry_K9-}+2I}Orf5ut0+-VIIk zGu|Xu!WDagF}%qbz8K>l0B%U2t+COGT@&YjwrH;|*Xk0V5MY}TszHFzIo==|;s))Y6v+dQi*Ap*gsGDpD7iJ&J=ohlkW6ju z9~x#r@Pn@F;w;b-z6J5hU1!>t(Qo>$iKBys1CyD)bpAl5cxng^!rK}hm-rakmE68P zHQYUTRdP7Bv*+q$FD|>2gMG%Q@6O8F2?CUY$TMHhp%9Mr< zXL7mWbn!r@v~%CV%t&d2J6;%_%w^odkxa3e9nH8UZgn@g;w>yNR16;9igzu=wQH4I zC}t02^XZ)587=Hw=yov~g8GsJwG}M=0uej^n-rRD*VH2@!@~)H)R^qGQv`e4DjG>o zlrqI%mWo=pS5{H$a#mv?T8B8=lg*9pNFT_Ee@$@H3&L`n z$=NFDc?o2iHzg0&!6rf-3`Mi~fu?Ze0`;}=CMG3pL*xqVL4MNcG?#I_qN$n3pGbLL z5`gJh;a!|LKWFz;za2^R9F*J(|sjXci+uLsBB{Fb;$uuTaQZ+HT(C*^OfHW{i@1WR}q| z%~p|RdgoB9F})+EgbS6MvgzkWN*EdpH8QI)2_m;nPO@% zGdfy0JdsUxkCd`UGR!FG0AO9*viqgA;UuxFi!VupEdM)C&(duz1cUcLSD)zn_bVW(P%S_1Y&^s>q!8b{A76g`a}f-X7&1N?P^1N{S6 zRo2}ZD1ZFpR`4|S=kw`O266|oP3wBN$xAYGBl9&nbIX*H+Me8<+&-l0WxuMdJ<0j& z;x$nn3%V#ge@TLk_CBT)NV(I+m|`2;2Ynq2%`_g2w@asm3=GWnxIh+n7O!@yv_5TG zk`!8KNMcj6B-Tf#S>%wq>2+Fw^BdYuV&k*2(2E*U+)uCk;sg zq&0%0NSF7lMH-rhjtpslvjpIW2_7T0#}`Y`1z3QDBz@BbNM@JV8OkhEfHNfna@@7e`XX$$TcY#vde? zk-Mzmu27eDoladR4o&8ArF1Sk(YiF0tN61NDi=y+opSi9|{w zZU!&#ZAQ2YwKKDz?dY%fp_a>KGe~w}G~^ETB z#xCw@h6nWIR$SSXy~>|nA;eT!oQR*;sDs=h0V)t*p<=!Qf(ie;%MGn;Mfnz+`YAViD~s%j{6uhj~l@_pfS)$I#Ac z7rW#|Djr`|3`?WPr~e1z0`IoM;>~gKYyPXr287VGDQYuR#4t_ZTcA}p;VZ_XCnYZc zC2%&Z#D69r+ldBqJ)ObOBf@us=7jSBX1+I`^>z;p_YWs`M2%|eJ!OK5*&zB`rNd$C zw8|JeKM=%_P6V<>x{rDz-TJ^t*Nb^WKjsV-#yg(W(43;mo@Hln@RP3oj%Dmo8U$s> z^5n@kzNXBxl90HVQ3z{n?4l`JTe)Q5Hh^Fe=|7I4oy9Q5^%U z#;KjrA+e|7i(enYArFFS`Z3JQy=b zYrJ6ZszHY)4vo$n8bOA4_N4myyLapy=)>dOt;vC*q@w3|Vm`cCek~|9t=SL3&%nT_ zG57=wX|`44W>Wkgfp{sg(>qx#X7Z&S>3n7qVU_C7XG_^MElhiJ=?U+t1+&J=iOur7 zj(@-6XGC^&2?gX*Zhg7Jo};$^Bek>0^Lg^|66?YfBOr|N(k0(u*XM4CE(R5nCUX0q zBaf`ye)T+WYIU9}UaTIeL$D%Z%TgzHJ;SJG?`6$e#H>Jdew#a3!-0&KRtB7Veh}-7 zAFzllT8PE4>oJ(d?@ySPaBIvQ0*{o?fbTt4iK=e4c~%Khoi)n`Th9%Mo8SQJI14`@ z`kmv3=~HfL{-W6;R83>VAkkxsf@Hcr;geaTWc14D8`0sKc$k9Xfd3wnt*`ZF&1$Qr zqKrOZGUVvOpQI6kduy4u)8I7?+dY}lt;NFlu5?zC4`lTtDltuCAjDJH+N7?gTSMw< zG4kA@qOvx=3T>E>pAzW{6$K{ny)XOPws|U3F!9v*Vu+`N;pxwUJnbd_TqI=%HqxrR zH~~?n8BtbRmM;V6A?qr`lSW4XO(Iew(V|TWiH4n1_RbFnMf=t9804b!v!|ut&f6-1 zC2B|07C$HgsaSQ68HGuGw!zC(tz!7mcGS4g{H3(__KF%@1_Uy2A|J9$vw=9N$k>x# zsU%#P*95^jCw(w^B#k)dzzR%$oG(g7X{5rZN~$8DjxYPz>Qn@Qb=^}p7%3#aH>8j@ zqmZX9$&UC)-@asBPx{zSL9*r?E0Zxw=b58pxG?!P^e;5PU^sRVm zv!hVRr-qB^yv!A4JT#?AH53+9i9>qUN$ND2658NZ12zP%EOSn>m&ss|R{33j8JU^N zh*-;TsFYwk{z36C!>`aX+~Dtc!pv*0H@gY@83qGCVQ7C3D^s20Qf>pJ)fbaY>N{s~ zIJZczDYE8Kp5#HYPKhHXCz$vckt1^|vtWFt<6+-tYIffHg5P-$Sd+R^*=Vk(3*`)r$|sV{zs zs4x8jQ?DtGLz^*sWSUY5;inkkaAkzxdRBjaB70!0w0|<^_GOQtKCo=*$?ykN4b@?E z#u%ZWT9mN(3>vouwF%+fCKDntZy8Mjc062Ph=B2V*RM@&Pi@D(s8n_i^={h`pAq8(UhQ`vPgKsD zSa*zH)6G(|&r2hO%#hgRvCf27HFP6qJUj?N7pjK-25;Q7H-~QjX#xyC6_@=TrU8lg zsylP^Al?)ow72p3NqEJyo&q+Q_iry8P3KCo!wfOta%M_%(8z-Q z8^&43m1J3U8Sfdw5Tf`hl#s4@cK3M`jLM}6M&~ZTw)Lh_xL)W%8B9(p6D=mQr^n=l zcb73)fshUJ+YD&lmW+VL zc6JfF+k;f(!Kzmrp8cOcJ+W7QIwUq{u~X+Hu#bHSTX5s4;9vtnuP)r(+uQctR{zCH zUIxT%H)hhg!sNuzB#tjw`Y_ROnoh9dqakfXky2)rtB?~ge?2HF9`BvZ(-XaSkiX?p zHWG}awlY%X{E^;bQkgUX~z2U{*VUQo=ild^n=J9#10Q+ z>?wuNO75ThB-?H_tG1t>b6@b7%}h{MXAP6#ThOO470R-*w+_C!6&rh@h_$!-r+OoT zEHyQENhZfIg9kHzBn7F#;!F(fk{0V=1%rn&Y8?G3RW0BD8((!(L(kbRG%5rif&vD( zFHY(C!XNRCM(<(PMBro$kw3d6dEKw!sE0u;vJAzs_Jc*kCwT zz_~;WFeL(P8-r0%7bOLmz1aK!mg)~9U_*rso^J%}6_@C$n7re!bBx6cxOjs8k8lo| zTB9Gg%{GPLzX_k3+CwAoj!aHQVXz9{_eznFT=CN!J@t~bx+GtbY0V^E>dHaHW{P{^ zF0YPEK`WOd-C`A&Ty7Q}INFFR(EbTxiFu=%TgKt@MzTNm8s7v{Ob$7X!+?+dIHJkd zB``1sVQW<$ z;xX7n;+*skjr&}f(rQ24zyAyqU1DpHUCKM^s|=H6j61pkX9E#txJk8H#|etjs#>ub*V}w!f0!C7gJ}M_ObjcB3l9 z_jSGlv#|SpHqxutssMaFJ>PE$h*akM&wqy$_0}@mv=Pn^=^BDLF$G0eR+x>BnFoSU zxZ@5HKY5+q8;Iwniz8#>IQf|x=aaHWQ<+?596JmX5k}#8X^W*O8cb;@Xm53wQ9_YC zt9M;Dl=XT}{?n|y7D>6p>@^fa4PJ^})!sNsR?3_)jEGC@!Cm7{$ z#NQdi1yo%o$M+RRv*Z|o?j~G;-`dDh>&H4|_y97Y4{YrrY!Y^oOimS@mACeKd22rM zmde(jKa#;N=%||~iDjULnT)8oPIdExT*~QMHQt)n{`(;o7ZTOBFza8&4N;$YErqJ% z9P^||h8dXxLU7+S&b@)@7zI_Q1reHfa6pWPAlfVlnbg`e)`lRO41_FkWcKVqu<$Ui zxK?PjC0lJ?tG|@-x7xf)@!+6ydPrw@tF_ul2SS`KHzNTCa3+qBrgZqvcd%To{<9`- zh4Ct~8^&zwAh6xY>@qr-pC{E7n0WoIcbJL0d_%O5&gx>~wtAQ_T4e1Zxg4`F+nV@e zp9z1N9cehqF#O0VGgO$&m8kxa@xre-1F`O;-tJ9q2xgP6{`?5urGSY95))P0<_hWH zOyBH-N*xotnx&NDEB+@6LK*+%idjhqI+{tH7ZV(J3s*brBO#W24KX4!rEd{kD#)7gPY&hCl&=ieimy&eoNn`DNIzSDeUQoR5(syx{@fL zn$gJt$~unrr(gY7`mwZ(8f6c~=(2xHSrM7t-d&@;r$&3FW8zA`kKjeSVo;XRa}i6s zJ)U+K@e*txGg2&!q>K5Mw5 z+YXZ(k5UMXW1wOdd^7S-8Mf+NtV%YQi4sJyCoSx`!KG@>($hvyPjhG_4YB4e0DSgH zLr?ao*H~UwX}!uP%;{)KaJX~Rk8+5r z?cb@<{y%H9|ENa$ks9qQYqZ}`t(~?nsohHTvfm`TRJxi&w6U))uIj6(E3K-loi*C~ zYqVcoqy4Kj+Ber|Us$7kQ;qhq8tu2$XrEf6eQ%BS7izTsxJEl_)oE~8b)Z2kp$wCJJNsIY6wPKwO7Y@{EI%Mn|Gpf!!R zozMJwTa1lP;&UR}I_@TO5RB4jc+fjp=TGmPi+J^CKmXE6P5EjdFi3w*qX5A*@7 zm`{)MJ@Zd_cr84CMv5mzPmK(vii1S=i%y{_@G)hJfe&=}T~Fz3P~G_~7fcSBf4Fxr z**%~4Ctr!we+7AWmp zn6mSkez^b#$WoPo5kK#DL|s8>Sh2hI)!+3qp{@ZmNFJ_0CZ6V=vOSU zuc`#v9szob1-h&fXy^$WnYK}m1nR8r4=aJrDW}@-FBa83l|VZpK)-2$e$5AMHk(u8 z9hXLc(i3ie3EeWhw6))w*Dku)gGH%VF9PSPB?kj+k z^*VE4%kpzExCN5j3w^2K)xOZ5k1*d_69*Zi(!z6 z`iO+6NM-p#7)0F1q7r{2NTnli*hma0ZexRdD+tm#9;VV+E`I#u7Dzq}A|7T_d9MX> zI1Dl^f{M3nXX}413^KJGB<5{}G6)`s+YV!o(z03dZHuu3VG!BAvSf+fV}Xo?L87XE zQWi)y3=&oOv&sTF7zUYMF23_K3*=B3B&u{r3Vqeb3Sp482r8ejsN50;nGpeEtyVf8 z41>&z0Fi2aFowz2p$IEjB_O(U<4v`K@6CeM>7~|cLz(gEBPfM9X%d}mTH2*UCwTDC zx1cBl*3_KH=!LOuWpCNgol@>{0c#Am7?I2aF|py=KAy~ptLvkoh%1zk3q5-aTEVNx z4zds3`E!QYUFMmavaiLQkARJt^v2dgz9+LE<^98Bg-IO4QIC0x}|VVu=9CRSXOhyg<^Znn&t(0Cit+V zF}MNyOJFg~(=2#wgImh?GRLX>(y-B-_hE%m&E#MA>>{9`6Zly8Q=F7JS$_S5J;vV64f@?!+!VpsMN~^R>AQRSsouy z&XG6wOE1mAl0QL@y8t;BUh$ZDYHG(GH^wue$5LD+C*wM>uxg-kmaJSgI@*x8(87ME zPZbBaII7wxtxrD!K04^}Fg@SHtM)VbiA-#!wQu;7~$`c2EM?@bI4Q_sd)Y zz37?OcYC-mP8l;=Fdu;ljvvG{%~}jzjn9CDk2l(kpt2^km2)u!n~tY)xk9$I8>{53 zIZ?sNg;dPb+%}u4Re;sMyPT>#PeLXz%odHnyH&p=@ZW6VUl`3*k4y~4HXf;VGov>5 z!aY-B(&>9^+w=avov*CM_|EFJsQuN8k?QSatl-o;N|TF%{{AQ5F0_{j%w~(&lQEo^x(GyhaEQ>ToBqkHU6QO9OW%k4>PT~ z2>IK+3Z&Wcq8_!@bH+V4E3@c)lL=-1r+KTMz;iytS6~p#gED4pIz>3=7Hl*En8A*7 zI-=tbc$0zvj@;-hq~h4?_HDzFDcT9_-j}79 z+V!QmN|X79AMh2r6Q?w#leb%Uk)W3Wvva?77x{?qe$%>(xg6hp(YlM|Lw93M)?K^^ zfbXs#zGF8D2UglX!To9IhX)J|4|Xl(W|+n|Z0v}HM`ggiy8Ax0h+t`y8NL$Ud8R^ zjSIMkQMiCw#!|uUK72TL)bflCE=wXlMWqTDsm&{{xz@ZnBf3{p@)eHM=v7?vLX1#n5VCOsG!1+VsZ}P& zpOdU^R**m#!9UW9Nr+=!LcEkC^*o`#On{zViN#AD7dP;aaJmGCRg%(OzVAB8)s9C` zj!#Oi)w~e662)~NGZQ+<$V3>`>m2QiDcW}p>`Ha_^l$GUz9H4uy`%f8BtCw%6^{vq zXxP2yn8|#B0krX67D+RJuEjnN{QU0M-PvLZZ^KL(A4v_3V0kIC7g!EVkc%)1m={0I zI&d<&MKU+IR?vSuR5*WXqu8F@@qQx9c757xlq{GTg!k-j-Zj6XO1! zCO{CHFixtPHS5F%DPC0X540|WfgL;ZYBn9UxHs9<8L;k}Z0cNL-8H#8CNm4AW^#Az zInr^Qa>R1-9<{LAw%BDFP_J`j8hiJ2nCTk!o9p0Ga9(6DvkMw!`& z4y;3;ZJPSq6lXUI^|C!yr9RZ*QUdf|Wl0T?{ zDN$-%;Hshf6QNz9i>eFiP>>c|KW@Ep{--}oY4DyY@VLU%xPITN&n_Tnh!r>csB~$$9_PRk?5KGwj-#;T; z#G6@CO+6jZ(tX~H9Y1ty0pFiPCE&jFL?$I4M=@`WlwoDDOw-DeG$Y{Tvz$#XPgT)P zjY2FWKEzIm=#n%&W!Gm>T-SX&;Y!BRX#&02})v|26v} zSS<7=%uo)+fMk=W5+3Nl7&}Ax6Y~>3m{eh!7pv3f2&Nmu^bhRr-rnEGLXYEq?1BK7 zqEGW3$HoiX)$Rpm0B8R3xfwQnc?&*r!z~R269kF1qoI6aUcQkeT$ugR7r|I(H|C*5 z+O~H0r?YTRGx-FMhJaWIpRiLWT1Ig_n|~p`NOf)DkLO4$rcT;Q{t+8e45W}2!?0&! zZuE$;L&;1G=HWKDb|eh$3mHWpU@*jj^K1kaPq4~tQRra((_NC8Ik0vut&bO$Bcu+q zFLR#q3)JxquxFJC7E`p_#rGHobVviqzxxPd)U5Id08iOlyfvb zh{n*?m~5SqJ5cCu^j?radx5KbF_y0|ZtG>$!uUAq@44<~U{|k~RlzE$=)^S~K&|*@ zPm#ZXM0)qXt-@WFn*|pIZ+t5@;pnj!RLqR9(EsP>$(B55jMVqU0DzqZstczVNJ{>%qNw!HA|GH$OTdJK?|>05KXz!x@#6hQ?It};!zqoVao>V z?z`l!zs1V@ZjifevZt+_y<6^1lVyP3?KF2^weT*GyVL*Px{FF^;$g;LTX#3g-S#J~ zyO@|$-wwNyX^q_N^qzJwzbL1rzBBKzFf5Y0T}A6ID)XuDtbNv9)Z^3L+1sqUcrZbC z=h#b2)Kk-4^BQ;61HPw8cjw8dqjzymfbYs?m)`A_yYv6IMQypsTo&WL3&w{@4U+29uFOE$q^6WnG_HpQJlI89FI z91D#+Y)o~t^h&V<8ErrY1xLgnuGBhN+?~#8D+1eZZE>@Bod!+fwfQ-(nFPA~8C3>f z0c*YzwbqnW+|2hiprJzk4Gy&5EPZqXc16A7lD5hv4cIBX0%gZgE(X@0NH5ACU-8>~ z`HYPfACrexm`TLb4VFpH_e|2RCc!g3HVMi9ThH*Y)#^WNRyz8%ER*W(&n@2PVT~~K z+Fy>LYnk%5u#keYOLn3uGQR?X#euo_O7l5)w#+6)aUTdOj#RPWCfYT{)I(kx7>cAt zZ`fvKtcawL(z@z&o~{bc6DkHh4d+>J>q7bCD?1N7B`b?EaT=0+{>|0%$iknUA<}QI zB|YmwJm6s11LoaWT?-5T?^&pYLt!n<9j>m0`9D4jwU7&IVa`BxEzJ9evrr4;VJ*zw zRxKyaeen#@K|ML~cfvVwmcEHmM*_WKxTm?*oWDCmq(7CMcwg89y0%u2gV}$37HZ)$ zVJ*zuQe6wPzIPUC;r_4|IyY3;Lf2oNAzJ9GHA~=mm(1;+p;bftC>L4L3(YajrWsSm zMb&jN^QpRY(NgDpv8BR%QBHYy>$}sKFP=(vD4R34>zjErH|o{o$j-;>(gHTbc#pEy zlB=Y}43Yj+vOyv20aIpI^MIB= zItz7hIIM%_&gz~p^~-0W7H$b^p{cE!CrtU$8KQ%Fa>3oM z8@j5=-t_QUWcM$GWlv!It2PU0JR9@hUE#=&*T{bjXNv!y%1HQc!&*Q^LRDW#e4(yL z_|-p-JQXe68`grB#Od>=@D&eiO)aRrS04pb+~rL?#%pw%Q_0)16Qz`28W*g>L+z>5 z@5WYHPd;~h&nOoTp*$8Z_i#&N8F!>Gez-7^EoEGO4Ul&(oF684UBD$uxir1zauhFe zrxHDRL4Wac0gjqd19*qf1d5o%xZsmp@%)&J!T!Kh6zifW-2Q|-DK^k}JZb&~cvTJI ziAgz$b@$}S(v5-V%)xrjke=u{-%@4E*RXtdqEc;)>>aha?3Exaq-d|p*f8))CgAkS zmH3M%33(`FgWbu%@1xUM%#1!m$CaKypZqo6^bzpFib&{tXuEI0kDsND5SdE^7xu^PdrGt9M zC1rhQgc8^DQnsnFrdMQLuw;#9^s+blppeWHT_uHb?BId>*j?OUVxs-~XkH|di(8yP zge|f)#A(O7p5o_(KdCrNB}U`7VkUFUlVA-rJr>98ywT~R8b&%g*N4~8ZA&Ew=sk2K z+k3vm1b>b`{CX_vlcd8?eKUawzGQYT7Ip22XAa^V0TZ$M#P1-{5zw@ia zx!|h(+)%qnEwNcaYD7sOv2Cg-H5yt{n5-4~d)h_|8ujefu_#!GZ~96;F-Hw-^GDzkuVA!*uSj@aK9{F4Quhp{bMQb5d<7PsHf}Or zhu^SCv&^F9eFi!xmmiFI70w*N89NOc%GIY%q@*>D+vM?E;EZhCD||hV9&81_gC%}b zQI+LX#b}q~guX?WMaKz&Pw`#C%Bk8azLs~LNg=S9a9$upMkb5+taHgk4D`nDnzzhW zyZZ*=O6lvt>ftEOs?9_0A_86}DH}gjt>9>iNhno3CehD}*bSa%Vfqx;r*V1IHwZ3kq^4^;${y#f$Sl9pn literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltcondr.nss b/_haks/poa_dev/nw_s1_bltcondr.nss new file mode 100644 index 00000000..9d85f042 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltcondr.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_bltconf.ncs b/_haks/poa_dev/nw_s1_bltconf.ncs new file mode 100644 index 0000000000000000000000000000000000000000..914f4a12c0bb8c3f7509d56ba7e6deed7c111f0e GIT binary patch literal 44140 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

r(l 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 R*VAOIy|HE{^WK{%{y$$2xB~zH literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltconf.nss b/_haks/poa_dev/nw_s1_bltconf.nss new file mode 100644 index 00000000..5bed7dc0 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltconf.nss @@ -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); + } +} \ No newline at end of file diff --git a/_haks/poa_dev/nw_s1_bltdaze.ncs b/_haks/poa_dev/nw_s1_bltdaze.ncs new file mode 100644 index 0000000000000000000000000000000000000000..708985f1255b2a396e3aeddd9942c615f1965c44 GIT binary patch literal 44766 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 GivJJC1DhZK literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltdaze.nss b/_haks/poa_dev/nw_s1_bltdaze.nss new file mode 100644 index 00000000..68d15c70 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltdaze.nss @@ -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)); + } +} diff --git a/_haks/poa_dev/nw_s1_bltdeath.ncs b/_haks/poa_dev/nw_s1_bltdeath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c1ecd7d8d9773cc98a04923a7ce272bcf0b2526f GIT binary patch literal 43574 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Νq}t8Q+T08GOo>US@2zdm`u}#m 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltdexdr.nss b/_haks/poa_dev/nw_s1_bltdexdr.nss new file mode 100644 index 00000000..4ef34d8b --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltdexdr.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_bltdisese.ncs b/_haks/poa_dev/nw_s1_bltdisese.ncs new file mode 100644 index 0000000000000000000000000000000000000000..8580d0563ad8f0dd902c472abd2a162c25aaa101 GIT binary patch literal 8399 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltdisese.nss b/_haks/poa_dev/nw_s1_bltdisese.nss new file mode 100644 index 00000000..6513a061 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltdisese.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_bltdomn.ncs b/_haks/poa_dev/nw_s1_bltdomn.ncs new file mode 100644 index 0000000000000000000000000000000000000000..ab8a4bea8fc385e6679f670c80f976ad2bc2e957 GIT binary patch literal 44938 zcmeHw3v^uNednFgNU|l_mSp+;;9_I2jSbiaLyT=KOJgjsWg`h22xJ&bV{6Q4MvO)V zb52_V+dK;4_y7OD z|GoFSbLSyLl4H)oIl7+vegF64dw;jTXVBfZ?yPgRJI;f@x75LZ(_AOskZ5$K?;Yq# z^(MDpelfqEzuMvF)-#<&&hg{NkGW1mjGhkaIzM&rXG1(jZ(es2Qez3BYtq_@Ci)p~ zk|*Jcf1NSB$rwH#;~xM{G@z`p(TQCe=YO_ntuEK95})UW-o(0GhCm6|1aJJ?X?0H_ z;tTm#jJX6=;Vj<3bzgQ8ik)~{u)(gCNDzWre=oWjb%=fWdjXX45F~N#bK>oc{lyTK ze|ZO}e3z*h0xuW>uQ>@8?;DvFi#t?9yJziAmJ9hcbOo8o!P#NYzT1piFlKk zeh;I8k@51VxEe_FOLe&zie5;FhPXg0{7~J9E3nr*;}WJ$3X$ZFRQEtncYiXqqi=AC z0YwoT;>^@Cegzh7OHgpk_!5xJ+&gh}pm1n1)0@s8$`q%D;4tE;(Q%27!M({{yHZ2l z0~aTUQhT;vlI+1_UvgleuQv(CO@uN_KbZ>5#*jVFFj3E#KFrY^1HSd(;o?kba6FUC z4W)~RGNnBS4rhi-o7}O&$Yd_#7LH_!#q3DNEpe&4#TARQz~WDD#k-aRRo5D~P|P06 z=F>U9GD_G%Aj;X4Y^W|dL0iGnFA%YT-X#6DU0RQz3=by&Qe(28P7&;Ft7teqQOXp5 zRVr%TRar%?D_Nl?2||0M)7DQx0ka0u`H{j{Z{}bQW-N$f2GtZRL}U}PQ7jOKh#e64 zUM!L5z8_iLah{h_dV6zIzyl;^R>#<_zG(OXIkgUPv_G30*_}R=5&xRtB4ku{1Jf$0 zq^C8YC3;gbd>w2eZB}IS{Y~M>1?tPNh%-0Fa^xU}jc$ z7iSKTI&8Gt>NRn!v4va(`1uJtwk?y)*L)$rLH;3Sw~x-U;pQu9D&2a|Ojn>{kH#Cl zl18U#MjlqE6BOVR#Nw>alFr(eGkwW&&<4v1A(-*kC<>?jrG;zS{_IVu!9sC3 zgl!*TYhA9~GS>A55`I9ndvcj#HVn5^;F@f?&aog9+tbAno8HWSh=f~b!8P_4C$nL| zKZyj~U;#GoP3O`h*?fp*F%mQ+CE^b4KnU^zg{-CR=KY@CC>F0pKWe}9qY^W06cf^!%p>k6;{lZ8ILxZ74X4U3&#vL%@W{QW{P%CBg1=Kk0E!>bPrUo)2BZcva zY^r;>ls%GRMnMMv8>A-zFJ<}8tqmuMWkY;fL&)-fz-Y;1NdEWvak2tG9T6HtxpY;l z+w3VNqP(X@`AyZ!&tFUBWgK>@g{UN8Ped=P9HMdbyh_p2_(ABRBhbKKKG5ISe{p5q zorLnoKV}6_Q(r!xE@dEhAltNVgqyr9JvTC6qcguuDXCq_eaT&es$TZ1%G#5hzad@| z)pJ1?h37A8V59vO(+Q;9nPN<_4c>#kwuNS(0>;~=(qaY%X1iS=i#to#I#o))X-W|* zTnjk6+!G+hz={M3dyX_wkWX43E$2XSW(nIef^wMY@|v}5@-*w@eCf1n+wPNwBmvSI z!BM2kYt|wSO+!b9G{9K`@WTY3BelnuO3(#ZfP^G{(-}x+=hzv_3^jl=B@J@i%b%|F ziJ5}c5XK%cod);@HK5Zylt8muTw62X2Uz`JpwWr%plsSQUK~ypC-a%qI=_)zLGH4O zt3q8`btYAvxNb6+E2VSUiPq(z9JkU3aK1>mXAnTTR08%xnK7zw^3sp2&VHZi>{DJ9 z50xbR7KPAKcQifWQb*QJyWB}|CnvJ`L-<8pOK08rx_T8PUP1#d)8V_>B6L|bLZ`dg z3AZ$g0mTh@>N6kYA3W|L>O?YI%8VI;msteaCRTcNJY__bwXrX}CLX~fzNXE?4;{X5 zDB7i3VqE$nN2S(2SwDdi0^xf#J0tFq#^^I(D4;Ci#BmTHV z?3x|H;LT^)xjM#rXb%kAxC-e6)`ql7H5h%aSz{DoUp-IeA|CNaP_tqz#VueKS5s8#U+%#U` z+q7_JYGr0Y%TZt71IhU^p(B%R8gh|JF>QYUT+y)6?tqewaa(1qaRrxCfCUT%@QQ{) zRg{@gI-Eirhuhkf{CC+}M?!%0XV;Jk%-8EQ9qK}2JFr zl&G{6%(Y4`59!;l3Iw5?z|C;1P2j*}a2{d_&6`W_P}zrhOaS+-X@|$q>}MCd0 zhQ>r7tEIcmYw0!yTDl(e8~V^^sLh5^=B+&4^ty3GnU7Xzws4i zo|S~e#f(ZgJp`|NIMfna5?t>|up?4}e8Fq3*SN(@X|kB7F42K(;f8cEV|r#aC8Eaq zjX72L3>x#83-RJH2~hP^$;aQfd$soHyFq80oJW}wKqU=Ej@c;)sl`LHZIa|_hSK+m zc`obIGdw%wW;0q++~}rrLOacZ#e$IytCA}}3=_G0q%|#vf1PQIj${%N`KyACVi$>y z5ZZ7OUtudCtFxZbgL!s+rN!KcbvWMus>vuNzJx1@_WxLhCJTIhGNf$#&r@DlRBh6EiZAx9sZxa%Bd8vm8dVwTs{=p~OF_~yiCT>&7Wq|Jy`n7X z{#EqSaqkBeX(U;9oytegl>o@uhz#OLcwA{92CV{*lI}WrC$3NI=$|0EY64lNe!_juM+xj|VyoEIt)6Jt@J5=wXE=yf6@Mq@A{uvBVpp zGDJh0?d4~Il{tOILVkBPKa!$9d$7>9y)bgr;=`zXo8VxTL%rgy)iJRDp_|6&G}gjg z+!!p~_@8ImJX#6og89@DJDR-Li)8@!&O3|3ZFs;`!!KH;`Ud9|%sde@FJh*)qQI}0t*j0Up$ z&h*4kVRCqM&%xg8M5zde&K4wy7*}9IfkmIoGDyIpg7K+KeB_93j0V}epa9>yYS5uU zK%+B{dV@oIwx@dgx_9sC@5Sbm9m)Q|q@qW7ne|z3#9j+ZO>5>hJ)Rh)#^B>Hq*)?~ zn*r{B0pjJvPS0eqn8}xRr}LRfgjK39pDkt6G|AMHOHX(!kjxq@CpO3PI{y7?D5py( zAeVCKD`kz1UH(sAx?jixiIjx|%ixy%r?0O8Q z@%s~|CEOY_hrlBxG~m}fSBa`loO@OYQk^r$2iwR6&}XoLb)3cTXP(dn4b!LG()@YT zQ&3H##URmRUO$hZyFTHQS*K+5$>SOf>v?< z0@^SkKP}Q1Dhf=>yyg{O+cr;S3MQT!UkaJ9!SLjDni(ni=Mvd6WFxK0OHh;TH3|kMnuSD2=pDvy!TaiHaSfpvYnZZJ|v{F;zL+KfWJ8B|E; z5g+N>m#pgvAKMfpYo1j%7)chpH6+WLYFY2`w+nhY)3qp1Rvd;w037IRK>qVP#aRsSJ0U^91M1$K9# zkWUR2(|PGDN_%L!u{9JHREa}+)=uh-sQg?tU_;=_GUp_Fm<$GKjNbLvrc-9~SVqJe zhC`(U+wqTze+7Oyk@!0vH*{Z zusJrUu=+%6Vlrt&7ZGmOv4795)XwzSSf;o?TN)nC1U+qO9N=cod}}oIr7sip<)35f zHN|mgGG@PYQz{|+BqJQEj1XMU>B~=K4~>=%PUhU+>=EqsEgO0={9#o?br|h2hJB$r z6i1^@Z5ZRWV4qQVw#m4#nc+4e((zz@Ap#Z_T(Lg2E42%29I{J$uxIBU7;Rto0896x z>F)9m%_Q1hUkI)1kxey>T2 zO2#C`nAK;z=5^m^ZKRq2Jfz@l*5GJ*q;SI!wq{;O+n8C57mQ5xFs4eNpzmAD>KEUM z8uM~xm>^tPk_3d8@b6ozSjibXe{LMZ<6F`AeKosF6&h)CJ9{9cI~|J21PH81Jhe_^ z-7$VmH_OeM4Yd%`+Oo-Goeka&z^gdpIs6wfi@A6DXM1z#_17D~@RMe&&%YV&H0J2(6;y22b0D3|a#gppGZ8vsOGw0~sSP6`xfnn@pdk-HL__m${Pp zm8XoLyv4NX35AqxLkSrp7>D*IKJSEA%-CMQ1oOdNg`??QNoJTK27Jv)nZYtG}LJPaX9U}hNl>={kxhcm%V(VQNj)6h)aRzUN#WCS#( zvx}JB9-s|dta`=a+5g!S6MOZiLbl;7Hg!${^VsLG1vgIx2OAK2b&+MgxozKV^NwB;n!HSK5w8q}g5b zLA3yz>YGLxFSBRJ()FvXo*!cAx>4&wl}&@gqlH3_{>A%NacJrI@#lY{_QCsDx7omS zx)5gq7zZ#q-j5Ue7LkcP5a{^574Pu&346W~+tTL z$1%o*dR#Ww9P0R8Sb6$(YJqoWa?%QeRrtQQtx!7S=AgWnq}3()iA-xc>2gK{L~N#% zG>?wV=5*d#c)hhz?0hrmz%ga)=o=Tx-p2DUcu)Gk@JQw$ zsBLdBYhbD_@Q6t87GEqwa#!D|(mT?i?mef~){x3aoXt`9mNWFwhf0N&0Zvn>Q> z=FPcVMZ)i7dyz2s1poAiM7HZ_Tu6a9Z z)xFugmH0DtW7sgr7{-Hjr|H`gE9ygxRb~&6nK=`PkKM~9(q!2s|A9+xX36c6!&H)x zM$9hRi;}o$-t3Z%l6{!Rfa5WCjeFTU9Bl4%zkJxVR&)1Pe_Cdpj=h=UL7exe)?#8b zJsx!-1vX@hyRe+Qm@~L9xq7U~81c)`nK3%q-9`wL6BDp=Hm$OlaOR(2l*18!XAKpw zgE~2OpfHjp#|Tt6;R^iLM3!1V)*;OYkO_TYYY$3QtftT05bsvihiE3Mz^)Ky)sLx!Yqv|-ttQ1Kz zBV9lU?wiKBE6^RI{#B<15$bqwK#YVS+AIj^)Y>%Ghaj2^gbZ<{_v}Hi@G!5qR%o;( zQ*B-;njf&WRzN<&D;ABkd1yy3(`+Xuz2`LYmUyzum%ewfbvKTngh= zWH*f2)7N~OABOy z%RVM}HA^X*ulS$X5X$(^SIkN}P| zh(~o=pMLdSI0m9f8>51;=LUzWIZIEQJw45%mNdkgHvsV2 zBMp812xEulEibDyUgg^&=$Kh@pa(0lgHb2V{J{Vl_{$cPw|GomfUyMl+=cEd_Acgf zbbO4r1DBm2qjOd`qdrV~g(J^Q&kh_L(^`C#oUiNBfO_mU7B$itVz^{3{!{5vdR_<% zPwyYxp7J*-i+33TQICBW=dTqp3rw3;A2ugpTXBDoRVWwO0o2SZ%It*lUj@eF#MWshks;rh1ugl36Mp%^}*@SC>}xRqQLRs;fOU%KK`R zUs9v|FKU!;tx>+XM){T+<)byqZ>&*1y+-*pHOgPCQU2o^<=C?xvfs6u)7bjq^PJvM z0CdmHHvUV?R-zVhDwh7%bnYwD!f;hOIOV7rlADJJIuJF~Oq>8642NpbS^rMZnN^z( zdUtPMo;v94{58>mtG|7DI%?|;DWeJx6IqAv4Tb&a~TWh(V&N}MB)&TnH1@5*+@SS_YP!pkb2Yk%&#}a z*yuETMnv1d)ua!CRvHBlcqi)uef_g|^k=VsX{V-qG!SSgnC^Fh_p-s{E?frd9!cjW zGwzOoJ-gkB>vI@~*>7zK+R!Seh1+DvcCI^yk>F9U{eXDK!?C$RcSTUa-<9Ftt zvUn{#f7(A6iu(W=N)-o*?h&0rQ{ZFTHUl51aG$4iHmJ^gmJ22qMtrDeAlW^XbcedP z?@GFTJKX*~LvHd4+`Bs%Ez?RCqpyD`d2w=JjVH@c@`@q)MGBFBmoU>fQA&@EyI$qJ z1AV)@2d;E4OPi^ns)!pBdOzrBmTr}WW^H~jE zXPRu^+`*Mi(?8=a#FANb5oe45Y5GAB#JP&YkKIkr_EZLazyhV23p2+y+utt00kT|W zV8qY*6|t`%)U4Q5d+V?I=}^^xrn<^C)#z0W z5@=|JjZE7pM*_81_a~J==ao}U{JTYUe60I#42XX3|KmIV9WAzF}MZN z@G}eKlVK3CmJRZF5TxU&Fi1-|V+|j*K)xCV5k1*dt_gy47Q-MB`y(1eMJoR1!XV;4 z7M1uLK`I@A!$x92aT^=t8$poHu`rd+a`EFIvq17;5b-dZ%KI#k@i54Y2r6=?n2P_I zFv#?Bkl33R6)cF`4r8~{>|?RNv_KApL1dlJk|p+W3uH7561Drsn}VP`)R_%~MD6@p zV^KLA2ANqdzVmYnera(x(NRs_hk7RUo(kOdJSvRfaF zp|f>egcYnUAUbnHoimy~)}7ws^)|GOqIC&MAwCzF=;)}dpJQ*S|02#l#YkXtXeiV>rq(D4U(!?}!v*bxRSGXtktpo(M^y2dDoN zNwK>?Yr}gE>Vh?HKKT_%k*`|{=NS98CxvA-M_ed&jTzItC~JaWme7YAu)hQb!`#iX zrwJb`n;NjoFQ9Vv!dIB~3&6_v!_7RE-~LYME|IGP8#&>l@~hV0(C0zc!)YFBl&HZ! zUr3mVRnW%IX4$TPH8$`uBh1!2Mk?U)i;S~C`OJ&DyadTFA`Alq2v0^i@As4=8!F!y z;F!Xh`LFfYR}M@13@af@J)rKZ=Y5uX-a%sOfh_)WCP$P{hQI7jh9g~nEanfpc^G+` z>98T4_!{>=?ZZUSxr02bV`d|eBx8wc8|*>9dVECo%LPWk@nIPrA5zYdHxEiJ&B2mC zL655dIR;*FeETQD#9SE9NShE~0~4;&t^*5$LFFu2xoWhvA#b79X0}fi2e>$@+9>DF zJOVyCXnB~{_wd<_OnxHMlk~+1_lYHP!IXp!&7cIZVey{c_eoy@wP?-jd)v7#P8l;= zFwYP+COCc&(+q1cc*$k3Z|E{D8yq`pLQ^?sL$H}xmCF^frF|GBXU&NURxYGsp60jN zRILqIef!F(%6bwqfnm021m36mC4v8T8~;L&O!dgbU~J=&YB$qrb1l3xTTD8AZ*6$Z?bQaU**vk*>#E~hQ3G6j|3ED$#~DpR6$lT z*%$@r{1sEQnhPaZ1szz*t4@c67WiB?(EC+*X41ozMD5L;ErSC0`@YN z3U2rKc8Jk>|M0|?2Dxjq{*VXf0^X81`UQNkQI8vjx>l&cpy-r*SW@9lH@h?p$ zc$)7gpdUlslIAx0J8OVz!S>b@0RuwjgAX9Y2(#U#X0FCm`Gk$Rd?U?xCMpTy$1j*A!gM>t)A!zxMXcHeiM$=`iAR8eSDRe#GHMu(`Jqx8~a(C<*(s7(}#7goW zwXta;unTH93)3eL($?{b)Q(*GQ1BKK(?yK8;9E%CVZAqz*s*xC^lU^2)}hb0NoE>Z zVrqPfUGU9(kB>~gJu+`YK#r9kn&BNdqiFy840~{3 zxt~4EHMO7{u5}UD;>`)hj6EzLJd{$-`hn1Jnfsy=MG*RTrO)I2Hb;9;xY_X|$!~UK z@b=G=HVyaS4%(g_^xEA8+~Qd%a-O7f7x>T2?(Gf$$yZRZRgyoBgDz2OOyH`a`*WdP zp^B;t>QIm2SCFN{Wur#%={pfJh2RhTebIHSEq9NB_TmD6deg-w#l1a)*Jbl7&5Od` zo>eGsBayOs`bZFeqHYaU9FUr;@C~0_4sCt`-GD-V?QjtXu_keIyr9_RnzMK8JLrx5 zA%FX2H89BcK8LV=yprg+Tei67Go(XT?oFn6>Gtvg84yd@_}?-lTg01LQcXP_(9+#r zj~zdBY60Jp#7@8i>4{8AK6GSmjg)3(sdUrIk~AaWtD<`Jucd964aQ$u|??PGDTMdt|wU}In8zh+(pgN2?3)09IoAlc-p zgc~}zH##!Te}C-S-7X^ zd;*UlAaRb*QK}QIptzpPzYt%fy0-9#u%r}SCoLuahz%+RQb>zo*fTK~dc@eFq$dXR za2Z@X5(e*ujG_-P7-GSBI)aKPSY@^-bTIzuE=kWESi6?j#|z65QiqwBIZgQm>i8zu zvq}exDca@YdyE4*q=w|quTZEtU4bO_swwReK-Akd%Ua)R!K$2F697f#rL<0{53PuyZ@ae zuCme$xF~|+J1_}n1})4hQ59w+NHoD?c(|gv$pX^N`@W5bVfFs z!J$#%n?GUBKrG;Ayc!r=z!KshTS(^Fq7fjS9t+7Ds#%A2RM(8N#hm}{(znb(o0Q?x z$S&?Nlw-PHo(WO3XVxHOV3>mpAcB+3#7q)*<7pw>OM==z4DjnxkIa7|j!Ed$gM}KSuEFPDA1p3wtQ5t2Q zRo|K+N>k*3sQIvk*9?fJU1hyB1ET4dSZ}eEMm)4^vfjQ&-uhFlEc+&T+a`0`%GrhT zc7_ZC^lhhk`-v@PLmVb$3h`D8`Iq^T`6`bqXo#I z;D{K+lS(Ix`_efrMPU1-Ep8UqX;3F#i=Xj|NuZC2Gea3HI$+Hg-`1Ng71#264QQy4 ze}e<9H%FIlz^#Eavx+*wNXfx;u zIL}5~7tAM|o1g4F@RY0!%EW0%_J!A0&m)U}ev(MPwU+d(2l0TzVGmevRdp>a`qy`% z7Oo3xVg68cEiC-;yHE?cuomX^SJ%RVe|#5eVJxhLxjU=n#Q86sBs!=kC;mY=C(hBE z7_}wPr)d%9{ryQI{Zw+|-C+;t+EG0Y=KkHgPz#?9Yhm`b>ROod{db`j?g?w5b5nIK zbp6dqqJ`dCy#(%eNuTK{8a2d^@+K=>%SqjA>M?bkRb3aepR7w4Ep_%6TPpMy<&=jv zzB_^b;#9IjS)aLGZ|2e5s85q4J0Gh{3z!h&Im%i?uEq*lkX<6bE-l;=j*D4z7g@!T zL&sN65*^gjO5Pi8C1;*qP4@Pa#s2lkUJT1VV|Dc$FzfNUEdQGyGfpK3+!^-%HoYlP zV_%;p2h6O`|4%M0d?KucR%}A$v876{Posqye^!?-oLud}tzj*+%&(RW+Wu=@I{3|d zLOt0aAI=8T7gzUy*8g^rNI#WqPzZa#w7Jzhpe1xqCr8Yi{uHN~TK&y?z*KZF9@ar~ zXLV1Q{-t-JCtM%aLQ`8cPnhyD`|pQkPjpq2z3IVs zk=;KRmc0S(U$tI9mcC#mvAH3$|u2sNAcM4OH4Gz`RRyDtTjeqLlKt#szobVehGInTf5jRzCN6 zYm|!zu{{=-d$^_1j5}Ny8!t>`OBt810rJj;^I~$>8N5X)m!@kjM{tolZPDvmPAjE( z*|dOe3OH&?_2Ukq32b5#;|4k}ycz6|%_bfl6otzlmz81zjn!oHufP%=;fcw166@{p z4{M~JDJUl`1rh3%7?~kK(ORckhde0S5h4RP_q0UnJVo$ zZfyvq4TJD*Us$R+Zf!PgG8;$(9S}C1Ic=~25axDj;IcguHAOKet<8c`z3qsBe9rJ~d*Xi1^7R^;z#8!c$mvs=faV8NTIEBVA6Nfd#~ z^vkt@ra2|wQ?fwcBfS=qHo`OtIvwYaz$LC=w16-0y?j1*W9+jP+5-j_?lx{QUWebX zNwf5#rNP!lx%^Jxr+#Ro}_I2P_=@iX(p-o{e3P(B}%scez(YM^gr$;#;$MiMp3oEtlRjbzvhDhWB(_|46~CT$zQfPW?{XG8larGtT&E^RPX~3KpE~%nE*_&dZ#uP7V=@le;nl>cgLYr z)&SRQ;G&m-hcxzrdEz(eWnLX~`i62U_yfp39_JsPm@Oja*Q~d3Bm4?}3uJ<(&1K}r zEaWUtObq%e^SiUgwxxx{F$A}X!no{+kwFQOLmaJ*r~t~$iBw=)9C3+eJ2_lpYqG1q zyQ?pe+}b-Z$e6`H*2USB%lH)}x7j0CoAG5JY1uV?xIcejBHfe99Y_~W4#7cqXPx5` z9|OA*+qWkNyZWz63?_GOxjNB}$L>Ube{W9$k{N$zmVR{!qG5$PB05BA2?GTu~|u3>$#Q zx8ohl@$9(3%@;BUGPzXNuZ$A*V^q6{3_*3t^_ugRe$@q!lYX18nTntck5&w%#$-P| zNwCva(NJouHgKCQ9 zBcc!4C?@TeiT;rF`u7M|U7tmabew;XQquOF^#Ko%HgkTA-Rcp;56G!?h@(B3?C_4% zfwcJ7I2V}+)NEqBO1h#3QR=wF%_*=cAupQE_t%G8E>K?^uV+%iHbgGN9^@yD&IrXY z?yn-{K`f)lCA}Dg*CQ-s~}SG6LxG~R?jiE;obZO^+?&RBQtHd zd5W4!H$T|o3RLXd@j9=h&Z*y;P8EB5AY}bGHSlp_apvdAh|SBHzC<}_gLMTVnDIBL z6;6BF!ZmGA=8oh*zAzNRwwtguEmv+C>skW|KcL#(*>oWjhFcU`_se2`LXd#vTLZAIh1BbK?eZqy!?RWyQDgt1eSI2Wi=toe~QtP$B_K* z^V>-$emWvFh;r$wCbz*;N+lEp1R+K zF4_Ve{B`|(y?s}e*WDQ?fBa)sS0&{p^VK=?N|ch^p4gq( zKA`GlzbdaiiTUf|RZ$%Yx+pwCty#?` zFR)H7lUzglcAqpP36Rzn97VdcW;N2#G<0N01DquQKTPllsXe}g|9vdL0wg5q>(4_l zyV#CU3t25O;7m$~jKPa(%&z3bOu_01V^5f*0p_L-bh?KUXwDbchC$f5KEUb+19eV( zD@D`BvBFTYFp*0q*Z7@eC%MZit_pQ&)fTEce#=BQTTEp$<4wy$F>a*~;5=`s087+sR=D{M^fW1C9-bHQ#_|aay z`J^@5Q6{ReU2N{fE+^D3oJ`ltkeAugm>hUgdvl~wL9x@w^xZ0GVD#|uUI0IJ8gGA3kPTw%|PwT!KFiZW{ zBI-XhHSrWHB)UQ*QW9~~d4X@!!@Wx@GYeXd`uZM7F00`}nZnX07pWA}_Xofg4IAwv zP_i*@lZ-X4=W=Rb0Yd@2tf5d9WoDFa_q8jz$6dDCktV?Uvunt7;G0u49iKy-i`(X|vmFO_K<8$9TaQ)@KEdq7Pt#gk3ht^DZ|LQI#ziTH_)I>;>opaSs|D&{93nD8$;+|bBY zl&_5q9yn8bwYwElP>JFr6sWWm%r!|Y59!;l3Iw5;z};}HS>V8Aa2{eY%|c6dsO-Z$ zrUCa}&1$qQ9HeySLjMiEc{5Bde32!_QQ;t~+~uLc_sLeZwEnPd^e6oGGn zR_Vh}^hM7|TmVYotUVw9nFiTPG??oa21AVq-wm1*&IgzUUVqlzH89vanAj23tF8Bx z2`VOE_(!F~&DLp>K6XK%5koo=$m;1n?Dcf(13g_g@`hgI3}yN|PHHHps4!>Q9_;+2 zsy|~Hdz?B!nX#OleCr#^JSz!-iy4*X^ccME@la1_NpPzt!PZC#a(S=2zQ8S{ixY($ zr9}HO`P)*3w8_k>N<^LYTeB@H+R$Md=V2}}?dGx;1-mhivCa}|E6!GYZKfq3&Wl}AFF;rXZp zr`RLRc@w4aR=s)r-Wz!844Jh=@qQhBhWd(F>}Y@wV@6WkKq{9|Uo31c;eS zt1+2SdC-R~P+A-`ptD*$|LO!=j`TN>fi?S*UvYX#wqRH7nR?YvhpLLZF~N>fP1XIg z#e3QU4uCF>0R4&udQ~~l)(FsBEzr(#piL2=>n+f)mIIwz3R?T`7U-UGpluPL-?l)% z;e$3<-f>9;=vGF z3%0CKEC#ngYJSFO7333P5V4jG@>CF{?fEcBBMWVVeAEK@W*9{DWP|Jtg0vUHAPo^z zL`5pg7s4RoJ{FbuTR|#q&xAq5ZETRg3WBtchC$j(8H<0+0?CCz#KUYV@3TP0!XPsu zsL0q%#s6FwWO^w`?6^f`e;7ov5sR_d(-z2qFo>j^Hpsme$VeDOG6WkWX@O+IAhO_Z zgIr*N91MfBl#1{C+yc2J3?i$478U0i3nU)~X^x=saSPR4lHlX7tZ-;T?#1sV z1w-#n7?wWkO^Q-}B1V4E^zm;}x4h(1<^cL-N>@Y5&{S(rBw|VX(3^87s>CIoF^n#~ z+MCFfema8u;>UyJucp2(M1CDYb=3^9+TjK$t;Btz6Rd#M7e_(HHUySI?f?a1VYlk|tWjV<}%!xkS#BV$9r%HRklr{n#{+y>2``%uw)*XjAP7vW0=aOvB7qQqan4 zF;0YM1zx=_qXI@6I~MbX2KPs5o^4*4vCC?_Spb=sT3N2XT8hU1SALs!Ry4>=ilYpo zEjUkJh;jRj8eo~dEj2!vpBNh1xxWYFkpdiA$4-nZFnP>cp2IRoi$MkBQ&;=QsX2#- zAyc436Fzm$T*`e0cWz1c^mgso+1G<@ds`EI0|`aXMq)m^+1YAPYFd*M;in8u7^Sws zr(j5vhsRBl_Md@xIkD3{Q7EKy#T}_!dIHTV*_+E0GZTzEk(Zz-GmI!Q+R=tv0?u95RfZ>R9RZE#Jci9hv}n^pqM7NP*aw56{rY$e za?$?TQ&MpI?d8B~!tGV5`5u3z-zWm1R&|by!i2smsxC!**tpOFo*q2L6<~1b5Xita zxsYWV48)`&V^2O-PPh`U34*mx_+YY?P@OH1{5W5fh*C!z+{>wom}vX5k8O&IAh3>m zrwm34iSG?5q}eFsIZLubKGM^dtRpaOa1xR=%=DS40!EU>?hZ*d%}Dl1OR{kvX%`oq ztj#!XyvNWoKHPqrk97*HI!8jR))`iBEXV4p8G%{NhG^9rTCyKs1t|IgoEk0WT+=;O z{Rh#3wQR+1n;rRlE;(38Y_K74Wtq9Khsj`& zl9G=99vPWRh*-mLsFYyays6?&{Bk1kw>@R@+Uw11!hYt-q(rUnr3UV(b6mn@;LNIv zB$KGkT@u!t)S4z^9_4Akk~tzdLE>XXj*O`cZhWTgQQv2(R^I!vUwIE$lk-D0jPHnu zaL#@bWa({ej&&-mKH)DWl46x4EGxXJjn==mrA9~7g*}<#&`3JyX-nb&H|wLDqp2@> zm8dWO0#mOljzg0%dt@1}9Kug9!ol(g!S(Fk+<4}|NOAu}*6qn03NG7OZRDV;p)!nS zj1l^&MoFhOjBy*Wr!+j>V_euAEiz4{?a`?<5imag`nAdJ$?aIrmJ>Mx-P?A;XuG@m zS-O`^P~aaLNwmMd4pxJaw{;C9`x4##I|q9)D!suRDl%>0+~-->5)gEtpaXH#@za9% zLnbIH850y^R?fKhP2Xp2q#6J`q~LAlz({I1f7>9o;om|>R#=RqrGc(2W2yvd^u4QD z{o*@OV_vQd6ND>EkN^#7{=G8m3DuG_w*TBXhR3&}LGv&pA3LQAjkLL+-51iG4#i{w z1f+cn+lCB!0~TNkPx9%`M=fzN^3va|Iyq4A z0_{vUT)51Y%&$Ce1m)ud^|EvUZFfe#xBF>xE|XLop8a1sHL;gp6%w1H*vWGen8&`DEx7SyaIgWPS2sAft*Tun z>6C`sP9Sc+F`dfhC&mXRaO~95hsKXn)5fwZLfVKTrOa01Zwn5CjdoAuXeZV?$luaW zmhx9Zs+2zp8L?^1hlW($sq-OzYl2r}JNIrJVNS8FyKjX!8v2~(jcD|74MTOxkxMllO|y4NGfP*Y=< z=FM~uNPL(c_^dC(Vyj7%HsEY)nPA@h2ULAh2X<8 zzyrJ^Y{e(|MV+^pH6GYgh7ixCVl`|YGq&4D2Ha`(ps_7w>|-j|e(O%h7+OFAf2Hqu zLUOlGSqz2+*i_FMWxUFsA)CRDv3h>!B6IRogbm^YLnHZo7E1Mwj7?7dy%#F*KGtP6 ztDY;wnE=KCjE?tS#{Qbf#2yZ0egNyXz@m03+{<7(0|65ewH^yBYNx_`8B8}p8nA=~ zCR(tWT*12drOo7S3(UTZLH3ot&S1~lV7(St)JBKL8SJArSf2$Ju?NTbEe5;62E%bs zjwND%X{82mwlNrO#wW*;?8TDa0W6&xiGU4lNcDUpc+O;*j*4ls!}E_Z7O%m@Yv}(7 z=QzQ*P>;*zm;-#YgKPR0>VbEpv(gKLRrtQQgjHR~C(BWT#24!qlnbMaIv5RH^S}$I+cHJeHuD|T^D^mN0 zhSS)RLn6$Za#IqD|QQRl%?yY}HqkW{Wnw+nQmDHT0;1!2gn$Ht!f zFrx=a%VBu`kde}`fs~PMR6)|+lO7)`WX5oDg>*$gSJhwdWAwJaf)gkvUi+a&nTg$~ z3h{lN-@q*FexHr>>a{8WKTpl~8v`PhIRAI%QWJQ)v#Rq$y4qk&OjcBwjgFZI0&}`h zn>*eR@yYA#+CV%%RTvr>#f=@wQNH2ia59}uk79;lJi;iPmo{38qLxZsL2HxSNdZOT ztiE;4+YyD~x_6ql(*8`{7%o;~3}eB%)AVhT+xrI@USxbnFF$6+=oXJ=LYNpIhn+JimBln?{s~68 zIpXik!8}gOBu4k;hco0Df$FBY0>3qprPhy`d!c|#=mT482%9uJ2_`3t&Wc-my|}di zaZ6?E%^gZ(7IfInk;Kx`!c0a~Jg2+4em;WZ29K3_aqX!;V{su-bqllprQZPtb_*hucyNOl4nZ_q5TX0F7-DS*qTWEr5J$3Sk1G}) z<`vfp4RK_u%_~LsW0u7HsW$I~U$E0THKa4W(OPw+eIZU)nw|iiFB3FCW3;SMY$5(rGR(>9w=1v7m! z4=VeZBwS-56TF#g0I?yI@n5Exl{BkEDw?FuYZKgx7Oi%oSn@T*h)l*2`)PS0tQdBa z7sD1IhV4k*u3@Y@HI^E}&gKnnZd;F76#V#6tRC?#b-RWzQJtn{-+V)b;}E6^XlZIj zCq60aI9i{6^}fe%OPy3G6B|aCy;qiOBD2f8s+4c3QeN(QAEnq`$6@2ki)0d|$m3DZcR)eyQC66wFb(w4*=4q){n}O&^aiYH)E3pGnr;7c-02}x#7L#{*OkR$$1o+&J^c8y- zvspSS%-exW&I;3+THHr6M06E?K` ztt#c1O%L6;BVkM7u_v@*`46g;mkW!E|G_Ho169huRHgi9Rm#^@DaSs9it=MSM8)#I zty2EKs+9k@O8KEG<>yx^zoAk&#>r@k4KnqmpjWR^-tbDG#MspzX%8K|hMomI+v ztCU||rTptv$~RXjUsR=hQRt7t1)G>##fF2Ec==wW$O_@oNY|BRafw)|aLJ%~j z@uu^cUvG-B&Z+sFh_;TaNe+URje>{0lXZby|3V)9+3R1L)Rc|}0!n1Me+RtR4kWhY z;&1m*Dm#&OxAyPc;f~*$#W*B8K9)@##;LYqY9B7+-m@*ypKyzZ$I{5HuHav zkqylhGEVKTkd82=Ap0m26%mQpJ!Xbb1=g)6kAaO@bT4o|w`@)OuJtSp1F znQwVVq!^vD6tU2Fixu@uND4jX^~WT|jy%m|@7%A`>o}+VE0Q8NWhtB!?0lXrEUP(U zwb)+cS})5C=2!3KT5tpQmq6FeQPUpOJXw;+*yWc~Is3+IjP)q6^37!}OZn|@g-$-- z6xenGAC+I#{)Rqxu@+AASe>*Q{PSq7X`Y~spAE9P@Fr|GU`Cj&cZ^iP_Uks7x62k0aadOO z1ATUUNIG-b!UxV#YroXeuqW{o^q4M?qnn7w%p5NughjtFo(@f-@tVFgJ78heK;;Zp zs+to6Tear&RL@`=0AAt#uAH+1nx?bz*YhmBe-5WL|SO*Lxo)sQ^Qtf7XZLWoPW>roi5)?H!Pmc5s4tBIduxY6%Jf_FULi6oRMjIC> zm^tnrdcjfd%y^V(%|i&g!&@(%Bi9P323|Doxmopx$~T#&%>OiZHwrw*!`L@*RHLR} z`ixB{3Fq93VG)2C>?ns<>Wpe@H!gpv5d<5&TO4HFM;!v`Vypfe>U`C7Bw)zIvT(<6 zGgHvSO-%#+vs7AWMAV=9L`xtcEoNDE?l}X@aticb!_4UsQ>7>!LS1v58UY-+&RIlT zd9K^H4I8{^+|so#Ls#(hqn(CQ ze*22`7Qu(!#_FxNIJU@dR}tT_n}h=^Y@guz2(yr;W?-uVYG`?YDhopIw2kc2) z9|^dL0qwD*MX`HlUnHO?OP27xNEKuiL!&4_=Wm#z-8ESh_w)`#0^ZAjvN0i&V)wSL zNWdGQxr?sL-IBwF?{3bxfIEg|7VNwz=H0HbvFu^XGd4&kBtAt8E9j}sMe4jWt|2YD zS5xv6j#TIE5d&y=WtJpn1DFq1;k6ZrLGVP%mnD^lUTgOaq$BG2!~5> zSRp9gS{i~1}^ z32xy7cXC(Pgt)(_2@r%PjFYNn%{Z}Ewpyt72TD6(V8@QU8cl~S?oBjx`mDDmnmU(T zZ%youdDBNMm5JT47fHu)iV-Wxd(_6Ji@=)gPzI(??5B-xnmN+>+#V)u_|6~D$dm~^hC?FY$HOy7wy%GVa=f~#{ zPmj!L2*_>ahh}&O&ZxCNGK*~;Se#%Fb4@MihH8E3b*{xrDaMT5EFV0SLeAR$&~TY^ zQHG&=xqnA;9`ExyB)tJ`Q45T-u_j>rr{pkLEE!}Ub`cYJIC_;Rnv8}OBDZ^ z3AG&opjsZuV`B$@wgo9sa#Y|dq5GQ9E>lI-1$C&$@GHpD=CVf2KMLt$OU174fm<@UmF7i$SNAHEH6w|c06ZQ~QT(_Bz&aLq{p_8nwnf5=}YIUgA0OO%6{?OsWA+)bNY^MTC48+Ij< zJkfkzzYK__+4x`CBL|8%u%sI3+MuNeyo?<`bZP-#ImEt&eW~$uQa-_B?zoa}Wr?I| zB|(}IaPV2lCYO7vQB93PEY$oiJ0%V$frK5P*$+k^h=`5eyc(YfM)T#eihJrxNby;NI*ErStnId@$KFVy^F}k6yGG!}Rv; z?%Lkl!$ObZeeApdm!ePewa~ir+|}-RrUPgG@lhi-eQ60krNkw*1QP^_wW6RjF)y7+ z5-!Yq=__EYy$gA0fu^n9{izJx(`;=4!8}|B*N%k2dx25(0R}@XI4?v{@dPW+7BwA=f4Yj2 znFDLb@~QE{a)i`j=4DnWzd#+|0DD$Qu$ZD2P*?cj%#@pNpGp?teB=jLKIt5-9OdQ#K-~xW4AMJFw+0}T5A%OO~ zn7&kbStoOqa}+*|!qC*1Or4SMQPbV%9p|LEzzcjaR<1H`>qXW4=qPpz@+x89u5K@? zf>lz{iEFq4HQ~!p1^&(!>D~W=4_8@f23(}L_*P89(Xtm*%$x**CkxDu{cl_azj^xO zSg?^fzv;!IROARxUPHvvUje?6|updQk;HdBBQmCPaNHq;QEn0|#%kbYO9 zE&R9>g=U{BH5}3|4$GRgjXzQ{U`u-ixP?p_7!@A>33CQw0YBp%K(YBOA-3IzWR^6D zl9lPPkgTDaQ_zm;nptl&E0i7jmN{saGJLex#jQ)7wkAUqCB{G+#h_32g%|u-5AMy9 z%LUwvRc;mdhE6~|6+c#_v|*{)uJ{h~pf0C5lnfa;6EOXk*@4Myg3>gOK+jjHz4GZr=dE4?M>n-+e5f3x}r}cKD zyls8PdW*!I>b7~?oSCyV^0wVu?clfA{6lqT-DP1|EN?ps)?4f&q`I^BS#Pm>klxPO zX1&G21ihVW4=u6#i{6?`XH^gQYAd~+FTIYw#jZwvE0bONwp-pV_$Q0nN_o5RIqU5z zdAsPpT5m6rw~HU4mbc^)ljk2Xey2~&+fW*~w2Rv!B8fB(#soj->67N|>0(|7z+CbI z$475a47dM}IrKa%Ls#Uz6Su^%ok9ZVz^}r;*#b%hzmh^Yp!>U}F>9CMTQb zj-xqEjBAdCLhd%EyBWFw~s5JABaF^DIXP84>hvRaCU?Uy#X865tlBwmYO^omKK zkL*`v@Ds4+TV!j^mWrGCy*6m5kbi>%tv6ejZosanS6tFoIlq(61vG3kgeW_Pav?DO zM0n9!{KRkbeLXf-d_)$lkV(W-wU$ZF^-R*LCc&B>n}p>5{r%i+HTjFpN=LuRWQc@HB;X6fUU4vKCsH-z+C*Ke9oOC*`z4${XxZ%Di+>Ev!+Nrfla#cikkUG)=sX=|oJYR4;!!yT=UH#-Liyt-I}bc1BZD$=8j^j%&6VTGqMzGN z&Dan}6uWVmU%&L5t4Yrsiw7JGd%*k~D{Eol|2+$}a7$PV^9CzxVZrNXp%$`XEzIq! ztcCgid=_e9G^~X=+bYGxd9R!yI+#jK{8Tt5&enUQv?tIfx_ip4=Kk+9MEaA7i4TN5 zpkr(0b};83&q6JHI;@3RS60@-?C+k1T6i$5h4u}Vwb1cD&JZp1RLc@L?~?51c^Wmu z5A!A~x_%XDHf2n07gpBAtY@dBi^eJDi;ZRSMfq;t>Ew$i6CFx&=2pE&Kx3mmO^j@R za!Ojjgc#3JRvU8FmC=Ii68VqP!d>BZF_UgiDLZm#`^FifgQ@hA4~2WlmUAn~-g>6k ze=4#U!m`gezj6$i`P7swe`bxE?hAW=v)=2ZZC{@z2DD7g|IaKfd_1g$CTv3Gv876{ zPosqye?BE&IJ5eLyTe*&oL4CtH2>L@bnxrTsRs`UsTxxn*PffBK^r^1o^NB zOq)~50~-JIEY!hRSO*R5l|5nlm(M~i+#1$GeRCyGnD(VJLd<2>G? zlugm4T*J6_mbU11V1w7>&d zzy=!2ljdK5R}~SSm~1Dp-cC;5YHmvA>8ap;&XAsHoo~6a_yX=)9 zER51zSL7`m-gYIvpS?yFg>1098TdEobQUv%2^xKpUMGK(Cw&C|#}Q<^8GaLX|Ik(% zkvD*Y1(Tu(VEc9?H3Oai(>=>(OM}g|4Ty~!nDZ-ty7y_8h|%J7FaLm1{arOI;(JtV zp!&X4!h*D4sgsl}JMi#crjqFVyVRunl%XGY<1awE_VjYP1))+fEGV7n*(Iy;ruBdzti=2-4BDkRxG@|=js0+zoVVoYpP$DJE(V*!u#ap-wx5=mt@VhS!H>0a*=<^4X zC%Q@s+p&WO?qm0GfoT)1|A6AqciM$5vNgnMeI5!rC;S1Z*(xy#|0-r8$9!q5fubkk z$jR>!XfE5WMPlkIt6mayC6F}HF_7X2_Gk^uc|*u)I@g*&Sd z`Nic*`L-iRG~cp`5!6Jc&?RvGE^)p>q;+YiT%?w^Sw?EKl0abFR90#fG$xU(6;hIk zvCnC%7rRHnLVTk!i6`brq6k!?U#<-_4N3X>g9UnpWG$r72-7I&beul|m$)#>0=~S) z^YVF|#>l>BD4hk-3>a8AZQNwM4!_wmML?@lE 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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_bltintdr.ncs b/_haks/poa_dev/nw_s1_bltintdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..33b3da463a7656080e6315e2e3c2800b5c32ac2c GIT binary patch literal 43748 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Νq}t7l z+T08GOo>US@2#!R`u}#mx(4GrtJk9TS1&}Wx0A7gQ|~BEHVXO&pM1x7JzscbZX`CK zYsM}*|7e}EMD~wM{UK!y-g%1j4o-GdbKi2dC_JVIza=>AF-wCBLYt??FM7#Q-a_>t z)0&5nztyWinj=>sb8jR}eH!XX%83dc81+qycg*pVLi|zVvsPiQ=kbohR%fbW0jZ8r&ZfY9npQX}9 zBclG)D;~b$O54Y|KMnoxfT7{Ru4UW|)A)vs9g*-T57?KuHWF|%1KPW@7RBCO z1CfBDELrb)nJUOCHXEY=oj+%a_RwTe+}l4C33wL+N~vEY#oq1Rk$~4ha~EEdJDkI- zxZRv_0e1q03#er*=H2dziR@9!Gd8*`iTD(iDqy5Guejz~^QN@uUQNkYI8uXGbq&yP ztrK^G*;tH){7cgbuI8QVn8(nxq^Xtu&K%@ku)TFfz<`i>NjwNKLY+a##tG2W^D(3r znH+y!vbtG80$~LINGm2Gj(G|3Vvf{vgaR`GdU_=mFLqqqz(2z25*$`YN_Y6a>m=4V z9z8ieDY;hjLf}di*MH1R=pZ8#VN|bkv@fA(-#xH9+1=B>qks6iWMB8r?kf`b_|-N% zCK#e&_pYZ+<_ip<4R^ChngMhz_66YQcfan*6pDBoX43dba%cq0OPRgEa$tg7gi*k} z_-WRe1E&rz3ZLz=`rDK{4)18=As}YE3{@vv2KA396koYr?{L4U4;GZ*7C!K{|*qK+e>8QoM$)?VLb=PE5=Q8WA$=xxTStvD= zyJOFgj^mUgR*?6ojm;2&DyWeROrJPFrQ?&yZQ0bp;9E${6fxe6@2BvD^}hQ0ZHqR^ z%tmxz9r}EmWTufNPL5Bp3*K{nvVg+95ik}Mkc`9{<}UGm$pAF+v6tn8hf>N}HyBzj^ITM-2txm+%z3=u z$Lg7tQyzBwNb-jrS-ky|q)o#;xP!K51-*7>9&ho?7dTJSxeNSfcK3D$fa-ZAk5Wng zpa!Ny$#H?Jgzis-c9|}!E~rC2hHpWZ4wsD@#i#E?$P|J<@b`Jwu}bb91?@$7{#>7n zBE{XkLx(fD73M~MckfEHw~|Pi9DP`XKWnv`Iu1(DmH6&QHj6Pok7+^qo^{T_cWVihpRHv)(8{CEY?aW`*v&8G{8uiKqS@}t{p24z7kVdH=Q zjBF8aVo5dibU;h@cr$kV(5(f0e-4#^`%{zYqv3wXxtmoc>@91*cbV) z*%!fLp|{Qq*S0IVK;>srnXr7E@&2Q;W+%%P$ z7|su6^Tp&^@3;iaxPeBJ&?lDYy((qF#F5RX2Vgq=oT9^FSLYos1lsRo`%>j)oy=9v z(Re=^LtA6Abw=($p}Wa@K?3asuJ*-PvC_D$msRuQG#nD>Gvhu!jG4u(VYCC zz#;A8^%LgV#_uZ`u%)8{+(I@Dj0)fU33CQw0YBrXfwB24Ar7*IWS%7&0n+KQkgTDe zHE2h5%{ZIQ6Ur{V%N(>y8$PG%;ys3POc#0(enS)`$3PmzpjY;Vr~OV%{*>a{F zd4um#0^>1IHhkhzN1%7j5~V@*S@o`2qBKS>h?)*rc+G-n+V$35vmly&rF9pN(#Q#$ zH(Gb!C3pQTR_1r3+-;RTZRPCUa(9L-1N3gEx%;YxccI*E`+MsyDxryonSX8F-6VJ0 zAGhveVorTK>`JD!a<|ia+QIyyoR<2|y3N9{SnhTeth=bpr@piITX#{9Pj}~Rx9;M> z1l^r$FD+3|O?S;}+*J?wo+jO$FQbm$#W?}KE1O+@jslh)mpa(B^x zweDUlcNafEk+Fi70CUUJoFBbK zJ&-ie7x5@Ezqc;@J^u?RW513PT^%JJBD&0u>M4PQU3Uf z-{#9_Y^?a0JhZ}0BA%+ZOmePgl6Ex-p6RhkNdDh?iifQh|6#Mz(XVBhRBwN7@g5Ir zgrV2{atvL~l)r_A6r5eM6HSr%6%Z^A%*9ul&$)ACHYtkxKu~d{iiJ1Ot|_J-^3uRi zBrSf!HY;OAB!!gLRipECm2sX>G3Y5c&jwo;${%0ZdEhA-S(J&>kn9U?tei&{{p>W6 zeoHm!Sr6g?hr%8(|N6>WSor_WKrI{&Yhm7SWi2fD@foOvY*-6(2P$h}{y&_7S{M&& zVb1nSIdR?#r-=?~$%(%k&WW@2O^iAc=oP~~&8_DC-Dx8I$>hX)!XD7It#Ta9`P(y4 z3!e#VVb<2lTA2O)Gf)fnhPBYSv9cDr{^~T*LSMC60?)f-Zub%!K3bC&up!2K zl+~784P~?-RU-ddTDUD77c=QyWMx+l9bZ39bWqDEd0%*xY&*A-?CqzE{cDlE5SD$$ zs>(TF=3_Nk{#UWd~d_VsFVKwEA8e|l-*6Jag1pa_-MmMXnojTUD7 zaZSE(dW{FShqcf=uTnN>{m(V&;8*VnwPb@_I2%k~RM`Vs{>y11{mEp5eAok~&8g%8 z&3|+T>R=+QgQm{Po-q9@XP_2t3TvUUwUQ@H`|@d`gIaRIo#9;2&|XRQrqjj#waEV4 zVcF}uD#_mX;2C81FNS5W!}wQe7SM1e=D$0_ksq&;|LRW{|38_L@ZX2EfQp2QzEJnY znj+y>|2Xnwv~YJ=3tAGV&!56qJg_yjpz>aQ6i{)OH}M#+!D&h+Zplm*lYVJjunG^g zr&7NgTWvl0+~Yl?Tr`C8SiIcBEsmw#k^J~Xelk-`yZjm;?_4-POzt|5OO&!Hdd=l1 zUgS&%)xrjke=u{-!f&(*RXtdqFil^>>ahb?3Exaq-d|p*f8)) zCgAkSmH3M%b@EWi2D_bs-$$pjm>GSBjw|W)#INzDkHG&Zf^09tZ$|YGmC}g30URut zG(`a0?;BJz;0iFUSq{CurR+4XQ;ey8Q6 zWU0Wzec4K)^Y5l`aVvwPgv3Wv?wGL32}6L^{!nakjdYpUYeL<=YeL zG*G|zi75_{!o&GBAHUP*@mddqdUY1wu6g>m<98>ZXg>f^-#`&i$3}t*rG-rggTvBw zXTb40I3GfjYJ1?h=J=hw1NpxN=aOCwa=@Dm>$@@&*Nm)#xdhd#YcT zJE(U|Qr34zC~-Y2Wt$pndPUX+OV(&cFMFd83duatRZ=L&4j#CV-N6keCfa|1=EV}Z zxWx%X*dkj)oOZnHDSlS?lZvxdVl;j`W-`Zo3D!WAiV<5#b)M$;$c|%y-4CI2ThPOZ>^NY)s@@;1ha<@{xrHB#Kq%HLR zJHJYt3$EJF4z-Ka5}ReDMwA2++vc)TqoFy8$y$NGr){*LQO|B2i-Lvtrmy4^b0kp& zD$y_Z2AZa%d{4;&eV5EyNTCs?QPAl)e*`Y^3Pua~vO3Sp=kYW~>Ykx=4jyQMufW37 z#?8j-@EbO1l3BF8&p-#|(t|Ot!kHsDW2ZqwsruB3l(fcit2}-SoRN)tg|Fw(gRS6q zu*7f5sMsjY)!o>}VZ!aS|MG%(BE_M_Bux zbMC3CTV35f5;*>(FYtX+>bm#5&pr3tTjy5w_YAtb*IsZ@x8wZ&UoLU*-!#{WC+g~* z>AMDcQoYIUYp>+n^Hw>0z5IM

ZMO#E`RU@w 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 L%w*ns6UF}rtVg+a literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltparal.nss b/_haks/poa_dev/nw_s1_bltparal.nss new file mode 100644 index 00000000..e4a6b59a --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltparal.nss @@ -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)); + } +} diff --git a/_haks/poa_dev/nw_s1_bltpoison.ncs b/_haks/poa_dev/nw_s1_bltpoison.ncs new file mode 100644 index 0000000000000000000000000000000000000000..d7368cb10cc43bbee9c9b0fdb3a79c43e4224f33 GIT binary patch literal 9323 zcmdT}YiwIr9Y6Q_)y#>LW}axfCA~_THO<EtCWWmnPq9}WDPyoCyt%k zPAe)Q4Go46(!>}N0WAQ$I0O0jm(25MO`^O|TCL3QVF*6%D0b_&?6E?>WA9 zQYs|K2j5(u^ZUPF=Xh###yNB3!NVg$>|5y;@VCPeb|4rMEz_yd^jKo#@d^5R*MOks z$p^%}VsmrzrXvCtJ_YO*?+N%Av@QJRnh5faE+iLLyMtkTwZr^GTA{BHg$<(cJqx(f z7F@dTSvz2N1OxD|MW64`)^}*@wE(?bp_gZDdI6^N1aWA8JnHlTSoCP$?v~$PLecDt zwDzti1i38XN*0&14Q6GWYsWykJlaH>KEOP~7K3vEQHwo@ip%R)b<+ zJw@?rgJNq_itPr)`+X>yzHe_zvD2Wq--n{<`%caG{q+c&BV9$G?t4+c{|nvstcB?Gf;D1u&MNn&{teZZ&-wf7cRZQ zAeJ?Sp(j*JqGSVww|UzY2g_+E7X8F{dN?&YJe5d~Cue3oln0qvwWbmut=zYLABe=J z%b!XW7uVgfOkvS2-5!Bu=nx^{pd2&PiOI?I>~Lx#F`GU$^3lX7JkBIispMD!1eZOB z^#9xKV1_ufs|MOH`xsIB0yQBE=p6+aCfv%*nw!thW=e~0<!tU5a^OvCN{&@l_@q3^^1Aa?Vnk?hC+dwc$K?xH4DrVu1H#Ay1=5iO(GsV)pLG27ui}osMiRw{_WdDap^KL0;;<_0Z z*7Z89A%i2CQdZ{|`=c-Jh=vP|mDY16@Ks;npazUgXY!eBu3+#i`9cjXA@86M7|0JP z%vJq{x%gyASaUYzS+Gqvk>+}_5>*2@yAndE-j(4SQcDb&kO+~ex}&1Q>h~98{z1c^9)M z^m(wwPEUh>JT;Y^nrLjh|3m%l=e6VsCkus4#Ra`R)h0Rwadm~83c4>OcGVdrJ()O@ zn4D4O1;C))*m_*^X-9KXZ^@>o==KE2X`iNdPsxq3Gub!rJ@A+3aVySI27=3T^L+#c z%6eZwkBe@39`j%QnOud6PBegK-1!e!5m*s{f_)FSD9CK?JZha1MaZKwAGP`TRKIg8 zpZt<+a*SsU)!S>VK@$&amBD_j>vwL&8f*zRlB@wvW(RqQ;ag~SyPK2FBLZlM+K2Z; zF*~eRsC&sQ7SK#{L$<5+)8U!8zIs|eltTl=1~$-^DoG$Sz@ZHeq2PL!%nt&DgguVc z^scqie7dw=aMMR>O|lQeVJT2yZAg59{K`1Op{O z<1VzG9QdBr7@cm$=zb?xb}CD7pg3Q^nR$U;=-h$ak!7ypu1bcdHHP)&RaA}Pv(`$n zaFrv1PJH1L^RF#`^CS@k=g@H_c;cb?lkr}#{ysRESm)TQ7&~}DXSMc_Lyv&UP0&P< ze5eSJk?g}3ao-^B@oL3Oj#bZgN)|9?t&7SMwHLnJ&@VgaU?hI7*?UdeJ0uPO2X%@| zW{*1y#q~nAb}nJR=CW{js|hSVVUZm=JjXWLf;Iv6@PRwJ;U4t;s{eyHpKnIFVm7TR zrt%97(_udHl31!Hd!CqYf|Cji%gHObk82p<1fH_eah^n>I!XEA8Ik8| zxdvNd?Kqb+psGbsy`)#=9WX?Oug|#9N}=d*9Qcb5$zKo{#iTs+-f0H@>a+i)?Ww1z zf<_-^jT8%8HZPD{cDM)BW)eZI!+!NW5IGiLBl}3?bsrc-_I?jsks+r&2S%38jq+LJ zW3-M5=5Z9j8#)TM!kRp#Lr`$wP_ON$&z?hqQ-Gw^cko@(wQV|&M1xr9!+6sVWsu!5 z|8Wx-DrZJGBj`{=!lHyo9DSfWLx zF=-Hr(@xnQU?;7@lUzBfGT>z-9=-*)-*U<)nMFLgF>;|t`9mTx3XR;;7IgTu6RCE za^+;UrAFASuiw)|POmd>k~3p7GgIl2;mP5t(L{Q3jIf+3@>Z2A1OH@D4L6LM$WFxw zQ@QOHn4pXA&Kp9)zw<)G#{nX5IRdgrHHN;dK|?j@-L+pR`#>zgl>l_03iF%V#+JG| zu5TUN{?>08TWi%;#3?*9ONIWV$?j@k50rmB)uBJopc9Rt9X?#oYS6w$(5Me|NQ1uG z2>O9~Xz*VebgmI}rw{a!27SE-jcC#Fun+WeP?zY+YGx_7fTxL5@^_1LDl^YlRw}9$ z6EggOdZS>m@6Mg6E9@vn>jkr) z*B}KG!V#u(c|wD%nUFRgE<80W^}lUGTIwOzhQ?*Vg!r87tT!~sq6y(aK-0zgvIbc) zA^K0-)TXSo2FaO_fR8Q*HOR6FiPb~IKQ+jT3E|&mG+o4H4N^2Atv*~{&>&|`NV^Z@ bNe%L{3DJMV=Ei 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); + } +} + diff --git a/_haks/poa_dev/nw_s1_bltshards.ncs b/_haks/poa_dev/nw_s1_bltshards.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b260bb753ab58d8b636ee8d437f39463809b446e GIT binary patch literal 44316 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Νq}t8&+FT3o%z{|E@2$ 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltshards.nss b/_haks/poa_dev/nw_s1_bltshards.nss new file mode 100644 index 00000000..1b96e2bc --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltshards.nss @@ -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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_bltslow.ncs b/_haks/poa_dev/nw_s1_bltslow.ncs new file mode 100644 index 0000000000000000000000000000000000000000..779dedd98bd9a8343bcd8e033be81105aa365070 GIT binary patch literal 43758 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltslow.nss b/_haks/poa_dev/nw_s1_bltslow.nss new file mode 100644 index 00000000..bf4813a1 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltslow.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_bltstrdr.ncs b/_haks/poa_dev/nw_s1_bltstrdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..7ecf22e858ef3a75240511389a587fa8305f6934 GIT binary patch literal 43746 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltstrdr.nss b/_haks/poa_dev/nw_s1_bltstrdr.nss new file mode 100644 index 00000000..dd03161d --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltstrdr.nss @@ -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); + } +} \ No newline at end of file diff --git a/_haks/poa_dev/nw_s1_bltstun.ncs b/_haks/poa_dev/nw_s1_bltstun.ncs new file mode 100644 index 0000000000000000000000000000000000000000..0b8993e35ccc680e669713799ab4941826b8f9b7 GIT binary patch literal 44819 zcmeHw3zQtyd1iIbOPU!;Go#V_K_MZKgak+efrSJb&9qR1G!ip|1Q^`3W?GsSJ>5f3 zk3gK01jELU1#|o$cpVJJ#;?RqNOoDW*E2VeR+- z|NX1#R#!hpVEc%(aL$yv?)~47`>6j`_4f|Cd)J+F-Zsa1c=l2U|4nn9ctc~8GkwoM zZ>le`?W)W8_WacjUoSb^S>&8JapJh^G{orYps({&2Y)uiV|3?rr%`$=A#}~!yRn&m z#+&6zxZ+nZhGUH3^D+Jb;Kl~DH8nZ0E8_gmR_)d8T3zDv+|Zp^x62S{;hx})e>-jN zX+(S>|B5k}pemfj8@TVwPNQNc-sV4M_fmWibAPO{k+9YJd+BZHL$b)>y2#($4xWvccp2W_bsiB^M%MwGW-P>v>3T#97>@BNkI6YCy6n|AJYTH>^MQtltp(Yzad!*C0Pe1{) z2GaSF!dPGCKn`Xsh+_uT6e~oe3bK&|y9C(}S+Czk?&^6E>D6(*FRi5Q+nNI&AThH# z#%}dR!w<-*b%>*V+1$vk^udhy*914cC@i;|;Xx%mqX9$0F-f&`u!)=qhN9VgZ*w?u zf%?jLGm{dwA#w%wAU|nzhRZl!^|OB^03;g%n3)yc#hC-74jJvXd1DQ0Y$106e!jwv z?aL(dwOq`1kbg+o9iy{sxcQ2jS}(bOrYlgf$Ky?2OOw;QJ(Dga`@nPa1O@m6u{i6q zq_g(rOkc7bw83&h2xj~>io$7sY2li-FMDfhuuvQhVcSdC+LkM~jCH+%gdb4v-dv`b z4Z|%JxMo|f^DM~5ZRz5OO>gEuM#8PL;F|i1li4ufA4LLgumD^3q;u(!Y(7M@7zrAZ z5^;xdAOv}lLe|oD%RbL;6pJ@tLbFfC;KmuYiY(JRH?|qmJ7P+>P`N3ae_^DAp}|lS zvublX<8GL7GsQz}sExAu0veq56mHHGQv;cik;3>yHq|p+${x-zqo4zT4ROov=hudl z#Ihm2tRZCi-)BtZF(m(c{5V;GpNsV-33}C!NIxS{kV7A8vUb`$^>r`p|rfEe+=U%|s?VbcF2390U*mGovf_yUaXgddr zGfUW(rHsQ&m-nn?lV@2c7s{kv$9A7IBngn#2#z9M-m?~IXc{^)qyf$nfFCCK0;xT| zRDv$R0wg5qo6kZrJI~HgW~l+3DH)LCUjB4tPRtanfiU)%nKZyRXaJq=p#+-M;@U6> zJJj3rzL9aVw$O`-_k2|#&XjHw@E>fK((OZItdJLLt+^hZ&XqE5rjV-l?z zGQ2Qy{)eUSaii}hXB8;uDlR#)$vse*%#Zl%60vJ`1dBJHVduIS>!BmCY~wDZ6OhLr z>ai5tH^21k-$?WG6V?Vvg{;DMvAGw!99O&WzEQI*d6_NE$$=}yne9`YmKY9odPUiD1cWq6uP3#tkU5W;y66kuH?VV);babtUtSl z>?FQkr}3CIc-RW^H+xZr3_UY?x(R}6%oZ7Ec~Qg6=m;XJldVe{8UvyO+=$N9c_eTy zkZl_qJm`+~O2pYK=#Hu$;pm`B%n~%2txy>r(34wnWmEPle|m)w)6E8}1D zzCy)(1!^Yzi*7fxvK8fPu)zao>8N&xVhSoze1sB}wt~4f$>kw^`(1$`loMF_v37w2 zlfiw6CA5JpvqNPc<}m@BT+;!Mq214JcFA*8Jie+JmPV0J|1ZV`-Z6y(w8X`)`L8A$ z5JJSeh9u?;6~;TB z)X3Gvyzawm{IZhN8ojjhDJh5f}1=Ewns{k zFL=ZC8n>7!O&0SsCEA}Y+?+0E%*?E&L^N2xF{cWjL1P|wAznNt0ji!V`S^SGtkzzA zH|TDY^EguisHDNjH9G|%jd&QgO_E&AP

{p3D0549^a^*{qfnH>T;F(9W=6@#Mya zRmqhfhKYQRqdhH$f1PQIj${)O`KyACVwZ}J5ZZ7OUtudCtFxZbgL!s+rN!KcbvWMu zs@W(dzJxo8_Ww|pCJTIhGNf$drb-o7 zjG%gaYE)&VuMPk~ECtEPBx*I9SmbwM^@_4&j%T_oDcjPC=ro@?8U8PZX&#h_1t)SbP|jZxtM@a;R6lwK@j&KTOjYoyJ<2i(7)N8~@!P!=mI zEA>}P(VTGW_n*uht3uxh!|I3 zLxDw~%Q8s7qJ#0N%YEdCZmb5`yPyEyyK2y(ML?4?k7k2IySJtKl0Cb2_xGU+WP752 zFrnxXUgr6%w_>jarKUA|n;uV$Qe*H*7}7iknml0jotpwUbQ1Arbs5HoOq-T!HS42!4bRK((JvgS&Ntz zsLtjtn(A^*N$*fZ{dS&!Y z=x{}}4Iv@?_ePm3ZnWmdYW#{a`hba$qYHmP;CI$vrep3U9Co*+k;kd{sP)CAwMnB7b*%&%Dny+U)wfMWeO&q znqCT-u)*-;O_~`g`R5WT8M2X9I^P+OZM~n+C zTu%GwuW|<%Tm}R(a6>+1nHB?aLXol4y;@1Qs!rE6>4Qmmi8@ymXp~K%FO$I_tlV%U^YO|Yg zfMGCd6NZj=voh5=&gV98X7$DNo%+sO8qO`!YnrTilqcCL(kXGoMzvy?~2iBwA4vG3*P~p*R|KYr`0~6?I18-6rG0W{2B^Naw@# zg$P(!aP|7s&eTpkn)!+MGZ54C`_+RVv$m1HEe-i_UVC+EH@cPFz0p@mV3vnlC`J@ zpsG6T#u(;d7Ks)4YZmJ8Wpbi3FJZj1Lvwn0UaV2q&pdKREL^P&pd-W$mVsjRo zIwygB?DN=yo2P<<4G6uuaCdKS+jm?27b|%M5Vv2ON#_ca6N8gDie%}-M8ios!Kyn$ z+K3{h%qmwQCt&`z;efzc?_{2y&cBWPt&|e5U?jDdkt*kp^cI`Od}vD5C*>dHyC!+H zcJb)OYCg$WUzrSP&>G8-O5TUuLG18A#-36Lt>pg2PqH0mvufwbIrmvn=Pfl+uVXSS zKJ+O}g|e({*F&G&ijBQc#M;~W)4dTvmYSNoB$H#9!GoDUmE!VXp*4nfNsD!`g26)> zHIDu?Ln(`Y=c{gd=sDZjMup(RGr)auO3!Eih;KA`53?rhQI zmOKlRZXofs+Z>2Xt`c+oX5Ao=_N&7;T&4a_E zg+h-0#dWJVv~=Rc_kY4YkeP8m)?*5o&J^NI0P6ro$Mra|ZxNZ;LxGtez zIgc{fhi$Na3#=uA+V3#fH8vQI2yreE15Aqm+reN|ph-zVW-m5BfW;o@i3nKn4zEtw z^NnEb@iJW%lXv{hgN(%sxOfBoAK@Iw85jC-+gx*~<9Fdx)3?zGyepHFQ5dYk_r0=0 zBv<@2C)T|rtuDz|WFIq0mop+DVl$PNgP~TJ+o2~v2n}_yBMPZt6Nz)uKQ!)hVU9`o;r_h5Jz$xwL3Szc4FSq9S;n}d z8*nxdVOEYa)HBk;Fc1PDTfBKVeq1bj-cl@qu;+fjVAdiz{tYo1OJk>@!@mR#+SsnL zrOyMk(?dG|9p|lEzv27~HePtqyVCoIM=}RMZCitR2Bzu)kB9{C;frNRp6VM_dPf@6 zz2~&q8dCX)vpMSCa)ut#s8mRW=82UQ+d^Pw-kiHtBz#ZGi-f^1SdO~IbJY28)Smq~ zCZ5ih=)`F+LaF4rD+ohoJxcKHn;AVwS`JfQd3PLBMml8=ckRne3>UNGILs_V5zv(# znF#yqJ&fM=S8xKw#2Y`@Dm$^8RUy8w^BtIleg45nua??Ab&`|w{nmg;WzPQ`-jZPLEB7Wj3yEhOoNEe4k$8d@}HO8mjkEAlW%ouhU zCL)Z&^U_wev|c%0I@;V7lu#tkLXCXaHFrm?zPFjX5`U&|3lPK@m@jAY3%0^Lox0>8D9rPhyi%J2bXLLb;V zLf9niB$-SVot3w)_wv?4s>^~1O*}XtMnVwn7KBV{ zZ5r!C5X}ZcmN+td_8?ezm{(jYwAzxbHm}uR%J^Gt-l>n^pmTCaXL+l&+DQ9DoUSw@ z0S0g;j*zBw_;0tfTy6fdCT@lCDzY2KZ0jJf-N@`RI+&j))fJd{{mr+TiMxD5w35#1 zV&ay1m@ryo?IF3mU}3g3@n=30{xUn#aFk*AkyB={Fqtb+{UhUrUvUOv-ATROF>VNE zlkQ}G81F^FL;{J4Ds6Lxw2VL&xYRMht654ZzT$tPAe8Z6sF;;>pre`8c`?Cpw|K3? zJ`!Td*AOEzGmh9#D+^)eu!N> z>6H&kzmMQWyJAq5(Q^??yW2eNF5x9ue`dH?7)}@SlVdzM=s>{Y`|71k@#KHvn>q|Y z!JM_r2m0f@9;#=R+GJL#{}E>FNZc|`ZahLEFouDOsrhE)pE7LKxmXPzj)5pL#;9QI zxxuAs&eGFnPfzn`Bn`3VEdYG>NJC#g%-ErM%gZXQSNUxbbj&O<(2FOrgHb2V{KWtp z_{$cPw|h)pgtY|t+==NcY8P`kIzGnbz-8yh=$sYKs1H-EaO9ck*@0tY+KZ2p^Xs}a zpq{vsMU8ZZ*hSbh{HaVSJuifXr}qzTOZi30;$22S^kd(}`D;bY0#mW-qvj-R8{Qve zHOkB50BZIXWp_e(@=R{&>{d@_8!GF}Kcp6=F5l=7YKH4c1$9QwpB_(HZlN>e^5lcS zQTbRIU-gv{NIR;k(<-D5ZGWRiJ9g7UZ()$MrSRA~uG;>;YqVENi;DmL8t{WP+P_ev z{bx1WH`HiH9YR(4Q4UeH{W~?<|5uInAJu3-T%&z;jrMD*wbS+`wR0lVR4@BYvP-3> zpAl{Bt4pi;D(XtB>S}k5_GFFr%WJg%MUD1LYP2t|(Y~cd`)G~!TWYjVuhD*ejrJF7 zwEwt9J8ITL_ParI8e2bnp3^%Dfa#ej0rw%$heob`X>Tg}1&f0oI%BVsIPXbZ6BmP!T zj)Nb6PhJGMKD48XX$J48UJ-%jTn!Sv0*#rx*2t+$Z<$xAv4U0|a~TWh(V~Z5iNqlw zJ1H{TvXQG@=n$T=KAOG>d$`urIVWS z)j(jNV7h+|yjKn;cH(8Q?%{N9GUIL^*uBf0xG9HqNN!?0mp+11ZKd>nyr6a8j>JI1 zEgc!pU~aXQuRZ;J04wIxV|>s2QyyLm&!6`*#nyiL3G6-N9&?Rqa+QG*Kks)$T|sDAvAg!w-}RHBt^rMTmusrYD?DeG zG8S+EbV&s0mo2d`s|4B+0eX`Kx}p+j=m{H{wn>fz>a6aMDuK=`r`q`M7S(-~KszHq zAGbii;)AxB%_;GY^CLj%2{*scb8s|!fR4e^78t$NIW>?TmO3lW3xVfqtavFeRzYz{ zmT_wa<#2CY#cY`cOIHqTS$-}Cw?G3?kODL7ohPbUqUXX)R~0;lmclSHmEp zC!5OkL6ELu7$l-TqCr%o;(sm-BJN{RiN6t~(iu2xBnA|>u|d8O1nC+JQ|T%fKmHL5 zBp(J553{Mf#{wA-gUpDaBJUJa@jnv=nO+VOJ7!VA19977>`|J1EcTZc$iXm(Jm<4y ziG9=p84ZI(RsVQf5R`|yvSE;@%AYkBl|x~WndRa;Kes?`41+|K?nt4pD!C8_X^)`t zF^kGgVUSr7AU9Yb4~0P%M1V-OJ{ZGf>&6HxSS293b3>CedT6DU-s1H(w5+1_5tKrl zFo{k!E$z~wlJ{pR+ zLJ7Ihv$vp1y^8E0`_P?CI*3H?XptnucPUy&5~x}|WAvu}G+SXOhy zg<{v6HO-6iOz_JR`fvmGm%w6}r&;zk;S*(B19tmG)XrY`3e!Fcto(ksnWyvJ-wC}- zARMSsou$&XG3{NH5L7l0QL@y8t;BUU7VcC&I+s7|+O<5MTovt}?Cz3xh%B zELpi~bhIIFq0wfxPZbBaII7wy=gvF~K04{~Fg@SHXEQSSiA-<87b83;mdFKD5<0Yl z62OLs_jErga|!gKXI|gk#(iGHj`{dxc2&X?C>d}sAq)c*FRNcDCxR&eSarO8D>fB&Ah zjn}h7wwM9?X{Du*WP7E(mR& z8voEsj`9|&hnd!Vg#4{u1=3t8Ay#WWXWa7=Wfq;UGoj4?G;hchc+Q8huj24y!+?w# zTc!x-+=Pur05jN8PDeBtH8yTu{(LJ4ws>W^Qc0l>fn?C3|AsnWHUkM5GPx`~Fx=uGaEyWgj@;xdrsCME z_V2)vDcT9_*`KAC+V!QmN|X79AMh1^Ax>#ZCvUaxB0;YJX6JtEF7grIecZZ>xg6hp z$-0Z=Lw94%)?K^^fbXs%zGK%32UglX&i!fVhX)J}4RkN(W|+n|Z0xXvM`ggi#MP02 zTNu#ZowX?T?(UBS6lKYJ&&yOnRjw%aVvsQKF=xo?giUhR|E_QnGZgI5F^wX zglwDujT}R2lgaUCB&%c2LT{u5!U+D6R!l-1^%COw9I0mr1!e;D^hzwA@3^>ue}vN| zIINPC?(%)tNvw4|dUAYHa;@ftz?CR&xZ6zVAR`lDRIhWiFQsVT)4wOxvn{zZIdn~` zuV+`!WeI%9ZaW?m4AQWB_oq$f3k;x5_p(Tu0dy_)S>WgQIPc9COL!Y*%J@iXa2U%= znZ3YrV1itPQNX^7~tYPjFPf7-$kslwK zd~0Ohf`A+=KQzlba7NMo4;l90z~g@QFxT{gZn)Q_+>477j2U}bK6oglob>~ttA_5+g?5E5sxGKQJ%(>VmQI(A8pWsYM936^Kk)ZO*Re|O zo&fE|1^)D=iz3B6y@NMq^DE7b!k*q$Xm2NxvU&PQ5Pza>4Rsulo~!T;pIi=OegV^f zLVoRV5eKm*@#c6zvB@=O@7Q-R8~ZeW`(-sS$oD>n@ceis(Q&tIam{B)hpyR^Nb#fF zs|I92EMen+%aCjlZ(&I_^>ji@_jxmR{Lrlhd`l9Qfcw)EnUs9!$h% zjDVBRN;bJXRYf;73bD}ees)S6_XPH*=xs1VITQnu&7Mklpo4p}Gn79uKkkD`6{h(}0)1L!rZG&ie{avu zWFHGXhWoLz0$hqd%{N(_&T`kfXPE(<`NyZD*!1Ns_+S;cG!je@B-VijW*fN0hnaNw zQOrP4#$EzrT|JnG7HQksJ&?}AJxULe1$8B(Yar`Fse? zlaZ|XE!~NmCbQ#1g~42*lv?KhTOMye$#p@@`vyDGcGVBOuGP2Pu4vh+r{e(FKv4EfP)4dQVjl2Yei=`aB_mJ8PWNBZh4L?&g7xD4Q4GbCO2;`} z&Xgl>@Le7IF&|q2i^rvoK<}C*N|Wrf>Rq!$X^vbFwH&hWng!9cYpuIxK{Wkx>nGU4X9mpgS9E=Hm&f6#LJ2Rz%E`Yh^ zS<^=esX3_*8f~aNAzE0FuHv>BbLG3)?L1ClUty#QU!xeaGN>V zGrbQ?<&UrUZN6g2#)^;1Lo3WA;^{`qBxiai=}?p4nI4;jEB7f^T6dk!(_O)NLdBpb;XE5{T`-?;Zoabfz*DlaC=;h4*%#hWJ&!E@ z`6(j(CAFkyJ%|S!3VXnUYpZKv(Z9X}wQyrt3-gDnYhmG!-+@}lg|#rRzq%F{{L?#7 z3u9p|%-vBfC(eKA6wyIFIq~${VfFHR*pl+Bqt^vyh)8}({(WY-gQX#pEz zyhmAU$<(avQ;kcMZ?;@+Xa_IcZDWZdVM#%@lqvXsptI6JRs@T6C*^6P> zXRNNC17xs3)Y#Xn$pJI#^Z!#z3m*$>p$$c-ytY*7^=h;* z8kDt)4%i%^n{zjT4-*s<_XijaEj=lo?P(Z za4u--s3v>Msbc?nWdFUe?2X;kWN&`>9c1^eENchb^j+}}X?hR`}&sK6&=)=sw6%TApEvUR#9|cr8DZsu< zODb_ocA}K>OXGr7c&I&&fR{?-}LdL6pbhNX1*;2;k*8q9v z!uerx_gP$`luOfVE=TYpcPi2AUQSO+^HQ{cX$m-MPW9s*LK7%r65|FYFI)`vho*=} z7e(RrC*?`8fyUEh^RK`oI>Hl^auVzAi4)^@2c9zr>p4SuqUU_eS&cy8YgoQJQK>dY z_Kw1UPN2*yuhd}=S z@w*cNGr{#m=?!cos89^ZiiE*o+=h3+@jEylLX&EH;H>8OoxB72zX#;iD1a6?kXZ=; z4Ob_5%AwQ|b@<6sF!xlyu5?iEsHCj#3{&EIUdlE#*7S<33zn?Wj9&Ie9~6>#qLiP2 z6w0xK2kv8cF%PCjtmFG=ULui;Tbw|IEwVMl>A<_5;-`f_sW?X^M&mbPCUY#1APY1- z7RT(o$?2vVMmjpzhu6^UNG1B|J#-}7zHuh_3-saFV^N<39fs<|>4{M~JDJUl`1rh3 z%7?~kK(ORckXI2ZCujUa$?|(-stwab7({cU?T;dgs z7Vt&Bm(S;EjD5C3XTU(t)5a~v>+l;kX^~m94A?p-mmiFI4bB|F89NOc%GIY%#GVRL z8prMO_$_coHtrR^o+;h*pb#B!_?~uED%>@_rIL;s3wb;RbQ(PyWXlQh% z?i%b(^(A|*xq@%cUFq<3^ZCvK=fsH<$6Y58qpO3y&g%~Ttc%C!&KpjH^jJjbnzVOA z6a9=g$(3-$?qLjXF@`V2_y>R+64bBJiCq=vf3|3^F4yid$L(^thk(AOpmd*mf;Vn= zTHUjV_SZu7LDyy51P!g!1UUgCylS;#jM z{Not^xIGR%3rb;u6(o1K+w-7B3VliiBc;vBFA*dVj)hvl5TXJ=fc)L@CXx3728Uj7 z^QiOyX}+m?j-lz8XyTYl9XrYF$*rmG!QSqHWNK^w&@cmtmDa_X<`TXI4$2Ka?JGbs zeb>a%!NP&bOkX;GAX7X!1P9?GjgCuv4DCv8-<}%o9=swsoZ8uQWwIBS-O0hh{=Os_ zH(tjq{p4g|){CclK5(A#WXAL{_RtvctpyKPWJ*JaGr8Pwx_BT{+PUvwW~8*i9WRVd z<}z;KNTyiKj%M5vx4N6$fcZr4Z^yfq0#(;4w@}O;$mY{IzcX6c{t)Ft8bH*SY}{6` z^b17ns&CPNYP+f)K^Y!422x|P*H04c9jj<0JyFUOe_1MO-CkKmt;<=VaTzDj9_h68 zGf=>c!E}DKFy5EhpMx0-;+R1-#R?IDfNUgVS;o*ytk>_w8XCGk=aAigAg!eB4>kon zK*r3<7`xSjh98hq>kvnKvboV6=>r+@uL*8?L0E1xkya%=CxKw_R>i0lW)njl3`Mi~ zp{DT21?sEgO-xGIhR7AzgZ!k?X)fbw-BvGbv&QCg z7vSeB?AW$M0$cNY`3~X_DZ71ah7C7YQB&*Y`=+}B75i4a(Q9dRnzm-rrT#t$*)%}| ze1c?}@deUZ+ft@4Q4ZQ*IUxiy{u+(KDc`YhP1%#ZH8oTyj)bu7CTy)sm0QNT)<9AO z2JPNlrkD-GEf%;YTds>N$cCPDanzv?jeZ|Ra81N4x0oPf8&AZaM^k_C8 zqFIat4M~Y{hj}0bd6`1i(suJ6&u--8HzGIKBU5a{G+RZM>77HZ#`KPu5-wD3%BG(i zDPd?Z)X1#boKE`$%(#)pLu|N}qWL_UoOTs%&J-l3_+c2LS8h zmfbI|4JUzRU3^I*WclA=Oyn^n|NH%MvJ5{R5gJ6fbw#V&>?tLpy|+gDt<~EvT}|y} z9CoUOs3l-ej9ykbMB~x(Dvh4Tk3bh4feHSa!GZpPD=O>mG?YL7No(*l_2={HQU-Dd zqD||1xXH_Y_S)#oEmKNrdvbSj`;e-a{i?F|B<8P+qepdA&j(!;p1&l)M*9HM3549~ zVob3O?t{M0g(k^{-?dApg$xYL_PjtAcNVX9s|i%nULdN{B$KJW(w9s7<<$t4e$+`K&N^r zfo7$+HVnef^&7-)3jTPd2h94?Neij(Y!ueJ!XO|0t0>cYk3rKkBbb#ID&5`+aT+y)6J^>{g2L~h9G+{J^WP<_ z9T@`5t=&U5<=&{%c+47nVHx?Gy(mM3o*tcUf}k3+S>{<@)G#wTgNQ#}#rSDz42TYJ zBf7TY=OwajV}l1ZU#~Jg3(sKhKmquFJY=>a{t6<0Q8ukxo?2r<>{|5=(Z zA3O+v3dC2an6E(1gn!=UhE}$sd>w2E`ZIJ^yInB_l_)+!fl6D!T&u+LkiPw{KoE)v zJPpU%1P)9F_aPS1Ua(|`%0A3v25|qXc6bbJZg#Ot%6_D3P{q*StWm_%f5N=L8=|my zb6otI|7x%SAvA50VF)bJg+&xGOcVGHG~t(OL9dvLo{+czl)%}r691V2*-kW=>*?Gb zJtBNJjFL=}SDz}&^O&0T%679RDG2w4 zJ2T{U<~NK$1Ap=F$?kps62F(@xWCUM7t^rP;ZU>K?DUJ(+0h;6>?ch|%7Ms{*!HZ^ z+#BS2i!Wg;&?aH+zY=;3rR;r?i1SK(8IU+iT-=|<0r4xngt#L4MUMo@UzsTdFd#zN&PrEVqlQN&xkDz*|b0iV}&&YRvMH7$k?`&vB=A686weUtM~%Y znblt`RT0+H!_o{|EQS7IC~X9jNlSk``wH1=vtH({N7 zA~nx8ug=(|32!!$1ZR1r{%R?jN49*6cj%jCMs}1zj0NYh3lRUOC4gntw)DhsVRB?_ z=l;IzM5zde&K6`4F|NQOgta`IWsm`j4#uah^pV4ZkwIGX1$$QwI+QpxI&)|S8Q$5G z>g(^`v2&mg4`H_^2ZoZ0p2rjO;br-?pwzTxKLkGm6Qhp7$6-jbtr|B;@qYy3rNmC} zWU-jZmv*G{nMn+*RDV8O%BE>y+M7#Hcuy^uHC9e+mgjZ+`&B<8va8EbKrH3fS1Rl| zYWqJ>JBvJ@laH5K7oHdaVT_k9`6jzQcf;snP$6l?X8*I~k(Jx8oad!h=cwYv>XAAG zDkHER*G2CDPh+`*a-5CV}|SrKsVxk0Qme#j!SXdxEEuE$_Het*KW zgj-|g5O}1727K@Hm8j}wn`f0E)mgKAu=U)4aTA3#x zp`yS9zV{Vh+cr;S3MQT!Ukve-Fg*QPkf*)mpNpi-z(!h?7bhUfG$YDN%kpL5JY`*B zc+$}kK$D2nNVI5ELZV^kl)dw#LD7D7JO;Vw{M;!ixbv1uV2RqJX^TH70-;!Sj*P;D zKHK1Bs#Y=l(RS3h(EO#e_x7q9TqXoEa3UYFOtXPFp~%>iU#%ounb!otIwyTFc_fW- z&I2ou{5W5dh|)-9NtIMZKpkK4vDK*v0_(b~ZZJ|vd~Zl0ZAKwaS&|*`k-l@ux}NZ{ zorGk~GwKE-$zr#MB%5L+`-~;ogpahF8&1|{95*gEw2TjT-t1$oAt8f5A7Zu9uzGzZ zR!_|cOe+_n)nsT%U6%?_@&!0GTFg1^qfjods{be^u<2Xz)MiJakWUR4(|O4iWj-{e zNi`G}REa}+)+BYBq=Ytj)d3pd$_T;rtp5B&_P|(a|76bX%N{{}VA;}>;SZ`Bs>5i;81{wgP&^uSYr`0~1+@v` z-6k_cV%{>E1nhXIz99k@=3ToswLP^R`=V0WIn=vtCychcdyu7j!KAzVLnDdK*Vn*m zF!HwUq0~UKcW~!$KUSsJnc`G42F`t&btM5o7Ye!%M;|{eh~IC5qLMK|F=pkAd*ASV z)<&uUz(We&W((Ur$G4)Xlv0IO+C0zh3+YamVzL1OD-utwQ&@M5U&GB(v(HO2gk(r; z@>plWs~WnVBObQu(S>TjzsVan?aiUvf0_WpD6{7M9i{<^_^LZ|fx_nFE#)dj=BNnkvn4HYDEa` zqU#1v+lCBg0~Vl;E3va$JP9geYFK%x_^di9OnZhZoD3H(_mlmVr;VUome%xyLQ1JY zgRBvZLwg&apMqCR>nUJ^dH?pp(R8jPJIoLRK50^#gGLtY-!RTPt|ZHbrGSOl(dumLce`gt!6$t5+0^2O{p0lx4 z)`Po6w6Q2fltY;j=(Be$ogc{r3n@7~K&PRdy3K&*ZOI5|Y-bm-yFExn9;|xB;o1MW zQxkjTXF_6g6gzoN0{hq(u?07t3=TFR^yfGJA$R zx_*__^Aa9iH)>y~vT0~!tWe0&zqr;72OUnF_~F;M2O=}>$GT0?!?{A731A(-==d3a z?9Yfy?14b$2e4iXOrD3?V0ST??m!r7eHK_Eg4+8S>=K(=(gKre44c|HtczdRV7o1_ z#&T-Tj~VPq8?4^~ljAZLHRllqyVC|6u)vxlsQo&FU1x*gSOLcpF~F1vux$)RMO_pW zBzv*>0W9`FPej0m3L8A%2-Yhu(N!^d$6w_bi#Oon3Hm?6IV814KW>|C3c-I9J~g$6 zX5bx}oXo;t6~6D4A|bfqr#Ud{1!;9jz9Q0^BwgytLBwW?d*Lpxj!Z!-mm}R|6_;Gf z!;MOUJ5dGNKS3-pZ&Y*3IDFnn_Ge$`n_!B`Az<(@;A20IXz~pi7?^{R2~rj_G`Vj= z1{rT_uxN}09&gH4&oNO23{xm^wlVf-(ZNuQ%k9vUKL`zVsS!o-7;GZrob(Tk`&^jP zYJa%@;Atkh#MU6Yly^W^879jZcXR{J1|rPLafW(YT2xg4+2rNn`0-v-K(09X3Jhi~ zlH=bHld&{(7&`n*(4dX&DqH$IQ9IqV1JHianzidLzGVHSm%S&wZ)7yHAJlph<{6l( z3p`>Zcn@DJLvpHbROyvLt9#FCwKb&j5ofd1y?3fKdPOKSPpqUs4_0U9%~?G~!uP~? zguyRcj=ITn)VXlf?tM5~n$DN#lv*!_Qps~ys1Y)2`SD-$GJ24-9ER(MjFg5AcGv0T zu6>z_kz)2R4nWFO1axI()?t7B6r;EOmHaN@#2Y@=B0I4gRUy8w^BtIl-S2aeUcFWY z;OnXReoH{4GUtEpyELxfUS^v%!ucUxLog<$py&}7N&mV?yNAd{HgvI{M7 zGrid@>m~Xyj{(PH>^kl%*Vu+lYfX3G{Xm&@I(B7>`*B8?W{Zij^x>#O>?q|f~zQSmh93#-( z3|HW{HnP%Gh9H^@ge-9+d-fn$c$imQE412@tv0XKU&{DfZC<5# zaMC$7q%*wLT5Y5QAx@W@nE(?w6UUIIaQM%+v0SbGvnFnZ@hY+##%${#u-(Y)GCG)_ zlj;ggyz%zC%)}kOAzDahbun>EJxmxavi1;Mp0_aDn)qX%34fU#X*h~7{KzRYRG7?_ zsQ!`h!ml_2vF@ba?k#QzMw71o{0QEqfJ6d;i7IV#g>*2}H~XMc#{{otDP?z>|A~T7 z#($||R?>lvCaLqr1dqFgs~z@{5KF#>7?H_1Vy{;g!ir%xcrk1tV%U!KEgHsp(}&X| zsBGTg=C}2UMZu3B#hMV`(zj>`6V+*I_SAza9EUJnNtCB%IJUxKJKCRq^3B9?Z0Jnb&xCD=e_q*xe97xRZ1WwTrnN9Xa80;IcC(bT$L$T1Ti>IP#q3 z%)n6-?ZwAW`4vAppuQvTfzX@)dSLa+4%KDYG<;oBO3w>n;i&^dJt@CPS-i^#h<@z5 zIJ3z*)Cq%%RUa{@=UVa35v#FX)ou0_Wp_e(@=R{&>{d@_>niKaKiCqbF5l=7YMSdw z1$9Q|Pv4dUjS!LDLNny@;Ddpq^06|$;VUB$c2reoRR|l}{$`DK?52lKZcErwcx)Y4 zZU5gj+AD=c#eZK7_@Nr@U#`*q(;DsTYP6#cp{o2Shp5{A-5Txxt48~eYP27z(Y~@q z`*qdYY5S7etxzxfO|na+Cnho4*jE=<^;OiBR@K$c8twfx+OMq9{>AB(5aS+ING_jM{XN-Mw>p>Y%gjUx^M}{hiCx zQCn{a8CB@uNgxV$#NXz*- z(r9?VJ6Y$acg_X8`m>*ZX;M?Z8VF1jO!t2R@6|)e?RbHtdnBEk%(zBVHK+Wp@uoCE;a;gpgVo}{w3A7^u^jj9_*L~1tvpFT+ad8AFJ>lk;01l01_tP<0 z+5)3D!KMb&BT{FjUadq}@lsx_g5r=Ycm-XKV4F$@w>ACV9hsVrX%gNXZBRN`+2 zsdNMm8;JqMZETQl2SGZ=!&ExU#gBi|0?CI##KUYV@3%k>he4)AQ1O=SZ2ixNL8g|2 z#JsIg2EhYy+hOckS~g3*V=;Ch3?kcCmMpQmEReA(MLFI0X%1vRA84)1XYNhjmFvz?J5UJJ&V@S3RMOeWq z0nwcsFVzaZHw#v$1LSH$$@ugUltP>^flf9p?b4y+JbCC_P!s}dY7S)d!q~R5w`}N6 zDR()KHHKS^Nb*1=HeB1s$(*>lJ{pR+LJ7Ihv$voXyo&4~`_P@AGsNyN&)k%KE#`a} zY|NxLwifa|nf)m5A08`A;uwyy49X@Sc~_(uuUm?kj8;nu=ZTOMdT{#RlN37&^lW(N zetlq#H=q2Hq{!DTg>#&p&y&Kknj}|rw%C-jV z_RFZ9z3>&LeGFLnol?`!=DWWhdY8xzfkICBsQjw+H}p+_wQ!n;8)ekspT`=^#wuvz zXS0;+-+%%>W`x;#*GL6iet~foD4%&zmzP2E^9aMh0K$_|&WAkZNI~WM102(EX8vpa z^_9btKFdmoQV*#6>UqDVo_CR$dLWDcyonLzo8d3}o8bu8pN#p-ZeB*7V-hxm6JO*0 zCoY%>k~_$=GG+>aBn6RCZG%1JcaM)sySS4r8i3(OOq+*`tw%Jsz0<8Ys zv9Y zm05JY!3<^or+KTMz;ir|eFKLd6N55mY&uCe=O%140+_*$aX6yMsG(uw(&t)0uvuCl zn^aP$Lm*vj*MCEuFPn)344GIKo)~Uq3Yxg7X`p|WN*j%c`ctnM2_&S&EX&R_XMkDG z72ju=d1u5_DN2V>C*Gn#07q_g7E*ESHT$;V$Q11acJIs5OYQp7T&2l;!w>ih-HB70 z(#cz`y9m(BfZ4gvx{G+kcfV!bMJ~s8U$pKb_|V;0lXVv_0^qwVi0{}9!hsdGk8^*T z`r!dX!-HK*xf!PM4I4Wm!=o}_U-H^Wz)cKj@6K8jdv^{*0*bO^z2`-$AgkDHi~@B2 zJ5#i$CX3>p{-H>~yBJVP{URy$ZtIQ&ybhYX@S6OgJYL1^=8X%uhf%nITEp^Agp~3K9q-_(xbV0ddR= zh!^unJx3@o6QHM8V)0_f#SQ!;94^6Om7sKo@4HTNwd2u~{Zu+Wk=mL|9|*pM#H5Jv7JNU26W0418n!OnD4C7uz&iB#4#`X*OPm~^Vi&yU z{A2-zdm~^hC?FY$HOyV&{SpCa=08TW)XDK@lX(XM@>qGvEboAoM*H7p*n z(+j%cUYBz(E>19J>}C1jp%ik~4u+P?oQujRg3!MyIgj_-9PK^jX~!Q){(Duxr*X}6bEuMuU$4NSOf&a|z-i`oJ1Fz&!D#;(zKuVMv7r1KZ{zPb3=%VU^ zI@DwM7G&vg*{D%``c8yMA@~D-UvM3(fg+|@gDD4SnyZWMO)u0VSm ziImOLhei0aR;#Gvp!8gU?|$TRnDYxr0}A=oBSjp|q!|GRpXF?Fd8&$TY7}B2@ev*$IPMD)GGJwK zB3@(@MUS&2L-UAL!Ms`=jj5qOoc6J}H>2|g0}H{8-dFhP)5I~vLp^YV=(;lk{fz6i!TyOD<$Y1`V}pU%QPP4WpI4FRzb zK4GU$w2a2}Z2pDuMXGBHe>_K8kveHB`A2L>F_1!948xv@xzQuW4keiw%)@PP?MN8h z7cz=Iz+i|4=a~p9o?w;PqM?KJPj^W&b71XSS|2YgM@SuJU*;U;7pUVKV9zQE7E`p_ z#rGHobVw7)zxx;sHK!{O#9npflLM3|BUtlWx|26eW)BY+hH`~cYK?bX0%lxKGfC(Z zOY~lqieTc%=F}fv=kc)Km2{GD;g9&T>Ul z%maSQFOx&bl95xfv;CKJq5O+duwJ}BilI2Ebeyy0OgZ8P-=zS?bD(Va#HEfv@0uk_ zqwKTlU9&`Kid+yiAGGkA1<{o2t-EGHH1$gBE*_n=BBf|Id&kD$lzd1@N?ciY1^JD6?6g2EzfX#^cM9%(nw##qmlW&wc#gcR|Y=Yb5WK-M;45!Hn&9TtP)5cUcORp3=kkJN2 zP;f*H;!3TP#og(gwqjuWtu1aAuhXC;UYnownn|ELpH^k?6|m+jQEN>}#f^Ml2Q*a3 zzrlg_o28F#z^7H_{Ie&YaNPjXh@!qfpbZxCZ4rc$&8K{NNhP5zrOLZ;G`u-WHh5N!< z=-g0U3tfMCnrNY~R+hkdm*jR&)2bnUl#8tBh2}`JDP!umpt>$*K3SJ8TI$RfTPoy> za>~P7-{a}>xp0EO&@{(Q3TmuhTnwhA1b90c>_3DFlmYaw%<3XX22C-TC*H_drQTa zYE?Pi>%E5qJA?a$MHtnus$mf?SMky5htdfTr2S6INXb%xhx@XXMCad4;o=qsM+u3K zrqVHCl@o>lt$lGHBKqv`#fq9W2;yvYDLOOv_&*QZo z2KDMJyj}D3|Bv6DfTH~Yi24Q^0SPt|R46TMIv5<5PMiV9@8EnGnpE2Z&o#&ITW zH6X8!0%(B;GAjX~;p!w$Ib4Njyj9+y;IJA!1#?gJ>q-apj!DS+?g$00=cH^?$C_Rd zb-|J~o6*bO=z~I%C%Q@s<=DXk_pv*;!HkLaAE0@Wj9lE}03vLWtszc3-t`neEBr~t zSt>Caza2A?W1bAwK+~gfWao`e7u7J*(YZdnhHhIbIY95BBiY{fPfYOV=)kKY1kWaD1p>pApbEBGBO@tcaOET<|)yA&t%ExIf^ zP6&LO?-EuH)mHJfyz5K~fyIRL0z+hEvWU+*m&}NP-uPYfmf31|-ymEmeLYw`9Hm*X z%!`GPyNH07NXW(yRVz4}VuFgF?{gzMQLz1&dqrlW|HGckbOl^Srx!(RV1LmPZGGjj e%r5~4hAyTvC-5(X_gb2awbs|oRNi}u;{O9dpgG$B literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltweb.nss b/_haks/poa_dev/nw_s1_bltweb.nss new file mode 100644 index 00000000..9ed210a0 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltweb.nss @@ -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)); + } +} diff --git a/_haks/poa_dev/nw_s1_bltwisdr.ncs b/_haks/poa_dev/nw_s1_bltwisdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f357cf1be973c793134bf39ab9af812efd01ac2e GIT binary patch literal 43733 zcmeHw3zQtyd1iI@JfxYCG&35#9~2S-Nl1Vs5LlLk=Fvg}(n!n<5@6(}HPh0x)YC0` zdIaJeCpIL0tXT(R2d{%6j`4%UPT1_SWV6N(f(>Msjadf=aI`kNI0+6oW?5peBdq=Y z|G$4#-RkOx1dfk%7S5Sc*S-JyaUb>Hs)61iclVkLF6wcdKlCr%u9okWbT4*EK;Iry_K9-}+2I}Orf5ut0+-VIIk zGu|Xu!WDa-F}%qbz8K>l0B%U2t+COGT@~klwrH;|*Xk0V|Kmk_AGGdjbLsd?MZ?LjD%teAR%XDfV@- zN0h`jg_I$ZE5CeIOTK7vImxZ5?!n&ffn;iH|IjdF1S9CW zF3yrH;aiZa+-IhJ8U3d3nm9UGI53&%OXm+{iYJHQAl$6cafy$iUCHg+Q^VbZS0sm1 zJA1B7_TsWTIXKwgmjpM)ahau`o(#Dy;A*e5TPFum!FA%ZUzezFKc2zxsGCZ6BNR7!}J4vv&t)h|iL@87JRjH_T zdu0{1E@y?tCHkN}(rN3bp@12K>HKJ6yf3pq2QwDLF@tJ~6(Z6I*(er>-5;@DzlXfj z{aGYC$N9drlD6O96z~9vnUyhis|O4}Ag9(Lj`n18qdU?EGU8to-1LI5+-8!sN_tKL zDdtT{fOW7bxhtB@4>W}%7pSj}H!&$;8zNU=5Au^nr@4&d70t;!@I=bfHgLsy8u65VaK*5k}jLy&3BN0NZIXUGi#^=e1ZA+QHWI1Sq<%AH-_^T9!Q@(BCnzAQ*Yig)a90_6D zP1stODz}Vvt%0Nz4cfiAOfegVTP$!*wpCtRHM6(zP8j=!mhjAbTd6`1i(suJ6&u$cpH)43)Bh!n9X|{?i(>sS+ zjp-dRC0wZ7luf@dQo_(+sF7K-l3_+c2LS8hmfbI|4JV0ZU3^I*WclA?Oyn^n|9ky7S%#mE2o0j#x}w!>_LLIQ z-dm&n*6Qt-uBP@f4m;IC)Do~KqL)<;(Kvcuq3CJ+5OmQI7~roN9OxgoqO$HzL;2$$ zw}PjsKc7#RGLSovZCcmEOfs{L4j48IkebCpj(9GY#c)N63$iTpCj|*gRXYp#MO6!xR6&am-0cV$c z3ZxiVksx8uk|7H6$;hMa94O8VVOtg$4l`ZevzASsW}RFra}6EaebSI5Kw2X>igbC; zTBM%lK#qI))0H_fQ?LfY z*du1r0Np>y5rgj*WJ zg5u^p&6)S}4_xJ0eyk-=U>%tZfNPxCT0^0_~eb5x^6G@}d}1f0L~B+xgo}SXb&vgxC`k7c?!_+0)h;}lZjvQ0 zv!yvXaHV*2B&eWR&S^12eX9inO3-^O)g?1g1hC;B*JiV>Hf`vNwhfZbfYtIK(Q}Z~ zSItHeJR{O(l4uQ6F8xaUV+6{-VqjvEHl&>|NH6_Pq9LxcZozwB5npR@NGu8 z^R+XxpzY|d_krY6*#(mA7Y(^crI@il0Iq1*Xdi=;jd5FLt#K{4Q-B2w1@MZ7LRYkz zRXUtP9EZo+<@|TaYDYqV^=J2xeZAM~G#;}CUsy)|W-rQ+p{GYrH$hO1*(~EMFKU<> z9YI8OS22DX8UvyO+=#BN_<4zJ+t}bicdS<;&R#)xRP_i)2UKE~ps|a4n&AOGxfNG7 zWv}w5R|qjx7AN8-HtHa^NPr5&SE!h;fMCME=yF3VTT#9S8$57^j%v3nrl1nVM<`Kg zE0}AQTprT5-xUZ#Ie~}aSew9s$>2W3BHB)t*`cxz^OykcU)2tep)J!ccF7A=Jie+J zmPV0J{}09m-e!fxo8#iw{8y6=2%%|HXcts*`c2?lpjG`5dBc;aM(JnGRDpi1Ti!w z0$C&7N4=45ePE>P#k`>(bA}4z9Zza#PElpgvNJgNNmqZzGWIYHg0f?I;=~(YQ|4Jo zNL)Z7E}s zH>+icM4PSR3qWU9f3c9?kUH|W=+dNtuHJ8n$G@=kt^lh`b!*OgS@f>nF1I zW2CWHV!8?I+#RWTwt02NE=_o&iA->oSL&~pqH$!)H+hG?Sw>_>8AL2Nk6wWMKP>?) zv$mxth6|G;V>|cvWhY8SICQokLBzNMixAfGY?eU+79EUFUFjo-2V(|ljTh`)HR#a9 zq0yN`BgpX1o>X6d_l}(deRz($H90VpRP-EA%!fD2uLY&1HTxm>85kHf1|NeV&9-XX zOp5;l5HBTmdMAs;Oun=uozF}ntWy2?Y$=fmIVAfbUv00wi@$XmsjL5Do zp@3YA|@vjWxmUG88F2Qpq-8F22oL98==z#_6}Ar`}~ z$6y-2KV@3Ntub>5JW@gfzW2FGRCTk>vr3TatXV$TdTv161P55hS@;3b?;JNwpK?p{ z7tI!-Y8oR3i5^=NB-8Z?pUfI1qgO`Xhz?i9!xR(;{P&P-eXTcH&Q?uD8GXQH$kByA zNh1dL)-rFW!D||}dorV2i-qxB>8vCl$m&N_Vw%Q4h^Mf%NnK4hht$<#*F z+AtwMCDIov3QXX8U-q?a^Hio_;;He)5Kjri(_aR8+DrbqNXiUsq*Zxw0-{VaqO7zm zUk1)Y))j^)jgA1CM5IQdMVk^54LhgoogWU0_Uq#@$VKO8Pf5X@w^Ra4)Q+YteozEb zvFaQ%3X}S5gO{mV#qgu;sBxkBOKI=z6*agF2xQGnNFi-TAx~P89r2OA zeaX5W_pzOXWX&_`1|!L0w}&K~VkG;tCE0|Jw3{1F)@GbHE;qD{4|m?|W33?}gFhEy zwb8J8eI-^;%?L~@7oycI z$%AB_5=Trhx%mpy{|z_O($!yi;NRENJOLd?#wn%bk%6 z!kr~aKzIrN{?&?=Y}NU5;}{;_il)+(Dzwt(aduxwce)gl4G>t7cxs)(x?}vBZkC#T zUK$}}hQub1btb&3q3b#0;Xw$xAZBCV;EkL1=FsiGNPyud;{$Q^U$j#b?z?VcOGF;bgdQxu5K>JY@vs zvb3hh6;etK8f1-N9NOFX{3N_$T2BER%=@<&j;3=Z*HJ70SV+m~0Xhxs)NKYdZ%al%V>`Qu-R(gt z@?g~~4$uD2o|@PzKOGXAv)IXV64=MSh%LDBWN@$np;s5~?(J>+Zma)dB`*Www(B$L zTw!uzXcEU4EPa@0I7KH|@zIbrqDU#T%2mh-n7X4QTjpT4q}G~GWL{0XeIYg zev)lBn^oIS&AHEe#AYTatFwm5@Ga<5m@Eh=9SB3M&jL$CPufL_E8tur2AC27 zwvEB4sEd+<%wBAM0890U5wM}c2G2Kw^@>Y$RZQOTH#x@Q1zbEq|3^57Os&z6+h&_W z@ZW|{P3@r(ct<8DqcB*7?|Y?4NUr#4&YXHlT3wQ_$h2mXE_LM~Vl&0PaFk=3kgE14N zSA|ngI4#R)oN=<cb2#y9db3oC(Co?&B62vh0@M5}GWz-Expx8e|Z& zTXvx(ZiY9zWxZq{<}u)Sj9uei>J5X#oz~cfO=}Hz-+5n|bvkxsiu-X!m`00~UKpz1O? zzOOKvCC3PKH{lBW)<%|EKh`0`2apMUU~3OyldzLyaMv#dtv0VxJUHl_8qyiwYOOZXfe@$5%}9U&oQWf(DINavZ7f%-|E!5yVZ4g$hB4bZ z2y8bpyNnLz=Sg)1CSHH*9cJPV-w-XNv$~kLr5+}X7Fl~pF3(w*ZB6`{&xF6sjx-!) z7=GlG87fTXN>u;Ic;Q!^fmnA^Z}%oQ1hYw3e|`k-Qouw4iHRz0bA@zprf>E^rH%<+ z%~DG775@_jp^X1h#jK0307^`;M}M^M?k!Od^$6N`c$KZ`XXzol={6egAHj=u#h@&s=OUJNdpzwf;w9KX zW~5jcNf+~z<2*R%K)~Yr>ZMHagg33R2GsI_{y49P>RF{WnpNt*ff?JAw;U!n9;FZ% z$3Vp__-5pvGHlhkSe0xp6D5dZPg>Y>gG<$%rKgRap61X<8e+{`0Ql^Yh92)xud%$W z(t4FonA6de<%>mjjobIia%| zIM+HtwZf6-EN2FenrJURe#)=-(SZ84yaz((1keMkS9Yi_!=~YDGNtsq5Eh;~Fw~Rs ziWk0Z}TBL)+h|(T?5p z(8+B{TMCb@BQ@Gr)@Z-3T03oDQoEJvWxq*wsdP1mXk%YpT-8@mS6Wq9J8QJ}*J!`8M*CN5 zv~RA_zOY97rW);IHQH~f(LS|C``#MuFVtxNNsV^YtcUD(qvl?={yg9MJWhE>0Wdu? zrS?~qJ&9VtsaWP)Q+cjT4~DDKnOmCoE~8b)Z2kp$wCJJNsIY6wPKwO7Y@{EI%Mn|Gpf!!RozMJwTa1lP z;&UR}I_@TO5RB4jxZgWj=TGmP3wZTsKmXE6P5EjdFi3w*qX5A*@7m`{)MJ@Zd_ zcr84CMvnH1o*EfS6$gp#6`ev;;A6@b10U${`<~L-pt|!}E|?rL|8VbMvU@n`4tMu# zPrChE-GQCMZt_~Zt8*w?rsXU~|G;qaisaxbPnO~2wZrs_6e9mFVW)ATlpa6qdYyL- z_V4H(yw1HUc^#wiz*nq@&;W*Jwyi9Df`8@t!_d$`s;7H<_dstlwY`s3z#4>$20Uvn zs{z^+1Z4Z>4(@D*{%LO^mdryJamEOcrXK`Boa;IK*xmGOPi4^iEl}FIFlFa6{c-^g zkfkaEBYxKJh`NH%uwr-ZtH0}KLR|xz>MGY%qgQy&EM+X<0O+C!(63lxUr`CPJp%M5 z3v^i}(9jb$GHs(A3DjBLA6EjMQ%<$vUo5J7DuH%HfPT{g{hANjY&NIFJ1&j@r6=6{ z62PIc?0z~1OIu*{CfL+qdPM51)T@;UD_+WrRZtv~W!#!UIouoM-B$o7>viV9mgVPS za0?{yGbW-Sp9+JBwQP{bf*>7Fg+W@%8B5%0fqXp-B6_l^>SXQEs%T|L_Ex<@?Hz%a2RA-1Ql=D z&es227-VWWNX**`We_|Nw;jeFrDe0^+ZJO7!XUDJWyun|%K{k-gG5#Tq%4qZ7$mCl zXO#tVFbp!iTzu!}7RaG6NL1;L6#A-<6~Z8G5mY{5QMoA$G9v=STCH^69|oBh0V37< zU<{M3LlIW6N5Z+0d{1US%KL}M3X?d7qb!56nUB09QjFIvMNFdAlEQgBB!wQF z{u7d7M}eLV@7%8stnucPUy&5~x}|WAv-5dUSXOhyg<^Znn&t(0CitMFF}MNyOJFg~ z(=2#wgImh>4`LX>(y-B-_hE%m&E#MA>>{O3%LDBlc!$=?h|y8d{~Uv~2{ z@*Fc^Lpt#_?tdkNiC}UEc~-_uA&^W#B&uz&2mS8xQK^>;tb*esvOGSZoFi}UmtLBK zC4Yh*cL8!Nyy7wQ)YOhWZj5I_kEOUuPR4a$Vbwt8ELpi~bhIIFp@scSpDGS;aa6TY zTAzLde00#`VS2uYSM6u=6PezmFGir&jG-iQ!J&i>?Vtp(;o&{q@0Ym*deJkl@AYtB zoHAy#U_Js996yL@nzb0b65sy_A8)i7L1j&7E9XK8HXTppa)oSZH&)46bE1Nk3#pi= zxotL8s{pHicR5vgo`g(bm@OKCcdLF$;J@9%zc8As9+?=7Z9G!#W=3u9g?pyNq|^7- zwrBl+J6~Ci@txIcQTyu`Bh}lA`Oa4m)l%xFEE7YWyQFIm%n89%Nc`5%RZs6-cw? zMLlY*XN-GpR%X%p1{2EsPxDqif#-aP&%Yp;2W8CIbdqq+P1tAzFoPZAbVP$uL&L_U z&$fVIv$Q}qsiaVcz;v-){|$A%WCjv2WO7+}V7QSf=)_G;1O2m9+Gs@7pL#_kkdPL$ zEIW^!0cLrw_#VT|+asn*Q96V=@g@ZU9J$e1NX4<&?AwMTQ?wJlKA-5Ry-ycqG9*0ADYY; z7(g5EW|1@l=vwUaz|Ze~-JLC#@HWhp@sZTf2$q*Jdx7P^1i1*KfO+xLtTP8r9bObZ z%VqUXSME5xqm74vnB_85LbePV9#JU1a=YH)eo-GRD8ns$;BCpZH6iZrX#xbH3FD-y zS+h=Tkm5!4{y^(87}&8huV&Lxi+htzodN5v$)?U_)?JgkV=}W)Y9@Ebo*^B_DMu_P z?@=3@Ap%uUBUzX}xt~hMCsJE;=>x&HkeDfAyanG+;R)+~4GmitZj_mg=)gMk`8LT+ zAxoSbpJErh=lo;=g?l4lEGQrui8ah!;{B2VXynI->E0fhw;>?M%8$(Q4xCZ6|6PVX zIPkciJ=Hfj`~z7ru+2>!s|7hK0GxqB3}7Z&()eJ+X=cl8b(%I24w z8--oHE70CXB4zXRVG;hU)hg;ZC_Pu;yC1n6#{2@N0fqePks=OaP2z3Sf?|Vf&fc-_ zU^ey#{Jn^kz#!iU9LDqGCVw)F{M4;zR6| zIPMD)60ov35ihcdqQ_Y>L-UAL!Ms`=jj5qOoc7VUH=^?f0}H{8-dFhP)5I~vL-=H(kn!iCu{eG!axc4Hn|q-|?=e>w~I zG?P#8Xb6af@CiG0qGc4f6sL{1G{>?tO{01MaQq=0BXfIdy4!8B+|S8 zZ58ga+$^{#c;j2K2}h5;pkn4EkUUvncIR@Q2}ltn+8UOZ~l}y1F?Xg@zcQAJeCj#*+MeU6paAs)L2N?P|rHFqq=6CE#?Vj zm)>O#+N2GiQ+4qkLpi1kJqW)cijrd>jbhL%`@++Ht_Sz#k;^I`#i~aIzHSmwPu0)J zC~a^!%N0#A5BM#=%p6LVj64-P+kZ(H%D-p|){FN?F%(ZK9p`L0Q;xjBcPWAK7$_S) zaj7HFyJm^fDEq8>*DO(*A{Ru>2Q9p2K{Vxh>#kW4O})~(i$`hXge@DayYG^_{uV3q zyFu=@$)2`y_HMa5O_l+Ax6|Bx)xx_#?oR)E>n9M5BQ!Y-JK_+j^4#N0lq7nU3#}y?#}<;7PaMacfpg^-4$|o;eWR7UMzPPJwTDS z_yIG|f6n-wUa@aOW7FB)oI8+7Bsdro{G7K>+O}s(1ziAh%hQ}6y+u8cG}0IGC^Emd zHvHtwnyml1jE?BPz+iOya7HYHxvjf&%?7tXU$O}Xo8UHcvMKHa!fA3s=U8auVPmSB zrB{j_$Y=vHC^#Ypai!MD;_h@#TM^iPYm1x3>ojN*ug%YR%_PvBPpLBa3Rv@%sI{h~ z;zqu&0Sy)MZ*ZXfX6d6Fuq)~nm$X$bX~0h56(~D~axt*}M0!#F_=?}=%V%t?_?SGj z!b~EbZm>*pu4j^VH3^>Su}Mh&-+79MtyceGv(nM8WtmiOe{S&}4{L;>*Zyh@UCWfe zgM}2FU9uBRk@*!6EDp@YSDMecvt>3Ziu*uNaiod`H_)yrrXKRrz)&PDdc!s=V?`u| zl-5RMRvf6qWI913e;?r?Q2%>T(5sD)fu3v&jlYhm6$oPk;x4{KrewrV+X?u)01 z4(iE?zZcGlv-C}jIuhs=!#&Nd=KS4hBK^ta#CyUX(6zOC9L)aV8K{NNgtahpOLZ;G zdj1U5!o6WFbZ)4wg|5FoO|;NgYnH(CE}7dsMXQGRQ7*Eg7n)<5O*5vB3##j4<`Z@4 zqNUFHVoQbjqMY*Z)_12cUp$%YP&Q|7*EjQMZq%#Ek)4m$r3Gw=@g8NZC0AnwEl8Ef zzm^tm3&+I_dKX#6l|#qZP7@u}GfLhU9wn!rTTS-%)5ZSv$X*P~K5b?795Catx-9?e zUo)Oe4)|o)``h$IlN$SaH925I>X*+zE!-5=LQ`8cPnhzh(?kdLxXYV(jMwNir;@j1CrT;5G%i?$huTxA-;J%Zo_y~1 zo>49wLU}A+?%|fkGVVxW{BU6+Tgtfn8X)gnI6qA8I*&_~a%pOX*2z z@pA!=noTqA1+{m^>*q(0Dv){snkd4dIDNIf-@m z#EH`Nf#=M@dd`rZ=sDj~Wy{yFe0QQ!ZH(+4wYlt-AS|S4uglml@Jc4&^vad^izf+r zC}e}(&cN@Z(^<@nK10Wq^m^hqc+*GVe;h%!m*F>|`iDwsMBV@n7EGEVfbI7Usu^$v znAR+Z-riF2rCL=^_j>Q)z|P=)VG&04t7=%p%T;`I`hj%918Kk0GE%Zs;NiY(CDHkJ zQ@FT=!BIluqp5UESmlHvKx<#zhloBqe6gZt4T3mZUCPhpE&THB33VE%U;M-r2T0-J zytGOE4he5qM3vbsv{r}^4C!lCQ08!sS5s+XbL50%7rh~y@>BJdu{0`2C(4^WP zc&<5qC+|T1F9CTq3ZMlJWL5$|!_`Tia<~f5c&ofY!C^Ie3g({b*Od*#+qJ{b-|J~n$gSN=z~HsPjrz))1#1 z?|O=#75=2+ER`6I--?;cF;9Xu(DXEbs{CLaoi@4-vVc3<6hzGIrLyF_#G_qn~JI|rz%Ff z6esj8x-2?Q2z-j~5>`&tR`IpG>r4uP#f0+$Au=*q#AlsLCSssBe%HKZw%Xk{2vau*Ts5=q(kp=t$3Q%q9v=lk4M?iGF<_e(cwiA8`xjA jL|b2ZEb~jifuW1(%nAGp>AjXFW3BadGnMz=MDhOtO|4XL literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltwisdr.nss b/_haks/poa_dev/nw_s1_bltwisdr.nss new file mode 100644 index 00000000..49643c08 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltwisdr.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_coneacid.ncs b/_haks/poa_dev/nw_s1_coneacid.ncs new file mode 100644 index 0000000000000000000000000000000000000000..bad07028ebcb858076fc005ef72d47d190adc552 GIT binary patch literal 39662 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

HVOK@DTw>523R4#aQw@_Tzkqo5~U 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_coneacid.nss b/_haks/poa_dev/nw_s1_coneacid.nss new file mode 100644 index 00000000..2ab7dcfc --- /dev/null +++ b/_haks/poa_dev/nw_s1_coneacid.nss @@ -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); + } +} + + diff --git a/_haks/poa_dev/nw_s1_conecold.ncs b/_haks/poa_dev/nw_s1_conecold.ncs new file mode 100644 index 0000000000000000000000000000000000000000..21c9e7e254567529d9865d7561ce4c1ef0a62db3 GIT binary patch literal 39662 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 m66`OV; 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); + } +} + + diff --git a/_haks/poa_dev/nw_s1_conedisea.ncs b/_haks/poa_dev/nw_s1_conedisea.ncs new file mode 100644 index 0000000000000000000000000000000000000000..3bac3ebd08b57992dfdd93c9bad6af7e7fcc54ce GIT binary patch literal 3025 zcmbuBOGs2<6vw~&9G}z7WH=U67t6p`SVpvn$`@|L!l9&~rl?UT%Tl7Xz4kp8ZdycA ztJ<|Kg348!h-f3yBG6@om|;-Pg|!D zl^?eY_?3CWv}{L|A0Oz-boX?g=*8`1lfeJO&0?EaU0wa{3CocG0&K+(0he~ukUNXQ zCX1AG=LXicE0?B=)G|`f4Aa8pcVSEC){<#~pE+ULxDB3QxnkJ1MAy3>nFJdPE#`-l*J<3sJ2B0j5%l*J@|S5@ zF>i;A?cu7b*k0UeC1vwO)C)2~GKs5M-(N+{bHg4hH6HgV9xI|mY{eX0POOow!!1#f z|I0R_@wj%jWg5coF-?O=#SN^|$g5^|cz&bEW}Bq)K~8GapnSO1WJtY@Q`ETu?+D|w zSxu|E5~ux_D7V)C}M7ahghZg4eQ$$()XsKZwekBe;;E(vz}BSnojp; zIy?G0`n!5Eecf0FJs#T4(4-_$3-)Y@#L*ZILFQcj2Tmrn4&u&*5pf!jK~mfDXM*NZ z6V07ws8c{U7Y4KePDktvYCtK!6b#FwUL-%u8q@BLn?6!ZLrT>YE9K0y+_MZ0p(zde zoT0s?PzreZ$aK1vJ9CW4{Ky3$0uy zUzzEV+|c#h*zmC%*@=nV#cXEa{Dmy~4Z1oAg2FciD{K~Hi-*30nO~NZZZ`(Fv`Jis zv{;|hfiuKfV#t(=&}nhxZ5WAvP?3t_#H@P^d95O(6OVExj3g#hgkA_7A&EdeEdQyB zQ2Q{%{27iCpHUHN8;-mSBZ(_2k|-|Uyw8v^6`>B}QO+{tnu=6wqBJw)iHejLBgQgA zhEzmokoOE3RuMykJYdL(iqO{}E8oa4B&Qgx*LjikM-@ qRTZJ{G>$xE$heAZ(j<0{A=4^Sr$Jf+1m5VQno|%}^l?B}Py7RrDGh=E literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_conedisea.nss b/_haks/poa_dev/nw_s1_conedisea.nss new file mode 100644 index 00000000..9abedbb0 --- /dev/null +++ b/_haks/poa_dev/nw_s1_conedisea.nss @@ -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); + + } +} + + + diff --git a/_haks/poa_dev/nw_s1_coneelec.ncs b/_haks/poa_dev/nw_s1_coneelec.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f1cfdc771abc0f063ad79c0e12727a68e0ab85d9 GIT binary patch literal 39799 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_coneelec.nss b/_haks/poa_dev/nw_s1_coneelec.nss new file mode 100644 index 00000000..a4fa75ba --- /dev/null +++ b/_haks/poa_dev/nw_s1_coneelec.nss @@ -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); + } +} + + diff --git a/_haks/poa_dev/nw_s1_conesonic.ncs b/_haks/poa_dev/nw_s1_conesonic.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f7b256b4d0d3eee6929ef1b8d8a7d3c27df00029 GIT binary patch literal 39656 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_conesonic.nss b/_haks/poa_dev/nw_s1_conesonic.nss new file mode 100644 index 00000000..79c1d466 --- /dev/null +++ b/_haks/poa_dev/nw_s1_conesonic.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_dragfear.ncs b/_haks/poa_dev/nw_s1_dragfear.ncs new file mode 100644 index 0000000000000000000000000000000000000000..e0a66afa555b22842ecfc1a427a475119d8dd542 GIT binary patch literal 40503 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_dragfear.nss b/_haks/poa_dev/nw_s1_dragfear.nss new file mode 100644 index 00000000..f95e3975 --- /dev/null +++ b/_haks/poa_dev/nw_s1_dragfear.nss @@ -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); + } +} + + diff --git a/_haks/poa_dev/nw_s1_dragfeara.ncs b/_haks/poa_dev/nw_s1_dragfeara.ncs new file mode 100644 index 0000000000000000000000000000000000000000..717ef4f6c1ea33cf9fb2d25b2f11c93ea2e69a16 GIT binary patch literal 39010 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_dragfeara.nss b/_haks/poa_dev/nw_s1_dragfeara.nss new file mode 100644 index 00000000..2bb50095 --- /dev/null +++ b/_haks/poa_dev/nw_s1_dragfeara.nss @@ -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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_feroc3.ncs b/_haks/poa_dev/nw_s1_feroc3.ncs new file mode 100644 index 0000000000000000000000000000000000000000..25681cdaee5738a436e65dfd02258f95f97a70d4 GIT binary patch literal 409 zcmeZs4ps;=)H85mU|^gn#{dKz3Jff4AOUm zOinP#2v+%pfki|CrUxv}z^xz;GDr%diV7FL*PFd8U$9AX8~R+#NzK`ah~c)N%ZRSL(xYDoY9 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_feroc3.nss b/_haks/poa_dev/nw_s1_feroc3.nss new file mode 100644 index 00000000..58a44cbb --- /dev/null +++ b/_haks/poa_dev/nw_s1_feroc3.nss @@ -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) ; + } +} diff --git a/_haks/poa_dev/nw_s1_gazechaos.ncs b/_haks/poa_dev/nw_s1_gazechaos.ncs new file mode 100644 index 0000000000000000000000000000000000000000..584a1fd8a9022dc50b9cf4023d45471593f5ad54 GIT binary patch literal 39021 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 VG$tTjP1U%~(`#m~BlrWw{{xi#bgcjY literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazechaos.nss b/_haks/poa_dev/nw_s1_gazechaos.nss new file mode 100644 index 00000000..950ce623 --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazechaos.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_gazecharm.ncs b/_haks/poa_dev/nw_s1_gazecharm.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b27cd59fad943da60e0b4380f3874e63dedfcdb2 GIT binary patch literal 40339 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 U*IgLdHR?z)EXjn%|3S?E1G~iv&j0`b literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazecharm.nss b/_haks/poa_dev/nw_s1_gazecharm.nss new file mode 100644 index 00000000..e4a06224 --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazecharm.nss @@ -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); + } +} + + diff --git a/_haks/poa_dev/nw_s1_gazeconfu.ncs b/_haks/poa_dev/nw_s1_gazeconfu.ncs new file mode 100644 index 0000000000000000000000000000000000000000..f5a010fd8ee491842b8fdb671a19d9896b5c1751 GIT binary patch literal 40365 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 aF|gSGCfaou*6kWKq!^N9LgW7+=KleG6c()j literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazeconfu.nss b/_haks/poa_dev/nw_s1_gazeconfu.nss new file mode 100644 index 00000000..4add32ff --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazeconfu.nss @@ -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); + } +} \ No newline at end of file diff --git a/_haks/poa_dev/nw_s1_gazedaze.ncs b/_haks/poa_dev/nw_s1_gazedaze.ncs new file mode 100644 index 0000000000000000000000000000000000000000..d63fc808e0375e6c9536f1edc34ced3fd55075ea GIT binary patch literal 39623 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazedaze.nss b/_haks/poa_dev/nw_s1_gazedaze.nss new file mode 100644 index 00000000..f0a8c2dd --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazedaze.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_gazedeath.ncs b/_haks/poa_dev/nw_s1_gazedeath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..149369aec94724bfef9df0bfbd9fc556d9c17ce3 GIT binary patch literal 39058 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 YLKkrw6OgW^YTV}OH8a-{{DI>C0THi$ivR!s literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazedeath.nss b/_haks/poa_dev/nw_s1_gazedeath.nss new file mode 100644 index 00000000..635ee53b --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazedeath.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_gazedomn.ncs b/_haks/poa_dev/nw_s1_gazedomn.ncs new file mode 100644 index 0000000000000000000000000000000000000000..ec2f33fe9cf546a6c37c0190c238346ce09e9dd0 GIT binary patch literal 40366 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazedomn.nss b/_haks/poa_dev/nw_s1_gazedomn.nss new file mode 100644 index 00000000..56e56e0b --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazedomn.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_gazedoom.ncs b/_haks/poa_dev/nw_s1_gazedoom.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9b0f39adaabfcc327857c29c80e00bbe21ed6056 GIT binary patch literal 39290 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 xf7}m@?IDwaIu%Br1pBk5cFzhgiX%b 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 WIE@KNS5q}^^YogT>j?fp@&5q4kb3w4 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazeevil.nss b/_haks/poa_dev/nw_s1_gazeevil.nss new file mode 100644 index 00000000..eb2a269c --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazeevil.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_gazefear.ncs b/_haks/poa_dev/nw_s1_gazefear.ncs new file mode 100644 index 0000000000000000000000000000000000000000..bb9fe90231c210b73bd8c5e9bd57565cd4f62186 GIT binary patch literal 39661 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 brBJz*F5)yMz+FwzxXsgRX09XniQ@kOQz?4+ literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazegood.nss b/_haks/poa_dev/nw_s1_gazegood.nss new file mode 100644 index 00000000..6ce014de --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazegood.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_gazelaw.ncs b/_haks/poa_dev/nw_s1_gazelaw.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c4d06dc9c769a53727a7cf6274a0440d80ed0048 GIT binary patch literal 39087 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 TaB*bUs3XO&Boi9{2QmK-L{0#j literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_gazestun.nss b/_haks/poa_dev/nw_s1_gazestun.nss new file mode 100644 index 00000000..8c443992 --- /dev/null +++ b/_haks/poa_dev/nw_s1_gazestun.nss @@ -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); + } +} + diff --git a/_haks/poa_dev/nw_s1_golemgas.ncs b/_haks/poa_dev/nw_s1_golemgas.ncs new file mode 100644 index 0000000000000000000000000000000000000000..5d6dbb86c8985f2369738c49825f9c8f0a629e00 GIT binary patch literal 402 zcmah_yAAX=?0-+e~o93A#A4vDJ^G_^>ASLRoa-q%TK;NB@0U|M=2`JI{+X H%sjmSQ^Hng literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_golemgas.nss b/_haks/poa_dev/nw_s1_golemgas.nss new file mode 100644 index 00000000..6fb1495a --- /dev/null +++ b/_haks/poa_dev/nw_s1_golemgas.nss @@ -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); + } +} + + + diff --git a/_haks/poa_dev/nw_s1_hndbreath.ncs b/_haks/poa_dev/nw_s1_hndbreath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aa1ea7e9228600fc73fcd2e1db51a47c98baece2 GIT binary patch literal 39482 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 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); + } +} + + + diff --git a/_haks/poa_dev/nw_s1_howlconf.ncs b/_haks/poa_dev/nw_s1_howlconf.ncs new file mode 100644 index 0000000000000000000000000000000000000000..10cd02097c83210821262d99efb076d8a4fd2826 GIT binary patch literal 39544 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

ZP?iG5$Qep^%r69B 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 X7jc>rkgl$3+?MGzGuILPf#UxGsN+T& literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_howldeath.nss b/_haks/poa_dev/nw_s1_howldeath.nss new file mode 100644 index 00000000..5730647b --- /dev/null +++ b/_haks/poa_dev/nw_s1_howldeath.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_howlfear.ncs b/_haks/poa_dev/nw_s1_howlfear.ncs new file mode 100644 index 0000000000000000000000000000000000000000..a2af6c1e35774174add9ddd6eba3c5c339b0f28a GIT binary patch literal 39540 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_howlfear.nss b/_haks/poa_dev/nw_s1_howlfear.nss new file mode 100644 index 00000000..13dcfaf0 --- /dev/null +++ b/_haks/poa_dev/nw_s1_howlfear.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_howlparal.ncs b/_haks/poa_dev/nw_s1_howlparal.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aed441579b1c078d61ba975704c08b515062f150 GIT binary patch literal 39421 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 UB_Lg0)wnHFYi6z^_yfiN17$|#(f|Me literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_howlparal.nss b/_haks/poa_dev/nw_s1_howlparal.nss new file mode 100644 index 00000000..b0ecd43c --- /dev/null +++ b/_haks/poa_dev/nw_s1_howlparal.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_howlsonic.ncs b/_haks/poa_dev/nw_s1_howlsonic.ncs new file mode 100644 index 0000000000000000000000000000000000000000..62c88721ce08adeb68201fca92d80d53aec0aa04 GIT binary patch literal 39081 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%0Ah2o^k5Oa}+|)&i@etV0*>K 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_howlsonic.nss b/_haks/poa_dev/nw_s1_howlsonic.nss new file mode 100644 index 00000000..4de9768f --- /dev/null +++ b/_haks/poa_dev/nw_s1_howlsonic.nss @@ -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)); + } +} \ No newline at end of file diff --git a/_haks/poa_dev/nw_s1_howlstun.ncs b/_haks/poa_dev/nw_s1_howlstun.ncs new file mode 100644 index 0000000000000000000000000000000000000000..28a19f6edc13097f4acaa2b8e03fada14e0dea0d GIT binary patch literal 39498 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 XF5)!BAYDz>xGnWH)7KIFMDgDMVbk9= literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_howlstun.nss b/_haks/poa_dev/nw_s1_howlstun.nss new file mode 100644 index 00000000..962d9b90 --- /dev/null +++ b/_haks/poa_dev/nw_s1_howlstun.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_krenscare.ncs b/_haks/poa_dev/nw_s1_krenscare.ncs new file mode 100644 index 0000000000000000000000000000000000000000..fcbbba78d1528f0481ecbbf95cf90d4f4cdb492c GIT binary patch literal 50625 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_mephsalt.nss b/_haks/poa_dev/nw_s1_mephsalt.nss new file mode 100644 index 00000000..03b0b97f --- /dev/null +++ b/_haks/poa_dev/nw_s1_mephsalt.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_mephsteam.ncs b/_haks/poa_dev/nw_s1_mephsteam.ncs new file mode 100644 index 0000000000000000000000000000000000000000..91107e1c6aadea3d33fbf1ebf17818f6986ec50a GIT binary patch literal 44593 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_mephsteam.nss b/_haks/poa_dev/nw_s1_mephsteam.nss new file mode 100644 index 00000000..9b46d89b --- /dev/null +++ b/_haks/poa_dev/nw_s1_mephsteam.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_mumundead.ncs b/_haks/poa_dev/nw_s1_mumundead.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6897b909756de3a6d5e937c1533561316696091d GIT binary patch literal 1028 zcmbVLJx>Bb5Z%2S@T<@m6rw@*8WT{7#@0Xtjh!(XZT%f~7+Zgbzd$QvVeL^F6AB6n zqZSm#P*50g_RXE#og^eu?6NoSy_tDCdr&(zr<il9RSA*Y~;EOOLZsWZl=lJ${`zDbQD0Zs|(U4)84TIlFmI${eX z4WpVgB!R6#3j}OGU=!__pg3!5J&mT@Vbj3A09(}78@(;IBET@_bR3xW&b5dTDhVly)me-CcEi$Z7R J@kG|1Q9piU3vU1b literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_mumundead.nss b/_haks/poa_dev/nw_s1_mumundead.nss new file mode 100644 index 00000000..f11db57b --- /dev/null +++ b/_haks/poa_dev/nw_s1_mumundead.nss @@ -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)); + } +} diff --git a/_haks/poa_dev/nw_s1_pulschrdr.ncs b/_haks/poa_dev/nw_s1_pulschrdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..e3f8c5aca63d0f9f14c5fbf68259400690b764f9 GIT binary patch literal 39043 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulschrdr.nss b/_haks/poa_dev/nw_s1_pulschrdr.nss new file mode 100644 index 00000000..b55902c4 --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulschrdr.nss @@ -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)); + } +} + + diff --git a/_haks/poa_dev/nw_s1_pulscold.ncs b/_haks/poa_dev/nw_s1_pulscold.ncs new file mode 100644 index 0000000000000000000000000000000000000000..b17e5afba826e11dd087a5f6e66950908694c3c2 GIT binary patch literal 39605 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 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)); + } +} + + diff --git a/_haks/poa_dev/nw_s1_pulscondr.ncs b/_haks/poa_dev/nw_s1_pulscondr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..a13019212ce2330a392196dfcf6245c9749fb473 GIT binary patch literal 39043 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulscondr.nss b/_haks/poa_dev/nw_s1_pulscondr.nss new file mode 100644 index 00000000..bfdbfcfe --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulscondr.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_pulsdeath.ncs b/_haks/poa_dev/nw_s1_pulsdeath.ncs new file mode 100644 index 0000000000000000000000000000000000000000..230f564b49d847d19a577c4fd6fc8f152ce9b04e GIT binary patch literal 38932 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 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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_pulsfire.ncs b/_haks/poa_dev/nw_s1_pulsfire.ncs new file mode 100644 index 0000000000000000000000000000000000000000..20f097e22b21a639e2e241d85cf96aa8d2e5a46e GIT binary patch literal 39609 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 PZfkwR%;N}tqWFISgs&Pc literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulsfire.nss b/_haks/poa_dev/nw_s1_pulsfire.nss new file mode 100644 index 00000000..9270aa99 --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulsfire.nss @@ -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)); + } +} + + diff --git a/_haks/poa_dev/nw_s1_pulsholy.ncs b/_haks/poa_dev/nw_s1_pulsholy.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c2302071c633c2ef9c9f9cebda00741a70c5f803 GIT binary patch literal 39936 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulsholy.nss b/_haks/poa_dev/nw_s1_pulsholy.nss new file mode 100644 index 00000000..20ae4638 --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulsholy.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_pulsintdr.ncs b/_haks/poa_dev/nw_s1_pulsintdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6730fc8f4b1c016d12247dcc5b49306618fb5a2f GIT binary patch literal 39041 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 G;{ONla&X81 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulsintdr.nss b/_haks/poa_dev/nw_s1_pulsintdr.nss new file mode 100644 index 00000000..8558364b --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulsintdr.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_pulslvldr.ncs b/_haks/poa_dev/nw_s1_pulslvldr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..de1184e196677ba16a462647ef74bff0932f7bb4 GIT binary patch literal 39017 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%0At}#si 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 M*34W-@Ds)V2M(fp%K!iX literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulsneg.nss b/_haks/poa_dev/nw_s1_pulsneg.nss new file mode 100644 index 00000000..9bfa749f --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulsneg.nss @@ -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)); + } +} diff --git a/_haks/poa_dev/nw_s1_pulspois.ncs b/_haks/poa_dev/nw_s1_pulspois.ncs new file mode 100644 index 0000000000000000000000000000000000000000..cafb629b8de4725d3f9856bda84efef7e84a5ddf GIT binary patch literal 3747 zcmd6pJxml)5Xaws+@1&b%^5&*usJ*h1mkzBd>9J}8ZME)2;}x6RxAXhYyqUK%+uf0|kM7vE zy`8b}cpc-vbv83C@kh4|ZE0z#z)T-w4>h=1V5Vt^XFjGK(&2A~W0kP6NwuA@bpzJs znJKibdEL-WJ!+alf3@qrQEnrg!Bwl^Q9Sj5+$X*wLi<^aCQ)gpgNKIogWSl3s<3C*TNx(8a(mn-kTvjhwx}11*p^!{sZiWW6hk3N zY=9W*y@audA}}Iu4=Jy`HcdPj(Q+|cB<2Q%;uWH3l~oK7#Z3yuMxw|o0lQS^HAocG zUPbnfCu9vAj^V+Ym_PRoGZM8QQivL^f zYrHXf-uu6+eXT;VeC?|ggeCisY>;pc-WEHa(|;LnhI6K(gNlBs$*u|DBy{f?%{2Gl zE4EY7&POe9%iEW9dtu z50KCICBs12_AmEug=y!Xo8Bd+u1qCx=|!e|A5rW%1iMf#Rg@+%1=S%l;%Vkq{~f{?Qm340Ot4IzURkrN38#- 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)); + } +} + + diff --git a/_haks/poa_dev/nw_s1_pulsspore.ncs b/_haks/poa_dev/nw_s1_pulsspore.ncs new file mode 100644 index 0000000000000000000000000000000000000000..723d855979cd16756ed4a1a6cfd355f4c2056c33 GIT binary patch literal 527 zcmbVIy=nqM5T4naJA(*X2q}W*un0s%lsrH}(x(x99wiTv*GQ4VCrFc8u&}hSu&}UG zynOR5qJ%)eEoOG-`dzl1DUsG0fwzxX%?Cm|D2%c;m` z8byf~MX>_vc?&1fKv>uxt`2IXP%sw*b*5%d!{(HL7si>o-CFEMkoV+n$ZhMbdpsOV z%;;Zfd0oEa=U9b26`h4vLg<6`?5=GRmUP@EC$_u=KG2I9#u(>4P+Gsf<5&RWSgck- y*eL;gKLVYa&w^8Lc)UMb6^1%?pj;qdSS~EW0MAmmd~=gun`>Zyhc8aG&gBP~RCk{M literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulsspore.nss b/_haks/poa_dev/nw_s1_pulsspore.nss new file mode 100644 index 00000000..7e9e34d3 --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulsspore.nss @@ -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)); + } +} diff --git a/_haks/poa_dev/nw_s1_pulsstrdr.ncs b/_haks/poa_dev/nw_s1_pulsstrdr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..aa85653d1125544a58de88e1a76d7704ce8bedf3 GIT binary patch literal 39043 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_pulsstrdr.nss b/_haks/poa_dev/nw_s1_pulsstrdr.nss new file mode 100644 index 00000000..5f88eabc --- /dev/null +++ b/_haks/poa_dev/nw_s1_pulsstrdr.nss @@ -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)); + } +} + diff --git a/_haks/poa_dev/nw_s1_pulswind.ncs b/_haks/poa_dev/nw_s1_pulswind.ncs new file mode 100644 index 0000000000000000000000000000000000000000..92fccc72b820e44e3339ec0bbb527dc45e8a5b8d GIT binary patch literal 38697 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_smokeclaw.nss b/_haks/poa_dev/nw_s1_smokeclaw.nss new file mode 100644 index 00000000..6db3666f --- /dev/null +++ b/_haks/poa_dev/nw_s1_smokeclaw.nss @@ -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; + } + } + } + } +} diff --git a/_haks/poa_dev/nw_s1_stink_a.ncs b/_haks/poa_dev/nw_s1_stink_a.ncs new file mode 100644 index 0000000000000000000000000000000000000000..bb2bc5b12f5747046b890fa0fa9162eb42d3a898 GIT binary patch literal 39100 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 DFe(mR literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_tyrantfga.nss b/_haks/poa_dev/nw_s1_tyrantfga.nss new file mode 100644 index 00000000..a2752cbd --- /dev/null +++ b/_haks/poa_dev/nw_s1_tyrantfga.nss @@ -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)); + } + } + } + } +} diff --git a/_haks/poa_dev/nw_s1_tyrantfog.ncs b/_haks/poa_dev/nw_s1_tyrantfog.ncs new file mode 100644 index 0000000000000000000000000000000000000000..609cad3bef159eab3f9ea8bd93363347074d3f72 GIT binary patch literal 173 zcmeZs4ps;=)H85mU|?7)2P7Cc6d0J8Sy&l31A?66U0j_)-NC{VS`1*?PMblR;s5{t ze-s#)89_7yP%XnJ1|VU~#0V1k!oUJiAqz5&4W=5T433$BGSWbS)hsL^W(ts5#mK@2 U(f~FUXa-n<5h!s7YMcTC0OM09kN^Mx literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_tyrantfog.nss b/_haks/poa_dev/nw_s1_tyrantfog.nss new file mode 100644 index 00000000..e3ab9e63 --- /dev/null +++ b/_haks/poa_dev/nw_s1_tyrantfog.nss @@ -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)); +} diff --git a/_haks/poa_dev/nw_s2_divprot.ncs b/_haks/poa_dev/nw_s2_divprot.ncs new file mode 100644 index 0000000000000000000000000000000000000000..c2f36e0cfbbb17f5105b953fc22159e787f0a0af GIT binary patch literal 20552 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s3_balordeth.nss b/_haks/poa_dev/nw_s3_balordeth.nss new file mode 100644 index 00000000..96d0afb2 --- /dev/null +++ b/_haks/poa_dev/nw_s3_balordeth.nss @@ -0,0 +1,62 @@ +// HCR v3.2.0 - Execute default death script after fireball effects is complete. +//:://////////////////////////////////////////////////////////////////////////// +//:: FileName: NW_S3_BALORDETH +//:://////////////////////////////////////////////////////////////////////////// +/* + Fireball explosion does 50 damage to all within 20ft. +*/ +//:://////////////////////////////////////////////////////////////////////////// +//:: Created By: Preston Watamaniuk +//:: Created On: Jan 9, 2002 +//:://////////////////////////////////////////////////////////////////////////// +#include "NW_I0_SPELLS" +#include "prc_inc_spells" +//:://////////////////////////////////////////////////////////////////////////// +void main() +{ + // Declare major variables. + int nMetaMagic = PRCGetMetaMagicFeat(); + int nDamage; + float fDelay; + effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); + effect eDam; + + // Apply the fireball explosion. + effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); + location lTarget = GetLocation(OBJECT_SELF); + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); + + // Cycle through the targets until an invalid object is captured. + object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR); + while (GetIsObjectValid(oTarget)) + { + // Fire cast spell at event for the specified target. + SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL)); + + // Calculate delay based on distance between explosion and the target. + fDelay = (GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20); + if (!PRCDoResistSpell(OBJECT_SELF, oTarget, FloatToInt(fDelay))) + { + // Adjust damage based on Reflex Save, Evasion and Improved Evasion. + nDamage = PRCGetReflexAdjustedDamage(50, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE); + if (nDamage > 0) + { + // Apply effects to the currently selected target. + eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); + DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); + + // This visual effect is applied to the target object not the + // location as above. This visual effect represents the flame that + // erupts on the target not on the ground. + DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); + } + } + + // Select the next target. + oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR); + } + + // HCR 3.0 - Call default death script. + ExecuteScript("nw_c2_default7", OBJECT_SELF); +} +//:://////////////////////////////////////////////////////////////////////////// diff --git a/_module/_removed files/array_example.ncs b/_module/_removed files/array_example.ncs new file mode 100644 index 0000000000000000000000000000000000000000..53a0d30a6c81a5306aa7e8488c3ceb305ff43e48 GIT binary patch literal 8280 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 literal 0 HcmV?d00001 diff --git a/_module/_removed files/array_example.nss b/_module/_removed files/array_example.nss new file mode 100644 index 00000000..53f13f8f --- /dev/null +++ b/_module/_removed files/array_example.nss @@ -0,0 +1,143 @@ +//#include "inc_array" +#include "nwnx_time" + +// nwnx_data also includes inc_array, so don't double dip. +#include "nwnx_data" + +void Log(string msg) +{ + WriteTimestampedLogEntry(msg); +} + +void TestArrayOnModule() +{ + + string array = "test"; + + // By default, temporary arrays are created on the module. + Array_PushBack_Str(array, "BItem1"); + Array_PushBack_Str(array, "AItem2"); + Array_PushBack_Str(array, "AItem3"); + Array_PushBack_Str(array, "BItem2"); + Array_Debug_Dump(array, "After first load"); + + int foo = Array_Find_Str(array, "AItem3"); + Log("Found element AItem3 at index = " + IntToString(foo)); + + Array_Set_Str(array, 2, "Suck it up..."); + Array_Debug_Dump(array, "After set 2 = 'Suck it up...'"); + + Array_Erase(array, 1); + Array_Debug_Dump(array, "After delete 1"); + + Array_PushBack_Str(array, "MItem1"); + Array_PushBack_Str(array, "QItem2"); + Array_PushBack_Str(array, "NItem3"); + Array_PushBack_Str(array, "KItem2"); + + Array_Debug_Dump(array, "After add more"); + Array_SortAscending(array); + + Array_Debug_Dump(array, "After sort"); + + Array_Shuffle(array); + Array_Debug_Dump(array, "After shuffle"); + + Log( (Array_Contains_Str(array, "NItem3")) ? "Passed.. found it" : "Failed.. should have found it" ); + Log( (Array_Contains_Str(array, "KItem2")) ? "Passed.. found it" : "Failed.. should have found it" ); + Log( (Array_Contains_Str(array, "xxxxxx")) ? "Failed.. not found" : "Passed.. should not exist" ); + + Array_Clear(array); + // Load up the array with 100 entries + int i; + + struct NWNX_Time_HighResTimestamp b; + b = NWNX_Time_GetHighResTimeStamp(); + Log("Start Time: " + IntToString(b.seconds) + "." + IntToString(b.microseconds)); + for (i=0; i<1000; i++) + { + Array_PushBack_Str(array, IntToString(d100()) + " xxx " + IntToString(i)); + } + b = NWNX_Time_GetHighResTimeStamp(); + Log("Loaded 1000: " + IntToString(b.seconds) + "." + IntToString(b.microseconds)); + Array_Shuffle(array); + b = NWNX_Time_GetHighResTimeStamp(); + Log("Shuffled 1000: " + IntToString(b.seconds) + "." + IntToString(b.microseconds)); + for (i=5; i<995; i++) + { + // Delete the third entry a bunch of times + Array_Erase(array, 3); + } + b = NWNX_Time_GetHighResTimeStamp(); + Log("Delete ~990: " + IntToString(b.seconds) + "." + IntToString(b.microseconds)); + Array_Debug_Dump(array, "After mass insert/delete"); + +} + +void TestArrayOnChicken() +{ + string array="chicken"; + // Let's create an array "on" our favorite creature: the deadly nw_chicken + // Note - arrays aren't really attached to the item, but the module, and they + // are tagged with the objects string representation. + object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); + if (!GetIsObjectValid(oCreature)) + { + Log("NWNX_Creature test: Failed to create creature"); + return; + } + + Array_PushBack_Str(array, "BItem1", oCreature); + Array_PushBack_Str(array, "AItem2", oCreature); + Array_PushBack_Str(array, "AItem3", oCreature); + Array_PushBack_Str(array, "BItem2", oCreature); + Array_Debug_Dump(array, "After Chicken array load", oCreature); + +} + +void TestNWNXArray() +{ + Log(""); + Log("Start NWNX_Data test."); + string array = "test2"; + + NWNX_Data_Array_PushBack_Str(GetModule(), array, "XItem1"); + NWNX_Data_Array_PushBack_Str(GetModule(), array, "ZItem2"); + NWNX_Data_Array_PushBack_Str(GetModule(), array, "ZItem3"); + NWNX_Data_Array_PushBack_Str(GetModule(), array, "XItem2"); + Array_Debug_Dump(array, "After first load"); + + int foo = NWNX_Data_Array_Find_Str(GetModule(), array, "ZItem3"); + Log("Found element AItem3 at index = " + IntToString(foo)); + + NWNX_Data_Array_Set_Str(GetModule(), array, 2, "Suck it up..."); + Array_Debug_Dump(array, "After set 2 = 'Suck it up...'"); + + NWNX_Data_Array_Erase(NWNX_DATA_TYPE_STRING, GetModule(), array, 1); + Array_Debug_Dump(array, "After delete 1"); + + NWNX_Data_Array_PushBack_Str(GetModule(), array, "MItem1"); + NWNX_Data_Array_PushBack_Str(GetModule(), array, "QItem2"); + NWNX_Data_Array_PushBack_Str(GetModule(), array, "NItem3"); + NWNX_Data_Array_PushBack_Str(GetModule(), array, "KItem2"); + + Array_Debug_Dump(array, "After add more"); + NWNX_Data_Array_SortAscending(NWNX_DATA_TYPE_STRING, GetModule(), array); + + Array_Debug_Dump(array, "After sort"); + +} + +// Uncomment and assign to some event click. +/* */ +void main() +{ + Log("Start"); + + TestArrayOnModule(); + + TestArrayOnChicken(); + + TestNWNXArray(); +} +/* */ diff --git a/_module/_removed files/inc_array.nss b/_module/_removed files/inc_array.nss new file mode 100644 index 00000000..0024f733 --- /dev/null +++ b/_module/_removed files/inc_array.nss @@ -0,0 +1,504 @@ +#include "nwnx_regex" + +/// @addtogroup data Data +/// @brief Provides a number of data structures for NWN code to use (simulated arrays) +/// @{ +/// @file nwnx_data.nss + +const int INVALID_INDEX = -1; +const int TYPE_FLOAT = 0; +const int TYPE_INTEGER = 1; +const int TYPE_OBJECT = 2; +const int TYPE_STRING = 3; + +/// @defgroup data_array_at Array At +/// @brief Returns the element at the index. +/// @ingroup data +/// @param obj The object. +/// @param tag The tag. +/// @param index The index. +/// @return The element of associated type. +/// @{ +string Array_At_Str(string tag, int index, object obj=OBJECT_INVALID); +float Array_At_Flt(string tag, int index, object obj=OBJECT_INVALID); +int Array_At_Int(string tag, int index, object obj=OBJECT_INVALID); +object Array_At_Obj(string tag, int index, object obj=OBJECT_INVALID); +/// @} + + +/// Clears the entire array, such that size==0. +void Array_Clear(string tag, object obj=OBJECT_INVALID); + +/// @defgroup data_array_contains Array Contains +/// @brief Checks if array contains the element. +/// @ingroup data +/// @param obj The object. +/// @param tag The tag. +/// @param element The element. +/// @return TRUE if the collection contains the element. +/// @{ +int Array_Contains_Flt(string tag, float element, object obj=OBJECT_INVALID); +int Array_Contains_Int(string tag, int element, object obj=OBJECT_INVALID); +int Array_Contains_Obj(string tag, object element, object obj=OBJECT_INVALID); +int Array_Contains_Str(string tag, string element, object obj=OBJECT_INVALID); +/// @} + +/// Copies the array of name otherTag over the array of name tag. +void Array_Copy(string tag, string otherTag, object obj=OBJECT_INVALID); + +/// Erases the element at index, and shuffles any elements from index size-1 to index + 1 left. +void Array_Erase(string tag, int index, object obj=OBJECT_INVALID); + +/// @defgroup data_array_find Array Find +/// @brief Get the index at which the element is located. +/// @ingroup data +/// @param obj The object. +/// @param tag The tag. +/// @param element The element. +/// @return Returns the index at which the element is located, or ARRAY_INVALID_INDEX. +/// @{ +int Array_Find_Flt(string tag, float element, object obj=OBJECT_INVALID); +int Array_Find_Int(string tag, int element, object obj=OBJECT_INVALID); +int Array_Find_Obj(string tag, object element, object obj=OBJECT_INVALID); +int Array_Find_Str(string tag, string element, object obj=OBJECT_INVALID); +/// @} + +/// @defgroup data_array_insert Array Insert +/// @brief Inserts the element at the index, where size > index >= 0. +/// @ingroup data +/// @param obj The object. +/// @param tag The tag. +/// @param index The index. +/// @param element The element. +/// @{ +void Array_Insert_Flt(string tag, int index, float element, object obj=OBJECT_INVALID); +void Array_Insert_Int(string tag, int index, int element, object obj=OBJECT_INVALID); +void Array_Insert_Obj(string tag, int index, object element, object obj=OBJECT_INVALID); +void Array_Insert_Str(string tag, int index, string element, object obj=OBJECT_INVALID); +/// @} + +/// @defgroup data_array_pushback Array Pushback +/// @brief Pushes an element to the back of the collection. +/// @remark Functionally identical to an insert at index size-1. +/// @ingroup data +/// @param obj The object. +/// @param tag The tag. +/// @param element The element. +/// @{ +void Array_PushBack_Flt(string tag, float element, object obj=OBJECT_INVALID); +void Array_PushBack_Int(string tag, int element, object obj=OBJECT_INVALID); +void Array_PushBack_Obj(string tag, object element, object obj=OBJECT_INVALID); +void Array_PushBack_Str(string tag, string element, object obj=OBJECT_INVALID); +/// @} + +/// Resizes the array. If the array is shrinking, it chops off elements at the ned. +void Array_Resize(string tag, int size, object obj=OBJECT_INVALID); + +/// Reorders the array such each possible permutation of elements has equal probability of appearance. +void Array_Shuffle(string tag, object obj=OBJECT_INVALID); + +/// Returns the size of the array. +int Array_Size(string tag, object obj=OBJECT_INVALID); + +/// Sorts the collection based on descending order. +void Array_SortAscending(string tag, int type=TYPE_STRING, object obj=OBJECT_INVALID); + +/// Sorts the collection based on descending order. +void Array_SortDescending(string tag, int type=TYPE_STRING, object obj=OBJECT_INVALID); + +/// @defgroup data_array_set Array Set +/// @brief Sets the element at the index, where size > index >= 0. +/// @ingroup data +/// @param obj The object. +/// @param tag The tag. +/// @param index The index. +/// @param element The element. +/// @{ +void Array_Set_Flt(string tag, int index, float element, object obj=OBJECT_INVALID); +void Array_Set_Int(string tag, int index, int element, object obj=OBJECT_INVALID); +void Array_Set_Obj(string tag, int index, object element, object obj=OBJECT_INVALID); +void Array_Set_Str(string tag, int index, string element, object obj=OBJECT_INVALID); +/// @} + +/// @} + +// +// Local Utility Functions. +// +string GetTableName(string tag, object obj=OBJECT_INVALID, int bare=FALSE) { + if (obj == OBJECT_INVALID) + obj = GetModule(); + + string sName = "array_" + ObjectToString(obj) + "_" + tag; + // Remove invalid characters from the tag rather than failing. + string sCleansed = NWNX_Regex_Replace(sName, "[^A-Za-z0-9_\$@#]", ""); + // But provide some feedback. + if (GetStringLength(sName) != GetStringLength(sCleansed) || GetStringLength(sCleansed) == 0) { + WriteTimestampedLogEntry("WARNING: Invalid table name detected for array with tag <" + tag + ">. Only characters (a-zA-Z0-9), _, @, $ and # are allowed. Using <"+sCleansed+"> instead."); + + } + + // BARE returns just the table name with no wrapping. + if (bare == TRUE) { + return sCleansed; + } + + // Table name wraped in quotes to avoid token expansion. + return "\""+sCleansed+"\""; +} + +string GetTableCreateString(string tag, object obj=OBJECT_INVALID) { + // for simplicity sake, everything is turned into a string. Possible enhancement + // to create specific tables for int/float/whatever. + return "CREATE TABLE IF NOT EXISTS " + GetTableName(tag, obj) + " ( ind INTEGER PRIMARY KEY, value TEXT )"; +} + +int TableExists(string tag, object obj=OBJECT_INVALID) { + string stmt = "SELECT name FROM sqlite_master WHERE type = 'table' AND name = @tablename;"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindString(sqlQuery, "@tablename", GetTableName(tag, obj, TRUE)); + return SqlStep(sqlQuery); +} + +void ExecuteStatement(string statement, object obj=OBJECT_INVALID) { + if (obj == OBJECT_INVALID) + obj = GetModule(); + // There's no direct "execute this.." everything has to be prepared then executed. + //WriteTimestampedLogEntry("SQL: " + statement); + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), statement); + SqlStep(sqlQuery); +} + +void CreateArrayTable(string tag, object obj=OBJECT_INVALID) { + string createStatement = GetTableCreateString(tag, obj); + ExecuteStatement(createStatement, obj); +} + +// Get the table row count. Returns -1 on error (0 is a valid number of rows in a table) +int GetRowCount(string tag, object obj=OBJECT_INVALID) { + if (obj == OBJECT_INVALID) + obj = GetModule(); + CreateArrayTable(tag, obj); + string stmt = "SELECT COUNT(1) FROM " + GetTableName(tag, obj); + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + if ( SqlStep(sqlQuery) ) { + return SqlGetInt(sqlQuery, 0); + } + return -1; +} + + +//////////////////////////////////////////////////////////////////////////////// +// return the value contained in location "index" +string Array_At_Str(string tag, int index, object obj=OBJECT_INVALID) +{ + // Just "create if not exists" to ensure it exists for the insert. + CreateArrayTable(tag, obj); + + string stmt = "SELECT value FROM " + GetTableName(tag, obj) + " WHERE ind = @ind"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@ind", index); + if ( SqlStep(sqlQuery) ) { + return SqlGetString(sqlQuery, 0); + } + return ""; +} + +float Array_At_Flt(string tag, int index, object obj=OBJECT_INVALID) +{ + string st = Array_At_Str(tag, index, obj); + if (st == "") { + return 0.0; + } + return StringToFloat(st); +} + +int Array_At_Int(string tag, int index, object obj=OBJECT_INVALID) +{ + string st = Array_At_Str(tag, index, obj); + if (st == "") { + return 0; + } + return StringToInt(st); +} + +object Array_At_Obj(string tag, int index, object obj=OBJECT_INVALID) +{ + string st = Array_At_Str(tag, index, obj); + if (st == "") { + return OBJECT_INVALID; + } + return StringToObject(st); +} + +void Array_Clear(string tag, object obj=OBJECT_INVALID) +{ + ExecuteStatement("delete from "+GetTableName(tag, obj), obj); +} + +//////////////////////////////////////////////////////////////////////////////// +// Return true/value (1/0) if the array contains the value "element" +int Array_Contains_Str(string tag, string element, object obj=OBJECT_INVALID) +{ + CreateArrayTable(tag, obj); + string stmt = "SELECT COUNT(1) FROM "+GetTableName(tag, obj)+" WHERE value = @element"; + + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindString(sqlQuery, "@element", element); + + int pos = -1; + if ( SqlStep(sqlQuery) ) { + pos = SqlGetInt(sqlQuery, 0); + if (pos > 0) { + return TRUE; + } + } + return FALSE; +} + +int Array_Contains_Flt(string tag, float element, object obj=OBJECT_INVALID) +{ + return Array_Contains_Str(tag, FloatToString(element), obj); +} + +int Array_Contains_Int(string tag, int element, object obj=OBJECT_INVALID) +{ + return Array_Contains_Str(tag, IntToString(element), obj); +} + +int Array_Contains_Obj(string tag, object element, object obj=OBJECT_INVALID) +{ + return Array_Contains_Str(tag, ObjectToString(element), obj); +} + + +//////////////////////////////////////////////////////////////////////////////// +void Array_Copy(string tag, string otherTag, object obj=OBJECT_INVALID) +{ + CreateArrayTable(otherTag, obj); + ExecuteStatement("INSERT INTO "+GetTableName(otherTag, obj)+" SELECT * FROM "+GetTableName(tag, obj), obj); +} + +//////////////////////////////////////////////////////////////////////////////// +void Array_Erase(string tag, int index, object obj=OBJECT_INVALID) +{ + int rows = GetRowCount(tag, obj); + // Silently fail if "index" is outside the range of valid indicies. + if (index >= 0 && index < rows) { + string stmt = "DELETE FROM "+GetTableName(tag, obj)+" WHERE ind = @ind"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@ind", index); + SqlStep(sqlQuery); + + stmt = "UPDATE "+GetTableName(tag, obj)+" SET ind = ind - 1 WHERE ind > @ind"; + sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@ind", index); + SqlStep(sqlQuery); + } +} + +//////////////////////////////////////////////////////////////////////////////// +// return the index in the array containing "element" +// if not found, return INVALID_INDEX +int Array_Find_Str(string tag, string element, object obj=OBJECT_INVALID) +{ + string stmt = "SELECT IFNULL(MIN(ind),@invalid_index) FROM "+GetTableName(tag, obj)+" WHERE value = @element"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@invalid_index", INVALID_INDEX); + SqlBindString(sqlQuery, "@element", element); + if ( SqlStep(sqlQuery) ) { + return SqlGetInt(sqlQuery, 0); + } + return INVALID_INDEX; +} + +int Array_Find_Flt(string tag, float element, object obj=OBJECT_INVALID) +{ + return Array_Find_Str(tag, FloatToString(element), obj); +} + +int Array_Find_Int(string tag, int element, object obj=OBJECT_INVALID) +{ + return Array_Find_Str(tag, IntToString(element), obj); +} + +int Array_Find_Obj(string tag, object element, object obj=OBJECT_INVALID) +{ + return Array_Find_Str(tag, ObjectToString(element), obj); +} + +//////////////////////////////////////////////////////////////////////////////// +// Insert a new element into position 'index'. If index is beyond the number of rows in the array, +// this will quietly fail. This could be changed if you wanted to support sparse +// arrays. +void Array_Insert_Str(string tag, int index, string element, object obj=OBJECT_INVALID) +{ + int rows = GetRowCount(tag, obj); + // Index numbers are off by one, much like C arrays, so for "rows=10" - values are 0-9. + // It's not unreasonable to fail if you try to insert ind=10 into an array who's indexes + // only go to 9, but I guess it doesn't hurt as long as we're not allowing gaps in + // index numbers. + if (index >= 0 && index <= rows) { + // index is passed as an integer, so immune (as far as I know) to SQL injection for a one shot query. + ExecuteStatement("UPDATE "+GetTableName(tag, obj)+" SET ind = ind + 1 WHERE ind >= "+IntToString(index), obj); + // Element, however, is not. + string stmt = "INSERT INTO "+GetTableName(tag, obj)+" VALUES ( @ind, @element )"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@ind", index); + SqlBindString(sqlQuery, "@element", element); + SqlStep(sqlQuery); + } +} + +void Array_Insert_Flt(string tag, int index, float element, object obj=OBJECT_INVALID) +{ + Array_Insert_Str(tag, index, FloatToString(element), obj); +} + +void Array_Insert_Int(string tag, int index, int element, object obj=OBJECT_INVALID) +{ + Array_Insert_Str(tag, index, IntToString(element), obj); +} + +void Array_Insert_Obj(string tag, int index, object element, object obj=OBJECT_INVALID) +{ + Array_Insert_Str(tag, index, ObjectToString(element), obj); +} + +//////////////////////////////////////////////////////////////////////////////// +// Insert a new element at the end of the array. +void Array_PushBack_Str(string tag, string element, object obj=OBJECT_INVALID) +{ + // If rowCount = 10, indexes are from 0 to 9, so this becomes the 11th entry at index 10. + int rowCount = GetRowCount(tag, obj); + + string stmt = "INSERT INTO "+GetTableName(tag, obj)+" VALUES ( @ind, @element )"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@ind", rowCount); + SqlBindString(sqlQuery, "@element", element); + SqlStep(sqlQuery); +} + +void Array_PushBack_Flt(string tag, float element, object obj=OBJECT_INVALID) +{ + Array_PushBack_Str(tag, FloatToString(element), obj); +} + +void Array_PushBack_Int(string tag, int element, object obj=OBJECT_INVALID) +{ + Array_PushBack_Str(tag, IntToString(element), obj); +} + +void Array_PushBack_Obj(string tag, object element, object obj=OBJECT_INVALID) +{ + Array_PushBack_Str(tag, ObjectToString(element), obj); +} + +//////////////////////////////////////////////////////////////////////////////// +// Cuts the array off at size 'size'. Elements beyond size are removed. +void Array_Resize(string tag, int size, object obj=OBJECT_INVALID) +{ + // Int immune to sql injection so easier to one-shot it. + ExecuteStatement("DELETE FROM "+GetTableName(tag, obj)+" WHERE ind >= " + IntToString(size), obj); +} + +//////////////////////////////////////////////////////////////////////////////// +void Array_Shuffle(string tag, object obj=OBJECT_INVALID) +{ + string table = GetTableName(tag, obj, TRUE); + ExecuteStatement("CREATE TABLE " +table+ "_temp AS SELECT ROW_NUMBER() OVER(ORDER BY RANDOM())-1, value FROM " +table, obj); + ExecuteStatement("DELETE FROM " +table , obj); + ExecuteStatement("INSERT INTO " +table+ " SELECT * FROM " +table+ "_temp", obj); + ExecuteStatement("DROP TABLE " +table+ "_TEMP", obj); +} + +//////////////////////////////////////////////////////////////////////////////// +int Array_Size(string tag, object obj=OBJECT_INVALID) +{ + return GetRowCount(tag, obj); +} + +//////////////////////////////////////////////////////////////////////////////// +// Sort the array by value according to 'direction' (ASC or DESC). +// Supplying a type allows for correct numerical sorting of integers or floats. +void Array_Sort(string tag, string dir="ASC", int type=TYPE_STRING, object obj=OBJECT_INVALID) +{ + string table = GetTableName(tag, obj, TRUE); + string direction = GetStringUpperCase(dir); + + if ( ! (direction == "ASC" || direction == "DESC") ) { + WriteTimestampedLogEntry("WARNING: Invalid sort direction <" + direction + "> supplied. Defaulting to ASC."); + direction = "ASC"; + } + + // default orderBy for strings. + string orderBy = "ORDER BY value " + direction; + switch(type) { + case TYPE_INTEGER: + orderBy = "ORDER BY CAST(value AS INTEGER)" + direction; + break; + case TYPE_FLOAT: + orderBy = "ORDER BY CAST(value AS DECIMAL)" + direction; + break; + } + ExecuteStatement("CREATE TABLE " +table+ "_temp AS SELECT ROW_NUMBER() OVER(" + orderBy + ")-1, value FROM " +table, obj); + ExecuteStatement("DELETE FROM " +table, obj); + ExecuteStatement("INSERT INTO " +table+ " SELECT * FROM " +table+ "_temp", obj); + ExecuteStatement("DROP TABLE " +table+ "_temp", obj); +} + +void Array_SortAscending(string tag, int type=TYPE_STRING, object obj=OBJECT_INVALID) +{ + Array_Sort(tag, "ASC", type, obj); +} + +void Array_SortDescending(string tag, int type=TYPE_STRING, object obj=OBJECT_INVALID) +{ + Array_Sort(tag, "DESC", type, obj); +} + +//////////////////////////////////////////////////////////////////////////////// +// Set the value of array index 'index' to a 'element' +// This will quietly eat values if index > array size +void Array_Set_Str(string tag, int index, string element, object obj=OBJECT_INVALID) +{ + int rows = GetRowCount(tag, obj); + if (index >= 0 && index <= rows) { + string stmt = "UPDATE "+GetTableName(tag, obj)+" SET value = @element WHERE ind = @ind"; + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@ind", index); + SqlBindString(sqlQuery, "@element", element); + SqlStep(sqlQuery); + } +} + +void Array_Set_Flt(string tag, int index, float element, object obj=OBJECT_INVALID) +{ + Array_Set_Str(tag, index, FloatToString(element), obj); +} + +void Array_Set_Int(string tag, int index, int element, object obj=OBJECT_INVALID) +{ + Array_Set_Str(tag, index, IntToString(element), obj); +} + +void Array_Set_Obj(string tag, int index, object element, object obj=OBJECT_INVALID) +{ + Array_Set_Str(tag, index, ObjectToString(element), obj); +} + +void Array_Debug_Dump(string tag, string title = "xxx", object obj=OBJECT_INVALID) { + if (title != "xxx") { + WriteTimestampedLogEntry("== " + title + " ======================================"); + } + WriteTimestampedLogEntry("Table name = " + GetTableName(tag, obj)); + string stmt = "SELECT ind, value FROM " + GetTableName(tag, obj); + sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + int ind = -1; + string value = ""; + while ( SqlStep(sqlQuery) ) { + ind = SqlGetInt(sqlQuery, 0); + value = SqlGetString(sqlQuery, 1); + WriteTimestampedLogEntry(tag + "[" + IntToString(ind) + "] = " + value); + } +} diff --git a/_removed files/nw_s1_barbrage.nss b/_module/_removed files/nw_s1_barbrage.nss similarity index 100% rename from _removed files/nw_s1_barbrage.nss rename to _module/_removed files/nw_s1_barbrage.nss diff --git a/_removed files/nw_s2_bardsong.nss b/_module/_removed files/nw_s2_bardsong.nss similarity index 100% rename from _removed files/nw_s2_bardsong.nss rename to _module/_removed files/nw_s2_bardsong.nss diff --git a/_removed files/nw_s2_wholeness.nss b/_module/_removed files/nw_s2_wholeness.nss similarity index 100% rename from _removed files/nw_s2_wholeness.nss rename to _module/_removed files/nw_s2_wholeness.nss diff --git a/_removed files/x1_s2_imbuearrow.nss b/_module/_removed files/x1_s2_imbuearrow.nss similarity index 100% rename from _removed files/x1_s2_imbuearrow.nss rename to _module/_removed files/x1_s2_imbuearrow.nss diff --git a/_removed files/evercliententer.nss b/_removed files/evercliententer.nss deleted file mode 100644 index e933c0b2..00000000 --- a/_removed files/evercliententer.nss +++ /dev/null @@ -1,363 +0,0 @@ -//Script Name: evercliententer -////////////////////////////////////////// -//Created By: Genisys (Guile) -//Created On: 6/14/08 (Updated_8/10/08) -///////////////////////////////////////// -/* -This my premier OnClientEnter Module Event Script -for all my modules NWNX2 / Leto Modules - -This script goes in the OnClient Enter Event -if you are using the nwnx2 system & leto! -*/ -///////////////////////////////////////////////////////////////// -//This script does multiple things, it checks to see if... -//If the PC is immortal or level 40 (apply special effects) -//If the character they have has been banned. (not a total bann) -//If they logged out while dead, if so make them dead instantly!!! ;) -//If the player is playing a legal character or not...read below... -//And if the Player themself have been banned from the module or not.. -/////////////////////////////////////////////////////////////////////// - -//Required Includes (Don't touch!) -#include "nw_i0_tool" -#include "gen_inc_color" -#include "fky_chat_inc" - -/////////////////////////// -//Repetitive Variables.. -effect eEffect; -int nInt; -object oItem; -object aTarget; -location bTarget; - -void main() -{ -//Declare Major Variables.. -object oPC; -oPC = GetEnteringObject(); -object oTarget; -oTarget = oPC; -object oPlayer = oPC; -object oPP = oPC; - -if(GetIsDM(oPC)) -{return; } - -//object oInfo = GetItemPossessedBy(oPP, "pcidname"); -//string sID = GetStringRight(GetName(oInfo), 14); - -//Tell us if the entering CHARACTER has been banned or not -int nBann = GetCampaignInt(GetName(GetModule()), "CBANN", oPP); - -object oTag; -location lTag; - - -//This part is about verifying the Player's name.. -//A player must have at least a 2 character name or they are going to -//return with an error! If they have spaces in their name it will return -//with an error as well, including alt code! -string sPCNM = GetName(oPP); -string sPCNMR = GetStringRight(sPCNM, 2); -string sNC1; string sNC2; string sRNC1; string sRNC2; -int nBad; - -//Find the second character of the players name.. -sNC1 = GetSubString(sPCNM, 0, 1); -//Find the second character of the players name.. -sNC2 = GetSubString(sPCNM, 0, 2); -//Find the last letter in the player's name. -sRNC1 = GetSubString(sPCNMR, 0, 1); -//Find the next to the last letter in the player's name. -sRNC2 = GetSubString(sPCNMR, 0, 2); - -///////////////////////////////////////////////////////////////////////////// -//Please leave the credits to the module within the message. - -//Colorful Server Message sent to all PCs when they enter the module.. -string sMessage; -sMessage = GetRGB(1,7,7); //The color (See above) -sMessage += "Welcome "; //The text to be colorized by the above color. -sMessage += GetRGB(15,15,1);//The next color. -sMessage += "to a "; //The next text to be colorized by the above color. -sMessage += GetRGB(15,1,1);//etc.. -sMessage += "Revised Edition "; -sMessage += GetRGB(7,7,15); -sMessage += "of the "; -sMessage += GetRGB(1,15,1); -sMessage += "Classic Module"; -sMessage += GetRGB(13,9,13); -sMessage += "Paths of Ascension "; -sMessage += GetRGB(12,10,7); -sMessage += "Created By: AW_Olorin "; -sMessage += GetRGB(); -sMessage += "Revised By "; -sMessage += GetRGB(15,5,1); -sMessage += "Genisys (Guile) "; -sMessage += GetRGB(12,10,7); -sMessage += "on 7/21/08"; - -//Float welcome message by.. -DelayCommand(13.3, FloatingTextStringOnCreature(sMessage, oPC, FALSE)); - -/////////////////////////IMPORTANT////////////////////////////////// -//You must make all the "" below into " " to check for legal names -//I turned it off because a lot of my characters have bad names! -//Simply put the cursor between "" and hit the space bar for "" to " " -if(sNC1 =="") -{ nBad =1; } -else if(sNC2 =="") -{ nBad =1; } -else if(sRNC1 =="") -{ nBad =1; } -else if(sRNC2 =="") -{ nBad =1; } -else { nBad = 0; } - -///////////////////////////////////////////////////////////////////// - -//If it's a DM entering the module... -if(GetIsDM(oPC)) -{ - //If the DM has never logged on before.. - if(GetItemPossessedBy(oPC, "dmtoolz")==OBJECT_INVALID) - { - //Change "dmtoolz" to the tag name of any items you want given to DMs - //the first time they enter only...(copy / paste for more items) - //simply type // at the start of a line to deactivate it.. - CreateItemOnObject("dmtoolz", oPC, 1); - CreateItemOnObject("dmtoolz", oPC, 1); - CreateItemOnObject("dmtoolz", oPC, 1); - CreateItemOnObject("dmtoolz", oPC, 1); - //CreateItemOnObject("dmtoolz", oPC, 1); - - //This message is here for a reason! - DelayCommand(10.0, SendMessageToPC(oPC, - "You have been given DM Items and your DM Character was saved," + - " please login with the updated version of your DM Character and" + - " delete the original, thank you.")); - - //You may want to create a journal tagnamed "dmrules" and define - //what your DMs are not allowed to do here.. - //simply delete the // on the line below to activate the jounral entry - //AddJournalQuestEntry("dmrules", 1, oPC, FALSE, FALSE); - } -} - -///////////////////////////////////////////////////////////////////////////// -//SimTools & Higher Ground's Legendary Leveler Functions -//////////////////////////////////////////////////////// - string sCDKey = GetPCPublicCDKey(oPC); - - Speech_OnClientEnter(oPC); - int nPerm, nPerm2; - if (USING_NWNX_DB) - { - nPerm = GetPersistentInt(GetModule(), "FKY_CHT_BANSHOUT" + sCDKey); - nPerm2 = GetPersistentInt(GetModule(), "FKY_CHT_BANPLAYER" + sCDKey);; - if (ENABLE_LANGUAGES) DoLanguageSetupNWNX(oPC); - } - else //using Bioware db - { - nPerm = GetCampaignInt("FKY_CHT", "FKY_CHT_BANSHOUT" + sCDKey); - nPerm2 = GetCampaignInt("FKY_CHT", "FKY_CHT_BANPLAYER" + sCDKey); - if (ENABLE_LANGUAGES) DoLanguageSetupBio(oPC); - } - if (nPerm) SetLocalInt(oPC, "FKY_CHT_BANSHOUT", TRUE); - if (nPerm2 || GetLocalInt(oPC, "FKY_CHT_BANPLAYER")) DoBoot(oPC);//Boot them if Valid Object - - - //below removes the Letoscript string so the changes won't be applied again on the next logout - string Script = GetLocalString(oPC, "LetoScript"); - if( Script != "" ) - { - SetLocalString(oPC, "LetoScript", ""); - } - -/////////////////////////////////////////////// - -//Let's make sure that the following code is only executed -//on Players and not DMs.. - -if(!GetIsPC(oPC))return; -if(GetIsDMPossessed(oPC))return; -if(GetIsDM(oPC))return; - -//////////////////////////////////////////////////////////////////////// -////////JOURNAL ENTRIES//////// -/////////////////////////////// -//These function add journal entries by the tag names below -//If you do not have these journal entries you can create them -//I only included the 1st entry (1). -AddJournalQuestEntry("severrules", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("spells", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("x2spells", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("feats", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("shifter", 1, oPC, FALSE, FALSE); - - -//////////////////IMPORTANT////////////////IMPORTANT//////////////////////// - -//This function scans the Entering PC to see if they have a legal character. -//Delete the // Below to activate the anti-cheat script -//DelayCommand(9.0, ExecuteScript("cheatercheck2", oPC)); - -///////////////////////////////////////////////////////////////////////////// -//If level 40 lets do some cool stuff to them :) (optional of course) -//Simply type // before any effect you do not wish to apply... - if(GetHitDice(oPC) == 40) - { - //Lets make the concealed 40% - eEffect = EffectConcealment(40); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); - - //Lets make the look like a ghost.. :) - ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(EffectVisualEffect(VFX_DUR_GLOW_WHITE)), oPC); - - } - -////////////////////////////////////////////////////////////////////////////// - -//This is the immortal option, you must utilize the makeimmortal script -//to make players immortal (please read that script.) -if(GetItemPossessedBy(oPC, "immotoken") != OBJECT_INVALID) -{ -//Run this script on the player (See script to configure settings) -ExecuteScript("powerimmortal", oPC); -} - -////////////////////////////////////////////////////////////////////////////// - -//If a player has been found with an illegal character they will have this item. -//It will prevent them from logging onto your server with that character. -if (GetItemPossessedBy(oPC, "banned")!= OBJECT_INVALID) - { - AssignCommand(oPC, ClearAllActions()); - - SetCutsceneMode(oPC, TRUE); - - SetCameraMode(oPC, CAMERA_MODE_CHASE_CAMERA); - - DelayCommand(4.0, FloatingTextStringOnCreature("You have an illegal character which is not allowed on this server.", oPC)); - - DelayCommand(5.0, SetCutsceneMode(oPC, FALSE)); - - DelayCommand(6.0, BootPC(oPC)); - - } - -//Since the player was dead when they logged, kill them! -if (GetItemPossessedBy(oPC, "death")!= OBJECT_INVALID) - { - effect eEffect; - eEffect = EffectDeath(); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC); - SendMessageToPC(oPC, "You died because you were dead when you logged out."); - } - -////////////////////////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////////////////// -//Let's see if the player's character has been banned from the module.. -//Not the save as a player being banned altogether.. -if(nBann ==1) -{ -//Boot the PC fast! -DelayCommand(3.9, BootPC(oPP)); -return; -} -//Let's see if the player playing the character has been banned altogether! -if(GetCampaignInt(GetName(GetModule()), "BANN", oPP)==TRUE) -{ -//If so boot them fast! -DelayCommand(3.5, BootPC(oPP)); - -//In Case They Can't be Booted..(Allow them to enter the module first..) -//Then lock thier game down! (Note; You cannot have a script in OnCutscenAbort!) -DelayCommand(9.0, SetCutsceneMode(oPP, TRUE, FALSE)); -//They can't see nothing! -DelayCommand(9.1, FadeToBlack(oPP, FADE_SPEED_FAST)); -//Turn them into a chiken :) -DelayCommand(9.2, ApplyEffectToObject -(DURATION_TYPE_PERMANENT, EffectPolymorph(113, TRUE), oPP)); -DelayCommand(9.3, ExportSingleCharacter(oPP)); //Make the polymorph permanent! -return; -} - -////////////////////////////////////////////////////////////////////////////// -//Let's prevent badly named characters from logging onto the server.. - -// /*(Delete the // at the start of this line to deactivate this section) - -//Let's verify they have a legal name! - -//NOTE This function works in conjunction with another script -//in which an NPC at the start verifies if the PC is playing a legal name. - -//If the first 2 or last 2 letters of their name are bad.. -if(nBad==1) -{ -//Delay the following to allow the PC to enter the module.. -DelayCommand(10.0, -FloatingTextStringOnCreature("You character name is not allowed!", oPP)); - - -return; -} - -else // (do not touch this line!) */ -{ -//Welcome to them to the server.. -DelayCommand(5.0, SendMessageToPC(oPP, -"Welcome to this CEP2 Persistent Module Created by Genisys")); -} - -/////////////////////////////////////////////////////////////// - -//If the player has been inside of a party room, but logged out, then -//teleport them to the start and take the token! -if (GetItemPossessedBy(oPC, "partyroom")!= OBJECT_INVALID) - { - oItem = GetFirstItemInInventory(oPC); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="partyroom") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oPC); - } - - aTarget = GetWaypointByTag("home"); - bTarget = GetLocation(aTarget); - - if (GetAreaFromLocation(bTarget)==OBJECT_INVALID) return; - - //Allow them to fully enter the module.. - DelayCommand(8.0, AssignCommand(oPC, ClearAllActions())); - DelayCommand(8.1, AssignCommand(oPC, ActionJumpToLocation(bTarget))); - - } - -////////////////////////////////////////////////////////////////////////////// - -//Remove all Arena Tokens on enter.. - -if (GetItemPossessedBy(oPC, "arenatoken")!= OBJECT_INVALID) - { - oItem = GetFirstItemInInventory(oPC); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="arenatoken") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oPC); - } - } - -//End Script -} diff --git a/_removed files/everclientexit.nss b/_removed files/everclientexit.nss deleted file mode 100644 index bade40a1..00000000 --- a/_removed files/everclientexit.nss +++ /dev/null @@ -1,358 +0,0 @@ -//Script Name: everclientexit -////////////////////////////////////////// -//Created By: Genisys (Guile) -//Created On: 7/05/08 (Updated_8/10/08) -///////////////////////////////////////// -/* -This is my premier CEP2 - NWNX2 / Leto -OnClientExit Event Script. -*/ -///////////////////////////////////////////////////////////////// -/* -This script does multiple things, it checks to see if... -If the PC is immortal or level 40 (apply special effects) -If the character they have has been banned. (not a total bann) -If they logged out while dead, if so make them dead instantly!!! ;) -If the player is playing a legal character or not...read below.. -And if the Player themself have been banned from the module or not.. -*/ -////////////////////////////////////////////////////////////////////// - -//Redundant Variables Declared -effect eEffect; -int nInt; -object oItem; -object aTarget; -location bTarget; - - -//////////////////////////////////////// -//Required Includes -//#include "hgll_func_inc" -#include "fky_chat_inc" -///////////////////////////////////////// - -//PROTOTYPE DECLARED -void SendMessageToAllPC(string sMessage); - -///////////////////////////////////////// - -//Main Script -void main() -{ - -//Declare Major Variables.. -object oPC; -oPC = GetEnteringObject(); -object oTarget; -oTarget = oPC; -object oPlayer = oPC; -object oPP = oPC; - -object oInfo = GetItemPossessedBy(oPP, "pcidname"); -string sID = GetStringRight(GetName(oInfo), 14); - -//This means the entering Character has been banned. -int nBann = GetCampaignInt(GetName(GetModule()), "CBANN", oPP); - -object oTag; -location lTag; - -//This part is about verifying the Player's name.. -//A player must have at least a 2 character name or they are going to -//return with an error! If they have spaces in their name it will return -//with an error as well, including alt code! -string sPCNM = GetName(oPP); -string sPCNMR = GetStringRight(sPCNM, 2); -string sNC1; string sNC2; string sRNC1; string sRNC2; -int nBad; - -//Find the second character of the players name.. -sNC1 = GetSubString(sPCNM, 0, 1); -//Find the second character of the players name.. -sNC2 = GetSubString(sPCNM, 0, 2); -//Find the last letter in the player's name. -sRNC1 = GetSubString(sPCNMR, 0, 1); -//Find the next to the last letter in the player's name. -sRNC2 = GetSubString(sPCNMR, 0, 2); - -//////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////// -//Sim Tools & Legendary Level Functions.. -////////////////////////////////////////////////////// - object M = GetModule(); - - string Script = GetLocalString(oPC, "LetoScript"); - - if( Script != "" ) - { - SetLocalString(oPC, "LetoScript", ""); - LetoScript(Script); - } - -Speech_OnClientExit(GetExitingObject()); - -//////////////////////////////////////////////////////////////////// - -//Your Code Goes here.. - -/////////////////////////IMPORTANT////////////////////////////////// -//You must make all the "" below into " " to check for legal names -//I turned it off because a lot of my characters have bad names! -//Simply put the cursor between "" and hit the space bar for "" to " " -if(sNC1 =="") -{ nBad =1; } -else if(sNC2 =="") -{ nBad =1; } -else if(sRNC1 =="") -{ nBad =1; } -else if(sRNC2 =="") -{ nBad =1; } -else { nBad = 0; } - -//See below to activate this system.. - -//////////////////////////////////////////////////////////////////////// -//If it's a DM entering the module... -if(GetIsDM(oPC)) -{ - //If the DM has never logged on before.. - if(GetItemPossessedBy(oPC, "dmtoolz")==OBJECT_INVALID) - { - //Change "dmtoolz" to the tag name of any items you want given to DMs - //the first time they enter only...(copy / paste for more items) - //simply type // at the start of a line to deactivate it.. - CreateItemOnObject("dmtoolz", oPC, 1); - CreateItemOnObject("dmtoolz", oPC, 1); - CreateItemOnObject("dmtoolz", oPC, 1); - CreateItemOnObject("dmtoolz", oPC, 1); - //CreateItemOnObject("dmtoolz", oPC, 1); - - //This message is here for a reason! - DelayCommand(10.0, FloatingTextStringOnCreature( - "You have been given DM Items and your DM Character was saved," + - " please login with the updated version of your DM Character and" + - " delete the original, thank you.", oPC, FALSE)); - - //You may want to create a journal tagnamed "dmrules" and define - //what your DMs are not allowed to do here.. - //simply delete the // on the line below to activate the jounral entry - //AddJournalQuestEntry("dmrules", 1, oPC, FALSE, FALSE); - } -} - - -//This is for the rest of the script, if it's not a PC stop here! -if(!GetIsPC(oPC))return; - - -///////////////////////////////////////////////////////////////////////////// - -//These function add journal entries by the tag names below -//If you wish to create more, just copy / paste and change -//The tagname which is in "here", and the entry # remains 1 only! -AddJournalQuestEntry("rules", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("pcinfo", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("spells", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("x2spells", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("feats", 1, oPC, FALSE, FALSE); -AddJournalQuestEntry("shifter", 1, oPC, FALSE, FALSE); - -//////////////////IMPORTANT////////////////IMPORTANT//////////////////////// - -//This function scans the Entering PC to see if they have a legal character. -//Delete the // Below to activate the anti-cheat script -//DelayCommand(9.0, ExecuteScript("cheatercheck2", oPC)); - -///////////////////////////////////////////////////////////////////////////// -//If level 40 lets do some cool stuff to them :) (optional of course) -//If you do not wish to use this options you will need to delete the // below - // /* <<(don't touch this part) - - if(GetHitDice(oPC) == 40) - { - //Lets make the concealed 40% - eEffect = EffectConcealment(40); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); - - //Lets make the look like a ghost.. :) - ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(EffectVisualEffect(VFX_DUR_GLOW_WHITE)), oPC); - - } - -// don't touch this line */ -////////////////////////////////////////////////////////////////////////////// - -//This is the immortal option, you must utilize the "makeimmortal" script -//to make players immortal (please read that script.) -if(GetItemPossessedBy(oPC, "immotoken") != OBJECT_INVALID) -{ -//Run this script on the player (See script to configure settings) -ExecuteScript("powerimmortal", oPC); -} - -////////////////////////////////////////////////////////////////////////////// - -//If a player has been found with an illegal character they will have this item. -//It will prevent them from logging onto your server with that character. -//Note this will only work if you have activated the Anti-Cheat option above! -if (GetItemPossessedBy(oPC, "banned")!= OBJECT_INVALID) - { - AssignCommand(oPC, ClearAllActions()); - - SetCutsceneMode(oPC, TRUE); - - SetCameraMode(oPC, CAMERA_MODE_CHASE_CAMERA); - - DelayCommand(4.0, FloatingTextStringOnCreature("You have an illegal character which is not allowed on this server.", oPC)); - - DelayCommand(5.0, SetCutsceneMode(oPC, FALSE)); - - DelayCommand(6.0, BootPC(oPC)); - - } - -//////////////////////////////////////////////////////////////////////////// - -//Since the player was dead when they logged, kill them! -if (GetItemPossessedBy(oPC, "death")!= OBJECT_INVALID) - { - effect eEffect; - eEffect = EffectDeath(); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC); - SendMessageToPC(oPC, "You died because you were dead when you logged out."); - } - -////////////////////////////////////////////////////////////////////////////// -//This function is currently disabled (Not in use, may be used later on) - -/* -//Let's make sure All players have a valid PC Name ID Item.. -if(oInfo==OBJECT_INVALID) -{ - //Open the "eq_pcidname" script to learn more - CreateItemOnObject("pcidname", oPP, 1); -} // */ - - -//////////////////////////////////////////////////////////////////////// -//Let's see if the entering CHARACTER has been banned from the module.. -//Not the save as a player being banned altogether.. -if(nBann ==1) -{ -//Boot the PC fast! -DelayCommand(3.9, BootPC(oPP)); -return; -} -//Let's see if the player has been banned altogether! -//Note the TRUE after oPP = Single Player / FALSE = Multiplayer Mode -if(GetCampaignInt(GetName(GetModule()), "BANN", oPP)==TRUE) -{ -//If so boot them fast! -DelayCommand(3.5, BootPC(oPP)); - -//In Case They Can't be Booted..(Allow them to enter the module first..) -//Then lock thier game down! (Note; You cannot have a script in OnCutscenAbort!) -DelayCommand(9.0, SetCutsceneMode(oPP, TRUE, FALSE)); -//They can't see nothing! -DelayCommand(9.1, FadeToBlack(oPP, FADE_SPEED_FAST)); -//Turn the PC into a punk chicken :) -DelayCommand(9.2, ApplyEffectToObject -(DURATION_TYPE_PERMANENT, EffectPolymorph(113, TRUE), oPP)); -DelayCommand(9.3, ExportSingleCharacter(oPP)); //Make it permanent! -return; -} - -////////////////////////////////////////////////////////////////////////////// -//Let's prevent badly named characters from logging onto the server.. - -//Delete the /* below this line to activate the name checking system. -/* - -//Let's verify the Entering PC has a legal name! - -//NOTE This function works in conjunction with another script -//in which an NPC at the start verifies if the PC is playing a legal name. - -//If the first 2 or last 2 letters of their name are bad.. -if(nBad==1) -{ -//Delay the following to allow the PC to enter the module.. -DelayCommand(10.0, -FloatingTextStringOnCreature("You character name is not allowed!", oPP)); - -//Tell the database the player character is banned -DelayCommand(11.0, SetCampaignInt(GetName(GetModule()), "BANN", 1, oPP)); - -//Boot the PC -DelayCommand(14.0, BootPC(oPP)); - -return; -} - -else -{ -//do nothing.. -} - -// (do not touch this line!) */ -/////////////////////////////////////////////////////////////// - -//If the player has been inside of a party room, but logged out, then -//teleport them to the start and take the token! -if (GetItemPossessedBy(oPC, "partyroom")!= OBJECT_INVALID) - { - oItem = GetFirstItemInInventory(oPC); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="partyroom") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oPC); - } - - aTarget = GetWaypointByTag("home"); - bTarget = GetLocation(aTarget); - - if (GetAreaFromLocation(bTarget)==OBJECT_INVALID) return; - - //Allow them to fully enter the module.. - DelayCommand(8.0, AssignCommand(oPC, ClearAllActions())); - DelayCommand(8.1, AssignCommand(oPC, ActionJumpToLocation(bTarget))); - - } - -//Finally! Send this message to the PC.. - -//(Please change to match your module name) -//(I would appreciate credit to my work in your start message thanks.) - -//Welcome them PC to the server with a colorful message -DelayCommand(5.0, SendMessageToPC(oPP, - -//Enter your module name below -"Welcome to (ENTER MODULE NAME)" + //Make sure you use one space! -" a 1.68 Persistent Module " + -"Created by Genisys " + - -//Enter your name below -"Designed By: (YOUR NAME HERE)")); - - -//Main Script End -} - -//PROTOTYPE DEFINED -void SendMessageToAllPC(string sMessage) -{ - object PC = GetFirstPC(); - - while(GetIsObjectValid(PC)) - { - FloatingTextStringOnCreature(sMessage, PC); - PC = GetNextPC(); - } -} diff --git a/_removed files/everheartbeat.nss b/_removed files/everheartbeat.nss deleted file mode 100644 index ca9bcb74..00000000 --- a/_removed files/everheartbeat.nss +++ /dev/null @@ -1,77 +0,0 @@ -//Script Name: everheartbeat -////////////////////////////////////////// -//Created By: Genisys (Guile) -//Created On: 4/20/08 (Updated 8/10/08) -///////////////////////////////////////// -/* -Some parts of this script were taken from -AW_Olorin's Paths of Ascension Module -This script goes in the OnHeartbeat -Event of the Module Properties -*/ -//////////////////////////////////////// - -//Required Include -#include "nw_i0_tool" - -//Main Script -void main() -{ - -object oPC = GetFirstPC(); - -///////////////////////////////////////////////////////////////////////////// -//Prevent Trap Setting in any area where the placeable object "No Crown" -//is located (Which is found on the custom paletted) -//I recommend you place this object anywhere you don't want traps set! - - while(GetIsObjectValid(oPC)) - { - object detector = GetNearestObjectByTag("nocrown", oPC, 0); - if (GetIsObjectValid(detector)) - { - object trap = GetNearestTrapToObject(detector, FALSE); - if ( GetTrapCreator(trap) == oPC && !GetIsDM(oPC) && GetIsPC(oPC)) - if (GetArea(oPC) != GetArea(GetObjectByTag("throneofdeath"))) - { - AssignCommand(oPC, ClearAllActions()); - AssignCommand(oPC, ActionJumpToLocation(GetLocation(GetWaypointByTag("prison")))); - SendMessageToPC(oPC, "You have been sent to jail for setting a trap in a restricted area."); - } - } - - oPC = GetNextPC(); - } - -//////////////////////////////////////////////////////////////////////// -//GLOBAL MESSAGING SYSTEM By: AW_OLORIN (Paths of Ascension) - -// Server Time Keeper - int timekeeper = GetLocalInt(GetModule(), "loadtimer"); - SetLocalInt(GetModule(), "loadtimer", (timekeeper +1)); - - -// DM announcement check -//This feature isn't currently in Use, but DO NOT REMOVE IT!!! - int iAnnounceTimer = GetLocalInt(GetModule(),"iAnnounceTimer"); - SetLocalInt(GetModule(), "iAnnounceTimer", (iAnnounceTimer +1) ); - - - if(iAnnounceTimer >= GetLocalInt(GetModule(),"iAnnounce_Period")) - { - string sAnnouncement = GetLocalString(GetModule(),"Announcement"); - string sAuthor = GetLocalString(GetModule(),"Announcement_Author"); - SetLocalInt(GetModule(),"iAnnounceTimer",0); - if(sAnnouncement == "") return; - oPC = GetFirstPC(); - while(GetIsObjectValid(oPC)) - { - if(GetIsDM(oPC)) - SendMessageToPC(oPC,"Module wide announcement being sent, created by DM " + sAuthor + "."); - SendMessageToPC(oPC,sAnnouncement); - oPC = GetNextPC(); - } - } - -//Main Script End -} diff --git a/_removed files/evermodload.nss b/_removed files/evermodload.nss deleted file mode 100644 index d4857865..00000000 --- a/_removed files/evermodload.nss +++ /dev/null @@ -1,167 +0,0 @@ -//////////////////////////////////// -//Created by Genisys / Guile 7/05/08 -//////////////////////////////////// -/* -script name: evermodload - -This is my premier NWNX2 / Leto -CEP2 OnModuleLoad Event Script - -*/ -//////////////////////////////////// - -#include "fky_chat_inc" -#include "x2_inc_switches" -#include "x2_inc_restsys" -#include "aps_include" -#include "x2_inc_restsys" -#include "se_inc_reset" - - -///SCRIPT MAIN//////// -void main() -{ - -//The NWNX2 Reset Plugin Function -//the first # must be 1 month Higher than the current module month! -//see the script "se_inc_reset" to see how it works.. -SE_NWNX_ResetModuleCheck(7, 30.0, 120.0); - -//////////////////////////////////////////////////////////////////////// - -//This sets color in Tokens in conversatoins, it requires that -//you use the #s below for tokens, ie, where -//you want the text to be colorized. -string sColor = GetName(GetObjectByTag("COLORS")); - -SetCustomToken(1001, GetSubString(sColor, 0, 6)); //white -SetCustomToken(1002, GetSubString(sColor, 6, 6)); //yellow -SetCustomToken(1003, GetSubString(sColor, 12, 6)); //magenta -SetCustomToken(1004, GetSubString(sColor, 18, 6)); //cyan -SetCustomToken(1005, GetSubString(sColor, 24, 6)); //red -SetCustomToken(1006, GetSubString(sColor, 30, 6)); //green -SetCustomToken(1007, GetSubString(sColor, 36, 6)); //blue - -//More Custom Tokens for Conversations -//By GENISYS (Guile) - - SetCustomToken(100, ""); // CLOSE tag - SetCustomToken(101, ""); // red - SetCustomToken(102, ""); // green - SetCustomToken(103, ""); // blue - SetCustomToken(104, ""); // cyan - SetCustomToken(105, ""); // magenta - SetCustomToken(106, ""); // yellow - SetCustomToken(107, ""); // black - SetCustomToken(108, ""); // dark red - SetCustomToken(109, ""); // dark green - SetCustomToken(110, ""); // dark blue - SetCustomToken(111, ""); // dark cyan - SetCustomToken(112, ""); // dark magenta - SetCustomToken(113, ""); // dark yellow - SetCustomToken(114, ""); // grey - SetCustomToken(117, ""); // dark grey - SetCustomToken(115, ""); // orange - SetCustomToken(116, ""); // dark orange - SetCustomToken(117, ""); // brown - SetCustomToken(118, ""); // dark brown - SetCustomToken(119, ""); // Light Purple - SetCustomToken(120, ""); // Neon Green - SetCustomToken(121, ""); // Light Blue - SetCustomToken(122, ""); // Purple - SetCustomToken(123, ""); //Neon Green - -/////////////////AUTOMATIC CHARACTER SAVING FUCTION//////////////////////// -//Note this function is Polymorphing Friendly (Designed for that purpose!) - -//This feature stores All PC's location on the module ever 3 minutes... -//To deactivate this feature, simply type // at the start of the line below. - -//DelayCommand(60.0, ExecuteScript("savepcinfo", OBJECT_SELF)); - -////////////////////////////////////////////////////////////////////////// - -//This is part of the SimTools by Funkyswerve... - // Init placeholders for ODBC gateway - SQLInit(); - // Init placeholders for chat gateway - InitSpeech(); - -/////////////MAIN BIOWARE X2 FUNCTIONS (DO NOT REMOVE!)///////////// - - if (GetGameDifficulty() == GAME_DIFFICULTY_CORE_RULES || GetGameDifficulty() == GAME_DIFFICULTY_DIFFICULT) - { - // * Setting the switch below will enable a seperate Use Magic Device Skillcheck for - // * rogues when playing on Hardcore+ difficulty. This only applies to scrolls - SetModuleSwitch (MODULE_SWITCH_ENABLE_UMD_SCROLLS, TRUE); - - // * Activating the switch below will make AOE spells hurt neutral NPCS by default - // SetModuleSwitch (MODULE_SWITCH_AOE_HURT_NEUTRAL_NPCS, TRUE); - } - - // * AI: Activating the switch below will make the creaures using the WalkWaypoint function - // * able to walk across areas - // SetModuleSwitch (MODULE_SWITCH_ENABLE_CROSSAREA_WALKWAYPOINTS, TRUE); - - // * Spells: Activating the switch below will make the Glyph of Warding spell behave differently: - // * The visual glyph will disappear after 6 seconds, making them impossible to spot - SetModuleSwitch (MODULE_SWITCH_ENABLE_INVISIBLE_GLYPH_OF_WARDING, TRUE); - - // * Craft Feats: Want 50 charges on a newly created wand? We found this unbalancing, - // * but since it is described this way in the book, here is the switch to get it back... - SetModuleSwitch (MODULE_SWITCH_ENABLE_CRAFT_WAND_50_CHARGES, TRUE); - - // * Craft Feats: Use this to disable Item Creation Feats if you do not want - // * them in your module - // SetModuleSwitch (MODULE_SWITCH_DISABLE_ITEM_CREATION_FEATS, TRUE); - - // * Palemaster: Deathless master touch in PnP only affects creatures up to a certain size. - // * We do not support this check for balancing reasons, but you can still activate it... - // SetModuleSwitch (MODULE_SWITCH_SPELL_CORERULES_DMASTERTOUCH, TRUE); - - // * Epic Spellcasting: Some Epic spells feed on the liveforce of the caster. However this - // * did not fit into NWNs spell system and was confusing, so we took it out... - // SetModuleSwitch (MODULE_SWITCH_EPIC_SPELLS_HURT_CASTER, TRUE); - - // * Spellcasting: Some people don't like caster's abusing expertise to raise their AC - // * Uncommenting this line will drop expertise mode whenever a spell is cast by a player - // SetModuleSwitch (MODULE_VAR_AI_STOP_EXPERTISE_ABUSE, TRUE); - - - // * Item Event Scripts: The game's default event scripts allow routing of all item related events - // * into a single file, based on the tag of that item. If an item's tag is "test", it will fire a - // * script called "test" when an item based event (equip, unequip, acquire, unacquire, activate,...) - // * is triggered. Check "x2_it_example.nss" for an example. - // * This feature is disabled by default. - SetModuleSwitch (MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS, TRUE); - - if (GetModuleSwitchValue (MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE) - { - // * If Tagbased scripts are enabled, and you are running a Local Vault Server - // * you should use the line below to add a layer of security to your server, preventing - // * people to execute script you don't want them to. If you use the feature below, - // * all called item scrips will be the prefix + the Tag of the item you want to execute, up to a - // * maximum of 16 chars, instead of the pure tag of the object. - // * i.e. without the line below a user activating an item with the tag "test", - // * will result in the execution of a script called "test". If you uncomment the line below - // * the script called will be "1_test.nss" - // SetUserDefinedItemEventPrefix("1_"); - - } - - // * This initializes Bioware's wandering monster system as used in Hordes of the Underdark - // * You can deactivate it, making your module load faster if you do not use it. - // * If you want to use it, make sure you set "x2_mod_def_rest" as your module's OnRest Script - // SetModuleSwitch (MODULE_SWITCH_USE_XP2_RESTSYSTEM, TRUE); - - if (GetModuleSwitchValue(MODULE_SWITCH_USE_XP2_RESTSYSTEM) == TRUE) - { - - // * This allows you to specify a different 2da for the wandering monster system. - // SetWanderingMonster2DAFile("des_restsystem"); - - //* Do not change this line. - WMBuild2DACache(); - } - -} diff --git a/_removed files/everpcdeath.nss b/_removed files/everpcdeath.nss deleted file mode 100644 index 07482c0f..00000000 --- a/_removed files/everpcdeath.nss +++ /dev/null @@ -1,702 +0,0 @@ -//Script Name: everpcdeath -///////////////////////////////////////// -//Created By: Genisys / Guile -//Created On: 1/11/08 (Updated_8/10/08) -///////////////////////////////////////// -/* - -This is my premier OnPlayerDeath Module Event Script which I designed -specifically for all my modules, it's rather nice and is part of -multiple systems, so do not edit ANYTHING you do not know what it's for! - -*/ -//////////////////////////////////////////////////////////////////////// - -//Rquired Includes.. (Don't touch!) -#include "nw_i0_plot" -#include "x2_inc_compon" -#include "setxp_inc" - -/////////////////////////////////////////////////////////////////////////// -/////////////////IMPORTANT OPTIONAL SETTINGS/////////////////////////////// -//The constant intergal below allows you to choose where or not to utilize -//the PVP Death System I have scripted, please read below to learn more.. -//FALSE = Disabled / TRUE = Enabled -const int nPVP = TRUE; - -//This constant will decide whether or not you want to send a PVP message -//to all players when PVP transpires (This is for PVP Servers) -//FALSE = Disabled / TRUE = Enabled -const int nPVPMessage = TRUE; - -//If you wish to restrict PVP to the arena only, then.. -//Set the below setting to TRUE / FALSE = Deactivated (Default) -const int nArenaOnly = FALSE; - -//This determines the level difference allowed in PVP (default 5) -//If set to 5 players within 4 levels of each other will not be -//Penalized for Killing one another. (Works both ways!) -//Add +1 for the level you want so if you want 8 level difference make it 9! -//(Set this whether you allow PVP or not!) -const int nDif = 5; //(Between 5 - 40) / (40 = Disabled) - -//This is how you set the reward for XP given to the player for -//fair PVP Kills, this # is multiplied by the level difference! -const int nReward1 = 80; //(ie. if 3 Levels difference / 80 X 3) - -//This is how ytou set the reward for Gold given to the player for -//fair PVP Kills, this # is multiplied by the level difference! -const int nReward2 = 800; - -/////////OPTIONS END////////////////////////////////////////////////// - -////DO NOT TOUCH ANYTHING BELOW UNLESS IT SAYS - ///OPTION//// - -////////////////////////////////////////////////////////////////////// -///// This Part was Created by: bushido -///// Developed by: Wouter Dhondt -///// Modified by: Genisys / Guile For Persistency.. -//////////////////////////////////////////////////////// -//This is the PVP Stats (Used to keep track of PVP Activity) -//This allows DMs and Players to see PVP Activity. -void AdjustPlayerStats() -{ - -//Delare Variables -object oDied = GetLastPlayerDied(); -object oAttacker = GetLastHostileActor(oDied); -object oKiller; - -//Only if the player who died is a PC -if(GetIsPC(GetLastPlayerDied())) -{ - //Let's make sure we properly identify who the Attacker is... - if (GetIsPC(GetMaster(oAttacker))) - { - oKiller = GetMaster(oAttacker); - } - - else - { - //Let's make sure the Killer is a PC - if(GetIsPC(oAttacker)) - { - oKiller = oAttacker; - } - } - - // Increment or set the death variable - int iDied = GetCampaignInt("PVP_SCORE", "iDied", oDied); - int nCount = iDied + 1; - SetCampaignInt("PVP_SCORE", "iDied", nCount, oDied); - // Is this object a PC? - if (GetIsPC(oKiller) == TRUE) - { - // Increment or set the killer var - int iKilled = GetCampaignInt("PVP_SCORE", "iKilled", oKiller); - int nDeaths = iKilled + 1; - SetCampaignInt("PVP_SCORE", "iKilled", nDeaths, oKiller); - } - } - -//AdjustPlayerStats End.. -} -/////////////////////////////////////////////////////////////// -// Raise OnDeath function (Standard Bioware Function) -void Raise(object oPlayer) -{ - effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION); - - effect eBad = GetFirstEffect(oPlayer); - ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer); - ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer); - - //Search for negative effects - while(GetIsEffectValid(eBad)) - { - if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || - GetEffectType(eBad) == EFFECT_TYPE_DEAF || - GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || - GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL) - { - //Remove effect if it is negative. - RemoveEffect(oPlayer, eBad); - } - eBad = GetNextEffect(oPlayer); - } - //Fire cast spell at event for the specified target - SignalEvent(oPlayer, EventSpellCastAt(OBJECT_SELF, SPELL_RESTORATION, FALSE)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPlayer); -} - -// Respawn/Teleporter OnDeath function (By Bushido / Modified By Genisys) -// Optionally you can create the waypoints described to send the dead player -// to that location. You must create an item named arenatoken (tag & resref name) -//Then you must use give it to them & take it away from them on enter/exit of -//an area by a script, this will deem that area as the arena. -void Respawn(object oPlayer) -{ - - string waiting = "The gods show you favor, your life is restored."; - - if (GetIsDead(oPlayer)) - { - object oPC = GetLastPlayerDied(); - - if (GetItemPossessedBy(oPC, "arenatoken")!= OBJECT_INVALID) - { - //Create a way point and tagname it "arenawp" - object oTarget = GetWaypointByTag("arenawp"); - effect eTeleport = EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY); - - ApplyEffectToObject(DURATION_TYPE_INSTANT, eTeleport, oPlayer); - - //Tell the player why they are being restored. - FloatingTextStringOnCreature(waiting, oPC); - - //Resurrect the player - Raise(oPlayer); - - //Teleport the raised player to the arena spawn point. - DelayCommand(0.1, AssignCommand(oPlayer, ClearAllActions())); - DelayCommand(0.2, AssignCommand(oPlayer, JumpToObject(oTarget))); - } - else - { - CreateItemOnObject("death", oPC); - } - - } -} - -//////////////////////////////////////////////////////////////////////// -////////////////////////Main Script///////////////////////////////////// -//////////////////////////////////////////////////////////////////////// -void main() -{ - - //Declare Major Variables... - object oPlayer = GetLastPlayerDied(); - object oPC = GetLastPlayerDied(); - object oTarget = oPlayer; - object oToken = GetItemPossessedBy(oPlayer, "death"); - object oItem; - object oPP = oPlayer; - string sArea = GetTag(GetArea(oPlayer)); - string sName = GetName(GetModule()); - location lDead = GetLocation(oPlayer); - - //If the player is being tortured, ressurect them... - object hell = GetArea(oPlayer); - object helltest = GetArea(GetObjectByTag("satan1")); - if (hell == helltest) - { - DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(), oPlayer)); - return; - } - - object oInfo = GetItemPossessedBy(oPP, "pcidname"); - string sID = GetStringRight(GetName(oInfo), 14); - - //PVP Variables.. - object oDead = GetLastPlayerDied(); - object oKiller = GetLastHostileActor(oDead); - object oVictor; - object oDied; - int nInt; - int kLvl = GetHitDice(oKiller); - int pLvl = GetHitDice(oDead); - int dLvl = kLvl - pLvl; - int aLvl = pLvl - kLvl; - - effect eKill = EffectDeath(TRUE); - effect eVis = EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION); - - -//Define who oKiller is.. -//Define the attacker& dead guy -object oAttacker = GetLastHostileActor(oDied); -oDied = oPlayer; - - //Let's make sure we properly identify who the Attacker is... - if (GetIsPC(GetMaster(oAttacker))) - { - oKiller = GetMaster(oAttacker); - } - - else - { - //Let's make sure the Killer is a PC - if(GetIsPC(oAttacker)) - { - oKiller = oAttacker; - } - } - - //Count up & Store in Database the kills and deaths - AdjustPlayerStats(); - -///////////LOCATION SAVING OPTION///////////////////////////////// - -//Type: // Below this line to activate location saving on death - /*(Before this!) - - //Store the PC's location, because if they are ressurected they can - //come back to this place when they logg back on..(unless location changed) - SetCampaignLocation(sName, "SAVED_LOC", lDead, oPlayer); - //Tell the PC thier location was saved.. - SendMessageToPC(oPC, "Location Saved."); - - -//(leave this alone) */ -////////////////////////////////////////////////////////////// - - //Lets auto ressurect anyone in the arena and give death tokens to the others. - Respawn(oPlayer); - - // * make friendly to Each of the 3 common factions - AssignCommand(oPlayer, ClearAllActions()); - - // * Note: waiting for Sophia to make SetStandardFactionReptuation to clear all personal reputation - if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oPlayer) <= 10) - { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad - SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oPlayer); - } - if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oPlayer) <= 10) - { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad - SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oPlayer); - } - if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oPlayer) <= 10) - { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad - SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer); - } - -////////////////////////////////////////////////////////////////////////// - - //Fancy death visual effect when they die. - location lSelf = GetLocation(oPC); - effect eVis2 = EffectVisualEffect(234); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis2, lSelf); - -///////////////////////////////////////////////////////////////////////////// - -//Have the player tell everyone around them he is dying (actually dead) - AssignCommand(oPlayer, ActionSpeakString("I'm dying, help!", - TALKVOLUME_TALK)); - -//////////////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////////// - //Pop up the Death GUI Panel only if they don't meet the following.. - - //If the player is not immortal - if(GetItemPossessedBy(oPC, "immotoken") == OBJECT_INVALID) - { - //If the player does not have an arena token - if(GetItemPossessedBy(oPC, "arenatoken") == OBJECT_INVALID) - { - //Show the player the Death Panel - DelayCommand(2.0, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); - } - } - -////////////////////////PVP MESSAGE////////////////////////////////////// -///////See the const int nPVPMessage above to turn on/off)/////////////// - -if(nPVPMessage == TRUE) -{ - - - ////Send PVP Stats Messages to all PCs.///////// - //This shouts whever a player has died, who killed them and also - //alerts DMs of any pvp action going on! (Though done below as well.) - //This can also alert DM's not playing as a DM as well too! - oPC = GetFirstPC(); - int count = 0; - int nVictims = GetCampaignInt("PVP_SCORE", "iKilled", oKiller); - int vLvl = GetHitDice(oVictor); - int dLvl = GetHitDice(oPlayer); - string sKilled; - //Send Message to all PC's - sKilled = ""; - sKilled += GetName(oPlayer); - sKilled += " "; - sKilled += "Lvl "; - sKilled += IntToString(dLvl); - sKilled += " Was slain by - "; - sKilled += ""; - sKilled += GetName(oVictor); - sKilled += " "; - sKilled += "Lvl - "; - sKilled += IntToString(vLvl); - sKilled += " "; - sKilled += GetName(oVictor); - sKilled += " has "; - sKilled += IntToString(nVictims); - sKilled += " kills. "; - - //Lets make sure the killer is a PC - if(GetIsPC(oVictor)) - { - - //Write the PVP Information in the log file. (For those not allowing PVP) - WriteTimestampedLogEntry("**The Following Player: "); - WriteTimestampedLogEntry(GetPCPlayerName(oVictor)); - WriteTimestampedLogEntry(" - "); - WriteTimestampedLogEntry(GetPCPublicCDKey(oVictor)); - WriteTimestampedLogEntry(" - "); - WriteTimestampedLogEntry(GetPCIPAddress(oVictor)); - WriteTimestampedLogEntry(" ** Has Killed This Player: "); - WriteTimestampedLogEntry(GetName(oPlayer)); - WriteTimestampedLogEntry(" - "); - WriteTimestampedLogEntry(GetPCPlayerName(oPlayer)); - - while (GetIsPC(oPC) == TRUE) - { - SendMessageToPC(oPC, sKilled); - oPC = GetNextPC(); - } - - } - -//end PVP message function - } - -////////////NO PVP ON SERVER ALLOWED!/////////// - -//IF PVP IS NOT ALLOWED! -if(nPVP == FALSE) -{ -object oDumbo; -//If it's not a PC let's make sure an associate of a PC has not killed the PC -if(!GetIsPC(oKiller)) -{ - //Let's get the master of the asscoiate.. - if(GetIsPC(GetMaster(oKiller))) - { - oDumbo = GetMaster(oKiller); - } -} -//Otherwise let's make sure the Attacker is a PC.. -else -{ - if(GetIsPC(oKiller)) - { - oDumbo = oKiller; - } -} - - //Let's Double Check to make sure it's a PC who killed the PC. - if(GetIsPC(oDumbo)) - { - - //Apply the respawn penalty to the Killer instead!! - ApplyRespawnPenalty(oDumbo); - - //Raise the Player Who Died without a penalty - //Note these must be delayed because of GUI Panel! - DelayCommand(2.1, - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oDead)); - - DelayCommand(2.2, Raise(oDead)); - - //Remove the death token from the dead guy - oItem = GetFirstItemInInventory(oPC); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="death") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oPC); - } - - string sBadPC = GetName(oDumbo); - sBadPC += " / "; - sBadPC += GetPCPlayerName(oDumbo); - sBadPC += " / "; - sBadPC += GetPCPublicCDKey(oDumbo); - sBadPC += " Has killed - "; - sBadPC += GetName(oPC); - sBadPC += " In the "; - sBadPC += GetName(GetArea(oPC)); - sBadPC += " Area."; - - //Send Message to All DMs about the Attack.. - SendMessageToAllDMs(sBadPC); - } - -//End No PVP Check.. -} - -//////////IF PVP IS RESTRICTED TO THE ARENA////////////// - -if(nArenaOnly == TRUE) -{ - //If a PC kills a PC outside of the arena.. - if(GetItemPossessedBy(oDead, "arenatoken")==OBJECT_INVALID) - { - - //Raise the Player Who Died - DelayCommand(2.3, - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oDead)); - - DelayCommand(2.4, Raise(oDead)); - - //Remove the death token from the dead guy - oItem = GetFirstItemInInventory(oDead); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="death") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oDead); - } - - //Kill the offender and alert the DMs! - //Type // below at the start of the line to deactivate! - ApplyEffectToObject(DURATION_TYPE_INSTANT,eKill,oKiller); - - //Apply the respawn penalty to the Killer instead!! - ApplyRespawnPenalty(oKiller); - - //Send Message to All DMs about the Attack.. - string sArena; - sArena = GetName(oKiller); - sArena += " / "; - sArena += GetPCPlayerName(oKiller); - sArena += " "; - sArena += "Has killed - "; - sArena += GetName(oDead); - sArena += "Outside of the Arena!"; - - SendMessageToAllDMs(sArena); - } - -} -/////////////////////////////////////////////////////////////////////////// -//////////////////PVP SCRIPT FUNCTIONS///////////////////////////////////// -/////////////////////////////////////////////////////////////////////////// -///////PVP Option (See the const int nPVP above to turn on/off)/////// -if (nPVP == TRUE) -{ - -//////Start PVP Reward/Penalty Function////// - - -//Only continue if the killer is a PC! -if(GetIsPC(oKiller) == TRUE) -{ - - //More PVP Variables - - //Get the Killer's HD + nDif + 1 - int nAdj = GetHitDice(oKiller) + 1; - int nCheck = nAdj + nDif; - //Will return 1 or less if they are more than nDif levels - //lower than the person they killed - int nDeed = nCheck - pLvl; - - //Ok, this part rewards players for killing players who kill low - //level players, if they are flagged for killing low level players, - //and anyone can easially recognized them by the flag on thier back. - if(GetLocalInt(oDead, "effer") >=1) - { - //Lower their effy score by one. - nInt = GetLocalInt(oDead, "effer"); - nInt -= 1; - //Decrement thier effer status (because they got killed) - SetLocalInt(oDead, "effer", nInt); - -//If they are at 0 Effy Kills, Remove the flag from them -//Otherwise they can be killed again!!! (After it's been lowered!) - if (GetLocalInt(oDead, "effer") <=0) - { - effect eEffect; - eEffect = GetFirstEffect(oDead); - while (GetIsEffectValid(eEffect)) - { - if (GetEffectType(eEffect)==EFFECT_TYPE_VISUALEFFECT) - { - //Note sure about this one! - if (EFFECT_TYPE_VISUALEFFECT == VFX_DUR_FLAG_RED) - { - RemoveEffect(oDead, eEffect); - eEffect = GetNextEffect(oDead); - } - } - - } - - //Now reward the Killer of the bad player with the flag. - //Adjust to your likings. - GiveGoldToCreature(oKiller, 5000); - GiveXPToCreature(oKiller, 500); - - } - } - - //If the player is too low of a level - //Punish them for killing a much high level player. - //This is to prevent lower level players from killing higher - //level players (which allows the higher levels to ignore them!) - if (nDeed <=1) - { - //Flag them as an Effy Killer (Because they are picking fights!) - nInt = GetLocalInt(oKiller, "effer"); - nInt += 1; - - int nKind; - nKind = GetObjectType(oKiller); - - if (nKind != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_FLAG_RED), oKiller); - else ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_FLAG_RED), GetLocation(oKiller)); - - SetLocalInt(oKiller, "effer", nInt); - - //Raise the Player Who Died without a penalty - //Note these must be delayed because of GUI Panel! - DelayCommand(2.1, - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oDead)); - - DelayCommand(2.2, Raise(oDead)); - - //Remove the death token from the dead guy - oItem = GetFirstItemInInventory(oDead); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="death") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oDead); - } - - //Kill the offender & take xp/gold - //Type // below at the start of the line to deactivate! - ApplyEffectToObject(DURATION_TYPE_INSTANT,eKill,oKiller); - - //Penalize the killer Gold / XP - ApplyRespawnPenalty(oKiller); - - AssignCommand(oKiller, ClearAllActions()); - AssignCommand(oKiller, ActionSpeakString("I have offended the Gods and must be punished!!!", TALKVOLUME_SHOUT)); - - //Notify the DMs - SendMessageToAllDMs("We have an effy kill in progress, please investigate" - + GetName(oKiller) + ". Has Killed Player " + GetName(oDead)); - //end low level check. - } - - //If the killer is 5 levels higher than the player they kill - int aCheck = dLvl; - if(aCheck >= nDif) - { - //Flag them as an Effy Killer - int nInt; - nInt = GetLocalInt(oKiller, "effer"); - nInt += 1; - - int nKind; - nKind = GetObjectType(oKiller); - - if (nKind != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_FLAG_RED), oKiller); - else ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_FLAG_RED), GetLocation(oKiller)); - - SetLocalInt(oDead, "effer", nInt); - - //Raise the Player Who Died - //This must be delayed due to the GUI Panel that pops up. - DelayCommand(2.1, - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oDead)); - - DelayCommand(2.2, Raise(oDead)); - - //Remove the death token from the dead guy - object oItem; - oItem = GetFirstItemInInventory(oDead); - - while (GetIsObjectValid(oItem)) - { - if (GetTag(oItem)=="death") DestroyObject(oItem); - - oItem = GetNextItemInInventory(oDead); - } - - //Kill the offender & take xp/gold - //Type // below at the start of the line to deactivate! - ApplyEffectToObject(DURATION_TYPE_INSTANT,eKill,oKiller); - - //Take XP & Gold from the Offending Killer - if (GetHitDice(oKiller)<40)//Only if less than level 40 - { - SetXP(oKiller,GetXP(oKiller)-1000);//NOTE: They can Lose a Level! - } - - //Remove Gold / XP from the Offender - ApplyRespawnPenalty(oKiller); - - //Make them shout that they have been bad... - AssignCommand(oKiller, ClearAllActions()); - AssignCommand(oKiller, ActionSpeakString - ("I have offended the Gods and must be punished!!!", TALKVOLUME_SHOUT)); - - //Notify the DMs - SendMessageToAllDMs("We have a low level bashing in progress, please investigate" - + GetName(oKiller) + ". Has Killed Player " + GetName(oPlayer)); - -//End Effy Check.. - } - -//This is the reward of fair PVP - - //Lets make sure the killer is at least 1 level - //lower than the player they kill - else if(aLvl >= 1) - { - //award xp/gold by level difference, - //If the player is 1 to nDif levels lower than the player they kill - if (aLvl <=nDif) - { - //Adjust this to your likings.. - int nXP = aLvl * nReward1; - int nGold = aLvl * nReward2; - - GiveXPToCreature(oKiller,nXP); - GiveGoldToCreature(oKiller,nGold); - //The dead guy shouts how he lost badly. :) - AssignCommand(oDead, ActionSpeakString("I got pwned!!", TALKVOLUME_SHOUT)); - } - - } - - //If the killer is at least 1 level higher than the player they kill - else if (dLvl <=nDif) - { - //Lets make sure the killer is within 1-4 Level difference - if (dLvl >=1) - { - int nXP = dLvl * nReward1; - int nGold = dLvl * nReward2; - - GiveXPToCreature(oKiller,nXP); - GiveGoldToCreature(oKiller,nGold); - //The dead guy shouts how he lost badly. :) - AssignCommand(oDead, ActionSpeakString("I got pwned!!", TALKVOLUME_SHOUT)); - } - } - //end pc check - } - //end pvp function - } - -///////////////////////////////////////////////////////////////////////// - -//Script End WOOSH!! -} diff --git a/_removed files/everpcdying.nss b/_removed files/everpcdying.nss deleted file mode 100644 index 97f4d38f..00000000 --- a/_removed files/everpcdying.nss +++ /dev/null @@ -1,104 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Script Name: everpcdying -//::////////////////////////////////////////////// -/* - This script handles the default behavior - that occurs when a character is dying. Dying - is when the character is between 0 and -9 hit - points; -10 and below is death. To use, redirect - the OnDying event script of the module to this script. -*/ -//::////////////////////////////////////////////// -//:: Author : Scott Thorne -//:: Updated: July 25, 2002 -//::////////////////////////////////////////////// -//::Modified by Genisys (Guile) -//::Modified On: 4/23/08 (Updated 8/10/08) -////////////////////////////////////////////////// - -//Required Include -#include "nw_i0_tool" - -//PROTOTYPE DECLARED -void bleed(int iBleedAmt); - -//Main Script -void main() -{ - //Declare Major Variables - object oDying = GetLastPlayerDying(); - object oPlayer = GetLastPlayerDying(); - object oPC = GetLastPlayerDying(); - string ddVarName = "dd"+GetName(oPC); - object oModule = GetModule(); - SetLocalInt (oModule, ddVarName, 1); - - //If the player is being tortured in Hell, ressurect them... - object hell = GetArea(oPlayer); - object helltest = GetArea(GetObjectByTag("satan1")); - if (hell == helltest) - { - DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(), oPlayer)); - return; - } - - AssignCommand(oDying, ClearAllActions()); - AssignCommand(oDying, bleed(1)); - -//Main Script End -} - -//PROTOTYPE DEFINED -void bleed(int iBleedAmt) -{ - - object oPC = GetLastPlayerDying(); - if (!GetIsPC(oPC)){ -return; -} - string ddVarName = "dd"+GetName(oPC); - object oModule = GetModule(); - effect eBleedEff; - - /* keep executing recursively until character is dead or at +1 hit points */ - if (GetCurrentHitPoints() <= 0) { - - /* a positive bleeding amount means damage, otherwise heal the character */ - if (iBleedAmt > 0) { - eBleedEff = EffectDamage(iBleedAmt); - } else { - eBleedEff = EffectHeal(-iBleedAmt); /* note the negative sign */ - } - - - ApplyEffectToObject(DURATION_TYPE_INSTANT, eBleedEff, OBJECT_SELF); - - /* -10 hit points is the death threshold, at or beyond it the character dies */ - if (GetCurrentHitPoints() <= -10) { - SetLocalInt (oModule, ddVarName, 1); - PlayVoiceChat(VOICE_CHAT_DEATH); /* scream one last time */ - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), OBJECT_SELF); /* make death dramatic */ - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), OBJECT_SELF); /* now kill them */ - return; - } - - if (iBleedAmt > 0) { /* only check if character has not stablized */ - if (d10(1) == 1) { - /* 10% chance to stablize */ - iBleedAmt = -iBleedAmt; /* reverse the bleeding process */ - PlayVoiceChat(VOICE_CHAT_LAUGH); - /* laugh at death -- this time */ - } else { - switch (d6()) { - case 1: PlayVoiceChat(VOICE_CHAT_PAIN1); break; - case 2: PlayVoiceChat(VOICE_CHAT_PAIN2); break; - case 3: PlayVoiceChat(VOICE_CHAT_PAIN3); break; - case 4: PlayVoiceChat(VOICE_CHAT_HEALME); break; - case 5: PlayVoiceChat(VOICE_CHAT_NEARDEATH); break; - case 6: PlayVoiceChat(VOICE_CHAT_HELP); - } - } - } - DelayCommand(6.0,bleed(iBleedAmt)); /* do this again next round */ - } -} diff --git a/_removed files/everpcequip.nss b/_removed files/everpcequip.nss deleted file mode 100644 index 7801a67a..00000000 --- a/_removed files/everpcequip.nss +++ /dev/null @@ -1,85 +0,0 @@ -//Script Name: everpcequip -////////////////////////////////////////// -//Created By: Genisys (Guile) -//Created On: 5/10/08 (updated 8/10/08) -///////////////////////////////////////// -/* -This script handles the equipping of all items tagged "arena" -Players cannot equip items in the arena unless it's tagnamed "arena" -Likewise players cannot equipt items tagnamed "arena" outside of the arena. -*/ -//////////////////////////////////////// -//Required Include -#include "x2_inc_switches" - -//Main Script -void main() -{ - //Declare Major Variables - object oItem = GetPCItemLastEquipped(); - object oPC = GetPCItemLastEquippedBy(); - int nSlot; - object nItem; - - -//You need to assign the tagname "TheArena" to any areas you deem as an Arena -//All items tagnamed "Arena" are unequipped if the person is NOT in the Arena. -//All Non-Arena items are unequipped if the player is IN the Arena - -//If the player is in the arena and eqiupping a non-arena item - if(GetTag(GetArea(oPC)) == "TheArena") - { - for (nSlot=0; nSlot=40) -{ - //Lets make the concealed 40% - eEffect = EffectConcealment(40); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); - - //Lets make the look like a ghost.. :) - ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(EffectVisualEffect(VFX_DUR_GLOW_WHITE)), oPC); - -} - -//Send them to Fugue -oTarget = GetWaypointByTag("respawnpt"); -lTarget = GetLocation(oTarget); - -//Apply a respawn penalty (See the setxp_inc script) -ApplyRespawnPenalty(oPC); - -//If the location is valid, send them there.. -if (GetArea(GetAreaFromLocation(lTarget))!=OBJECT_INVALID) -{ - -//Send the PC to the waypoint tagnamed "deathway" -AssignCommand(oPC, ClearAllActions()); -AssignCommand(oPC, ActionJumpToLocation(lTarget)); -} - -//Otherwise if the area is not valid.. -else -{ -//Otherwise they respawn where they died. -} - -//Main Script End -} - -//////BIOWARE STANDARD Raise OnDeath FUNCTION/////////// - -//PROTOTYPE DEFINED -// Raise OnDeath function -void Raise(object oPlayer) -{ - effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION); - - effect eBad = GetFirstEffect(oPlayer); - ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer); - ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer); - - //Search for negative effects - while(GetIsEffectValid(eBad)) - { - if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || - GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || - GetEffectType(eBad) == EFFECT_TYPE_DEAF || - GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || - GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL) - { - //Remove effect if it is negative. - RemoveEffect(oPlayer, eBad); - } - eBad = GetNextEffect(oPlayer); - } - //Fire cast spell at event for the specified target - SignalEvent(oPlayer, EventSpellCastAt(OBJECT_SELF, SPELL_RESTORATION, FALSE)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPlayer); -} diff --git a/_removed files/everpcrest.nss b/_removed files/everpcrest.nss deleted file mode 100644 index 35ebcbef..00000000 --- a/_removed files/everpcrest.nss +++ /dev/null @@ -1,130 +0,0 @@ -//Script Name: everpcrest -/////////////////////////////////////// -//Created by Genisys / Guile -//Created on: 3/11/08 (Updated 8/10/08 -////////////////////////////////////// -/* -This is my premier OnPlayerRest -Module Properties Event script -to handle rest within all of my -module.. -*/ -////////////////////////////////////// - -//Redundant Variable -effect eEffect; - -//Main Script -void main() -{ - -//Declare Major Variables -object oPC=GetLastPCRested(); -object oPP = oPC; - -location lSaved = GetLocation(oPP); - -int nRestType=GetLastRestEventType(); -int nHD = GetHitDice(oPC); - -//Determine which Event has happened and run the script for that event. -switch (nRestType) - { - -///////////////////////////////////////////////////////////////////////////// - case REST_EVENTTYPE_REST_STARTED: - { - //Dark the screen out on the PC.. - FadeToBlack(oPC, FADE_SPEED_FAST); - - - //Your code goes here. - - - } - - break; -//////////////////////////////////////////////////////////////////////////// - case REST_EVENTTYPE_REST_FINISHED: - { - - //remove the black out from thier screen.. - FadeFromBlack(oPC, FADE_SPEED_SLOW); - - //Store the PC's location, so they can come back here after relogging - SetCampaignLocation(GetName(GetModule()), "SAVED_LOC", lSaved, oPP); - //Tell the PC their location was saved.. - SendMessageToPC(oPP, "Location Saved!"); - - FloatingTextStringOnCreature("Your character was saved.", oPC); - //Delete the // below to activate autosave when pc's finish resting. - // DelayCommand(1.0, ExportSingleCharacter(oPC)); - - if(nHD == 40) - { - //If the player is Legendary Level 60 give them a cool power! - if(GetXP(oPC) >5000000) - { - //The legendary character is immune to death! - eEffect = EffectImmunity(IMMUNITY_TYPE_ABILITY_DECREASE); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); - - //The legendary character is immune to poison! - eEffect = EffectImmunity(IMMUNITY_TYPE_KNOCKDOWN); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); - } - - //Make ALL level 40s have 40% concealment - - //Make them harder to hit 40% miss chance... - eEffect = EffectConcealment(40); - eEffect = SupernaturalEffect(eEffect); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); - - //Apply the Ghost Like Visual to all Level 40 PCs - DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_PERMANENT, - SupernaturalEffect(EffectVisualEffect(VFX_DUR_GLOW_WHITE)), oPC)); - } - - //if the PC is immortal (has the immotoken) - if (GetItemPossessedBy(oPC, "immotoken")!= OBJECT_INVALID) - { - //See this script to adjust the immortal options.. - ExecuteScript("powerimmortal", oPC); - } - - - //Your code goes here. - - - } - break; - - -//////////////////////////////////////////////////////////////////////// - case REST_EVENTTYPE_REST_CANCELLED: - { - FloatingTextStringOnCreature("Your character was not saved!", oPC); - - FadeFromBlack(oPC, FADE_SPEED_MEDIUM); - - - //Your code goes here. - - } - - break; - -///////////////////////////////////////////////////////////////////////// - default: //You will probably never see this message.. - SendMessageToPC(oPC, - "If you see this message tell the DMs there is an error in the rest event script."); - - - //Switch Statement end.. - } - -//Main Script end -} diff --git a/_removed files/everpcunequip.nss b/_removed files/everpcunequip.nss deleted file mode 100644 index e6dcf3c1..00000000 --- a/_removed files/everpcunequip.nss +++ /dev/null @@ -1,96 +0,0 @@ -//:: Script Name: everpcunequip -//:://///////////////////////////////////////////// -//:: Example XP2 OnItemEquipped -//:: x2_mod_def_unequ -//:: (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -// Put into the: OnUnEquip Module Event -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: 2003-07-16 -//::////////////////////////////////////////////// -//Modified By Guile 3/24/08 (Updated 8/10/08) -//This modifcation stops a weapon switching exploit -//Which gives the makes the PC never miss!!! -/////////////////////////////////////////////////// - -//Required Includes -#include "x2_inc_switches" -#include "x2_inc_intweapon" - -//Main Script -void main() -{ - - object oItem = GetPCItemLastUnequipped(); - object oPC = GetPCItemLastUnequippedBy(); - - if (!GetIsPC(oPC)) return; - - -//This is my weapon swap pvp exploit fix -//Lets make sure they are actually fighting someone -if(GetIsInCombat(oPC)) -{ -//Lets make sure it's a weapon or shield they are unequipping -if(GetBaseItemType(oItem) != BASE_ITEM_AMULET) -{if(GetBaseItemType(oItem) != BASE_ITEM_ARROW) -{if(GetBaseItemType(oItem) != BASE_ITEM_BELT) -{if(GetBaseItemType(oItem) != BASE_ITEM_BOLT) -{if(GetBaseItemType(oItem) != BASE_ITEM_BOOTS) -{if(GetBaseItemType(oItem) != BASE_ITEM_BRACER) -{if(GetBaseItemType(oItem) != BASE_ITEM_CLOAK) -{if(GetBaseItemType(oItem) != BASE_ITEM_HELMET) -{if(GetBaseItemType(oItem) != BASE_ITEM_BULLET) -{if(GetBaseItemType(oItem) != BASE_ITEM_RING) -{ -DelayCommand(0.5, AssignCommand(oPC, ClearAllActions())); -}}}}}}}}}} -//Exploit Fix END -} - -/////////////////////////////////////////////////////////////////////////// - - -//Your Code Goes here.. - - -/////////////////////////////////////////////////////////////////////////// - -///////////////////BIOWARE XP2 FUNCTIONS/////////////////////////////////// - //Commented out because I am not using it... - /* Delete this line to activate - // ------------------------------------------------------------------------- - // Intelligent Weapon System - // ------------------------------------------------------------------------- - if (IPGetIsIntelligentWeapon(oItem)) - { - IWSetIntelligentWeaponEquipped(oPC,OBJECT_INVALID); - IWPlayRandomUnequipComment(oPC,oItem); - } - - // DO NOT TOUCH THIS LINE! */ - - -///////////////////////XP2 TAGBASED SCRIPTING CODE/////////////////////////// - - // ------------------------------------------------------------------------- - // Generic Item Script Execution Code - // If MODULE_SWITCH_EXECUTE_TAGBASED_SCRIPTS is set to TRUE on the module, - // it will execute a script that has the same name as the item's tag - // inside this script you can manage scripts for all events by checking against - // GetUserDefinedItemEventNumber(). See x2_it_example.nss - // ------------------------------------------------------------------------- - if (GetModuleSwitchValue(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE) - { - SetUserDefinedItemEventNumber(X2_ITEM_EVENT_UNEQUIP); - int nRet = ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF); - if (nRet == X2_EXECUTE_SCRIPT_END) - { - return; - } - - } - -//Main Script End -} diff --git a/_removed files/everunaquire.nss b/_removed files/everunaquire.nss deleted file mode 100644 index 2351c36a..00000000 --- a/_removed files/everunaquire.nss +++ /dev/null @@ -1,108 +0,0 @@ -//Script Name: onunaquireitem -////////////////////////////////////////// -//Created By: Genisys (Guile) -//Created On: 3/05/08 (Update 8/10/08) -///////////////////////////////////////// -/* -This script goes in the OnUnAquireItem -Module Event in the Module Properties - -This script accurately nails a player -for pick pocketing another player. -It doesn't fire if they are pick -pocketing anything but a player. - -The Tag Standard Bioware Tag-Based -Scripting will still fire reguardless. -*/ -//////////////////////////////////////// - -//Required Include -#include "x2_inc_switches" -void main() -{ - -//IMPORTANT THIS MUST BE IN YOUR OnUnAcquireItem Module Event Script - //This is a fix for the Inventory Organizing System! - object oPC = GetModuleItemLostBy(); - if(GetLocalInt(oPC, "ORGANIZING")==1) - { return; } - -object oItem = GetModuleItemLost(); - -object oRobbed; -oRobbed = GetModuleItemLostBy(); -object oThief; -oThief = GetModuleItemAcquiredBy(); -object oLost; -oLost = GetModuleItemLost(); -object oFound; -oFound = GetModuleItemAcquired(); - -string sMsg; -sMsg = "You can't pick player's pockets, it's not permitted!"; - - //Let's make sure the thief is a PC, or continue on to the tag based scripting - if (GetIsPC(oThief)) - { - - //Lets see if they have Pick Pocket Skills - if(GetSkillRank(SKILL_PICK_POCKET, oThief, TRUE)>0) - { - //Lets make sure they took it from a PC and not an NPC or Monster. - if(GetIsPC(oRobbed)) - { - //Let's make sure the thief isn't crafting. - if(oRobbed != oThief) - { - //Lets make sure the the thief is the one who disturbed the inventory - //of the person who lost the item. (This needs to be tested thoroughly) - // if(GetLastDisturbed()== oThief) - //Delete the // Below and the // where } appears below as well to activate. - // { - - //Give the item back, destroy the one they took, and kill the thief. - ActionTakeItem(oFound, oThief); - ActionGiveItem(oFound, oRobbed); - SendMessageToPC(oThief, sMsg); - effect eEffect; - eEffect = EffectDeath(); - eEffect = SupernaturalEffect(eEffect); - DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oThief)); - AssignCommand(oThief, SpeakString("I'm a thief!!", TALKVOLUME_SHOUT)); - - //} - } - } - } - } - -//This script destroys all items dropped if not in combat (disarmed) -//or if the item is put into a container in the module. -//Simply place // before Execute to turn off. -ExecuteScript("trashem",OBJECT_SELF); - -/////////////////////////////////////////////////////////////////////////// - - -//Your Code Goes here... - - -/////////////////////////////////////////////////////////////////////////// - -///////////STANDARD XP2 TAG BASED SCRIPTING CODE/////////////////////////// - - //Tag Based Scripting Check - if (GetModuleSwitchValue(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE) - { - SetUserDefinedItemEventNumber(X2_ITEM_EVENT_UNACQUIRE); - int nRet = ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF); - if (nRet == X2_EXECUTE_SCRIPT_END) - { - return; - } - - } - -//Main Script End -} diff --git a/_removed files/hgll_classft_inc.nss b/_removed files/hgll_classft_inc.nss deleted file mode 100644 index 6e947dd3..00000000 --- a/_removed files/hgll_classft_inc.nss +++ /dev/null @@ -1,7473 +0,0 @@ -//--------------------------------DECLARATIONS--------------------------------// - -// This function returns the level at which the specified class gets the specified feat. -// If the feat is epic only, it will return -1 in most cases, though it will also return -// 21 on occasion, as with Epic Spoells, which actually require 21 levels of the class rather -// than just epic character status. It replicates EXACTLY the cls_feat 2da for each of the -// respective classes, though the order of feats has been shuffled to accomodate the switch -// statements, and a few duplicate cases in the 2das were removed. If the feat input is not -// a class feat (and therefore not found in the 2da), this function will return -2. If the -// class input is not a valid class int, the function returns -3. Although Harper Scout could -// not possibly be a character's control class for legendary levels, it is included at the end -// of the switch so that the function can be of broader use to the community. Several feats were -// added as class feats for Palemasters, including Spell Focuses and Greater Spell Focuses -// (since they get Epic Focuses). They are marked in the function. The class switches are -// in aphabetical order by 2da file (which is slightly different than class name). -int GetClassLevelReqForFeat(int nFeat, int nClass); -// This function returns TRUE if the feat specified is a general feat, avalable to all classes. -int GetIsGeneralFeat(int nFeat); - -//----------------------------------FUNCTIONS---------------------------------// - -int GetClassLevelReqForFeat(int nFeat, int nClass) -{ -int nInt; -switch(nClass) -{ - case CLASS_TYPE_ARCANE_ARCHER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 32 : nInt = 1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -case 445 : nInt = 1 ; break; -case 446 : nInt = 3 ; break; -case 447 : nInt = 5 ; break; -case 448 : nInt = 7 ; break; -case 449 : nInt = 9 ; break; -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -case 450 : nInt = 2 ; break; -case 451 : nInt = 4 ; break; -case 452 : nInt = 6 ; break; -case 453 : nInt = 8 ; break; -case 454 : nInt = 10 ; break; -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -case 585 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -case 784 : nInt = -1 ; break; -case 785 : nInt = -1 ; break; -case 786 : nInt = -1 ; break; -case 787 : nInt = -1 ; break; -case 788 : nInt = -1 ; break; -case 789 : nInt = -1 ; break; -case 790 : nInt = -1 ; break; -case 791 : nInt = -1 ; break; -case 792 : nInt = -1 ; break; -case 793 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 977 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -case 1045 : nInt = 11 ; break; -case 1046 : nInt = 13 ; break; -case 1047 : nInt = 15 ; break; -case 1048 : nInt = 17 ; break; -case 1049 : nInt = 19 ; break; -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -case 1050 : nInt = 21 ; break; -case 1051 : nInt = 23 ; break; -case 1052 : nInt = 25 ; break; -case 1053 : nInt = 27 ; break; -case 1054 : nInt = 29 ; break; -case 1055 : nInt = 31 ; break; -case 1056 : nInt = 33 ; break; -case 1057 : nInt = 35 ; break; -case 1058 : nInt = 37 ; break; -case 1059 : nInt = 39 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_ASSASSIN: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 195 : nInt = 2 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 251 : nInt = 5 ; break; -case 252 : nInt = 10 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -case 455 : nInt = 1 ; break; -case 456 : nInt = 3 ; break; -case 457 : nInt = 5 ; break; -case 458 : nInt = 7 ; break; -case 459 : nInt = 9 ; break; -case 463 : nInt = 2 ; break; -case 464 : nInt = 4 ; break; -case 465 : nInt = 6 ; break; -case 466 : nInt = 8 ; break; -case 467 : nInt = 10 ; break; -case 468 : nInt = 2 ; break; -case 469 : nInt = 5 ; break; -case 470 : nInt = 7 ; break; -case 471 : nInt = 9 ; break; -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 585 : nInt = -1 ; break; -case 594 : nInt = -1 ; break; -case 597 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 748 : nInt = -1 ; break; -case 749 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 750 : nInt = -1 ; break; -case 751 : nInt = -1 ; break; -case 752 : nInt = -1 ; break; -case 753 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -case 784 : nInt = -1 ; break; -case 785 : nInt = -1 ; break; -case 786 : nInt = -1 ; break; -case 787 : nInt = -1 ; break; -case 788 : nInt = -1 ; break; -case 789 : nInt = -1 ; break; -case 790 : nInt = -1 ; break; -case 791 : nInt = -1 ; break; -case 792 : nInt = -1 ; break; -case 793 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 834 : nInt = -1 ; break; -case 835 : nInt = -1 ; break; -case 836 : nInt = -1 ; break; -case 837 : nInt = -1 ; break; -case 838 : nInt = -1 ; break; -case 839 : nInt = -1 ; break; -case 840 : nInt = -1 ; break; -case 841 : nInt = -1 ; break; -case 842 : nInt = -1 ; break; -case 843 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 960 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 978 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -case 1004 : nInt = 11 ; break; -case 1005 : nInt = 13 ; break; -case 1006 : nInt = 15 ; break; -case 1019 : nInt = 17 ; break; -case 1020 : nInt = 19 ; break; -case 1021 : nInt = 21 ; break; -case 1022 : nInt = 23 ; break; -case 1023 : nInt = 25 ; break; -case 1024 : nInt = 27 ; break; -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -case 1025 : nInt = 29 ; break; -case 1026 : nInt = 31 ; break; -case 1027 : nInt = 33 ; break; -case 1028 : nInt = 35 ; break; -case 1029 : nInt = 37 ; break; -case 1030 : nInt = 39 ; break; -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -case 1070 : nInt = 12 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_BARBARIAN: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 32 : nInt = 1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 194 : nInt = 1 ; break; -case 195 : nInt = 2 ; break; -case 196 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 251 : nInt = 5 ; break; -case 252 : nInt = 10 ; break; -case 253 : nInt = 13 ; break; -case 254 : nInt = 16 ; break; -case 255 : nInt = 19 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 293 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -case 326 : nInt = 4 ; break; -case 327 : nInt = 8 ; break; -case 328 : nInt = 12 ; break; -case 329 : nInt = 15 ; break; -case 330 : nInt = 16 ; break; -case 331 : nInt = 20 ; break; -case 332 : nInt = 14 ; break; -case 333 : nInt = 17 ; break; -case 334 : nInt = 20 ; break; -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 709 : nInt = -1 ; break; -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 753 : nInt = -1 ; break; -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 869 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -case 967 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 988 : nInt = -1 ; break; -case 989 : nInt = -1 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -case 1067 : nInt = 23 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_BARD: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 32 : nInt = 1 ; break; -case 35 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 193 : nInt = -1 ; break; -case 197 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 257 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -case 355 : nInt = 2 ; break; -case 356 : nInt = 3 ; break; -case 357 : nInt = 4 ; break; -case 358 : nInt = 5 ; break; -case 359 : nInt = 6 ; break; -case 360 : nInt = 7 ; break; -case 361 : nInt = 8 ; break; -case 362 : nInt = 9 ; break; -case 363 : nInt = 10 ; break; -case 364 : nInt = 11 ; break; -case 365 : nInt = 12 ; break; -case 366 : nInt = 13 ; break; -case 367 : nInt = 14 ; break; -case 368 : nInt = 15 ; break; -case 369 : nInt = 16 ; break; -case 370 : nInt = 17 ; break; -case 371 : nInt = 18 ; break; -case 372 : nInt = 19 ; break; -case 373 : nInt = 20 ; break; -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -case 401 : nInt = -1 ; break; -case 415 : nInt = -1 ; break; -case 416 : nInt = -1 ; break; -case 417 : nInt = -1 ; break; -case 418 : nInt = -1 ; break; -case 419 : nInt = -1 ; break; -case 420 : nInt = -1 ; break; -case 421 : nInt = -1 ; break; -case 422 : nInt = -1 ; break; -case 423 : nInt = -1 ; break; -case 424 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 588 : nInt = -1 ; break; -case 589 : nInt = -1 ; break; -case 590 : nInt = -1 ; break; -case 591 : nInt = -1 ; break; -case 592 : nInt = -1 ; break; -case 593 : nInt = -1 ; break; -case 594 : nInt = -1 ; break; -case 595 : nInt = -1 ; break; -case 596 : nInt = -1 ; break; -case 597 : nInt = -1 ; break; -case 598 : nInt = -1 ; break; -case 599 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 601 : nInt = -1 ; break; -case 602 : nInt = -1 ; break; -case 603 : nInt = -1 ; break; -case 604 : nInt = -1 ; break; -case 605 : nInt = -1 ; break; -case 606 : nInt = -1 ; break; -case 607 : nInt = -1 ; break; -case 608 : nInt = -1 ; break; -case 600 : nInt = -1 ; break; -case 609 : nInt = -1 ; break; -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 695 : nInt = -1 ; break; -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 764 : nInt = -1 ; break; -case 765 : nInt = -1 ; break; -case 766 : nInt = -1 ; break; -case 767 : nInt = -1 ; break; -case 768 : nInt = -1 ; break; -case 769 : nInt = -1 ; break; -case 770 : nInt = -1 ; break; -case 771 : nInt = -1 ; break; -case 772 : nInt = -1 ; break; -case 773 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -case 784 : nInt = -1 ; break; -case 785 : nInt = -1 ; break; -case 786 : nInt = -1 ; break; -case 787 : nInt = -1 ; break; -case 788 : nInt = -1 ; break; -case 789 : nInt = -1 ; break; -case 790 : nInt = -1 ; break; -case 791 : nInt = -1 ; break; -case 792 : nInt = -1 ; break; -case 793 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 870 : nInt = -1 ; break; -case 871 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 913 : nInt = -1 ; break; -case 914 : nInt = -1 ; break; -case 917 : nInt = -1 ; break; -case 918 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 968 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_BLACKGUARD: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 2 : nInt = 1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 32 : nInt = 1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 294 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 413 : nInt = -1 ; break; -case 414 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -case 460 : nInt = 4 ; break; -case 461 : nInt = 7 ; break; -case 462 : nInt = 10 ; break; -case 472 : nInt = 2 ; break; -case 473 : nInt = 2 ; break; -case 474 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 475 : nInt = 5 ; break; -case 476 : nInt = 6 ; break; -case 477 : nInt = 8 ; break; -case 478 : nInt = 2 ; break; -case 479 : nInt = 7 ; break; -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -case 586 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 709 : nInt = -1 ; break; -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -case 747 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 824 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 825 : nInt = -1 ; break; -case 826 : nInt = -1 ; break; -case 827 : nInt = -1 ; break; -case 828 : nInt = -1 ; break; -case 829 : nInt = -1 ; break; -case 830 : nInt = -1 ; break; -case 831 : nInt = -1 ; break; -case 832 : nInt = -1 ; break; -case 833 : nInt = -1 ; break; -case 834 : nInt = -1 ; break; -case 835 : nInt = -1 ; break; -case 836 : nInt = -1 ; break; -case 837 : nInt = -1 ; break; -case 838 : nInt = -1 ; break; -case 839 : nInt = -1 ; break; -case 840 : nInt = -1 ; break; -case 841 : nInt = -1 ; break; -case 842 : nInt = -1 ; break; -case 843 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 854 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -case 960 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 979 : nInt = 11 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -case 1003 : nInt = 15 ; break; -case 1007 : nInt = 13 ; break; -case 1008 : nInt = 16 ; break; -case 1009 : nInt = 19 ; break; -case 1010 : nInt = 22 ; break; -case 1011 : nInt = 25 ; break; -case 1012 : nInt = 28 ; break; -case 1013 : nInt = 31 ; break; -case 1014 : nInt = 34 ; break; -case 1015 : nInt = 37 ; break; -case 1016 : nInt = 40 ; break; -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_CLERIC: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 2 : nInt = 1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -case 13 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 32 : nInt = 1 ; break; -case 35 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 294 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -case 413 : nInt = -1 ; break; -case 414 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 804 : nInt = -1 ; break; -case 805 : nInt = -1 ; break; -case 806 : nInt = -1 ; break; -case 807 : nInt = -1 ; break; -case 808 : nInt = -1 ; break; -case 809 : nInt = -1 ; break; -case 810 : nInt = -1 ; break; -case 811 : nInt = -1 ; break; -case 812 : nInt = -1 ; break; -case 813 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 854 : nInt = -1 ; break; -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 874 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 875 : nInt = 21 ; break; -case 876 : nInt = 21 ; break; -case 878 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 969 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_DIVINECHAMPION: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 2 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 5 : nInt = -1 ; break; -case 6 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -case 9 : nInt = -1 ; break; -case 10 : nInt = -1 ; break; -case 15 : nInt = -1 ; break; -case 16 : nInt = -1 ; break; -case 17 : nInt = -1 ; break; -case 18 : nInt = -1 ; break; -case 19 : nInt = -1 ; break; -case 20 : nInt = -1 ; break; -case 21 : nInt = -1 ; break; -case 23 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 26 : nInt = -1 ; break; -case 27 : nInt = -1 ; break; -case 28 : nInt = -1 ; break; -case 30 : nInt = -1 ; break; -case 31 : nInt = -1 ; break; -case 32 : nInt = 1 ; break; -case 39 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 42 : nInt = -1 ; break; -case 43 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -case 52 : nInt = -1 ; break; -case 53 : nInt = -1 ; break; -case 54 : nInt = -1 ; break; -case 55 : nInt = -1 ; break; -case 56 : nInt = -1 ; break; -case 57 : nInt = -1 ; break; -case 58 : nInt = -1 ; break; -case 59 : nInt = -1 ; break; -case 60 : nInt = -1 ; break; -case 61 : nInt = -1 ; break; -case 62 : nInt = -1 ; break; -case 63 : nInt = -1 ; break; -case 64 : nInt = -1 ; break; -case 65 : nInt = -1 ; break; -case 66 : nInt = -1 ; break; -case 67 : nInt = -1 ; break; -case 68 : nInt = -1 ; break; -case 69 : nInt = -1 ; break; -case 70 : nInt = -1 ; break; -case 71 : nInt = -1 ; break; -case 72 : nInt = -1 ; break; -case 73 : nInt = -1 ; break; -case 74 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -case 75 : nInt = -1 ; break; -case 76 : nInt = -1 ; break; -case 77 : nInt = -1 ; break; -case 78 : nInt = -1 ; break; -case 79 : nInt = -1 ; break; -case 80 : nInt = -1 ; break; -case 82 : nInt = -1 ; break; -case 83 : nInt = -1 ; break; -case 84 : nInt = -1 ; break; -case 85 : nInt = -1 ; break; -case 87 : nInt = -1 ; break; -case 88 : nInt = -1 ; break; -case 89 : nInt = -1 ; break; -case 90 : nInt = -1 ; break; -case 91 : nInt = -1 ; break; -case 92 : nInt = -1 ; break; -case 93 : nInt = -1 ; break; -case 94 : nInt = -1 ; break; -case 95 : nInt = -1 ; break; -case 96 : nInt = -1 ; break; -case 97 : nInt = -1 ; break; -case 98 : nInt = -1 ; break; -case 99 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -case 100 : nInt = -1 ; break; -case 101 : nInt = -1 ; break; -case 102 : nInt = -1 ; break; -case 103 : nInt = -1 ; break; -case 104 : nInt = -1 ; break; -case 105 : nInt = -1 ; break; -case 106 : nInt = -1 ; break; -case 107 : nInt = -1 ; break; -case 108 : nInt = -1 ; break; -case 109 : nInt = -1 ; break; -case 110 : nInt = -1 ; break; -case 111 : nInt = -1 ; break; -case 112 : nInt = -1 ; break; -case 113 : nInt = -1 ; break; -case 114 : nInt = -1 ; break; -case 115 : nInt = -1 ; break; -case 116 : nInt = -1 ; break; -case 117 : nInt = -1 ; break; -case 118 : nInt = -1 ; break; -case 120 : nInt = -1 ; break; -case 121 : nInt = -1 ; break; -case 122 : nInt = -1 ; break; -case 123 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -case 125 : nInt = -1 ; break; -case 126 : nInt = -1 ; break; -case 127 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 299 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -case 301 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 389 : nInt = -1 ; break; -case 390 : nInt = -1 ; break; -case 391 : nInt = -1 ; break; -case 392 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 408 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -case 657 : nInt = -1 ; break; -case 658 : nInt = -1 ; break; -case 659 : nInt = -1 ; break; -case 660 : nInt = -1 ; break; -case 661 : nInt = -1 ; break; -case 662 : nInt = -1 ; break; -case 663 : nInt = -1 ; break; -case 664 : nInt = -1 ; break; -case 665 : nInt = -1 ; break; -case 666 : nInt = -1 ; break; -case 667 : nInt = -1 ; break; -case 668 : nInt = -1 ; break; -case 669 : nInt = -1 ; break; -case 670 : nInt = -1 ; break; -case 671 : nInt = -1 ; break; -case 672 : nInt = -1 ; break; -case 673 : nInt = -1 ; break; -case 674 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 675 : nInt = -1 ; break; -case 676 : nInt = -1 ; break; -case 677 : nInt = -1 ; break; -case 678 : nInt = -1 ; break; -case 679 : nInt = -1 ; break; -case 680 : nInt = -1 ; break; -case 681 : nInt = -1 ; break; -case 682 : nInt = -1 ; break; -case 683 : nInt = -1 ; break; -case 684 : nInt = -1 ; break; -case 685 : nInt = -1 ; break; -case 686 : nInt = -1 ; break; -case 687 : nInt = -1 ; break; -case 688 : nInt = -1 ; break; -case 689 : nInt = -1 ; break; -case 690 : nInt = -1 ; break; -case 691 : nInt = -1 ; break; -case 692 : nInt = -1 ; break; -case 693 : nInt = -1 ; break; -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 709 : nInt = -1 ; break; -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 753 : nInt = -1 ; break; -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 804 : nInt = -1 ; break; -case 805 : nInt = -1 ; break; -case 806 : nInt = -1 ; break; -case 807 : nInt = -1 ; break; -case 808 : nInt = -1 ; break; -case 809 : nInt = -1 ; break; -case 810 : nInt = -1 ; break; -case 811 : nInt = -1 ; break; -case 812 : nInt = -1 ; break; -case 813 : nInt = -1 ; break; -case 824 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 825 : nInt = -1 ; break; -case 826 : nInt = -1 ; break; -case 827 : nInt = -1 ; break; -case 828 : nInt = -1 ; break; -case 829 : nInt = -1 ; break; -case 830 : nInt = -1 ; break; -case 831 : nInt = -1 ; break; -case 832 : nInt = -1 ; break; -case 833 : nInt = -1 ; break; -case 844 : nInt = -1 ; break; -case 845 : nInt = -1 ; break; -case 846 : nInt = -1 ; break; -case 847 : nInt = -1 ; break; -case 848 : nInt = -1 ; break; -case 849 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 850 : nInt = -1 ; break; -case 851 : nInt = -1 ; break; -case 852 : nInt = -1 ; break; -case 853 : nInt = -1 ; break; -case 854 : nInt = -1 ; break; -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 867 : nInt = -1 ; break; -case 868 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 904 : nInt = 2 ; break; -case 909 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 952 : nInt = -1 ; break; -case 954 : nInt = -1 ; break; -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 982 : nInt = 11 ; break; -case 993 : nInt = -1 ; break; -case 995 : nInt = -1 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 998 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_DRAGONDISCIPLE: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 35 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -case 228 : nInt = 10 ; break; -case 235 : nInt = 10 ; break; -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -case 586 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 961 : nInt = 1 ; break; -case 962 : nInt = 2 ; break; -case 963 : nInt = 10 ; break; -case 964 : nInt = 10 ; break; -case 965 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 987 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -case 1042 : nInt = 1 ; break; -case 1043 : nInt = 4 ; break; -case 1044 : nInt = 6 ; break; -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_DRUID: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 32 : nInt = 1 ; break; -case 34 : nInt = -1 ; break; -case 35 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 48 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 198 : nInt = 1 ; break; -case 199 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -case 200 : nInt = 2 ; break; -case 201 : nInt = 3 ; break; -case 202 : nInt = 4 ; break; -case 203 : nInt = 9 ; break; -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -case 304 : nInt = 16 ; break; -case 305 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -case 335 : nInt = 6 ; break; -case 336 : nInt = 7 ; break; -case 337 : nInt = 10 ; break; -case 338 : nInt = 14 ; break; -case 339 : nInt = 18 ; break; -case 340 : nInt = 17 ; break; -case 341 : nInt = 19 ; break; -case 342 : nInt = 20 ; break; -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 533 : nInt = -1 ; break; -case 534 : nInt = -1 ; break; -case 535 : nInt = -1 ; break; -case 536 : nInt = -1 ; break; -case 537 : nInt = -1 ; break; -case 538 : nInt = -1 ; break; -case 539 : nInt = -1 ; break; -case 540 : nInt = -1 ; break; -case 541 : nInt = -1 ; break; -case 542 : nInt = -1 ; break; -case 543 : nInt = -1 ; break; -case 544 : nInt = -1 ; break; -case 545 : nInt = -1 ; break; -case 546 : nInt = -1 ; break; -case 547 : nInt = -1 ; break; -case 548 : nInt = -1 ; break; -case 549 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -case 550 : nInt = -1 ; break; -case 551 : nInt = -1 ; break; -case 552 : nInt = -1 ; break; -case 553 : nInt = -1 ; break; -case 554 : nInt = -1 ; break; -case 555 : nInt = -1 ; break; -case 556 : nInt = -1 ; break; -case 557 : nInt = -1 ; break; -case 558 : nInt = -1 ; break; -case 559 : nInt = -1 ; break; -case 560 : nInt = -1 ; break; -case 561 : nInt = -1 ; break; -case 562 : nInt = -1 ; break; -case 563 : nInt = -1 ; break; -case 564 : nInt = -1 ; break; -case 565 : nInt = -1 ; break; -case 566 : nInt = -1 ; break; -case 567 : nInt = -1 ; break; -case 568 : nInt = -1 ; break; -case 569 : nInt = -1 ; break; -case 570 : nInt = -1 ; break; -case 571 : nInt = -1 ; break; -case 572 : nInt = -1 ; break; -case 573 : nInt = -1 ; break; -case 574 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 575 : nInt = -1 ; break; -case 576 : nInt = -1 ; break; -case 577 : nInt = -1 ; break; -case 578 : nInt = -1 ; break; -case 579 : nInt = -1 ; break; -case 580 : nInt = -1 ; break; -case 581 : nInt = -1 ; break; -case 582 : nInt = -1 ; break; -case 587 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 804 : nInt = -1 ; break; -case 805 : nInt = -1 ; break; -case 806 : nInt = -1 ; break; -case 807 : nInt = -1 ; break; -case 808 : nInt = -1 ; break; -case 809 : nInt = -1 ; break; -case 810 : nInt = -1 ; break; -case 811 : nInt = -1 ; break; -case 812 : nInt = -1 ; break; -case 813 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 873 : nInt = -1 ; break; -case 874 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 875 : nInt = 21 ; break; -case 876 : nInt = 21 ; break; -case 878 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 970 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -case 1068 : nInt = 22 ; break; -case 1069 : nInt = 26 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_DWARVENDEFENDER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 2 : nInt = 1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 32 : nInt = 1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -case 533 : nInt = -1 ; break; -case 534 : nInt = -1 ; break; -case 535 : nInt = -1 ; break; -case 536 : nInt = -1 ; break; -case 537 : nInt = -1 ; break; -case 538 : nInt = -1 ; break; -case 539 : nInt = -1 ; break; -case 540 : nInt = -1 ; break; -case 541 : nInt = -1 ; break; -case 542 : nInt = -1 ; break; -case 543 : nInt = -1 ; break; -case 544 : nInt = -1 ; break; -case 545 : nInt = -1 ; break; -case 546 : nInt = -1 ; break; -case 547 : nInt = -1 ; break; -case 548 : nInt = -1 ; break; -case 549 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -case 550 : nInt = -1 ; break; -case 551 : nInt = -1 ; break; -case 552 : nInt = -1 ; break; -case 553 : nInt = -1 ; break; -case 554 : nInt = -1 ; break; -case 555 : nInt = -1 ; break; -case 556 : nInt = -1 ; break; -case 557 : nInt = -1 ; break; -case 558 : nInt = -1 ; break; -case 559 : nInt = -1 ; break; -case 560 : nInt = -1 ; break; -case 561 : nInt = -1 ; break; -case 562 : nInt = -1 ; break; -case 563 : nInt = -1 ; break; -case 564 : nInt = -1 ; break; -case 565 : nInt = -1 ; break; -case 566 : nInt = -1 ; break; -case 567 : nInt = -1 ; break; -case 568 : nInt = -1 ; break; -case 569 : nInt = -1 ; break; -case 570 : nInt = -1 ; break; -case 571 : nInt = -1 ; break; -case 572 : nInt = -1 ; break; -case 573 : nInt = -1 ; break; -case 574 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 575 : nInt = -1 ; break; -case 576 : nInt = -1 ; break; -case 577 : nInt = -1 ; break; -case 578 : nInt = -1 ; break; -case 579 : nInt = -1 ; break; -case 580 : nInt = -1 ; break; -case 581 : nInt = -1 ; break; -case 582 : nInt = -1 ; break; -case 584 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 709 : nInt = -1 ; break; -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -case 747 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 947 : nInt = 1 ; break; -case 948 : nInt = 6 ; break; -case 949 : nInt = 2 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 950 : nInt = 5 ; break; -case 951 : nInt = 10 ; break; -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 985 : nInt = 11 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_FIGHTER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 2 : nInt = 1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 5 : nInt = -1 ; break; -case 6 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -case 9 : nInt = -1 ; break; -case 10 : nInt = -1 ; break; -case 15 : nInt = -1 ; break; -case 16 : nInt = -1 ; break; -case 17 : nInt = -1 ; break; -case 18 : nInt = -1 ; break; -case 19 : nInt = -1 ; break; -case 20 : nInt = -1 ; break; -case 21 : nInt = -1 ; break; -case 23 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 26 : nInt = -1 ; break; -case 27 : nInt = -1 ; break; -case 28 : nInt = -1 ; break; -case 30 : nInt = -1 ; break; -case 31 : nInt = -1 ; break; -case 32 : nInt = 1 ; break; -case 39 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 42 : nInt = -1 ; break; -case 43 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -case 47 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -case 52 : nInt = -1 ; break; -case 53 : nInt = -1 ; break; -case 54 : nInt = -1 ; break; -case 55 : nInt = -1 ; break; -case 56 : nInt = -1 ; break; -case 57 : nInt = -1 ; break; -case 58 : nInt = -1 ; break; -case 59 : nInt = -1 ; break; -case 60 : nInt = -1 ; break; -case 61 : nInt = -1 ; break; -case 62 : nInt = -1 ; break; -case 63 : nInt = -1 ; break; -case 64 : nInt = -1 ; break; -case 65 : nInt = -1 ; break; -case 66 : nInt = -1 ; break; -case 67 : nInt = -1 ; break; -case 68 : nInt = -1 ; break; -case 69 : nInt = -1 ; break; -case 70 : nInt = -1 ; break; -case 71 : nInt = -1 ; break; -case 72 : nInt = -1 ; break; -case 73 : nInt = -1 ; break; -case 74 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -case 75 : nInt = -1 ; break; -case 76 : nInt = -1 ; break; -case 77 : nInt = -1 ; break; -case 78 : nInt = -1 ; break; -case 79 : nInt = -1 ; break; -case 80 : nInt = -1 ; break; -case 82 : nInt = -1 ; break; -case 83 : nInt = -1 ; break; -case 84 : nInt = -1 ; break; -case 85 : nInt = -1 ; break; -case 87 : nInt = -1 ; break; -case 88 : nInt = -1 ; break; -case 89 : nInt = -1 ; break; -case 90 : nInt = -1 ; break; -case 91 : nInt = -1 ; break; -case 92 : nInt = -1 ; break; -case 93 : nInt = -1 ; break; -case 94 : nInt = -1 ; break; -case 95 : nInt = -1 ; break; -case 96 : nInt = -1 ; break; -case 97 : nInt = -1 ; break; -case 98 : nInt = -1 ; break; -case 99 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -case 100 : nInt = -1 ; break; -case 101 : nInt = -1 ; break; -case 102 : nInt = -1 ; break; -case 103 : nInt = -1 ; break; -case 104 : nInt = -1 ; break; -case 105 : nInt = -1 ; break; -case 106 : nInt = -1 ; break; -case 107 : nInt = -1 ; break; -case 108 : nInt = -1 ; break; -case 109 : nInt = -1 ; break; -case 110 : nInt = -1 ; break; -case 111 : nInt = -1 ; break; -case 112 : nInt = -1 ; break; -case 113 : nInt = -1 ; break; -case 114 : nInt = -1 ; break; -case 115 : nInt = -1 ; break; -case 116 : nInt = -1 ; break; -case 117 : nInt = -1 ; break; -case 118 : nInt = -1 ; break; -case 120 : nInt = -1 ; break; -case 121 : nInt = -1 ; break; -case 122 : nInt = -1 ; break; -case 123 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -case 125 : nInt = -1 ; break; -case 126 : nInt = -1 ; break; -case 127 : nInt = -1 ; break; -case 128 : nInt = -1 ; break; -case 129 : nInt = -1 ; break; -case 130 : nInt = -1 ; break; -case 131 : nInt = -1 ; break; -case 132 : nInt = -1 ; break; -case 133 : nInt = -1 ; break; -case 134 : nInt = -1 ; break; -case 135 : nInt = -1 ; break; -case 136 : nInt = -1 ; break; -case 137 : nInt = -1 ; break; -case 138 : nInt = -1 ; break; -case 139 : nInt = -1 ; break; -case 140 : nInt = -1 ; break; -case 141 : nInt = -1 ; break; -case 142 : nInt = -1 ; break; -case 143 : nInt = -1 ; break; -case 144 : nInt = -1 ; break; -case 145 : nInt = -1 ; break; -case 146 : nInt = -1 ; break; -case 147 : nInt = -1 ; break; -case 148 : nInt = -1 ; break; -case 149 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 150 : nInt = -1 ; break; -case 151 : nInt = -1 ; break; -case 152 : nInt = -1 ; break; -case 153 : nInt = -1 ; break; -case 154 : nInt = -1 ; break; -case 155 : nInt = -1 ; break; -case 156 : nInt = -1 ; break; -case 158 : nInt = -1 ; break; -case 159 : nInt = -1 ; break; -case 160 : nInt = -1 ; break; -case 161 : nInt = -1 ; break; -case 163 : nInt = -1 ; break; -case 164 : nInt = -1 ; break; -case 165 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 389 : nInt = -1 ; break; -case 390 : nInt = -1 ; break; -case 391 : nInt = -1 ; break; -case 392 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 408 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -case 657 : nInt = -1 ; break; -case 658 : nInt = -1 ; break; -case 659 : nInt = -1 ; break; -case 660 : nInt = -1 ; break; -case 661 : nInt = -1 ; break; -case 662 : nInt = -1 ; break; -case 663 : nInt = -1 ; break; -case 664 : nInt = -1 ; break; -case 665 : nInt = -1 ; break; -case 666 : nInt = -1 ; break; -case 667 : nInt = -1 ; break; -case 668 : nInt = -1 ; break; -case 669 : nInt = -1 ; break; -case 670 : nInt = -1 ; break; -case 671 : nInt = -1 ; break; -case 672 : nInt = -1 ; break; -case 673 : nInt = -1 ; break; -case 674 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 675 : nInt = -1 ; break; -case 676 : nInt = -1 ; break; -case 677 : nInt = -1 ; break; -case 678 : nInt = -1 ; break; -case 679 : nInt = -1 ; break; -case 680 : nInt = -1 ; break; -case 681 : nInt = -1 ; break; -case 682 : nInt = -1 ; break; -case 683 : nInt = -1 ; break; -case 684 : nInt = -1 ; break; -case 685 : nInt = -1 ; break; -case 686 : nInt = -1 ; break; -case 687 : nInt = -1 ; break; -case 688 : nInt = -1 ; break; -case 689 : nInt = -1 ; break; -case 690 : nInt = -1 ; break; -case 691 : nInt = -1 ; break; -case 692 : nInt = -1 ; break; -case 693 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 709 : nInt = -1 ; break; -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 753 : nInt = -1 ; break; -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 844 : nInt = -1 ; break; -case 845 : nInt = -1 ; break; -case 846 : nInt = -1 ; break; -case 847 : nInt = -1 ; break; -case 848 : nInt = -1 ; break; -case 849 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 850 : nInt = -1 ; break; -case 851 : nInt = -1 ; break; -case 852 : nInt = -1 ; break; -case 853 : nInt = -1 ; break; -case 867 : nInt = -1 ; break; -case 868 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 952 : nInt = -1 ; break; -case 953 : nInt = -1 ; break; -case 954 : nInt = -1 ; break; -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 957 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -case 966 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 993 : nInt = -1 ; break; -case 994 : nInt = -1 ; break; -case 995 : nInt = -1 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 998 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_MONK: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 6 : nInt = 1 ; break; -case 8 : nInt = 2 ; break; -case 17 : nInt = 6 ; break; -case 21 : nInt = 1 ; break; -case 23 : nInt = 6 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 39 : nInt = 1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = -1 ; break; -case 49 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -case 204 : nInt = 1 ; break; -case 206 : nInt = 1 ; break; -case 207 : nInt = 3 ; break; -case 208 : nInt = 3 ; break; -case 209 : nInt = 5 ; break; -case 211 : nInt = 7 ; break; -case 212 : nInt = 9 ; break; -case 213 : nInt = 10 ; break; -case 214 : nInt = 11 ; break; -case 215 : nInt = 12 ; break; -case 216 : nInt = 20 ; break; -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 260 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 296 : nInt = 15 ; break; -case 297 : nInt = 18 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -case 343 : nInt = 13 ; break; -case 344 : nInt = 16 ; break; -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 533 : nInt = -1 ; break; -case 534 : nInt = -1 ; break; -case 535 : nInt = -1 ; break; -case 536 : nInt = -1 ; break; -case 537 : nInt = -1 ; break; -case 538 : nInt = -1 ; break; -case 539 : nInt = -1 ; break; -case 540 : nInt = -1 ; break; -case 541 : nInt = -1 ; break; -case 542 : nInt = -1 ; break; -case 543 : nInt = -1 ; break; -case 544 : nInt = -1 ; break; -case 545 : nInt = -1 ; break; -case 546 : nInt = -1 ; break; -case 547 : nInt = -1 ; break; -case 548 : nInt = -1 ; break; -case 549 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -case 550 : nInt = -1 ; break; -case 551 : nInt = -1 ; break; -case 552 : nInt = -1 ; break; -case 553 : nInt = -1 ; break; -case 554 : nInt = -1 ; break; -case 555 : nInt = -1 ; break; -case 556 : nInt = -1 ; break; -case 557 : nInt = -1 ; break; -case 558 : nInt = -1 ; break; -case 559 : nInt = -1 ; break; -case 560 : nInt = -1 ; break; -case 561 : nInt = -1 ; break; -case 562 : nInt = -1 ; break; -case 563 : nInt = -1 ; break; -case 564 : nInt = -1 ; break; -case 565 : nInt = -1 ; break; -case 566 : nInt = -1 ; break; -case 567 : nInt = -1 ; break; -case 568 : nInt = -1 ; break; -case 569 : nInt = -1 ; break; -case 570 : nInt = -1 ; break; -case 571 : nInt = -1 ; break; -case 572 : nInt = -1 ; break; -case 573 : nInt = -1 ; break; -case 574 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 575 : nInt = -1 ; break; -case 576 : nInt = -1 ; break; -case 577 : nInt = -1 ; break; -case 578 : nInt = -1 ; break; -case 579 : nInt = -1 ; break; -case 580 : nInt = -1 ; break; -case 581 : nInt = -1 ; break; -case 582 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 697 : nInt = -1 ; break; -case 698 : nInt = -1 ; break; -case 699 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 700 : nInt = -1 ; break; -case 701 : nInt = -1 ; break; -case 702 : nInt = -1 ; break; -case 703 : nInt = -1 ; break; -case 704 : nInt = -1 ; break; -case 705 : nInt = -1 ; break; -case 706 : nInt = -1 ; break; -case 707 : nInt = -1 ; break; -case 708 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 748 : nInt = -1 ; break; -case 749 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 750 : nInt = -1 ; break; -case 751 : nInt = -1 ; break; -case 752 : nInt = -1 ; break; -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 844 : nInt = -1 ; break; -case 845 : nInt = -1 ; break; -case 846 : nInt = -1 ; break; -case 847 : nInt = -1 ; break; -case 848 : nInt = -1 ; break; -case 849 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 850 : nInt = -1 ; break; -case 851 : nInt = -1 ; break; -case 852 : nInt = -1 ; break; -case 853 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 971 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_PALADIN: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 2 : nInt = 1 ; break; -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -case 13 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 32 : nInt = 1 ; break; -case 35 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -case 217 : nInt = 1 ; break; -case 219 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 294 : nInt = 3 ; break; -case 299 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -case 300 : nInt = 2 ; break; -case 301 : nInt = 2 ; break; -case 302 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -case 413 : nInt = -1 ; break; -case 414 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -case 586 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -case 746 : nInt = -1 ; break; -case 747 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 824 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 825 : nInt = -1 ; break; -case 826 : nInt = -1 ; break; -case 827 : nInt = -1 ; break; -case 828 : nInt = -1 ; break; -case 829 : nInt = -1 ; break; -case 830 : nInt = -1 ; break; -case 831 : nInt = -1 ; break; -case 832 : nInt = -1 ; break; -case 833 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 854 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -case 972 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 995 : nInt = -1 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_PALEMASTER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -case 11 : nInt = -1 ; break; //feat Empower Spell added to standard Bioware 2da data -case 12 : nInt = -1 ; break; //feat Extend Spell added to standard Bioware 2da data -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 25 : nInt = -1 ; break; //feat Maximize Spell added to standard Bioware 2da data -case 29 : nInt = -1 ; break; //feat Quicken Spell added to standard Bioware 2da data -case 35 : nInt = -1 ; break; //feat Spell Focus Abjuration added to standard Bioware 2da data -case 36 : nInt = -1 ; break; //feat Spell Penetration added to standard Bioware 2da data -case 37 : nInt = -1 ; break; //feat Still Spell added to standard Bioware 2da data -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; //feat Spell Focus Conjuration added to standard Bioware 2da data -case 167 : nInt = -1 ; break; //feat Spell Focus Divination added to standard Bioware 2da data -case 168 : nInt = -1 ; break; //feat Spell Focus Enchantment added to standard Bioware 2da data -case 169 : nInt = -1 ; break; //feat Spell Focus Evocation added to standard Bioware 2da data -case 170 : nInt = -1 ; break; //feat Spell Focus Illusion added to standard Bioware 2da data -case 171 : nInt = -1 ; break; //feat Spell Focus Necromancy added to standard Bioware 2da data -case 172 : nInt = -1 ; break; //feat Spell Focus Transmutation added to standard Bioware 2da data -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -case 228 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; //feat Greater Spell Focus Abjuration added to standard Bioware 2da data -case 394 : nInt = -1 ; break; //feat Greater Spell Focus Conjuration added to standard Bioware 2da data -case 395 : nInt = -1 ; break; //feat Greater Spell Focus Divination added to standard Bioware 2da data -case 396 : nInt = -1 ; break; //feat Greater Spell Focus Enchantment added to standard Bioware 2da data -case 397 : nInt = -1 ; break; //feat Greater Spell Focus Evocation added to standard Bioware 2da data -case 398 : nInt = -1 ; break; //feat Greater Spell Focus Illusion added to standard Bioware 2da data -case 399 : nInt = -1 ; break; //feat Greater Spell Focus Necromancy added to standard Bioware 2da data -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; //feat Greater Spell Focus Transmutation added to standard Bioware 2da data -case 401 : nInt = -1 ; break; //feat Greater Spell Penetration added to standard Bioware 2da data -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 533 : nInt = -1 ; break; -case 534 : nInt = -1 ; break; -case 535 : nInt = -1 ; break; -case 536 : nInt = -1 ; break; -case 537 : nInt = -1 ; break; -case 538 : nInt = -1 ; break; -case 539 : nInt = -1 ; break; -case 540 : nInt = -1 ; break; -case 541 : nInt = -1 ; break; -case 542 : nInt = -1 ; break; -case 543 : nInt = -1 ; break; -case 544 : nInt = -1 ; break; -case 545 : nInt = -1 ; break; -case 546 : nInt = -1 ; break; -case 547 : nInt = -1 ; break; -case 548 : nInt = -1 ; break; -case 549 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -case 550 : nInt = -1 ; break; -case 551 : nInt = -1 ; break; -case 552 : nInt = -1 ; break; -case 553 : nInt = -1 ; break; -case 554 : nInt = -1 ; break; -case 555 : nInt = -1 ; break; -case 556 : nInt = -1 ; break; -case 557 : nInt = -1 ; break; -case 558 : nInt = -1 ; break; -case 559 : nInt = -1 ; break; -case 560 : nInt = -1 ; break; -case 561 : nInt = -1 ; break; -case 562 : nInt = -1 ; break; -case 563 : nInt = -1 ; break; -case 564 : nInt = -1 ; break; -case 565 : nInt = -1 ; break; -case 566 : nInt = -1 ; break; -case 567 : nInt = -1 ; break; -case 568 : nInt = -1 ; break; -case 569 : nInt = -1 ; break; -case 570 : nInt = -1 ; break; -case 571 : nInt = -1 ; break; -case 572 : nInt = -1 ; break; -case 573 : nInt = -1 ; break; -case 574 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 575 : nInt = -1 ; break; -case 576 : nInt = -1 ; break; -case 577 : nInt = -1 ; break; -case 578 : nInt = -1 ; break; -case 579 : nInt = -1 ; break; -case 580 : nInt = -1 ; break; -case 581 : nInt = -1 ; break; -case 582 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 874 : nInt = 15 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 875 : nInt = 15 ; break; -case 876 : nInt = 15 ; break; -case 877 : nInt = 15 ; break; -case 878 : nInt = 15 ; break; -case 886 : nInt = 1 ; break; -case 889 : nInt = 2 ; break; -case 890 : nInt = 4 ; break; -case 891 : nInt = 5 ; break; -case 892 : nInt = 6 ; break; -case 893 : nInt = 8 ; break; -case 894 : nInt = 7 ; break; -case 895 : nInt = 9 ; break; -case 896 : nInt = 10 ; break; -case 897 : nInt = 10 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 984 : nInt = 11 ; break; -case 990 : nInt = 15 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_RANGER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 3 : nInt = 1 ; break; -case 4 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -case 20 : nInt = 9 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 32 : nInt = 1 ; break; -case 34 : nInt = -1 ; break; -case 35 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = 1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 199 : nInt = 6 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -case 201 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 261 : nInt = -1 ; break; -case 262 : nInt = -1 ; break; -case 263 : nInt = -1 ; break; -case 264 : nInt = -1 ; break; -case 265 : nInt = -1 ; break; -case 266 : nInt = -1 ; break; -case 267 : nInt = -1 ; break; -case 268 : nInt = -1 ; break; -case 269 : nInt = -1 ; break; -case 270 : nInt = -1 ; break; -case 271 : nInt = -1 ; break; -case 272 : nInt = -1 ; break; -case 273 : nInt = -1 ; break; -case 274 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 275 : nInt = -1 ; break; -case 276 : nInt = -1 ; break; -case 277 : nInt = -1 ; break; -case 278 : nInt = -1 ; break; -case 279 : nInt = -1 ; break; -case 280 : nInt = -1 ; break; -case 281 : nInt = -1 ; break; -case 284 : nInt = -1 ; break; -case 285 : nInt = -1 ; break; -case 286 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -case 374 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -case 587 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 747 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 754 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 855 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 956 : nInt = -1 ; break; -case 973 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 997 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_ROGUE: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -case 50 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 193 : nInt = -1 ; break; -case 195 : nInt = 3 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -case 206 : nInt = 2 ; break; -case 212 : nInt = -1 ; break; -case 221 : nInt = 1 ; break; -case 222 : nInt = -1 ; break; -case 223 : nInt = -1 ; break; -case 224 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -case 225 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 251 : nInt = 6 ; break; -case 252 : nInt = 11 ; break; -case 253 : nInt = 14 ; break; -case 254 : nInt = 17 ; break; -case 255 : nInt = 20 ; break; -case 259 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -case 345 : nInt = 3 ; break; -case 346 : nInt = 5 ; break; -case 347 : nInt = 7 ; break; -case 348 : nInt = 9 ; break; -case 349 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -case 350 : nInt = 13 ; break; -case 351 : nInt = 15 ; break; -case 352 : nInt = 17 ; break; -case 353 : nInt = 19 ; break; -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 586 : nInt = -1 ; break; -case 588 : nInt = -1 ; break; -case 589 : nInt = -1 ; break; -case 590 : nInt = -1 ; break; -case 591 : nInt = -1 ; break; -case 592 : nInt = -1 ; break; -case 593 : nInt = -1 ; break; -case 594 : nInt = -1 ; break; -case 595 : nInt = -1 ; break; -case 596 : nInt = -1 ; break; -case 597 : nInt = -1 ; break; -case 598 : nInt = -1 ; break; -case 599 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 601 : nInt = -1 ; break; -case 602 : nInt = -1 ; break; -case 603 : nInt = -1 ; break; -case 604 : nInt = -1 ; break; -case 605 : nInt = -1 ; break; -case 606 : nInt = -1 ; break; -case 607 : nInt = -1 ; break; -case 608 : nInt = -1 ; break; -case 609 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 748 : nInt = -1 ; break; -case 749 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 750 : nInt = -1 ; break; -case 751 : nInt = -1 ; break; -case 752 : nInt = -1 ; break; -case 753 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 834 : nInt = -1 ; break; -case 835 : nInt = -1 ; break; -case 836 : nInt = -1 ; break; -case 837 : nInt = -1 ; break; -case 838 : nInt = -1 ; break; -case 839 : nInt = -1 ; break; -case 840 : nInt = -1 ; break; -case 841 : nInt = -1 ; break; -case 842 : nInt = -1 ; break; -case 843 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 856 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 913 : nInt = -1 ; break; -case 914 : nInt = -1 ; break; -case 917 : nInt = -1 ; break; -case 918 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 974 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -case 1032 : nInt = 21 ; break; -case 1033 : nInt = 23 ; break; -case 1034 : nInt = 25 ; break; -case 1035 : nInt = 27 ; break; -case 1036 : nInt = 29 ; break; -case 1037 : nInt = 31 ; break; -case 1038 : nInt = 33 ; break; -case 1039 : nInt = 35 ; break; -case 1040 : nInt = 37 ; break; -case 1041 : nInt = 39 ; break; -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_SHADOWDANCER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 195 : nInt = 2 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -case 206 : nInt = 2 ; break; -case 212 : nInt = 10 ; break; -case 223 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -case 228 : nInt = 2 ; break; -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 252 : nInt = 10 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -case 433 : nInt = 1 ; break; -case 434 : nInt = 3 ; break; -case 435 : nInt = 3 ; break; -case 436 : nInt = 4 ; break; -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 585 : nInt = -1 ; break; -case 588 : nInt = -1 ; break; -case 589 : nInt = -1 ; break; -case 590 : nInt = -1 ; break; -case 591 : nInt = -1 ; break; -case 592 : nInt = -1 ; break; -case 593 : nInt = -1 ; break; -case 594 : nInt = -1 ; break; -case 595 : nInt = -1 ; break; -case 596 : nInt = -1 ; break; -case 597 : nInt = -1 ; break; -case 598 : nInt = -1 ; break; -case 599 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 601 : nInt = -1 ; break; -case 602 : nInt = -1 ; break; -case 603 : nInt = -1 ; break; -case 604 : nInt = -1 ; break; -case 605 : nInt = -1 ; break; -case 606 : nInt = -1 ; break; -case 607 : nInt = -1 ; break; -case 608 : nInt = -1 ; break; -case 609 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 748 : nInt = -1 ; break; -case 749 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 750 : nInt = -1 ; break; -case 751 : nInt = -1 ; break; -case 752 : nInt = -1 ; break; -case 753 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 856 : nInt = -1 ; break; -case 868 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 913 : nInt = -1 ; break; -case 914 : nInt = -1 ; break; -case 917 : nInt = -1 ; break; -case 918 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 980 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -case 1002 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_SHIFTER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 533 : nInt = -1 ; break; -case 534 : nInt = -1 ; break; -case 535 : nInt = -1 ; break; -case 536 : nInt = -1 ; break; -case 537 : nInt = -1 ; break; -case 538 : nInt = -1 ; break; -case 539 : nInt = -1 ; break; -case 540 : nInt = -1 ; break; -case 541 : nInt = -1 ; break; -case 542 : nInt = -1 ; break; -case 543 : nInt = -1 ; break; -case 544 : nInt = -1 ; break; -case 545 : nInt = -1 ; break; -case 546 : nInt = -1 ; break; -case 547 : nInt = -1 ; break; -case 548 : nInt = -1 ; break; -case 549 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -case 550 : nInt = -1 ; break; -case 551 : nInt = -1 ; break; -case 552 : nInt = -1 ; break; -case 553 : nInt = -1 ; break; -case 554 : nInt = -1 ; break; -case 555 : nInt = -1 ; break; -case 556 : nInt = -1 ; break; -case 557 : nInt = -1 ; break; -case 558 : nInt = -1 ; break; -case 559 : nInt = -1 ; break; -case 560 : nInt = -1 ; break; -case 561 : nInt = -1 ; break; -case 562 : nInt = -1 ; break; -case 563 : nInt = -1 ; break; -case 564 : nInt = -1 ; break; -case 565 : nInt = -1 ; break; -case 566 : nInt = -1 ; break; -case 567 : nInt = -1 ; break; -case 568 : nInt = -1 ; break; -case 569 : nInt = -1 ; break; -case 570 : nInt = -1 ; break; -case 571 : nInt = -1 ; break; -case 572 : nInt = -1 ; break; -case 573 : nInt = -1 ; break; -case 574 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 575 : nInt = -1 ; break; -case 576 : nInt = -1 ; break; -case 577 : nInt = -1 ; break; -case 578 : nInt = -1 ; break; -case 579 : nInt = -1 ; break; -case 580 : nInt = -1 ; break; -case 581 : nInt = -1 ; break; -case 582 : nInt = -1 ; break; -case 587 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 804 : nInt = -1 ; break; -case 805 : nInt = -1 ; break; -case 806 : nInt = -1 ; break; -case 807 : nInt = -1 ; break; -case 808 : nInt = -1 ; break; -case 809 : nInt = -1 ; break; -case 810 : nInt = -1 ; break; -case 811 : nInt = -1 ; break; -case 812 : nInt = -1 ; break; -case 813 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 872 : nInt = -1 ; break; -case 873 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 898 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 900 : nInt = 3 ; break; -case 901 : nInt = 5 ; break; -case 902 : nInt = 7 ; break; -case 903 : nInt = 10 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 986 : nInt = 11 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -case 1060 : nInt = -1 ; break; -case 1061 : nInt = -1 ; break; -case 1062 : nInt = 4 ; break; -case 1063 : nInt = 7 ; break; -case 1064 : nInt = 10 ; break; -case 1065 : nInt = 16 ; break; -case 1066 : nInt = 13 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_SORCERER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 35 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -case 303 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 533 : nInt = -1 ; break; -case 534 : nInt = -1 ; break; -case 535 : nInt = -1 ; break; -case 536 : nInt = -1 ; break; -case 537 : nInt = -1 ; break; -case 538 : nInt = -1 ; break; -case 539 : nInt = -1 ; break; -case 540 : nInt = -1 ; break; -case 541 : nInt = -1 ; break; -case 542 : nInt = -1 ; break; -case 543 : nInt = -1 ; break; -case 544 : nInt = -1 ; break; -case 545 : nInt = -1 ; break; -case 546 : nInt = -1 ; break; -case 547 : nInt = -1 ; break; -case 548 : nInt = -1 ; break; -case 549 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -case 550 : nInt = -1 ; break; -case 551 : nInt = -1 ; break; -case 552 : nInt = -1 ; break; -case 553 : nInt = -1 ; break; -case 554 : nInt = -1 ; break; -case 555 : nInt = -1 ; break; -case 556 : nInt = -1 ; break; -case 557 : nInt = -1 ; break; -case 558 : nInt = -1 ; break; -case 559 : nInt = -1 ; break; -case 560 : nInt = -1 ; break; -case 561 : nInt = -1 ; break; -case 562 : nInt = -1 ; break; -case 563 : nInt = -1 ; break; -case 564 : nInt = -1 ; break; -case 565 : nInt = -1 ; break; -case 566 : nInt = -1 ; break; -case 567 : nInt = -1 ; break; -case 568 : nInt = -1 ; break; -case 569 : nInt = -1 ; break; -case 570 : nInt = -1 ; break; -case 571 : nInt = -1 ; break; -case 572 : nInt = -1 ; break; -case 573 : nInt = -1 ; break; -case 574 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 575 : nInt = -1 ; break; -case 576 : nInt = -1 ; break; -case 577 : nInt = -1 ; break; -case 578 : nInt = -1 ; break; -case 579 : nInt = -1 ; break; -case 580 : nInt = -1 ; break; -case 581 : nInt = -1 ; break; -case 582 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 764 : nInt = -1 ; break; -case 765 : nInt = -1 ; break; -case 766 : nInt = -1 ; break; -case 767 : nInt = -1 ; break; -case 768 : nInt = -1 ; break; -case 769 : nInt = -1 ; break; -case 770 : nInt = -1 ; break; -case 771 : nInt = -1 ; break; -case 772 : nInt = -1 ; break; -case 773 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 874 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 875 : nInt = 21 ; break; -case 876 : nInt = 21 ; break; -case 877 : nInt = 21 ; break; -case 878 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ - default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 975 : nInt = 21 ; break; -case 990 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_WIZARD: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 7 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -case 11 : nInt = -1 ; break; -case 12 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 25 : nInt = -1 ; break; -case 29 : nInt = -1 ; break; -case 33 : nInt = -1 ; break; -case 35 : nInt = -1 ; break; -case 36 : nInt = -1 ; break; -case 37 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -case 51 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -case 166 : nInt = -1 ; break; -case 167 : nInt = -1 ; break; -case 168 : nInt = -1 ; break; -case 169 : nInt = -1 ; break; -case 170 : nInt = -1 ; break; -case 171 : nInt = -1 ; break; -case 172 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -case 303 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -case 393 : nInt = -1 ; break; -case 394 : nInt = -1 ; break; -case 395 : nInt = -1 ; break; -case 396 : nInt = -1 ; break; -case 397 : nInt = -1 ; break; -case 398 : nInt = -1 ; break; -case 399 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -case 400 : nInt = -1 ; break; -case 401 : nInt = -1 ; break; -case 415 : nInt = -1 ; break; -case 416 : nInt = -1 ; break; -case 417 : nInt = -1 ; break; -case 418 : nInt = -1 ; break; -case 419 : nInt = -1 ; break; -case 420 : nInt = -1 ; break; -case 421 : nInt = -1 ; break; -case 422 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 491 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 610 : nInt = -1 ; break; -case 611 : nInt = -1 ; break; -case 612 : nInt = -1 ; break; -case 613 : nInt = -1 ; break; -case 614 : nInt = -1 ; break; -case 615 : nInt = -1 ; break; -case 616 : nInt = -1 ; break; -case 617 : nInt = -1 ; break; -case 618 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -case 794 : nInt = -1 ; break; -case 795 : nInt = -1 ; break; -case 796 : nInt = -1 ; break; -case 797 : nInt = -1 ; break; -case 798 : nInt = -1 ; break; -case 799 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -case 800 : nInt = -1 ; break; -case 801 : nInt = -1 ; break; -case 802 : nInt = -1 ; break; -case 803 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 857 : nInt = -1 ; break; -case 858 : nInt = -1 ; break; -case 859 : nInt = -1 ; break; -case 860 : nInt = -1 ; break; -case 861 : nInt = -1 ; break; -case 862 : nInt = -1 ; break; -case 863 : nInt = -1 ; break; -case 864 : nInt = -1 ; break; -case 865 : nInt = -1 ; break; -case 874 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 875 : nInt = 21 ; break; -case 876 : nInt = 21 ; break; -case 877 : nInt = 21 ; break; -case 878 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 944 : nInt = 3 ; break; -case 945 : nInt = 1 ; break; -case 946 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 976 : nInt = 21 ; break; -case 990 : nInt = 21 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_WEAPON_MASTER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ - -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -case 490 : nInt = -1 ; break; -case 491 : nInt = -1 ; break; -case 492 : nInt = -1 ; break; -case 493 : nInt = -1 ; break; -case 494 : nInt = -1 ; break; -case 495 : nInt = -1 ; break; -case 496 : nInt = -1 ; break; -case 497 : nInt = -1 ; break; -case 498 : nInt = -1 ; break; -case 499 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -case 500 : nInt = -1 ; break; -case 501 : nInt = -1 ; break; -case 502 : nInt = -1 ; break; -case 503 : nInt = -1 ; break; -case 504 : nInt = -1 ; break; -case 505 : nInt = -1 ; break; -case 506 : nInt = -1 ; break; -case 507 : nInt = -1 ; break; -case 508 : nInt = -1 ; break; -case 509 : nInt = -1 ; break; -case 510 : nInt = -1 ; break; -case 511 : nInt = -1 ; break; -case 512 : nInt = -1 ; break; -case 513 : nInt = -1 ; break; -case 514 : nInt = -1 ; break; -case 515 : nInt = -1 ; break; -case 516 : nInt = -1 ; break; -case 517 : nInt = -1 ; break; -case 518 : nInt = -1 ; break; -case 519 : nInt = -1 ; break; -case 520 : nInt = -1 ; break; -case 521 : nInt = -1 ; break; -case 522 : nInt = -1 ; break; -case 523 : nInt = -1 ; break; -case 524 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -case 525 : nInt = -1 ; break; -case 526 : nInt = -1 ; break; -case 527 : nInt = -1 ; break; -case 528 : nInt = -1 ; break; -case 529 : nInt = -1 ; break; -case 530 : nInt = -1 ; break; -case 531 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 584 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 619 : nInt = -1 ; break; -case 620 : nInt = -1 ; break; -case 621 : nInt = -1 ; break; -case 622 : nInt = -1 ; break; -case 623 : nInt = -1 ; break; -case 624 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -case 625 : nInt = -1 ; break; -case 626 : nInt = -1 ; break; -case 627 : nInt = -1 ; break; -case 628 : nInt = -1 ; break; -case 629 : nInt = -1 ; break; -case 630 : nInt = -1 ; break; -case 631 : nInt = -1 ; break; -case 632 : nInt = -1 ; break; -case 633 : nInt = -1 ; break; -case 634 : nInt = -1 ; break; -case 635 : nInt = -1 ; break; -case 636 : nInt = -1 ; break; -case 637 : nInt = -1 ; break; -case 638 : nInt = -1 ; break; -case 639 : nInt = -1 ; break; -case 640 : nInt = -1 ; break; -case 641 : nInt = -1 ; break; -case 642 : nInt = -1 ; break; -case 643 : nInt = -1 ; break; -case 644 : nInt = -1 ; break; -case 645 : nInt = -1 ; break; -case 646 : nInt = -1 ; break; -case 647 : nInt = -1 ; break; -case 648 : nInt = -1 ; break; -case 649 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -case 650 : nInt = -1 ; break; -case 651 : nInt = -1 ; break; -case 652 : nInt = -1 ; break; -case 653 : nInt = -1 ; break; -case 654 : nInt = -1 ; break; -case 655 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -case 709 : nInt = -1 ; break; -case 710 : nInt = -1 ; break; -case 711 : nInt = -1 ; break; -case 712 : nInt = -1 ; break; -case 713 : nInt = -1 ; break; -case 714 : nInt = -1 ; break; -case 715 : nInt = -1 ; break; -case 716 : nInt = -1 ; break; -case 717 : nInt = -1 ; break; -case 718 : nInt = -1 ; break; -case 719 : nInt = -1 ; break; -case 720 : nInt = -1 ; break; -case 721 : nInt = -1 ; break; -case 722 : nInt = -1 ; break; -case 723 : nInt = -1 ; break; -case 724 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -case 725 : nInt = -1 ; break; -case 726 : nInt = -1 ; break; -case 727 : nInt = -1 ; break; -case 728 : nInt = -1 ; break; -case 729 : nInt = -1 ; break; -case 730 : nInt = -1 ; break; -case 731 : nInt = -1 ; break; -case 732 : nInt = -1 ; break; -case 733 : nInt = -1 ; break; -case 734 : nInt = -1 ; break; -case 735 : nInt = -1 ; break; -case 736 : nInt = -1 ; break; -case 737 : nInt = -1 ; break; -case 738 : nInt = -1 ; break; -case 739 : nInt = -1 ; break; -case 740 : nInt = -1 ; break; -case 741 : nInt = -1 ; break; -case 742 : nInt = -1 ; break; -case 743 : nInt = -1 ; break; -case 744 : nInt = -1 ; break; -case 745 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 753 : nInt = -1 ; break; -case 754 : nInt = -1 ; break; -case 755 : nInt = -1 ; break; -case 756 : nInt = -1 ; break; -case 757 : nInt = -1 ; break; -case 758 : nInt = -1 ; break; -case 759 : nInt = -1 ; break; -case 760 : nInt = -1 ; break; -case 761 : nInt = -1 ; break; -case 762 : nInt = -1 ; break; -case 763 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 854 : nInt = -1 ; break; -case 868 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -case 879 : nInt = 1 ; break; -case 880 : nInt = 1 ; break; -case 881 : nInt = 1 ; break; -case 882 : nInt = 1 ; break; -case 883 : nInt = 5 ; break; -case 884 : nInt = 5 ; break; -case 885 : nInt = 7 ; break; -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 919 : nInt = 1 ; break; -case 920 : nInt = 1 ; break; -case 921 : nInt = 1 ; break; -case 922 : nInt = 1 ; break; -case 923 : nInt = 1 ; break; -case 924 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -case 925 : nInt = 1 ; break; -case 926 : nInt = 1 ; break; -case 927 : nInt = 1 ; break; -case 928 : nInt = 1 ; break; -case 929 : nInt = 1 ; break; -case 930 : nInt = 1 ; break; -case 931 : nInt = 1 ; break; -case 932 : nInt = 1 ; break; -case 933 : nInt = 1 ; break; -case 934 : nInt = 1 ; break; -case 935 : nInt = 1 ; break; -case 936 : nInt = 1 ; break; -case 937 : nInt = 1 ; break; -case 938 : nInt = 1 ; break; -case 939 : nInt = 1 ; break; -case 940 : nInt = 1 ; break; -case 941 : nInt = 1 ; break; -case 942 : nInt = 1 ; break; -case 943 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -case 955 : nInt = -1 ; break; -case 956 : nInt = -1 ; break; -case 958 : nInt = -1 ; break; -case 959 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -case 983 : nInt = 11 ; break; -case 996 : nInt = -1 ; break; -case 997 : nInt = -1 ; break; -case 999 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -case 1000 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -case 1071 : nInt = 13 ; break; -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - case CLASS_TYPE_HARPER: - switch(nFeat/250) - { - case 0: - switch(nFeat/25) - { - case 0: //0-24 - switch(nFeat){ -case 1 : nInt = -1 ; break; -case 3 : nInt = 1 ; break; -case 8 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 1: //25-49 - switch(nFeat){ -case 29 : nInt = -1 ; break; -case 41 : nInt = -1 ; break; -case 44 : nInt = -1 ; break; -case 45 : nInt = -1 ; break; -case 46 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 2: //50-74 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 3: //75-99 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 4: //100-124 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 5: //125-149 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 6: //150-174 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 7: //175-199 - switch(nFeat){ -case 197 : nInt = 1 ; break; -default : nInt = -2 ; break;}; break; - case 8: //200-224 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 9: //225-249 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//250 break - case 1: - switch(nFeat/25) - { - case 10: //250-274 - switch(nFeat){ -case 261 : nInt = -1 ; break; -case 262 : nInt = -1 ; break; -case 263 : nInt = -1 ; break; -case 264 : nInt = -1 ; break; -case 265 : nInt = -1 ; break; -case 266 : nInt = -1 ; break; -case 267 : nInt = -1 ; break; -case 268 : nInt = -1 ; break; -case 269 : nInt = -1 ; break; -case 270 : nInt = -1 ; break; -case 271 : nInt = -1 ; break; -case 272 : nInt = -1 ; break; -case 273 : nInt = -1 ; break; -case 274 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 11: //275-299 - switch(nFeat){ -case 275 : nInt = -1 ; break; -case 276 : nInt = -1 ; break; -case 277 : nInt = -1 ; break; -case 278 : nInt = -1 ; break; -case 279 : nInt = -1 ; break; -case 280 : nInt = -1 ; break; -case 281 : nInt = -1 ; break; -case 284 : nInt = -1 ; break; -case 285 : nInt = -1 ; break; -case 286 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 12: //300-324 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 13: //325-349 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 14: //350-374 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 15: //375-399 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 16: //400-424 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 17: //425-449 - switch(nFeat){ -case 437 : nInt = 2 ; break; -case 438 : nInt = 3 ; break; -case 439 : nInt = 4 ; break; -case 440 : nInt = 5 ; break; -case 441 : nInt = 2 ; break; -case 442 : nInt = 3 ; break; -case 443 : nInt = 4 ; break; -case 444 : nInt = 5 ; break; -default : nInt = -2 ; break;}; break; - case 18: //450-474 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 19: //475-499 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//500 break - case 2: - switch(nFeat/25) - { - case 20: //500-524 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 21: //525-549 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 22: //550-574 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 23: //575-599 - switch(nFeat){ -case 588 : nInt = -1 ; break; -case 589 : nInt = -1 ; break; -case 590 : nInt = -1 ; break; -case 591 : nInt = -1 ; break; -case 592 : nInt = -1 ; break; -case 593 : nInt = -1 ; break; -case 594 : nInt = -1 ; break; -case 595 : nInt = -1 ; break; -case 596 : nInt = -1 ; break; -case 597 : nInt = -1 ; break; -case 598 : nInt = -1 ; break; -case 599 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 24: //600-624 - switch(nFeat){ -case 601 : nInt = -1 ; break; -case 602 : nInt = -1 ; break; -case 603 : nInt = -1 ; break; -case 604 : nInt = -1 ; break; -case 605 : nInt = -1 ; break; -case 606 : nInt = -1 ; break; -case 607 : nInt = -1 ; break; -case 608 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 25: //625-649 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 26: //650-674 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 27: //675-699 - switch(nFeat){ -case 695 : nInt = -1 ; break; -case 696 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 28: //700-724 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 29: //725-749 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//750 break - case 3: - switch(nFeat/25) - { - case 30: //750-774 - switch(nFeat){ -case 764 : nInt = -1 ; break; -case 765 : nInt = -1 ; break; -case 766 : nInt = -1 ; break; -case 767 : nInt = -1 ; break; -case 768 : nInt = -1 ; break; -case 769 : nInt = -1 ; break; -case 770 : nInt = -1 ; break; -case 771 : nInt = -1 ; break; -case 772 : nInt = -1 ; break; -case 773 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 31: //775-799 - switch(nFeat){ -case 784 : nInt = -1 ; break; -case 785 : nInt = -1 ; break; -case 786 : nInt = -1 ; break; -case 787 : nInt = -1 ; break; -case 788 : nInt = -1 ; break; -case 789 : nInt = -1 ; break; -case 790 : nInt = -1 ; break; -case 791 : nInt = -1 ; break; -case 792 : nInt = -1 ; break; -case 793 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 32: //800-824 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 33: //825-849 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 34: //850-874 - switch(nFeat){ -case 870 : nInt = -1 ; break; -case 871 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 35: //875-899 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 36: //900-924 - switch(nFeat){ -case 913 : nInt = -1 ; break; -case 914 : nInt = -1 ; break; -case 917 : nInt = -1 ; break; -case 918 : nInt = -1 ; break; -default : nInt = -2 ; break;}; break; - case 37: //925-949 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 38: //950-974 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 39: //975-999 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1000 break - case 4: - switch(nFeat/25) - { - case 40: //1000-1024 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 41: //1025-1049 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - case 42: //1050-1071 - switch(nFeat){ -default : nInt = -2 ; break;}; break; - } - break;//1071 end break - } - return nInt; break;//class switch break///////////////////////////////// - default: return -3;//wrong class int was input -} -return -3;//wrong input type -} - -int GetIsGeneralFeat(int nFeat) -{ -int nReturn = FALSE; -if (nFeat < 250) - { - if (nFeat < 50) - { - if (nFeat < 10) - { - switch (nFeat) - { -case 0: nReturn = TRUE; break; -case 2: nReturn = TRUE; break; -case 3: nReturn = TRUE; break; -case 4: nReturn = TRUE; break; -case 5: nReturn = TRUE; break; -case 6: nReturn = TRUE; break; -case 7: nReturn = TRUE; break; -case 9: nReturn = TRUE; break; - } - } - else if (nFeat < 20) - { - switch (nFeat) - { -case 10: nReturn = TRUE; break; -case 11: nReturn = TRUE; break; -case 12: nReturn = TRUE; break; -case 14: nReturn = TRUE; break; -case 15: nReturn = TRUE; break; -case 16: nReturn = TRUE; break; -case 17: nReturn = TRUE; break; -case 18: nReturn = TRUE; break; -case 19: nReturn = TRUE; break; - } - } - else if (nFeat < 30) - { - switch (nFeat) - { -case 20: nReturn = TRUE; break; -case 21: nReturn = TRUE; break; -case 22: nReturn = TRUE; break; -case 23: nReturn = TRUE; break; -case 24: nReturn = TRUE; break; -case 25: nReturn = TRUE; break; -case 26: nReturn = TRUE; break; -case 27: nReturn = TRUE; break; -case 28: nReturn = TRUE; break; - } - } - else if (nFeat < 40) - { - switch (nFeat) - { -case 30: nReturn = TRUE; break; -case 31: nReturn = TRUE; break; -case 32: nReturn = TRUE; break; -case 33: nReturn = TRUE; break; -case 36: nReturn = TRUE; break; -case 37: nReturn = TRUE; break; -case 39: nReturn = TRUE; break; - } - } - else //<50 - { - switch (nFeat) - { -case 40: nReturn = TRUE; break; -case 42: nReturn = TRUE; break; -case 43: nReturn = TRUE; break; - } - } - } - else if (nFeat < 100) - { - if (nFeat < 60) - { - switch (nFeat) - { -case 52: nReturn = TRUE; break; -case 53: nReturn = TRUE; break; -case 54: nReturn = TRUE; break; -case 55: nReturn = TRUE; break; -case 56: nReturn = TRUE; break; -case 57: nReturn = TRUE; break; -case 58: nReturn = TRUE; break; -case 59: nReturn = TRUE; break; - } - } - else if (nFeat < 70) - { - switch (nFeat) - { -case 60: nReturn = TRUE; break; -case 61: nReturn = TRUE; break; -case 62: nReturn = TRUE; break; -case 63: nReturn = TRUE; break; -case 64: nReturn = TRUE; break; -case 65: nReturn = TRUE; break; -case 66: nReturn = TRUE; break; -case 67: nReturn = TRUE; break; -case 68: nReturn = TRUE; break; -case 69: nReturn = TRUE; break; - } - } - else if (nFeat < 80) - { - switch (nFeat) - { -case 70: nReturn = TRUE; break; -case 71: nReturn = TRUE; break; -case 72: nReturn = TRUE; break; -case 73: nReturn = TRUE; break; -case 74: nReturn = TRUE; break; -case 75: nReturn = TRUE; break; -case 76: nReturn = TRUE; break; -case 77: nReturn = TRUE; break; -case 78: nReturn = TRUE; break; -case 79: nReturn = TRUE; break; - } - } - else if (nFeat < 90) - { - switch (nFeat) - { -case 80: nReturn = TRUE; break; -case 82: nReturn = TRUE; break; -case 83: nReturn = TRUE; break; -case 84: nReturn = TRUE; break; -case 85: nReturn = TRUE; break; -case 87: nReturn = TRUE; break; -case 88: nReturn = TRUE; break; -case 89: nReturn = TRUE; break; - } - } - else //<100 - { - switch (nFeat) - { -case 90: nReturn = TRUE; break; -case 91: nReturn = TRUE; break; -case 92: nReturn = TRUE; break; -case 93: nReturn = TRUE; break; -case 94: nReturn = TRUE; break; -case 95: nReturn = TRUE; break; -case 96: nReturn = TRUE; break; -case 97: nReturn = TRUE; break; -case 98: nReturn = TRUE; break; -case 99: nReturn = TRUE; break; - } - } - } - else if (nFeat < 150) - { - if (nFeat < 110) - { - switch (nFeat) - { -case 100: nReturn = TRUE; break; -case 101: nReturn = TRUE; break; -case 102: nReturn = TRUE; break; -case 103: nReturn = TRUE; break; -case 104: nReturn = TRUE; break; -case 105: nReturn = TRUE; break; -case 106: nReturn = TRUE; break; -case 107: nReturn = TRUE; break; -case 108: nReturn = TRUE; break; -case 109: nReturn = TRUE; break; - } - } - else if (nFeat < 120) - { - switch (nFeat) - { -case 110: nReturn = TRUE; break; -case 111: nReturn = TRUE; break; -case 112: nReturn = TRUE; break; -case 113: nReturn = TRUE; break; -case 114: nReturn = TRUE; break; -case 115: nReturn = TRUE; break; -case 116: nReturn = TRUE; break; -case 117: nReturn = TRUE; break; -case 118: nReturn = TRUE; break; - } - } - else - { - switch (nFeat) - { -case 120: nReturn = TRUE; break; -case 121: nReturn = TRUE; break; -case 122: nReturn = TRUE; break; -case 123: nReturn = TRUE; break; -case 125: nReturn = TRUE; break; -case 126: nReturn = TRUE; break; -case 127: nReturn = TRUE; break; - } - } - } - else - { - if (nFeat < 180) - { - switch (nFeat) - { -case 173: nReturn = TRUE; break; -case 174: nReturn = TRUE; break; -case 175: nReturn = TRUE; break; -case 177: nReturn = TRUE; break; -case 178: nReturn = TRUE; break; -case 179: nReturn = TRUE; break; - } - } - else if (nFeat < 190) - { - switch (nFeat) - { -case 180: nReturn = TRUE; break; -case 181: nReturn = TRUE; break; -case 182: nReturn = TRUE; break; -case 183: nReturn = TRUE; break; -case 184: nReturn = TRUE; break; -case 185: nReturn = TRUE; break; -case 186: nReturn = TRUE; break; -case 187: nReturn = TRUE; break; -case 188: nReturn = TRUE; break; -case 189: nReturn = TRUE; break; - } - } - else //<200 - { - switch (nFeat) - { -case 190: nReturn = TRUE; break; -case 192: nReturn = TRUE; break; - - } - } - } - } -else if (nFeat < 500) - { - if (nFeat < 400) - { - if (nFeat < 380) - { - switch (nFeat) - { -case 377: nReturn = TRUE; break; -case 378: nReturn = TRUE; break; -case 379: nReturn = TRUE; break; - } - } - else if (nFeat < 390) - { - switch (nFeat) - { -case 380: nReturn = TRUE; break; -case 381: nReturn = TRUE; break; -case 382: nReturn = TRUE; break; -case 383: nReturn = TRUE; break; -case 384: nReturn = TRUE; break; -//case 385: nReturn = TRUE; break;//this is feat "Small Talk", deleted in NWN -case 386: nReturn = TRUE; break; -case 387: nReturn = TRUE; break; -case 388: nReturn = TRUE; break; -case 389: nReturn = TRUE; break; - } - } - else //<400 - { - switch (nFeat) - { -case 390: nReturn = TRUE; break; -case 391: nReturn = TRUE; break; -case 392: nReturn = TRUE; break; -case 393: nReturn = TRUE; break; -case 394: nReturn = TRUE; break; -case 395: nReturn = TRUE; break; -case 396: nReturn = TRUE; break; -case 397: nReturn = TRUE; break; -case 398: nReturn = TRUE; break; -case 399: nReturn = TRUE; break; - } - } - } - else if (nFeat < 450) - { - if (nFeat < 410) - { - switch (nFeat) - { -case 400: nReturn = TRUE; break; -case 401: nReturn = TRUE; break; -case 402: nReturn = TRUE; break; -//case 403: nReturn = TRUE; break;//this is feat "Mercantile Background", deleted in NWN -case 404: nReturn = TRUE; break; -case 406: nReturn = TRUE; break; -case 407: nReturn = TRUE; break; -case 408: nReturn = TRUE; break; -case 409: nReturn = TRUE; break; - } - } - else if (nFeat < 420) - { - switch (nFeat) - { -case 410: nReturn = TRUE; break; -case 411: nReturn = TRUE; break; -case 412: nReturn = TRUE; break; -case 415: nReturn = TRUE; break; -case 416: nReturn = TRUE; break; -case 417: nReturn = TRUE; break; -case 418: nReturn = TRUE; break; -case 419: nReturn = TRUE; break; - } - } - else if (nFeat < 430) - { - switch (nFeat) - { -case 420: nReturn = TRUE; break; -case 421: nReturn = TRUE; break; -case 422: nReturn = TRUE; break; -case 425: nReturn = TRUE; break; -case 426: nReturn = TRUE; break; -case 427: nReturn = TRUE; break; -case 428: nReturn = TRUE; break; -case 429: nReturn = TRUE; break; - } - } - else if (nFeat < 440) - { - switch (nFeat) - { -case 430: nReturn = TRUE; break; -case 431: nReturn = TRUE; break; - } - } - } - else //<500 - { - switch (nFeat) - { -case 490: nReturn = TRUE; break; -case 492: nReturn = TRUE; break; -case 493: nReturn = TRUE; break; -case 494: nReturn = TRUE; break; -case 495: nReturn = TRUE; break; -case 496: nReturn = TRUE; break; -case 497: nReturn = TRUE; break; -case 498: nReturn = TRUE; break; -case 499: nReturn = TRUE; break; - } - } - } -else if (nFeat < 750) - { - if (nFeat < 550) - { - if (nFeat < 510) - { - switch (nFeat) - { -case 500: nReturn = TRUE; break; -case 501: nReturn = TRUE; break; -case 502: nReturn = TRUE; break; -case 503: nReturn = TRUE; break; -case 504: nReturn = TRUE; break; -case 505: nReturn = TRUE; break; -case 506: nReturn = TRUE; break; -case 507: nReturn = TRUE; break; -case 508: nReturn = TRUE; break; -case 509: nReturn = TRUE; break; - } - } - else if (nFeat < 520) - { - switch (nFeat) - { -case 510: nReturn = TRUE; break; -case 511: nReturn = TRUE; break; -case 512: nReturn = TRUE; break; -case 513: nReturn = TRUE; break; -case 514: nReturn = TRUE; break; -case 515: nReturn = TRUE; break; -case 516: nReturn = TRUE; break; -case 517: nReturn = TRUE; break; -case 518: nReturn = TRUE; break; -case 519: nReturn = TRUE; break; - } - } - else if (nFeat < 530) - { - switch (nFeat) - { -case 520: nReturn = TRUE; break; -case 521: nReturn = TRUE; break; -case 522: nReturn = TRUE; break; -case 523: nReturn = TRUE; break; -case 524: nReturn = TRUE; break; -case 525: nReturn = TRUE; break; -case 526: nReturn = TRUE; break; -case 527: nReturn = TRUE; break; -case 528: nReturn = TRUE; break; -case 529: nReturn = TRUE; break; - } - } - else if (nFeat < 540) - { - switch (nFeat) - { -case 530: nReturn = TRUE; break; -case 531: nReturn = TRUE; break; -case 533: nReturn = TRUE; break; -case 534: nReturn = TRUE; break; -case 535: nReturn = TRUE; break; -case 536: nReturn = TRUE; break; -case 537: nReturn = TRUE; break; -case 538: nReturn = TRUE; break; -case 539: nReturn = TRUE; break; - } - } - else //<550 - { - switch (nFeat) - { -case 540: nReturn = TRUE; break; -case 541: nReturn = TRUE; break; -case 542: nReturn = TRUE; break; -case 543: nReturn = TRUE; break; -case 544: nReturn = TRUE; break; -case 545: nReturn = TRUE; break; -case 546: nReturn = TRUE; break; -case 547: nReturn = TRUE; break; -case 548: nReturn = TRUE; break; -case 549: nReturn = TRUE; break; - } - } - } - else if (nFeat < 600) - { - if (nFeat < 560) - { - switch (nFeat) - { -case 550: nReturn = TRUE; break; -case 551: nReturn = TRUE; break; -case 552: nReturn = TRUE; break; -case 553: nReturn = TRUE; break; -case 554: nReturn = TRUE; break; -case 555: nReturn = TRUE; break; -case 556: nReturn = TRUE; break; -case 557: nReturn = TRUE; break; -case 558: nReturn = TRUE; break; -case 559: nReturn = TRUE; break; - } - } - else if (nFeat < 570) - { - switch (nFeat) - { -case 560: nReturn = TRUE; break; -case 561: nReturn = TRUE; break; -case 562: nReturn = TRUE; break; -case 563: nReturn = TRUE; break; -case 564: nReturn = TRUE; break; -case 565: nReturn = TRUE; break; -case 566: nReturn = TRUE; break; -case 567: nReturn = TRUE; break; -case 568: nReturn = TRUE; break; -case 569: nReturn = TRUE; break; - } - } - else if (nFeat < 580) - { - switch (nFeat) - { -case 570: nReturn = TRUE; break; -case 571: nReturn = TRUE; break; -case 572: nReturn = TRUE; break; -case 573: nReturn = TRUE; break; -case 574: nReturn = TRUE; break; -case 575: nReturn = TRUE; break; -case 576: nReturn = TRUE; break; -case 577: nReturn = TRUE; break; -case 578: nReturn = TRUE; break; -case 579: nReturn = TRUE; break; - } - } - else if (nFeat < 590) - { - switch (nFeat) - { -case 580: nReturn = TRUE; break; -case 581: nReturn = TRUE; break; -case 582: nReturn = TRUE; break; -case 583: nReturn = TRUE; break; -case 584: nReturn = TRUE; break; -case 585: nReturn = TRUE; break; -case 586: nReturn = TRUE; break; -case 588: nReturn = TRUE; break; -case 589: nReturn = TRUE; break; - } - } - else //<600 - { - switch (nFeat) - { -case 590: nReturn = TRUE; break; -case 591: nReturn = TRUE; break; -case 592: nReturn = TRUE; break; -case 593: nReturn = TRUE; break; -case 594: nReturn = TRUE; break; -case 595: nReturn = TRUE; break; -case 596: nReturn = TRUE; break; -case 597: nReturn = TRUE; break; -case 598: nReturn = TRUE; break; -case 599: nReturn = TRUE; break; - } - } - } - else if (nFeat < 650) - { - if (nFeat < 610) - { - switch (nFeat) - { -case 601: nReturn = TRUE; break; -case 602: nReturn = TRUE; break; -case 603: nReturn = TRUE; break; -case 604: nReturn = TRUE; break; -case 605: nReturn = TRUE; break; -case 606: nReturn = TRUE; break; -case 607: nReturn = TRUE; break; -case 608: nReturn = TRUE; break; - } - } - else if (nFeat < 620) - { - switch (nFeat) - { -case 610: nReturn = TRUE; break; -case 611: nReturn = TRUE; break; -case 612: nReturn = TRUE; break; -case 613: nReturn = TRUE; break; -case 614: nReturn = TRUE; break; -case 615: nReturn = TRUE; break; -case 616: nReturn = TRUE; break; -case 617: nReturn = TRUE; break; -case 619: nReturn = TRUE; break; - } - } - else if (nFeat < 630) - { - switch (nFeat) - { -case 620: nReturn = TRUE; break; -case 621: nReturn = TRUE; break; -case 622: nReturn = TRUE; break; -case 623: nReturn = TRUE; break; -case 624: nReturn = TRUE; break; -case 625: nReturn = TRUE; break; -case 626: nReturn = TRUE; break; -case 627: nReturn = TRUE; break; -case 628: nReturn = TRUE; break; -case 629: nReturn = TRUE; break; - } - } - else if (nFeat < 640) - { - switch (nFeat) - { -case 630: nReturn = TRUE; break; -case 631: nReturn = TRUE; break; -case 632: nReturn = TRUE; break; -case 633: nReturn = TRUE; break; -case 634: nReturn = TRUE; break; -case 635: nReturn = TRUE; break; -case 636: nReturn = TRUE; break; -case 637: nReturn = TRUE; break; -case 638: nReturn = TRUE; break; -case 639: nReturn = TRUE; break; - } - } - else //<650 - { - switch (nFeat) - { -case 640: nReturn = TRUE; break; -case 641: nReturn = TRUE; break; -case 642: nReturn = TRUE; break; -case 643: nReturn = TRUE; break; -case 644: nReturn = TRUE; break; -case 645: nReturn = TRUE; break; -case 646: nReturn = TRUE; break; -case 647: nReturn = TRUE; break; -case 648: nReturn = TRUE; break; -case 649: nReturn = TRUE; break; - } - } - } - else if (nFeat < 700) - { - if (nFeat < 660) - { - switch (nFeat) - { -case 650: nReturn = TRUE; break; -case 651: nReturn = TRUE; break; -case 652: nReturn = TRUE; break; -case 653: nReturn = TRUE; break; -case 654: nReturn = TRUE; break; -case 655: nReturn = TRUE; break; - } - } - else //<700 - { - switch (nFeat) - { -case 695: nReturn = TRUE; break; -case 696: nReturn = TRUE; break; - } - } - } - else //<750 - { - if (nFeat < 710) - { - switch (nFeat) - { -case 709: nReturn = TRUE; break; - } - } - else if (nFeat < 720) - { - switch (nFeat) - { -case 710: nReturn = TRUE; break; -case 711: nReturn = TRUE; break; -case 712: nReturn = TRUE; break; -case 713: nReturn = TRUE; break; -case 714: nReturn = TRUE; break; -case 715: nReturn = TRUE; break; -case 716: nReturn = TRUE; break; -case 717: nReturn = TRUE; break; -case 718: nReturn = TRUE; break; -case 719: nReturn = TRUE; break; - } - } - else if (nFeat < 730) - { - switch (nFeat) - { -case 720: nReturn = TRUE; break; -case 721: nReturn = TRUE; break; -case 722: nReturn = TRUE; break; -case 723: nReturn = TRUE; break; -case 724: nReturn = TRUE; break; -case 725: nReturn = TRUE; break; -case 726: nReturn = TRUE; break; -case 727: nReturn = TRUE; break; -case 728: nReturn = TRUE; break; -case 729: nReturn = TRUE; break; - } - } - else if (nFeat < 740) - { - switch (nFeat) - { -case 730: nReturn = TRUE; break; -case 731: nReturn = TRUE; break; -case 732: nReturn = TRUE; break; -case 733: nReturn = TRUE; break; -case 734: nReturn = TRUE; break; -case 735: nReturn = TRUE; break; -case 736: nReturn = TRUE; break; -case 737: nReturn = TRUE; break; -case 738: nReturn = TRUE; break; -case 739: nReturn = TRUE; break; - } - } - else //750 - { - switch (nFeat) - { -case 740: nReturn = TRUE; break; -case 741: nReturn = TRUE; break; -case 742: nReturn = TRUE; break; -case 743: nReturn = TRUE; break; -case 744: nReturn = TRUE; break; -case 745: nReturn = TRUE; break; -case 747: nReturn = TRUE; break; -case 748: nReturn = TRUE; break; -case 749: nReturn = TRUE; break; - } - } - } - } -else - { - if (nFeat < 800) - { - if (nFeat < 760) - { - switch (nFeat) - { -case 750: nReturn = TRUE; break; -case 751: nReturn = TRUE; break; -case 752: nReturn = TRUE; break; -case 753: nReturn = TRUE; break; -case 754: nReturn = TRUE; break; -case 755: nReturn = TRUE; break; -case 756: nReturn = TRUE; break; -case 757: nReturn = TRUE; break; -case 758: nReturn = TRUE; break; -case 759: nReturn = TRUE; break; - } - } - else if (nFeat < 770) - { - switch (nFeat) - { -case 760: nReturn = TRUE; break; -case 761: nReturn = TRUE; break; -case 762: nReturn = TRUE; break; -case 763: nReturn = TRUE; break; -case 764: nReturn = TRUE; break; -case 765: nReturn = TRUE; break; -case 766: nReturn = TRUE; break; -case 767: nReturn = TRUE; break; -case 768: nReturn = TRUE; break; -case 769: nReturn = TRUE; break; - } - } - else if (nFeat < 780) - { - switch (nFeat) - { -case 770: nReturn = TRUE; break; -case 771: nReturn = TRUE; break; -case 772: nReturn = TRUE; break; -case 773: nReturn = TRUE; break; -case 774: nReturn = TRUE; break; -case 775: nReturn = TRUE; break; -case 776: nReturn = TRUE; break; -case 777: nReturn = TRUE; break; -case 778: nReturn = TRUE; break; -case 779: nReturn = TRUE; break; - } - } - else if (nFeat < 790) - { - switch (nFeat) - { -case 780: nReturn = TRUE; break; -case 781: nReturn = TRUE; break; -case 782: nReturn = TRUE; break; -case 783: nReturn = TRUE; break; -case 784: nReturn = TRUE; break; -case 785: nReturn = TRUE; break; -case 786: nReturn = TRUE; break; -case 787: nReturn = TRUE; break; -case 788: nReturn = TRUE; break; -case 789: nReturn = TRUE; break; - } - } - else //<800 - { - switch (nFeat) - { -case 790: nReturn = TRUE; break; -case 791: nReturn = TRUE; break; -case 792: nReturn = TRUE; break; -case 793: nReturn = TRUE; break; -case 794: nReturn = TRUE; break; -case 795: nReturn = TRUE; break; -case 796: nReturn = TRUE; break; -case 797: nReturn = TRUE; break; -case 798: nReturn = TRUE; break; -case 799: nReturn = TRUE; break; - } - } - } - else if (nFeat < 850) - { - if (nFeat < 810) - { - switch (nFeat) - { -case 800: nReturn = TRUE; break; -case 801: nReturn = TRUE; break; -case 802: nReturn = TRUE; break; -case 803: nReturn = TRUE; break; -case 804: nReturn = TRUE; break; -case 805: nReturn = TRUE; break; -case 806: nReturn = TRUE; break; -case 807: nReturn = TRUE; break; -case 808: nReturn = TRUE; break; -case 809: nReturn = TRUE; break; - } - } - else if (nFeat < 820) - { - switch (nFeat) - { -case 810: nReturn = TRUE; break; -case 811: nReturn = TRUE; break; -case 812: nReturn = TRUE; break; -case 813: nReturn = TRUE; break; -case 814: nReturn = TRUE; break; -case 815: nReturn = TRUE; break; -case 816: nReturn = TRUE; break; -case 817: nReturn = TRUE; break; -case 818: nReturn = TRUE; break; -case 819: nReturn = TRUE; break; - } - } - else if (nFeat < 830) - { - switch (nFeat) - { -case 820: nReturn = TRUE; break; -case 821: nReturn = TRUE; break; -case 822: nReturn = TRUE; break; -case 823: nReturn = TRUE; break; - } - } - else //<850 - { - switch (nFeat) - { -case 844: nReturn = TRUE; break; - } - } - } - else if (nFeat < 900) - { - if (nFeat < 860) - { - switch (nFeat) - { -case 856: nReturn = TRUE; break; - } - } - else - { - switch (nFeat) - { -case 867: nReturn = TRUE; break; -case 868: nReturn = TRUE; break; - } - } - } - else if (nFeat < 950) - { - if (nFeat < 920) - { - switch (nFeat) - { -case 910: nReturn = TRUE; break; -case 911: nReturn = TRUE; break; -case 912: nReturn = TRUE; break; -case 913: nReturn = TRUE; break; -case 914: nReturn = TRUE; break; -case 915: nReturn = TRUE; break; -case 916: nReturn = TRUE; break; -case 917: nReturn = TRUE; break; -case 918: nReturn = TRUE; break; - } - } - } - else - { - if (nFeat < 960) - { - switch (nFeat) - { -case 952: nReturn = TRUE; break; -case 954: nReturn = TRUE; break; -case 955: nReturn = TRUE; break; -case 956: nReturn = TRUE; break; -case 958: nReturn = TRUE; break; - } - } - else //<1000 - { - switch (nFeat) - { -case 993: nReturn = TRUE; break; -case 995: nReturn = TRUE; break; -case 996: nReturn = TRUE; break; -case 997: nReturn = TRUE; break; -case 999: nReturn = TRUE; break; - } - } - } - } -return nReturn; -} - -//below used to compile -/* -void main() -{ - -} -*/ diff --git a/_removed files/hgll_const_inc.nss b/_removed files/hgll_const_inc.nss deleted file mode 100644 index d6e9f563..00000000 --- a/_removed files/hgll_const_inc.nss +++ /dev/null @@ -1,39 +0,0 @@ -// This lists all of the constant ints that are to be used for LL - -// This is the path to your servervault. It must be set correctly for Letoscript to work. -const string NWNPATH = "C:/NeverwinterNights/NWN/servervault/";//windows sample -// const string NWNPATH = "/home/funkyswerve/nwn/servervault/";//linux sample - -const int PHOENIX = FALSE;//set this to true if you are using the older version of Letoscript, 3-18, rather than the newer 3-24 (other versions are 'bridge' versions with bugs) - -const int DEBUG = FALSE;//set this to TRUE to enable debugging - -const int DEV_CRIT_DISABLED = FALSE;//set this to TRUE to disable devastating critical feat selection on levelup - -// Experience Requirements for Legendary Levels -// Adjust as desired. These were set by increasing the additional amount required for the -// previous level by 25%. Level 40 required 39000 experience points, so Level 41 was set -// to require 39000 x 1.25 = 48800 experience points. This will be ALOT on some worlds, -// and not enough on others, so adjust to suit your needs - -const int BASE_XP_LVL_40 = 780000; -const int XP_REQ_LVL41 = 821000; -const int XP_REQ_LVL42 = 863000; -const int XP_REQ_LVL43 = 900000; -const int XP_REQ_LVL44 = 100000; -const int XP_REQ_LVL45 = 1100000; -const int XP_REQ_LVL46 = 1200000; -const int XP_REQ_LVL47 = 1300000; -const int XP_REQ_LVL48 = 1400000; -const int XP_REQ_LVL49 = 1600000; -const int XP_REQ_LVL50 = 1800000; -const int XP_REQ_LVL51 = 2200000; -const int XP_REQ_LVL52 = 2400000; -const int XP_REQ_LVL53 = 2600000; -const int XP_REQ_LVL54 = 2800000; -const int XP_REQ_LVL55 = 3000000; -const int XP_REQ_LVL56 = 3400000; -const int XP_REQ_LVL57 = 3800000; -const int XP_REQ_LVL58 = 4200000; -const int XP_REQ_LVL59 = 4600000; -const int XP_REQ_LVL60 = 5000000; diff --git a/_removed files/hgll_featreq_inc.nss b/_removed files/hgll_featreq_inc.nss deleted file mode 100644 index bc104321..00000000 --- a/_removed files/hgll_featreq_inc.nss +++ /dev/null @@ -1,4202 +0,0 @@ -//--------------------------------DECLARATIONS--------------------------------// - -// This function determines what class controls the character's advancement during legendary -// levels. First it checks the character's It returns the class type with the most levels. -// If the character has two classes that tie for most number of levels, it will return the -// class the character took first. It returns -1 on an error. -int GetControlClass(object oPC); -// This function returns the cost of taking a certain skill based on the class. Return -// values are: 1 for class skill, 2 for cross-class skill, -1 for class forbidden skill (default), -// and -2 for CLASS_TYPE input error. The switches essentially reconstruct the 2da. They also -// conveniently mirror the skill chart order in the HotU book. This allows users to alter skill -// costs and availabilities, and is faster than a 2da or int cache lookup. -int GetCostOfSkill(int nClass, int nSkill); -// This function returns TRUE if the PC has the stat or stats required to take nFeat, -// or if nFeat has no required stats. -int GetAreFeatStatReqsMet(int nFeat, object oPC); -// This function returns TRUE if the PC has the skill or skills required to take nFeat, -// or if nFeat has no required skills. -int GetAreFeatSkillReqsMet(int nFeat, object oPC); -// This function returns TRUE if the PC has the feat or feats required to take nFeat, -// or if nFeat has no required feats. -int GetAreFeatFeatReqsMet(int nFeat, object oPC); -// This function returns TRUE if the feat is only available at first level. Returns -3 on error. -int GetIsFeatFirstLevelOnly(int nFeat); -// This function returns true if a feat is of the devastating critical type. -int GetIsFeatDevCrit(int nFeat); -// This function returns TRUE if the PC has the ability to cast spells of the level required -// by the feat specified. It returns TRUE if the feat has no spell level requirement, and -// always returns FALSE for Sap. -int GetHasRequiredSpellLevelForFeat(object oPC, int nFeat); -// This function returns the name of the designated feat. -string GetNameOfFeat(int nFeat); -// This function returns TRUE if the feat is restricted to a limited number of uses per day. -int GetIsFeatLimitedUses(int nFeat); - -//----------------------------------FUNCTIONS---------------------------------// - -int GetControlClass(object oPC) -{ -int nL1 = GetLevelByPosition(1, oPC); -int nL2 = GetLevelByPosition(2, oPC); -int nL3 = GetLevelByPosition(3, oPC); -//class 1 highest -if ((nL1 > nL2) && (nL1 > nL3)) return GetClassByPosition(1, oPC); -//class 2 highest -else if ((nL2 > nL1) && (nL2 > nL3)) return GetClassByPosition(2, oPC); -//class 3 highest -else if ((nL3 > nL1) && (nL3 > nL2)) return GetClassByPosition(3, oPC); -//class 1 and 2 tied for highest -else if (nL1 == nL2) return GetClassByPosition(1, oPC); -//class 1 and 3 tied for highest -else if (nL1 == nL3) return GetClassByPosition(1, oPC); -//class 2 and 3 tied for highest -else if (nL2 == nL3) return GetClassByPosition(2, oPC); -//return -1 on error -else return -1; -} - -int GetCostOfSkill(int nClass, int nSkill) -{ -switch(nClass) //These switches essentially reconstruct the 2da. They also conveniently mirror - { //the skill chart order in the HotU book. This allows users to alter skill costs - //and availabilities as well, and is faster than a 2da or int cache lookup. - case 0://barbarian - switch(nSkill){ - case 0: return -1; break;//animal empathy - case 1: return 2; break;//concentration - case 2: return 2; break;//disable trap - case 3: return 1; break;//discipline - case 4: return 1; break;//heal - case 5: return 2; break;//hide - case 6: return 1; break;//listen - case 7: return 1; break;//lore - case 8: return 2; break;//move silently - case 9: return 2; break;//open lock - case 10: return 1; break;//parry - case 11: return -1; break;//perform - case 12: return 2; break;//persuade - case 13: return 2; break;//pick pocket - case 14: return 2; break;//search - case 15: return 2; break;//set trap - case 16: return 2; break;//spellcraft - case 17: return 2; break;//spot - case 18: return 1; break;//taunt - case 19: return -1; break;//UMD - case 20: return 2; break;//appraise - case 21: return 2; break;//tumble - case 22: return 1; break;//craft trap - case 23: return 2; break;//bluff - case 24: return 1; break;//intimidate - case 25: return 1; break;//craft armor - case 26: return 1; break;//craft weapon - default: return -1; - } - case 1://bard - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return 1; break;//perform - case 12: return 1; break; - case 13: return 1; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 2; break; - case 18: return 1; break; - case 19: return 1; break;//UMD - case 20: return 1; break; - case 21: return 1; break; - case 22: return 1; break; - case 23: return 1; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 2://cleric - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 3://druid - switch(nSkill){ - case 0: return 1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 4://fighter - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 5://monk - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 1; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 6://paladin - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 2; break; - case 18: return 1; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 7://ranger - switch(nSkill){ - case 0: return 1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 1; break; - case 15: return 1; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 8://rogue - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 1; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 1; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 1; break; - case 14: return 1; break; - case 15: return 1; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return 1; break;//UMD - case 20: return 1; break; - case 21: return 1; break; - case 22: return 1; break; - case 23: return 1; break; - case 24: return 1; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 9://sorceror - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 10://wizard - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 27://shadowdancer - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 1; break; - case 14: return 1; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 1; break; - case 22: return 2; break; - case 23: return 1; break; - case 24: return 2; break; - case 25: return 2; break; - case 26: return 2; break; - default: return -1; - } - case 28://harper scout - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 1; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 1; break; - case 21: return 1; break; - case 22: return 1; break; - case 23: return 1; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 29://arcane archer - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 30://assassin - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 1; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 1; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 1; break; - case 14: return 1; break; - case 15: return 1; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return 1; break;//UMD - case 20: return 1; break; - case 21: return 1; break; - case 22: return 1; break; - case 23: return 1; break; - case 24: return 1; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 31://blackguard - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 2; break; - case 18: return 1; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 1; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 32://CoT - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 2; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 33://weaponmaster - switch(nSkill){ - case 0: return -1; break; - case 1: return 2; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 2; break; - case 23: return 2; break; - case 24: return 1; break; - case 25: return 2; break; - case 26: return 2; break; - default: return -1; - } - case 34://palemaster - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 1; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 2; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 35://shifter - switch(nSkill){ - case 0: return 1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 2; break; - case 4: return 1; break; - case 5: return 1; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 2; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 36://dwarven defender - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 2; break; - case 13: return 2; break; - case 14: return 2; break; - case 15: return 2; break; - case 16: return 2; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - case 37://dragon disciple - switch(nSkill){ - case 0: return -1; break; - case 1: return 1; break; - case 2: return 2; break; - case 3: return 1; break; - case 4: return 1; break; - case 5: return 2; break; - case 6: return 1; break; - case 7: return 1; break; - case 8: return 2; break; - case 9: return 2; break; - case 10: return 1; break; - case 11: return -1; break;//perform - case 12: return 1; break; - case 13: return 2; break; - case 14: return 1; break; - case 15: return 2; break; - case 16: return 1; break; - case 17: return 1; break; - case 18: return 2; break; - case 19: return -1; break;//UMD - case 20: return 2; break; - case 21: return 2; break; - case 22: return 1; break; - case 23: return 2; break; - case 24: return 2; break; - case 25: return 1; break; - case 26: return 1; break; - default: return -1; - } - default: return -2; - } -return -3; -} - -int GetAreFeatStatReqsMet(int nFeat, object oPC) -{ -int nStr = TRUE; -int nDex = TRUE; -int nCon = TRUE; -int nInt = TRUE; -int nWis = TRUE; -int nCha = TRUE; -if (nFeat < 495) - { - if (nFeat < 35) - { - switch(nFeat) - { -case 1: nDex = (GetLocalInt(oPC, "BASE_DEX") >=15); break; -case 6: nStr = (GetLocalInt(oPC, "BASE_STR") >=13); break; -case 8: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); break; -case 9: nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 10: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); break; -case 16: nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 17: nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 18: nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 19: nStr = (GetLocalInt(oPC, "BASE_STR") >=13); break; -case 26: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); break; -case 28: nStr = (GetLocalInt(oPC, "BASE_STR") >=13); break; -case 30: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); break; - } - } - else - { - switch(nFeat) - { -case 38: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); break; -case 39: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); nWis = (GetLocalInt(oPC, "BASE_WIS") >=13); break; -case 389: nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 390: nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 391: nStr = (GetLocalInt(oPC, "BASE_STR") >=13); break; -case 392: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); break; -case 409: nDex = (GetLocalInt(oPC, "BASE_DEX") >=15); break; -case 412: nWis = (GetLocalInt(oPC, "BASE_WIS") >=13); break; -case 413: nStr = (GetLocalInt(oPC, "BASE_STR") >=13); nCha = (GetLocalInt(oPC, "BASE_CHA") >=13); break; -case 414: nStr = (GetLocalInt(oPC, "BASE_STR") >=13); nCha = (GetLocalInt(oPC, "BASE_CHA") >=13); break; -case 491: nDex = (GetLocalInt(oPC, "BASE_DEX") >=25); break; -case 492: nCon = (GetLocalInt(oPC, "BASE_CON") >=21); break; - } - } - } -else if (nFeat < 532) - { - if (nFeat < 513) - { - switch(nFeat) - { -case 495: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 496: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 497: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 498: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 499: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 500: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 501: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 502: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 503: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 504: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 505: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 506: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 507: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 508: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 509: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 510: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 511: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 512: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; - } - } - else - { - switch(nFeat) - { -case 513: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 514: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 515: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 516: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 517: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 518: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 519: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 520: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 521: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 522: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 523: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 524: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 525: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 526: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 527: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 528: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 529: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 530: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 531: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; - } - } - } -else if (nFeat < 746) - { - if (nFeat < 727) - { - switch(nFeat) - { -case 697: nWis = (GetLocalInt(oPC, "BASE_WIS") >=21); break; -case 709: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 710: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 711: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 712: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 713: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 714: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 715: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 716: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 717: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 718: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 719: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 720: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 721: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 722: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 723: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 724: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 725: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 726: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; - } - } - else - { - switch(nFeat) - { -case 727: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 728: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 729: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 730: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 731: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 732: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 733: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 734: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 735: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 736: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 737: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 738: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 739: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 740: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 741: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 742: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 743: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 744: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 745: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; - } - } - } -else - { - if (nFeat < 840) - { - switch(nFeat) - { -case 747: nCon = (GetLocalInt(oPC, "BASE_CON") >=25); break; -case 748: nDex = (GetLocalInt(oPC, "BASE_DEX") >=30); break; -case 749: nDex = (GetLocalInt(oPC, "BASE_DEX") >=30); break; -case 750: nDex = (GetLocalInt(oPC, "BASE_DEX") >=30); break; -case 751: nDex = (GetLocalInt(oPC, "BASE_DEX") >=30); break; -case 752: nDex = (GetLocalInt(oPC, "BASE_DEX") >=30); break; -case 824: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 825: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 826: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 827: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 828: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 829: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 830: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 831: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 832: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 833: nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; - } - } - else - { - switch(nFeat) - { -case 844: nDex = (GetLocalInt(oPC, "BASE_DEX") >=19); nWis = (GetLocalInt(oPC, "BASE_WIS") >=19); break; -case 854: nWis = (GetLocalInt(oPC, "BASE_WIS") >=25); nCha = (GetLocalInt(oPC, "BASE_CHA") >=25); break; -case 856: nDex = (GetLocalInt(oPC, "BASE_DEX") >=25); break; -case 867: nDex = (GetLocalInt(oPC, "BASE_DEX") >=13); nInt = (GetLocalInt(oPC, "BASE_INT") >=13); break; -case 868: nDex = (GetLocalInt(oPC, "BASE_DEX") >=23); break; -case 869: nStr = (GetLocalInt(oPC, "BASE_STR") >=21); nCon = (GetLocalInt(oPC, "BASE_CON") >=21); break; -case 873: nWis = (GetLocalInt(oPC, "BASE_WIS") >=30); break; -case 955: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 958: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 988: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 996: nStr = (GetLocalInt(oPC, "BASE_STR") >=25); break; -case 999: nStr = (GetLocalInt(oPC, "BASE_STR") >=23); break; -case 1060: nWis = (GetLocalInt(oPC, "BASE_WIS") >=25); break; -case 1061: nWis = (GetLocalInt(oPC, "BASE_WIS") >=27); break; - } - } - } -return (nStr && nDex && nCon && nInt && nWis && nCha); -} - -int GetAreFeatSkillReqsMet(int nFeat, object oPC) -{ -int nReturn = TRUE; -if (nFeat < 200) - { - if (nFeat < 180) - { - switch(nFeat) - { -case 34: nReturn = (GetCostOfSkill(GetControlClass(oPC), 0) > 0); break; -case 173: nReturn = (GetCostOfSkill(GetControlClass(oPC), 1) > 0); break; -case 174: nReturn = (GetCostOfSkill(GetControlClass(oPC), 2) > 0); break; -case 175: nReturn = (GetCostOfSkill(GetControlClass(oPC), 3) > 0); break; -case 177: nReturn = (GetCostOfSkill(GetControlClass(oPC), 4) > 0); break; -case 178: nReturn = (GetCostOfSkill(GetControlClass(oPC), 5) > 0); break; -case 179: nReturn = (GetCostOfSkill(GetControlClass(oPC), 6) > 0); break; - } - } - else - { - switch(nFeat) - { -case 180: nReturn = (GetCostOfSkill(GetControlClass(oPC), 7) > 0); break; -case 181: nReturn = (GetCostOfSkill(GetControlClass(oPC), 8) > 0); break; -case 182: nReturn = (GetCostOfSkill(GetControlClass(oPC), 9) > 0); break; -case 183: nReturn = (GetCostOfSkill(GetControlClass(oPC), 10) > 0); break; -case 184: nReturn = (GetCostOfSkill(GetControlClass(oPC), 11) > 0); break; -case 185: nReturn = (GetCostOfSkill(GetControlClass(oPC), 12) > 0); break; -case 186: nReturn = (GetCostOfSkill(GetControlClass(oPC), 13) > 0); break; -case 187: nReturn = (GetCostOfSkill(GetControlClass(oPC), 14) > 0); break; -case 188: nReturn = (GetCostOfSkill(GetControlClass(oPC), 15) > 0); break; -case 189: nReturn = (GetCostOfSkill(GetControlClass(oPC), 16) > 0); break; -case 190: nReturn = (GetCostOfSkill(GetControlClass(oPC), 17) > 0); break; -case 192: nReturn = (GetCostOfSkill(GetControlClass(oPC), 18) > 0); break; -case 193: nReturn = (GetCostOfSkill(GetControlClass(oPC), 19) > 0); break; - } - } - } -else if (nFeat < 600) - { - if (nFeat < 590) - { - switch(nFeat) - { -case 378: nReturn = (GetCostOfSkill(GetControlClass(oPC), 11) > 0); break; -case 404: nReturn = (GetCostOfSkill(GetControlClass(oPC), 20) > 0); break; -case 406: nReturn = (GetCostOfSkill(GetControlClass(oPC), 21) > 0); break; -case 407: nReturn = (GetCostOfSkill(GetControlClass(oPC), 22) > 0); break; -case 423: nReturn = (GetCostOfSkill(GetControlClass(oPC), 11) > 0); break; -case 424: nReturn = (GetCostOfSkill(GetControlClass(oPC), 11) > 0); break; -case 587: nReturn = (GetLocalInt(oPC, "BASE_ANIMAL") > 19); break; -case 588: nReturn = (GetLocalInt(oPC, "BASE_APPRAI") > 19); break; -case 589: nReturn = (GetLocalInt(oPC, "BASE_CONCEN") > 19); break; - } - } - else - { - switch(nFeat) - { -case 590: nReturn = (GetLocalInt(oPC, "BASE_CRAFT_T") > 19); break; -case 591: nReturn = (GetLocalInt(oPC, "BASE_DISABL") > 19); break; -case 592: nReturn = (GetLocalInt(oPC, "BASE_DISCIP") > 19); break; -case 593: nReturn = (GetLocalInt(oPC, "BASE_HEAL") > 19); break; -case 594: nReturn = (GetLocalInt(oPC, "BASE_HIDE") > 19); break; -case 595: nReturn = (GetLocalInt(oPC, "BASE_LISTEN") > 19); break; -case 596: nReturn = (GetLocalInt(oPC, "BASE_LORE") > 19); break; -case 597: nReturn = (GetLocalInt(oPC, "BASE_MOVE_S") > 19); break; -case 598: nReturn = (GetLocalInt(oPC, "BASE_OPEN_L") > 19); break; -case 599: nReturn = (GetLocalInt(oPC, "BASE_PARRY") > 19); break; - } - } - } -else if (nFeat < 860) - { - if (nFeat < 610) - { - switch(nFeat) - { -case 600: nReturn = (GetLocalInt(oPC, "BASE_PERFOR") > 19); break; -case 601: nReturn = (GetLocalInt(oPC, "BASE_PERSUA") > 19); break; -case 602: nReturn = (GetLocalInt(oPC, "BASE_PICK_P") > 19); break; -case 603: nReturn = (GetLocalInt(oPC, "BASE_SEARCH") > 19); break; -case 604: nReturn = (GetLocalInt(oPC, "BASE_SET_TR") > 19); break; -case 605: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 19); break; -case 606: nReturn = (GetLocalInt(oPC, "BASE_SPOT") > 19); break; -case 607: nReturn = (GetLocalInt(oPC, "BASE_TAUNT") > 19); break; -case 608: nReturn = (GetLocalInt(oPC, "BASE_TUMBLE") > 19); break; -case 609: nReturn = (GetLocalInt(oPC, "BASE_USE_MA") > 19); break; - } - } - else - { - switch(nFeat) - { -case 696: nReturn = (GetLocalInt(oPC, "BASE_CONCEN") > 24); break; -case 748: nReturn = (GetLocalInt(oPC, "BASE_HIDE") > 29 && GetLocalInt(oPC, "BASE_TUMBLE") > 29);break; -case 749: nReturn = (GetLocalInt(oPC, "BASE_HIDE") > 29 && GetLocalInt(oPC, "BASE_TUMBLE") > 29);break; -case 750: nReturn = (GetLocalInt(oPC, "BASE_HIDE") > 29 && GetLocalInt(oPC, "BASE_TUMBLE") > 29);break; -case 751: nReturn = (GetLocalInt(oPC, "BASE_HIDE") > 29 && GetLocalInt(oPC, "BASE_TUMBLE") > 29);break; -case 752: nReturn = (GetLocalInt(oPC, "BASE_HIDE") > 29 && GetLocalInt(oPC, "BASE_TUMBLE") > 29);break; -case 856: nReturn = (GetLocalInt(oPC, "BASE_TUMBLE") > 29); break; -case 857: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 29); break; -case 858: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 29); break; -case 859: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 29); break; - } - } - } -else - { - if (nFeat < 900) - { - switch(nFeat) - { -case 860: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 23); break; -case 861: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 23); break; -case 862: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 23); break; -case 863: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 26); break; -case 864: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 26); break; -case 865: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 26); break; -case 870: nReturn = (GetLocalInt(oPC, "BASE_PERFOR") > 24); break; -case 874: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 14); break; -case 875: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 21); break; -case 876: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 31); break; -case 877: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 25); break; -case 878: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 24); break; - } - } - else - { - switch(nFeat) - { -case 911: nReturn = (GetCostOfSkill(GetControlClass(oPC), 25) > 0); break; -case 912: nReturn = (GetCostOfSkill(GetControlClass(oPC), 26) > 0); break; -case 913: nReturn = (GetLocalInt(oPC, "BASE_CRAFT_A") > 19); break; -case 914: nReturn = (GetLocalInt(oPC, "BASE_CRAFT_W") > 19); break; -case 915: nReturn = (GetCostOfSkill(GetControlClass(oPC), 23) > 0); break; -case 916: nReturn = (GetCostOfSkill(GetControlClass(oPC), 24) > 0); break; -case 917: nReturn = (GetLocalInt(oPC, "BASE_BLUFF") > 19); break; -case 918: nReturn = (GetLocalInt(oPC, "BASE_INTIMI") > 19); break; -case 989: nReturn = (GetLocalInt(oPC, "BASE_INTIMI") > 24); break; -case 990: nReturn = (GetLocalInt(oPC, "BASE_SPELLC") > 33); break; - } - } - } -return nReturn; -} - -int GetAreFeatFeatReqsMet(int nFeat, object oPC) -{ -int nPRF1 = 1, nPRF2 = 1, nORF1 = 1, nORF2 = 0, nORF3 = 0, nORF4 = 0, nORF5 = 0;//these match columns from the 2da -if (nFeat < 250)//nORF1 defaults to true so that feats without "Or Feat" Requirements will return for them - { //Likewise nPRF1 & 2 default to true for feats that have no prerequisite feats - if (nFeat < 50) - { - if (nFeat < 10) - { - switch (nFeat) - { -case 2: nPRF1 = GetHasFeat(3, oPC); nPRF2 = GetHasFeat(4, oPC); break; -case 4: nPRF1 = GetHasFeat(3, oPC); break; -case 6: nPRF1 = GetHasFeat(28, oPC); break; -case 8: nPRF1 = GetHasFeat(21, oPC); break; - } - } - else if (nFeat < 20) - { - switch (nFeat) - { -case 13: nPRF1 = GetHasFeat(294, oPC); break; -case 15: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 16: nPRF1 = GetHasFeat(9, oPC); break; -case 17: nPRF1 = GetHasFeat(23, oPC); break; -case 19: nPRF1 = GetHasFeat(28, oPC); break; - - } - } - else if (nFeat < 30) - { - switch (nFeat) - { -case 20: nPRF1 = GetHasFeat(41, oPC); nPRF2 = GetHasFeat(1, oPC); break; -case 26: nPRF1 = GetHasFeat(10, oPC); break; - } - } - else if (nFeat < 40) - { - switch (nFeat) - { -case 30: nPRF1 = GetHasFeat(27, oPC); break; -case 31: nPRF1 = GetHasFeat(5, oPC); break; -case 38: nPRF1 = GetHasFeat(31, oPC); break; -case 39: nPRF1 = GetHasFeat(21, oPC); break; - } - } - else //<50 - { - switch (nFeat) - { -case 43: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 47: nPRF1 = GetHasFeat(43, oPC); break; - } - } - } - else if (nFeat < 100) - { - if (nFeat < 60) - { - switch (nFeat) - { -case 52: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 53: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(50, oPC); nORF4 = GetHasFeat(51, oPC); break; -case 54: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(49, oPC); nORF3 = GetHasFeat(50, oPC); nORF4 = GetHasFeat(51, oPC); break; -case 55: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(49, oPC); nORF3 = GetHasFeat(50, oPC); nORF4 = GetHasFeat(51, oPC); break; -case 56: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(50, oPC); break; -case 57: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(50, oPC); break; -case 58: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 59: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); break; - } - } - else if (nFeat < 70) - { - switch (nFeat) - { -case 60: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); break; -case 61: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); break; -case 63: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(256, oPC); break; -case 64: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(50, oPC); nORF3 = GetHasFeat(256, oPC); break; -case 65: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(50, oPC); break; -case 66: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(50, oPC); nORF3 = GetHasFeat(256, oPC); break; -case 67: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(48, oPC); break; -case 68: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(256, oPC); break; -case 69: nPRF1 = GetHasFeat(45, oPC); break; - } - } - else if (nFeat < 80) - { - switch (nFeat) - { -case 70: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(49, oPC); nORF3 = GetHasFeat(50, oPC); break; -case 71: nPRF1 = GetHasFeat(45, oPC); break; -case 72: nPRF1 = GetHasFeat(45, oPC); break; -case 73: nPRF1 = GetHasFeat(45, oPC); break; -case 74: nPRF1 = GetHasFeat(45, oPC); break; -case 75: nPRF1 = GetHasFeat(45, oPC); break; -case 76: nPRF1 = GetHasFeat(45, oPC); break; -case 77: nPRF1 = GetHasFeat(45, oPC); break; -case 78: nPRF1 = GetHasFeat(45, oPC); break; -case 79: nORF1 = GetHasFeat(44, oPC); nORF2 = GetHasFeat(49, oPC); break; - } - } - else if (nFeat < 90) - { - switch (nFeat) - { -case 80: nPRF1 = GetHasFeat(44, oPC); break; -case 81: nPRF1 = GetHasFeat(44, oPC); break; -case 82: nORF1 = GetHasFeat(44, oPC); nORF2 = GetHasFeat(49, oPC); break; -case 83: nPRF1 = GetHasFeat(44, oPC); break; -case 84: nPRF1 = GetHasFeat(44, oPC); break; -case 85: nORF1 = GetHasFeat(44, oPC); break; -case 86: nPRF1 = GetHasFeat(44, oPC); break; -case 87: nPRF1 = GetHasFeat(44, oPC); break; -case 88: nPRF1 = GetHasFeat(44, oPC); break; -case 89: nPRF1 = GetHasFeat(44, oPC); break; - } - } - else //<100 - { - switch (nFeat) - { -case 90: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 91: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(50, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 92: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(49, oPC); nORF3 = GetHasFeat(50, oPC); nORF4 = GetHasFeat(51, oPC); break; -case 93: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(49, oPC); nORF3 = GetHasFeat(50, oPC); nORF4 = GetHasFeat(51, oPC); break; -case 94: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(50, oPC); break; -case 95: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(50, oPC); break; -case 96: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); nORF5 = GetHasFeat(51, oPC); break; -case 97: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); break; -case 98: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); break; -case 99: nORF1 = GetHasFeat(46, oPC); nORF2 = GetHasFeat(48, oPC); nORF3 = GetHasFeat(49, oPC); nORF4 = GetHasFeat(50, oPC); break; - } - } - } - else if (nFeat < 150) - { - if (nFeat < 110) - { - switch (nFeat) - { -case 101: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(256, oPC); break; -case 102: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(50, oPC); nORF3 = GetHasFeat(256, oPC); break; -case 103: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(50, oPC); break; -case 104: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(50, oPC); nORF3 = GetHasFeat(256, oPC); break; -case 105: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(48, oPC); break; -case 106: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(256, oPC); break; -case 107: nPRF1 = GetHasFeat(45, oPC); break; -case 108: nORF1 = GetHasFeat(45, oPC); nORF2 = GetHasFeat(49, oPC); nORF3 = GetHasFeat(50, oPC); break; -case 109: nPRF1 = GetHasFeat(45, oPC); break; - } - } - else if (nFeat < 120) - { - switch (nFeat) - { -case 110: nPRF1 = GetHasFeat(45, oPC); break; -case 111: nPRF1 = GetHasFeat(45, oPC); break; -case 112: nPRF1 = GetHasFeat(45, oPC); break; -case 113: nPRF1 = GetHasFeat(45, oPC); break; -case 114: nPRF1 = GetHasFeat(45, oPC); break; -case 115: nPRF1 = GetHasFeat(45, oPC); break; -case 116: nPRF1 = GetHasFeat(45, oPC); break; -case 117: nORF1 = GetHasFeat(44, oPC); nORF2 = GetHasFeat(49, oPC); break; -case 118: nPRF1 = GetHasFeat(44, oPC); break; -case 119: nPRF1 = GetHasFeat(44, oPC); break; - } - } - else if (nFeat < 130) - { - switch (nFeat) - { -case 120: nORF1 = GetHasFeat(44, oPC); nORF2 = GetHasFeat(49, oPC); break; -case 121: nPRF1 = GetHasFeat(44, oPC); break; -case 122: nPRF1 = GetHasFeat(44, oPC); break; -case 123: nPRF1 = GetHasFeat(44, oPC); break; -case 124: nPRF1 = GetHasFeat(44, oPC); break; -case 125: nPRF1 = GetHasFeat(44, oPC); break; -case 126: nPRF1 = GetHasFeat(44, oPC); break; -case 127: nPRF1 = GetHasFeat(44, oPC); break; -case 128: nPRF1 = GetHasFeat(90, oPC); break; -case 129: nPRF1 = GetHasFeat(91, oPC); break; - } - } - else if (nFeat < 140) - { - switch (nFeat) - { -case 130: nPRF1 = GetHasFeat(92, oPC); break; -case 131: nPRF1 = GetHasFeat(93, oPC); break; -case 132: nPRF1 = GetHasFeat(94, oPC); break; -case 133: nPRF1 = GetHasFeat(95, oPC); break; -case 134: nPRF1 = GetHasFeat(96, oPC); break; -case 135: nPRF1 = GetHasFeat(97, oPC); break; -case 136: nPRF1 = GetHasFeat(98, oPC); break; -case 137: nPRF1 = GetHasFeat(99, oPC); break; -case 138: nPRF1 = GetHasFeat(100, oPC); break; -case 139: nPRF1 = GetHasFeat(101, oPC); break; - } - } - else //<150 - { - switch (nFeat) - { -case 140: nPRF1 = GetHasFeat(102, oPC); break; -case 141: nPRF1 = GetHasFeat(103, oPC); break; -case 142: nPRF1 = GetHasFeat(104, oPC); break; -case 143: nPRF1 = GetHasFeat(105, oPC); break; -case 144: nPRF1 = GetHasFeat(106, oPC); break; -case 145: nPRF1 = GetHasFeat(107, oPC); break; -case 146: nPRF1 = GetHasFeat(108, oPC); break; -case 147: nPRF1 = GetHasFeat(109, oPC); break; -case 148: nPRF1 = GetHasFeat(110, oPC); break; -case 149: nPRF1 = GetHasFeat(111, oPC); break; - } - } - } - else - { - if (nFeat < 160) - { - switch (nFeat) - { -case 150: nPRF1 = GetHasFeat(112, oPC); break; -case 151: nPRF1 = GetHasFeat(113, oPC); break; -case 152: nPRF1 = GetHasFeat(114, oPC); break; -case 153: nPRF1 = GetHasFeat(115, oPC); break; -case 154: nPRF1 = GetHasFeat(116, oPC); break; -case 155: nPRF1 = GetHasFeat(117, oPC); break; -case 156: nPRF1 = GetHasFeat(118, oPC); break; -case 157: nPRF1 = GetHasFeat(119, oPC); break; -case 158: nPRF1 = GetHasFeat(120, oPC); break; -case 159: nPRF1 = GetHasFeat(121, oPC); break; - } - } - else - { - switch (nFeat) - { -case 160: nPRF1 = GetHasFeat(122, oPC); break; -case 161: nPRF1 = GetHasFeat(123, oPC); break; -case 162: nPRF1 = GetHasFeat(124, oPC); break; -case 163: nPRF1 = GetHasFeat(125, oPC); break; -case 164: nPRF1 = GetHasFeat(126, oPC); break; -case 165: nPRF1 = GetHasFeat(127, oPC); break; - } - } - } - } -else if (nFeat < 500) - { - if (nFeat < 400) - { - switch (nFeat) - { -case 390: nPRF1 = GetHasFeat(389, oPC); break; -case 391: nPRF1 = GetHasFeat(28, oPC); nPRF2 = GetHasFeat(6, oPC); break; -case 392: nPRF1 = GetHasFeat(26, oPC); nPRF2 = GetHasFeat(10, oPC); break; -case 393: nPRF1 = GetHasFeat(35, oPC); break; -case 394: nPRF1 = GetHasFeat(166, oPC); break; -case 395: nPRF1 = GetHasFeat(167, oPC); break; -case 396: nPRF1 = GetHasFeat(168, oPC); break; -case 397: nPRF1 = GetHasFeat(169, oPC); break; -case 398: nPRF1 = GetHasFeat(170, oPC); break; -case 399: nPRF1 = GetHasFeat(171, oPC); break; - } - } - else if (nFeat < 450) - { - if (nFeat < 410) - { - switch (nFeat) - { -case 400: nPRF1 = GetHasFeat(172, oPC); break; -case 401: nPRF1 = GetHasFeat(36, oPC); break; -case 409: nPRF1 = GetHasFeat(21, oPC); break; - } - } - else if (nFeat < 420) - { - switch (nFeat) - { -case 410: nPRF1 = GetHasFeat(39, oPC); break; -case 413: nPRF1 = GetHasFeat(28, oPC); nPRF2 = GetHasFeat(294, oPC); break; -case 414: nPRF1 = GetHasFeat(28, oPC); nPRF2 = GetHasFeat(294, oPC); break; -case 415: nPRF1 = GetHasFeat(35, oPC); break; -case 416: nPRF1 = GetHasFeat(166, oPC); break; -case 417: nPRF1 = GetHasFeat(167, oPC); break; -case 418: nPRF1 = GetHasFeat(168, oPC); break; -case 419: nPRF1 = GetHasFeat(169, oPC); break; - } - } - else if (nFeat < 430) - { - switch (nFeat) - { -case 420: nPRF1 = GetHasFeat(170, oPC); break; -case 421: nPRF1 = GetHasFeat(171, oPC); break; -case 422: nPRF1 = GetHasFeat(172, oPC); break; - } - } - else //<450 - { - switch (nFeat) - { -case 446: nPRF1 = GetHasFeat(445, oPC); break; -case 447: nPRF1 = GetHasFeat(446, oPC); break; -case 448: nPRF1 = GetHasFeat(447, oPC); break; -case 449: nPRF1 = GetHasFeat(448, oPC); break; - } - } - } - else //<500 - { - if (nFeat < 460) - { - switch (nFeat) - { -case 452: nPRF1 = GetHasFeat(451, oPC); break; -case 456: nPRF1 = GetHasFeat(455, oPC); break; -case 457: nPRF1 = GetHasFeat(456, oPC); break; -case 458: nPRF1 = GetHasFeat(457, oPC); break; -case 459: nPRF1 = GetHasFeat(458, oPC); break; - } - } - else if (nFeat < 470) - { - switch (nFeat) - { -case 461: nPRF1 = GetHasFeat(460, oPC); break; -case 462: nPRF1 = GetHasFeat(461, oPC); break; -case 464: nPRF1 = GetHasFeat(463, oPC); break; -case 465: nPRF1 = GetHasFeat(464, oPC); break; -case 466: nPRF1 = GetHasFeat(465, oPC); break; -case 467: nPRF1 = GetHasFeat(466, oPC); break; - } - } - else //<500 - { - switch (nFeat) - { -case 493: nPRF1 = GetHasFeat(492, oPC); break; -case 494: nPRF1 = GetHasFeat(493, oPC); break; -case 495: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(709, oPC); break; -case 496: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(710, oPC); break; -case 497: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(711, oPC); break; -case 498: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(712, oPC); break; -case 499: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(713, oPC); break; - } - } - } - } -else if (nFeat < 750) - { - if (nFeat < 550) - { - if (nFeat < 510) - { - switch (nFeat) - { -case 500: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(714, oPC); break; -case 501: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(715, oPC); break; -case 502: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(716, oPC); break; -case 503: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(717, oPC); break; -case 504: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(718, oPC); break; -case 505: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(719, oPC); break; -case 506: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(720, oPC); break; -case 507: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(721, oPC); break; -case 508: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(722, oPC); break; -case 509: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(723, oPC); break; - } - } - else if (nFeat < 520) - { - switch (nFeat) - { -case 510: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(724, oPC); break; -case 511: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(725, oPC); break; -case 512: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(726, oPC); break; -case 513: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(727, oPC); break; -case 514: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(728, oPC); break; -case 515: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(729, oPC); break; -case 516: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(730, oPC); break; -case 517: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(731, oPC); break; -case 518: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(732, oPC); break; -case 519: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(733, oPC); break; - } - } - else if (nFeat < 530) - { - switch (nFeat) - { -case 520: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(734, oPC); break; -case 521: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(735, oPC); break; -case 522: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(736, oPC); break; -case 523: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(737, oPC); break; -case 524: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(738, oPC); break; -case 525: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(739, oPC); break; -case 526: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(740, oPC); break; -case 527: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(741, oPC); break; -case 528: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(742, oPC); break; -case 529: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(743, oPC); break; - } - } - else if (nFeat < 540) - { - switch (nFeat) - { -case 530: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(744, oPC); break; -case 531: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(745, oPC); break; -case 534: nPRF1 = GetHasFeat(533, oPC); break; -case 535: nPRF1 = GetHasFeat(534, oPC); break; -case 536: nPRF1 = GetHasFeat(535, oPC); break; -case 537: nPRF1 = GetHasFeat(536, oPC); break; -case 538: nPRF1 = GetHasFeat(537, oPC); break; -case 539: nPRF1 = GetHasFeat(538, oPC); break; - } - } - else //<550 - { - switch (nFeat) - { -case 540: nPRF1 = GetHasFeat(539, oPC); break; -case 541: nPRF1 = GetHasFeat(540, oPC); break; -case 542: nPRF1 = GetHasFeat(541, oPC); break; -case 544: nPRF1 = GetHasFeat(543, oPC); break; -case 545: nPRF1 = GetHasFeat(544, oPC); break; -case 546: nPRF1 = GetHasFeat(545, oPC); break; -case 547: nPRF1 = GetHasFeat(546, oPC); break; -case 548: nPRF1 = GetHasFeat(547, oPC); break; -case 549: nPRF1 = GetHasFeat(548, oPC); break; - } - } - } - else if (nFeat < 600) - { - if (nFeat < 560) - { - switch (nFeat) - { -case 550: nPRF1 = GetHasFeat(549, oPC); break; -case 551: nPRF1 = GetHasFeat(550, oPC); break; -case 552: nPRF1 = GetHasFeat(551, oPC); break; -case 554: nPRF1 = GetHasFeat(553, oPC); break; -case 555: nPRF1 = GetHasFeat(554, oPC); break; -case 556: nPRF1 = GetHasFeat(555, oPC); break; -case 557: nPRF1 = GetHasFeat(556, oPC); break; -case 558: nPRF1 = GetHasFeat(557, oPC); break; -case 559: nPRF1 = GetHasFeat(558, oPC); break; - } - } - else if (nFeat < 570) - { - switch (nFeat) - { -case 560: nPRF1 = GetHasFeat(559, oPC); break; -case 561: nPRF1 = GetHasFeat(560, oPC); break; -case 562: nPRF1 = GetHasFeat(561, oPC); break; -case 564: nPRF1 = GetHasFeat(563, oPC); break; -case 565: nPRF1 = GetHasFeat(564, oPC); break; -case 566: nPRF1 = GetHasFeat(565, oPC); break; -case 567: nPRF1 = GetHasFeat(566, oPC); break; -case 568: nPRF1 = GetHasFeat(567, oPC); break; -case 569: nPRF1 = GetHasFeat(568, oPC); break; - } - } - else if (nFeat < 580) - { - switch (nFeat) - { -case 570: nPRF1 = GetHasFeat(569, oPC); break; -case 571: nPRF1 = GetHasFeat(570, oPC); break; -case 572: nPRF1 = GetHasFeat(571, oPC); break; -case 574: nPRF1 = GetHasFeat(573, oPC); break; -case 575: nPRF1 = GetHasFeat(574, oPC); break; -case 576: nPRF1 = GetHasFeat(575, oPC); break; -case 577: nPRF1 = GetHasFeat(576, oPC); break; -case 578: nPRF1 = GetHasFeat(577, oPC); break; -case 579: nPRF1 = GetHasFeat(578, oPC); break; - } - } - else - { - switch (nFeat) - { -case 580: nPRF1 = GetHasFeat(579, oPC); break; -case 581: nPRF1 = GetHasFeat(580, oPC); break; -case 582: nPRF1 = GetHasFeat(581, oPC); break; - } - } - } - else if (nFeat < 650) - { - if (nFeat < 620) - { - switch (nFeat) - { -case 610: nPRF1 = GetHasFeat(393, oPC); break; -case 611: nPRF1 = GetHasFeat(394, oPC); break; -case 612: nPRF1 = GetHasFeat(395, oPC); break; -case 613: nPRF1 = GetHasFeat(396, oPC); break; -case 614: nPRF1 = GetHasFeat(397, oPC); break; -case 615: nPRF1 = GetHasFeat(398, oPC); break; -case 616: nPRF1 = GetHasFeat(399, oPC); break; -case 617: nPRF1 = GetHasFeat(400, oPC); break; -case 618: nPRF1 = GetHasFeat(401, oPC); break; -case 619: nPRF1 = GetHasFeat(15, oPC); break; - } - } - else if (nFeat < 630) - { - switch (nFeat) - { -case 620: nPRF1 = GetHasFeat(90, oPC); break; -case 621: nPRF1 = GetHasFeat(91, oPC); break; -case 622: nPRF1 = GetHasFeat(92, oPC); break; -case 623: nPRF1 = GetHasFeat(93, oPC); break; -case 624: nPRF1 = GetHasFeat(94, oPC); break; -case 625: nPRF1 = GetHasFeat(95, oPC); break; -case 626: nPRF1 = GetHasFeat(96, oPC); break; -case 627: nPRF1 = GetHasFeat(97, oPC); break; -case 628: nPRF1 = GetHasFeat(98, oPC); break; -case 629: nPRF1 = GetHasFeat(99, oPC); break; - } - } - else if (nFeat < 640) - { - switch (nFeat) - { -case 630: nPRF1 = GetHasFeat(100, oPC); break; -case 631: nPRF1 = GetHasFeat(101, oPC); break; -case 632: nPRF1 = GetHasFeat(102, oPC); break; -case 633: nPRF1 = GetHasFeat(103, oPC); break; -case 634: nPRF1 = GetHasFeat(104, oPC); break; -case 635: nPRF1 = GetHasFeat(105, oPC); break; -case 636: nPRF1 = GetHasFeat(106, oPC); break; -case 637: nPRF1 = GetHasFeat(107, oPC); break; -case 638: nPRF1 = GetHasFeat(108, oPC); break; -case 639: nPRF1 = GetHasFeat(109, oPC); break; - } - } - else //<650 - { - switch (nFeat) - { -case 640: nPRF1 = GetHasFeat(110, oPC); break; -case 641: nPRF1 = GetHasFeat(111, oPC); break; -case 642: nPRF1 = GetHasFeat(112, oPC); break; -case 643: nPRF1 = GetHasFeat(113, oPC); break; -case 644: nPRF1 = GetHasFeat(114, oPC); break; -case 645: nPRF1 = GetHasFeat(115, oPC); break; -case 646: nPRF1 = GetHasFeat(116, oPC); break; -case 647: nPRF1 = GetHasFeat(117, oPC); break; -case 648: nPRF1 = GetHasFeat(118, oPC); break; -case 649: nPRF1 = GetHasFeat(120, oPC); break; - } - } - } - else if (nFeat < 700) - { - if (nFeat < 660) - { - switch (nFeat) - { -case 650: nPRF1 = GetHasFeat(121, oPC); break; -case 651: nPRF1 = GetHasFeat(122, oPC); break; -case 652: nPRF1 = GetHasFeat(123, oPC); break; -case 653: nPRF1 = GetHasFeat(125, oPC); break; -case 654: nPRF1 = GetHasFeat(126, oPC); break; -case 655: nPRF1 = GetHasFeat(127, oPC); break; -case 657: nPRF1 = GetHasFeat(47, oPC); nPRF2 = GetHasFeat(619, oPC); break; -case 658: nPRF1 = GetHasFeat(128, oPC); nPRF2 = GetHasFeat(620, oPC); break; -case 659: nPRF1 = GetHasFeat(129, oPC); nPRF2 = GetHasFeat(621, oPC); break; - } - } - else if (nFeat < 670) - { - switch (nFeat) - { -case 660: nPRF1 = GetHasFeat(130, oPC); nPRF2 = GetHasFeat(622, oPC); break; -case 661: nPRF1 = GetHasFeat(131, oPC); nPRF2 = GetHasFeat(623, oPC); break; -case 662: nPRF1 = GetHasFeat(132, oPC); nPRF2 = GetHasFeat(624, oPC); break; -case 663: nPRF1 = GetHasFeat(133, oPC); nPRF2 = GetHasFeat(625, oPC); break; -case 664: nPRF1 = GetHasFeat(134, oPC); nPRF2 = GetHasFeat(626, oPC); break; -case 665: nPRF1 = GetHasFeat(135, oPC); nPRF2 = GetHasFeat(627, oPC); break; -case 666: nPRF1 = GetHasFeat(136, oPC); nPRF2 = GetHasFeat(628, oPC); break; -case 667: nPRF1 = GetHasFeat(137, oPC); nPRF2 = GetHasFeat(629, oPC); break; -case 668: nPRF1 = GetHasFeat(138, oPC); nPRF2 = GetHasFeat(630, oPC); break; -case 669: nPRF1 = GetHasFeat(139, oPC); nPRF2 = GetHasFeat(631, oPC); break; - } - } - else if (nFeat < 680) - { - switch (nFeat) - { -case 670: nPRF1 = GetHasFeat(140, oPC); nPRF2 = GetHasFeat(632, oPC); break; -case 671: nPRF1 = GetHasFeat(141, oPC); nPRF2 = GetHasFeat(633, oPC); break; -case 672: nPRF1 = GetHasFeat(142, oPC); nPRF2 = GetHasFeat(634, oPC); break; -case 673: nPRF1 = GetHasFeat(143, oPC); nPRF2 = GetHasFeat(635, oPC); break; -case 674: nPRF1 = GetHasFeat(144, oPC); nPRF2 = GetHasFeat(636, oPC); break; -case 675: nPRF1 = GetHasFeat(145, oPC); nPRF2 = GetHasFeat(637, oPC); break; -case 676: nPRF1 = GetHasFeat(146, oPC); nPRF2 = GetHasFeat(638, oPC); break; -case 677: nPRF1 = GetHasFeat(147, oPC); nPRF2 = GetHasFeat(639, oPC); break; -case 678: nPRF1 = GetHasFeat(148, oPC); nPRF2 = GetHasFeat(640, oPC); break; -case 679: nPRF1 = GetHasFeat(149, oPC); nPRF2 = GetHasFeat(641, oPC); break; - } - } - else if (nFeat < 690) - { - switch (nFeat) - { -case 680: nPRF1 = GetHasFeat(150, oPC); nPRF2 = GetHasFeat(642, oPC); break; -case 681: nPRF1 = GetHasFeat(151, oPC); nPRF2 = GetHasFeat(643, oPC); break; -case 682: nPRF1 = GetHasFeat(152, oPC); nPRF2 = GetHasFeat(644, oPC); break; -case 683: nPRF1 = GetHasFeat(153, oPC); nPRF2 = GetHasFeat(645, oPC); break; -case 684: nPRF1 = GetHasFeat(154, oPC); nPRF2 = GetHasFeat(646, oPC); break; -case 685: nPRF1 = GetHasFeat(155, oPC); nPRF2 = GetHasFeat(647, oPC); break; -case 686: nPRF1 = GetHasFeat(156, oPC); nPRF2 = GetHasFeat(648, oPC); break; -case 687: nPRF1 = GetHasFeat(158, oPC); nPRF2 = GetHasFeat(649, oPC); break; -case 688: nPRF1 = GetHasFeat(159, oPC); nPRF2 = GetHasFeat(650, oPC); break; -case 689: nPRF1 = GetHasFeat(160, oPC); nPRF2 = GetHasFeat(651, oPC); break; - } - } - else //<700 - { - switch (nFeat) - { -case 690: nPRF1 = GetHasFeat(161, oPC); nPRF2 = GetHasFeat(652, oPC); break; -case 691: nPRF1 = GetHasFeat(163, oPC); nPRF2 = GetHasFeat(653, oPC); break; -case 692: nPRF1 = GetHasFeat(164, oPC); nPRF2 = GetHasFeat(654, oPC); break; -case 693: nPRF1 = GetHasFeat(165, oPC); nPRF2 = GetHasFeat(655, oPC); break; -case 696: nPRF1 = GetHasFeat(7, oPC); break; -case 697: nPRF1 = GetHasFeat(344, oPC); break; -case 698: nPRF1 = GetHasFeat(697, oPC); break; -case 699: nPRF1 = GetHasFeat(215, oPC); break; - } - } - } - else //<750 - { - if (nFeat < 710) - { - switch (nFeat) - { -case 700: nPRF1 = GetHasFeat(699, oPC); break; -case 701: nPRF1 = GetHasFeat(700, oPC); break; -case 702: nPRF1 = GetHasFeat(701, oPC); break; -case 703: nPRF1 = GetHasFeat(702, oPC); break; -case 704: nPRF1 = GetHasFeat(703, oPC); break; -case 705: nPRF1 = GetHasFeat(704, oPC); break; -case 706: nPRF1 = GetHasFeat(705, oPC); break; -case 707: nPRF1 = GetHasFeat(706, oPC); break; -case 708: nPRF1 = GetHasFeat(707, oPC); break; -case 709: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(15, oPC); break; - } - } - else if (nFeat < 720) - { - switch (nFeat) - { -case 710: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(52, oPC); break; -case 711: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(53, oPC); break; -case 712: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(54, oPC); break; -case 713: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(55, oPC); break; -case 714: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(56, oPC); break; -case 715: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(57, oPC); break; -case 716: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(58, oPC); break; -case 717: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(59, oPC); break; -case 718: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(60, oPC); break; -case 719: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(61, oPC); break; - } - } - else if (nFeat < 730) - { - switch (nFeat) - { -case 720: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(62, oPC); break; -case 721: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(63, oPC); break; -case 722: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(64, oPC); break; -case 723: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(65, oPC); break; -case 724: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(66, oPC); break; -case 725: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(67, oPC); break; -case 726: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(68, oPC); break; -case 727: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(69, oPC); break; -case 728: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(70, oPC); break; -case 729: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(71, oPC); break; - } - } - else if (nFeat < 740) - { - switch (nFeat) - { -case 730: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(72, oPC); break; -case 731: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(73, oPC); break; -case 732: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(74, oPC); break; -case 733: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(75, oPC); break; -case 734: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(76, oPC); break; -case 735: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(77, oPC); break; -case 736: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(78, oPC); break; -case 737: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(79, oPC); break; -case 738: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(80, oPC); break; -case 739: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(82, oPC); break; - } - } - else //750 - { - switch (nFeat) - { -case 740: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(83, oPC); break; -case 741: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(84, oPC); break; -case 742: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(85, oPC); break; -case 743: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(87, oPC); break; -case 744: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(88, oPC); break; -case 745: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(89, oPC); break; -case 746: nPRF1 = GetHasFeat(292, oPC); break; -case 747: nPRF1 = GetHasFeat(14, oPC); break; -case 748: nPRF1 = GetHasFeat(212, oPC); break; -case 749: nPRF1 = GetHasFeat(748, oPC); break; - } - } - } - } -else - { - if (nFeat < 800) - { - if (nFeat < 760) - { - switch (nFeat) - { -case 750: nPRF1 = GetHasFeat(749, oPC); break; -case 751: nPRF1 = GetHasFeat(750, oPC); break; -case 752: nPRF1 = GetHasFeat(751, oPC); break; -case 753: nPRF1 = GetHasFeat(377, oPC); break; -case 755: nPRF1 = GetHasFeat(754, oPC); break; -case 756: nPRF1 = GetHasFeat(755, oPC); break; -case 757: nPRF1 = GetHasFeat(756, oPC); break; -case 758: nPRF1 = GetHasFeat(757, oPC); break; -case 759: nPRF1 = GetHasFeat(758, oPC); break; - } - } - else if (nFeat < 770) - { - switch (nFeat) - { -case 760: nPRF1 = GetHasFeat(759, oPC); break; -case 761: nPRF1 = GetHasFeat(760, oPC); break; -case 762: nPRF1 = GetHasFeat(761, oPC); break; -case 763: nPRF1 = GetHasFeat(762, oPC); break; -case 765: nPRF1 = GetHasFeat(764, oPC); break; -case 766: nPRF1 = GetHasFeat(765, oPC); break; -case 767: nPRF1 = GetHasFeat(766, oPC); break; -case 768: nPRF1 = GetHasFeat(767, oPC); break; -case 769: nPRF1 = GetHasFeat(768, oPC); break; - } - } - else if (nFeat < 780) - { - switch (nFeat) - { -case 770: nPRF1 = GetHasFeat(769, oPC); break; -case 771: nPRF1 = GetHasFeat(770, oPC); break; -case 772: nPRF1 = GetHasFeat(771, oPC); break; -case 773: nPRF1 = GetHasFeat(772, oPC); break; -case 775: nPRF1 = GetHasFeat(774, oPC); break; -case 776: nPRF1 = GetHasFeat(775, oPC); break; -case 777: nPRF1 = GetHasFeat(776, oPC); break; -case 778: nPRF1 = GetHasFeat(777, oPC); break; -case 779: nPRF1 = GetHasFeat(778, oPC); break; - } - } - else if (nFeat < 790) - { - switch (nFeat) - { -case 780: nPRF1 = GetHasFeat(779, oPC); break; -case 781: nPRF1 = GetHasFeat(780, oPC); break; -case 782: nPRF1 = GetHasFeat(781, oPC); break; -case 783: nPRF1 = GetHasFeat(782, oPC); break; -case 785: nPRF1 = GetHasFeat(784, oPC); break; -case 786: nPRF1 = GetHasFeat(785, oPC); break; -case 787: nPRF1 = GetHasFeat(786, oPC); break; -case 788: nPRF1 = GetHasFeat(787, oPC); break; -case 789: nPRF1 = GetHasFeat(788, oPC); break; - } - } - else //<800 - { - switch (nFeat) - { -case 790: nPRF1 = GetHasFeat(789, oPC); break; -case 791: nPRF1 = GetHasFeat(790, oPC); break; -case 792: nPRF1 = GetHasFeat(791, oPC); break; -case 793: nPRF1 = GetHasFeat(792, oPC); break; -case 795: nPRF1 = GetHasFeat(794, oPC); break; -case 796: nPRF1 = GetHasFeat(795, oPC); break; -case 797: nPRF1 = GetHasFeat(796, oPC); break; -case 798: nPRF1 = GetHasFeat(797, oPC); break; -case 799: nPRF1 = GetHasFeat(798, oPC); break; - } - } - } - else if (nFeat < 850) - { - if (nFeat < 810) - { - switch (nFeat) - { -case 800: nPRF1 = GetHasFeat(799, oPC); break; -case 801: nPRF1 = GetHasFeat(800, oPC); break; -case 802: nPRF1 = GetHasFeat(801, oPC); break; -case 803: nPRF1 = GetHasFeat(802, oPC); break; -case 805: nPRF1 = GetHasFeat(804, oPC); break; -case 806: nPRF1 = GetHasFeat(805, oPC); break; -case 807: nPRF1 = GetHasFeat(806, oPC); break; -case 808: nPRF1 = GetHasFeat(807, oPC); break; -case 809: nPRF1 = GetHasFeat(808, oPC); break; - } - } - else if (nFeat < 820) - { - switch (nFeat) - { -case 810: nPRF1 = GetHasFeat(809, oPC); break; -case 811: nPRF1 = GetHasFeat(810, oPC); break; -case 812: nPRF1 = GetHasFeat(811, oPC); break; -case 813: nPRF1 = GetHasFeat(812, oPC); break; -case 815: nPRF1 = GetHasFeat(814, oPC); break; -case 816: nPRF1 = GetHasFeat(815, oPC); break; -case 817: nPRF1 = GetHasFeat(816, oPC); break; -case 818: nPRF1 = GetHasFeat(817, oPC); break; -case 819: nPRF1 = GetHasFeat(818, oPC); break; - } - } - else if (nFeat < 830) - { - switch (nFeat) - { -case 820: nPRF1 = GetHasFeat(819, oPC); break; -case 821: nPRF1 = GetHasFeat(820, oPC); break; -case 822: nPRF1 = GetHasFeat(821, oPC); break; -case 823: nPRF1 = GetHasFeat(822, oPC); break; -case 824: nORF1 = GetHasFeat(472, oPC); nORF2 = GetHasFeat(301, oPC); break; -case 825: nPRF1 = GetHasFeat(824, oPC); break; -case 826: nPRF1 = GetHasFeat(825, oPC); break; -case 827: nPRF1 = GetHasFeat(826, oPC); break; -case 828: nPRF1 = GetHasFeat(827, oPC); break; -case 829: nPRF1 = GetHasFeat(828, oPC); break; - } - } - else if (nFeat < 840) - { - switch (nFeat) - { -case 830: nPRF1 = GetHasFeat(829, oPC); break; -case 831: nPRF1 = GetHasFeat(830, oPC); break; -case 832: nPRF1 = GetHasFeat(831, oPC); break; -case 833: nPRF1 = GetHasFeat(832, oPC); break; -case 834: nORF1 = GetHasFeat(351, oPC); nORF2 = GetHasFeat(1006, oPC); nORF3 = GetHasFeat(1011, oPC); break; -case 835: nPRF1 = GetHasFeat(834, oPC); break; -case 836: nPRF1 = GetHasFeat(835, oPC); break; -case 837: nPRF1 = GetHasFeat(836, oPC); break; -case 838: nPRF1 = GetHasFeat(837, oPC); break; -case 839: nPRF1 = GetHasFeat(838, oPC); break; - } - } - else //<850 - { - switch (nFeat) - { -case 840: nPRF1 = GetHasFeat(839, oPC); break; -case 841: nPRF1 = GetHasFeat(840, oPC); break; -case 842: nPRF1 = GetHasFeat(841, oPC); break; -case 843: nPRF1 = GetHasFeat(842, oPC); break; -case 844: nPRF1 = GetHasFeat(39, oPC); nPRF2 = GetHasFeat(21, oPC); break; -case 845: nPRF1 = GetHasFeat(844, oPC); break; -case 846: nPRF1 = GetHasFeat(845, oPC); break; -case 847: nPRF1 = GetHasFeat(846, oPC); break; -case 848: nPRF1 = GetHasFeat(847, oPC); break; -case 849: nPRF1 = GetHasFeat(848, oPC); break; - } - } - } - else if (nFeat < 900) - { - if (nFeat < 860) - { - switch (nFeat) - { -case 850: nPRF1 = GetHasFeat(849, oPC); break; -case 851: nPRF1 = GetHasFeat(850, oPC); break; -case 852: nPRF1 = GetHasFeat(851, oPC); break; -case 853: nPRF1 = GetHasFeat(852, oPC); break; -case 854: nPRF1 = GetHasFeat(294, oPC); break; -case 856: nPRF1 = GetHasFeat(212, oPC); nPRF2 = GetHasFeat(223, oPC); break; -case 857: nPRF1 = GetHasFeat(29, oPC); break; -case 858: nPRF1 = GetHasFeat(857, oPC); break; -case 859: nPRF1 = GetHasFeat(858, oPC); break; - } - } - else if (nFeat < 870) - { - switch (nFeat) - { -case 860: nPRF1 = GetHasFeat(33, oPC); break; -case 861: nPRF1 = GetHasFeat(860, oPC); break; -case 862: nPRF1 = GetHasFeat(861, oPC); break; -case 863: nPRF1 = GetHasFeat(37, oPC); break; -case 864: nPRF1 = GetHasFeat(863, oPC); break; -case 865: nPRF1 = GetHasFeat(864, oPC); break; -case 867: nPRF1 = GetHasFeat(392, oPC); nPRF2 = GetHasFeat(389, oPC); break; -case 868: nPRF1 = GetHasFeat(867, oPC); break; -case 869: nPRF1 = GetHasFeat(331, oPC); break; - } - } - else if (nFeat < 880) - { - switch (nFeat) - { -case 870: nPRF1 = GetHasFeat(373, oPC); break; -case 872: nPRF1 = GetHasFeat(903, oPC); break; -case 873: nORF1 = GetHasFeat(338, oPC); nORF2 = GetHasFeat(903, oPC); break; -case 879: nPRF1 = GetHasFeat(98, oPC); break; - } - } - else if (nFeat < 890) - { - switch (nFeat) - { -case 880: nPRF1 = GetHasFeat(117, oPC); break; -case 881: nPRF1 = GetHasFeat(118, oPC); break; -case 887: nPRF1 = GetHasFeat(886, oPC); break; -case 888: nPRF1 = GetHasFeat(887, oPC); break; - } - } - else //<900 - { - switch (nFeat) - { -case 893: nPRF1 = GetHasFeat(892, oPC); break; -case 897: nPRF1 = GetHasFeat(893, oPC); break; - } - } - } - else if (nFeat < 950) - { - if (nFeat < 910) - { - switch (nFeat) - { -case 900: nPRF1 = GetHasFeat(898, oPC); break; -case 901: nPRF1 = GetHasFeat(900, oPC); break; -case 903: nPRF1 = GetHasFeat(901, oPC); break; -case 905: nPRF1 = GetHasFeat(904, oPC); break; -case 906: nPRF1 = GetHasFeat(905, oPC); break; -case 907: nPRF1 = GetHasFeat(906, oPC); break; -case 908: nPRF1 = GetHasFeat(907, oPC); break; - } - } - else if (nFeat < 920) - { - switch (nFeat) - { -case 910: nORF1 = GetHasFeat(301, oPC); nORF2 = GetHasFeat(472, oPC); break; -case 919: nPRF1 = GetHasFeat(43, oPC); break; - } - } - else if (nFeat < 930) - { - switch (nFeat) - { -case 920: nPRF1 = GetHasFeat(90, oPC); break; -case 921: nPRF1 = GetHasFeat(94, oPC); break; -case 922: nPRF1 = GetHasFeat(95, oPC); break; -case 923: nPRF1 = GetHasFeat(96, oPC); break; -case 924: nPRF1 = GetHasFeat(97, oPC); break; -case 925: nPRF1 = GetHasFeat(103, oPC); break; -case 926: nPRF1 = GetHasFeat(104, oPC); break; -case 927: nPRF1 = GetHasFeat(105, oPC); break; -case 928: nPRF1 = GetHasFeat(106, oPC); break; -case 929: nPRF1 = GetHasFeat(107, oPC); break; - } - } - else if (nFeat < 940) - { - switch (nFeat) - { -case 930: nPRF1 = GetHasFeat(108, oPC); break; -case 931: nPRF1 = GetHasFeat(110, oPC); break; -case 932: nPRF1 = GetHasFeat(111, oPC); break; -case 933: nPRF1 = GetHasFeat(112, oPC); break; -case 934: nPRF1 = GetHasFeat(113, oPC); break; -case 935: nPRF1 = GetHasFeat(114, oPC); break; -case 936: nPRF1 = GetHasFeat(115, oPC); break; -case 937: nPRF1 = GetHasFeat(116, oPC); break; -case 938: nPRF1 = GetHasFeat(121, oPC); break; -case 939: nPRF1 = GetHasFeat(122, oPC); break; - } - } - else //<950 - { - switch (nFeat) - { -case 940: nPRF1 = GetHasFeat(123, oPC); break; -case 941: nPRF1 = GetHasFeat(125, oPC); break; -case 942: nPRF1 = GetHasFeat(126, oPC); break; -case 943: nPRF1 = GetHasFeat(127, oPC); break; - } - } - } - else if (nFeat < 1000) - { - if (nFeat < 960) - { - switch (nFeat) - { -case 950: nPRF1 = GetHasFeat(949, oPC); break; -case 951: nPRF1 = GetHasFeat(950, oPC); break; -case 952: nPRF1 = GetHasFeat(44, oPC); break; -case 953: nPRF1 = GetHasFeat(952, oPC); break; -case 954: nPRF1 = GetHasFeat(44, oPC); break; -case 955: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(958, oPC); break; -case 956: nPRF1 = GetHasFeat(952, oPC); break; -case 957: nPRF1 = GetHasFeat(953, oPC); nPRF2 = GetHasFeat(956, oPC); break; -case 958: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(954, oPC); break; -case 959: nPRF1 = GetHasFeat(952, oPC); break; - } - } - else if (nFeat < 990) - { - switch (nFeat) - { -case 988: nPRF1 = GetHasFeat(329, oPC); break; -case 989: nPRF1 = GetHasFeat(329, oPC); break; - } - } - else //<1000 - { - switch (nFeat) - { -case 993: nPRF1 = GetHasFeat(44, oPC); break; -case 994: nPRF1 = GetHasFeat(993, oPC); break; -case 995: nPRF1 = GetHasFeat(44, oPC); break; -case 996: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(999, oPC); break; -case 997: nPRF1 = GetHasFeat(993, oPC); break; -case 998: nPRF1 = GetHasFeat(994, oPC); nPRF2 = GetHasFeat(997, oPC); break; -case 999: nPRF1 = GetHasFeat(391, oPC); nPRF2 = GetHasFeat(995, oPC); break; - } - } - } - else //through 1071 - { - if (nFeat < 1010) - { - switch (nFeat) - { -case 1000: nPRF1 = GetHasFeat(993, oPC); break; -case 1002: nPRF1 = GetHasFeat(435, oPC); break; -case 1003: nPRF1 = GetHasFeat(475, oPC); break; - } - } - else if (nFeat < 1050) - { - switch (nFeat) - { -case 1045: nPRF1 = GetHasFeat(449, oPC); break; -case 1046: nPRF1 = GetHasFeat(1045, oPC); break; -case 1047: nPRF1 = GetHasFeat(1046, oPC); break; -case 1048: nPRF1 = GetHasFeat(1047, oPC); break; -case 1049: nPRF1 = GetHasFeat(1048, oPC); break; - } - } - else if (nFeat < 1060) - { - switch (nFeat) - { -case 1050: nPRF1 = GetHasFeat(1049, oPC); break; -case 1051: nPRF1 = GetHasFeat(1050, oPC); break; -case 1052: nPRF1 = GetHasFeat(1051, oPC); break; -case 1053: nPRF1 = GetHasFeat(1052, oPC); break; -case 1054: nPRF1 = GetHasFeat(1053, oPC); break; -case 1055: nPRF1 = GetHasFeat(1054, oPC); break; -case 1056: nPRF1 = GetHasFeat(1055, oPC); break; -case 1057: nPRF1 = GetHasFeat(1056, oPC); break; -case 1058: nPRF1 = GetHasFeat(1057, oPC); break; -case 1059: nPRF1 = GetHasFeat(1058, oPC); break; - } - } - else //through 1071 - { - switch (nFeat) - { -case 1060: nPRF1 = GetHasFeat(903, oPC); break; -case 1061: nPRF1 = GetHasFeat(903, oPC); break; -case 1067: nPRF1 = GetHasFeat(334, oPC); break; -case 1070: nPRF1 = GetHasFeat(466, oPC); break; -case 1071: nPRF1 = GetHasFeat(884, oPC); break; - } - } - } - } -return ((nPRF1 && nPRF2) && (nORF1 || nORF2 || nORF3 || nORF4 || nORF5)); -} - -int GetIsFeatFirstLevelOnly(int nFeat) -{ -switch(nFeat) - { - case 378: return TRUE; break; - case 379: return TRUE; break; - case 380: return TRUE; break; - case 381: return TRUE; break; - case 382: return TRUE; break; - case 384: return TRUE; break; - case 386: return TRUE; break; - case 388: return TRUE; break; - default : return FALSE; break; - } -return -3; -} - -int GetIsFeatDevCrit(int nFeat) -{ -if (nFeat > 494 && nFeat <532) return TRUE; -else if (nFeat == 955 || nFeat == 996) return TRUE; -else return FALSE; -} - -int GetHasRequiredSpellLevelForFeat(object oPC, int nFeat) -{ -int nReturn = TRUE; -switch(nFeat) - { - case 7: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 12: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 33: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 35: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 36: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 37: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 166: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 167: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 168: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 169: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 170: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 171: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 172: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 1) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 1) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 2) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 4)); break; - case 11: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 3) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 4) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 3) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 3) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 4) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 8) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 8)); break; - case 25: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 5) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 6) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 5) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 5) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 7) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 11) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 11)); break; - case 29: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 7) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 8) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 7) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 7) || (GetLevelByClass(CLASS_TYPE_BARD, oPC) >= 10) || (GetLevelByClass(CLASS_TYPE_RANGER, oPC) >= 14) || (GetLevelByClass(CLASS_TYPE_PALADIN, oPC) >= 14)); break; - case 31: nReturn = FALSE; break; - case 610: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 611: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 612: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 613: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 614: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 615: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 616: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 617: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 857: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 858: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 859: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 860: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 861: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 862: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 863: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 864: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - case 865: nReturn = ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC) >= 17) || (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 18) || ((GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + (GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC)/2)) >= 17) || (GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 17)); break; - default: nReturn = TRUE; break; - } -return nReturn; -} - -string GetNameOfFeat(int nFeat) -{ -string sName; -if (nFeat < 250) - { - if (nFeat < 50) - { - if (nFeat < 10) - { - switch (nFeat) - { -case 0: sName = "Alertness"; break; -case 1: sName = "Ambidexterity"; break; -case 2: sName = "Armor Proficiency Heavy"; break; -case 3: sName = "Armor Proficiency Light"; break; -case 4: sName = "Armor Proficiency Medium"; break; -case 5: sName = "Called Shot"; break; -case 6: sName = "Cleave"; break; -case 7: sName = "Combat Casting"; break; -case 8: sName = "Deflect Arrows"; break; -case 9: sName = "Disarm"; break; - } - } - else if (nFeat < 20) - { - switch (nFeat) - { -case 10: sName = "Dodge"; break; -case 11: sName = "Empower Spell"; break; -case 12: sName = "Extend Spell"; break; -case 13: sName = "Extra Turning"; break; -case 14: sName = "Great Fortitude"; break; -case 15: sName = "Improved Critical Club"; break; -case 16: sName = "Improved Disarm"; break; -case 17: sName = "Improved Knockdown"; break; -case 18: sName = "Improved Parry"; break; -case 19: sName = "Improved Power Attack"; break; - } - } - else if (nFeat < 30) - { - switch (nFeat) - { -case 20: sName = "Improved Two Weapon Fighting"; break; -case 21: sName = "Improved Unarmed Strike"; break; -case 22: sName = "Iron Will"; break; -case 23: sName = "Knockdown"; break; -case 24: sName = "Lightning Reflexes"; break; -case 25: sName = "Maximize Spell"; break; -case 26: sName = "Mobility"; break; -case 27: sName = "Point Blank Shot"; break; -case 28: sName = "Power Attack"; break; -case 29: sName = "Quicken Spell"; break; - } - } - else if (nFeat < 40) - { - switch (nFeat) - { -case 30: sName = "Rapid Shot"; break; -case 31: sName = "Sap"; break; -case 32: sName = "Shield Proficiency"; break; -case 33: sName = "Silence Spell"; break; -case 34: sName = "Skill Focus Animal Empathy"; break; -case 35: sName = "Spell Focus Abjuration"; break; -case 36: sName = "Spell Penetration"; break; -case 37: sName = "Still Spell"; break; -case 39: sName = "Stunning Fist"; break; - } - } - else //<50 - { - switch (nFeat) - { -case 40: sName = "Toughness"; break; -case 41: sName = "Two Weapon Fighting"; break; -case 42: sName = "Weapon Finesse"; break; -case 43: sName = "Weapon Focus Club"; break; -case 44: sName = "Weapon Proficiency Exotic"; break; -case 45: sName = "Weapon Proficiency Martial"; break; -case 46: sName = "Weapon Proficiency Simple"; break; -case 47: sName = "Weapon Specialization Club"; break; -case 48: sName = "Weapon Proficiency Druid"; break; -case 49: sName = "Weapon Proficiency Monk"; break; - } - } - } - else if (nFeat < 100) - { - if (nFeat < 60) - { - switch (nFeat) - { -case 50: sName = "Weapon Proficiency Rogue"; break; -case 51: sName = "Weapon Proficiency Wizard"; break; -case 52: sName = "Improved Critical Dagger"; break; -case 53: sName = "Improved Critical Dart"; break; -case 54: sName = "Improved Critical Heavy Crossbow"; break; -case 55: sName = "Improved Critical Light Crossbow"; break; -case 56: sName = "Improved Critical Light Mace"; break; -case 57: sName = "Improved Critical Morning Star"; break; -case 58: sName = "Improved Critical Staff"; break; -case 59: sName = "Improved Critical Spear"; break; - } - } - else if (nFeat < 70) - { - switch (nFeat) - { -case 60: sName = "Improved Critical Sickle"; break; -case 61: sName = "Improved Critical Sling"; break; -case 62: sName = "Improved Critical Unarmed Strike"; break; -case 63: sName = "Improved Critical Longbow"; break; -case 64: sName = "Improved Critical Shortbow"; break; -case 65: sName = "Improved Critical Short Sword"; break; -case 66: sName = "Improved Critical Rapier"; break; -case 67: sName = "Improved Critical Scimitar"; break; -case 68: sName = "Improved Critical Long Sword"; break; -case 69: sName = "Improved Critical Great Sword"; break; - } - } - else if (nFeat < 80) - { - switch (nFeat) - { -case 70: sName = "Improved Critical Hand Axe"; break; -case 71: sName = "Improved Critical Throwing Axe"; break; -case 72: sName = "Improved Critical Battle Axe"; break; -case 73: sName = "Improved Critical Great Axe"; break; -case 74: sName = "Improved Critical Halberd"; break; -case 75: sName = "Improved Critical Light Hammer"; break; -case 76: sName = "Improved Critical Light Flail"; break; -case 77: sName = "Improved Critical War Hammer"; break; -case 78: sName = "Improved Critical Heavy Flail"; break; -case 79: sName = "Improved Critical Kama"; break; - } - } - else if (nFeat < 90) - { - switch (nFeat) - { -case 80: sName = "Improved Critical Kukri"; break; -case 82: sName = "Improved Critical Shuriken"; break; -case 83: sName = "Improved Critical Scythe"; break; -case 84: sName = "Improved Critical Katana"; break; -case 85: sName = "Improved Critical Bastard Sword"; break; -case 87: sName = "Improved Critical Dire Mace"; break; -case 88: sName = "Improved Critical Double Axe"; break; -case 89: sName = "Improved Critical Two Bladed Sword"; break; - } - } - else //<100 - { - switch (nFeat) - { -case 90: sName = "Weapon Focus Dagger"; break; -case 91: sName = "Weapon Focus Dart"; break; -case 92: sName = "Weapon Focus Heavy Crossbow"; break; -case 93: sName = "Weapon Focus Light Crossbow"; break; -case 94: sName = "Weapon Focus Light Mace"; break; -case 95: sName = "Weapon Focus Morning Star"; break; -case 96: sName = "Weapon Focus Staff"; break; -case 97: sName = "Weapon Focus Spear"; break; -case 98: sName = "Weapon Focus Sickle"; break; -case 99: sName = "Weapon Focus Sling"; break; - } - } - } - else if (nFeat < 150) - { - if (nFeat < 110) - { - switch (nFeat) - { -case 100: sName = "Weapon Focus Unarmed Strike"; break; -case 101: sName = "Weapon Focus Longbow"; break; -case 102: sName = "Weapon Focus Shortbow"; break; -case 103: sName = "Weapon Focus Short Sword"; break; -case 104: sName = "Weapon Focus Rapier"; break; -case 105: sName = "Weapon Focus Scimitar"; break; -case 106: sName = "Weapon Focus Long Sword"; break; -case 107: sName = "Weapon Focus Great Sword"; break; -case 108: sName = "Weapon Focus Hand Axe"; break; -case 109: sName = "Weapon Focus Throwing Axe"; break; - } - } - else if (nFeat < 120) - { - switch (nFeat) - { -case 110: sName = "Weapon Focus Battle Axe"; break; -case 111: sName = "Weapon Focus Great Axe"; break; -case 112: sName = "Weapon Focus Halberd"; break; -case 113: sName = "Weapon Focus Light Hammer"; break; -case 114: sName = "Weapon Focus Light Flail"; break; -case 115: sName = "Weapon Focus War Hammer"; break; -case 116: sName = "Weapon Focus Heavy Flail"; break; -case 117: sName = "Weapon Focus Kama"; break; -case 118: sName = "Weapon Focus Kukri"; break; - } - } - else if (nFeat < 130) - { - switch (nFeat) - { -case 120: sName = "Weapon Focus Shuriken"; break; -case 121: sName = "Weapon Focus Scythe"; break; -case 122: sName = "Weapon Focus Katana"; break; -case 123: sName = "Weapon Focus Bastard Sword"; break; -case 125: sName = "Weapon Focus Dire Mace"; break; -case 126: sName = "Weapon Focus Double Axe"; break; -case 127: sName = "Weapon Focus Two Bladed Sword"; break; -case 128: sName = "Weapon Specialization Dagger"; break; -case 129: sName = "Weapon Specialization Dart"; break; - } - } - else if (nFeat < 140) - { - switch (nFeat) - { -case 130: sName = "Weapon Specialization Heavy Crossbow"; break; -case 131: sName = "Weapon Specialization Light Crossbow"; break; -case 132: sName = "Weapon Specialization Light Mace"; break; -case 133: sName = "Weapon Specialization Morning Star"; break; -case 134: sName = "Weapon Specialization Staff"; break; -case 135: sName = "Weapon Specialization Spear"; break; -case 136: sName = "Weapon Specialization Sickle"; break; -case 137: sName = "Weapon Specialization Sling"; break; -case 138: sName = "Weapon Specialization Unarmed Strike"; break; -case 139: sName = "Weapon Specialization Longbow"; break; - } - } - else //<150 - { - switch (nFeat) - { -case 140: sName = "Weapon Specialization Shortbow"; break; -case 141: sName = "Weapon Specialization Short Sword"; break; -case 142: sName = "Weapon Specialization Rapier"; break; -case 143: sName = "Weapon Specialization Scimitar"; break; -case 144: sName = "Weapon Specialization Long Sword"; break; -case 145: sName = "Weapon Specialization Great Sword"; break; -case 146: sName = "Weapon Specialization Hand Axe"; break; -case 147: sName = "Weapon Specialization Throwing Axe"; break; -case 148: sName = "Weapon Specialization Battle Axe"; break; -case 149: sName = "Weapon Specialization Great Axe"; break; - } - } - } - else if (nFeat < 200) - { - if (nFeat < 160) - { - switch (nFeat) - { -case 150: sName = "Weapon Specialization Halberd"; break; -case 151: sName = "Weapon Specialization Light Hammer"; break; -case 152: sName = "Weapon Specialization Light Flail"; break; -case 153: sName = "Weapon Specialization War Hammer"; break; -case 154: sName = "Weapon Specialization Heavy Flail"; break; -case 155: sName = "Weapon Specialization Kama"; break; -case 156: sName = "Weapon Specialization Kukri"; break; -case 158: sName = "Weapon Specialization Shuriken"; break; -case 159: sName = "Weapon Specialization Scythe"; break; - } - } - else if (nFeat < 170) - { - switch (nFeat) - { -case 160: sName = "Weapon Specialization Katana"; break; -case 161: sName = "Weapon Specialization Bastard Sword"; break; -case 163: sName = "Weapon Specialization Dire Mace"; break; -case 164: sName = "Weapon Specialization Double Axe"; break; -case 165: sName = "Weapon Specialization Two Bladed Sword"; break; -case 166: sName = "Spell Focus Conjuration"; break; -case 167: sName = "Spell Focus Divination"; break; -case 168: sName = "Spell Focus Enchantment"; break; -case 169: sName = "Spell Focus Evocation"; break; - } - } - else if (nFeat < 180) - { - switch (nFeat) - { -case 170: sName = "Spell Focus Illusion"; break; -case 171: sName = "Spell Focus Necromancy"; break; -case 172: sName = "Spell Focus Transmutation"; break; -case 173: sName = "Skill Focus Concentration"; break; -case 174: sName = "Skill Focus Disable Trap"; break; -case 175: sName = "Skill Focus Discipline"; break; -case 177: sName = "Skill Focus Heal"; break; -case 178: sName = "Skill Focus Hide"; break; -case 179: sName = "Skill Focus Listen"; break; - } - } - else if (nFeat < 190) - { - switch (nFeat) - { -case 180: sName = "Skill Focus Lore"; break; -case 181: sName = "Skill Focus Move Silently"; break; -case 182: sName = "Skill Focus Open Lock"; break; -case 183: sName = "Skill Focus Parry"; break; -case 184: sName = "Skill Focus Perform"; break; -case 185: sName = "Skill Focus Persuade"; break; -case 186: sName = "Skill Focus Pick Pocket"; break; -case 187: sName = "Skill Focus Search"; break; -case 188: sName = "Skill Focus Set Trap"; break; -case 189: sName = "Skill Focus Spellcraft"; break; - } - } - else //<200 - { - switch (nFeat) - { -case 190: sName = "Skill Focus Spot"; break; -case 192: sName = "Skill Focus Taunt"; break; -case 193: sName = "Skill Focus Use Magic Device"; break; -case 194: sName = "Barbarian Endurance"; break; -case 195: sName = "Uncanny Dodge 1"; break; -case 196: sName = "Damage Reduction"; break; -case 197: sName = "Bardic Knowledge"; break; -case 198: sName = "Nature Sense"; break; -case 199: sName = "Animal Companion"; break; - } - } - } - else //<250 - { - if (nFeat < 210) - { - switch (nFeat) - { -case 200: sName = "Woodland Stride"; break; -case 201: sName = "Trackless Step"; break; -case 202: sName = "Resist Natures Lure"; break; -case 203: sName = "Venom Immunity"; break; -case 204: sName = "Flurry Of Blows"; break; -case 206: sName = "Evasion"; break; -case 207: sName = "Monk Endurance"; break; -case 208: sName = "Still Mind"; break; -case 209: sName = "Purity Of Body"; break; - } - } - else if (nFeat < 220) - { - switch (nFeat) - { -case 211: sName = "Wholeness Of Body"; break; -case 212: sName = "Improved Evasion"; break; -case 213: sName = "Ki Strike"; break; -case 214: sName = "Diamond Body"; break; -case 215: sName = "Diamond Soul"; break; -case 216: sName = "Perfect Self"; break; -case 217: sName = "Divine Grace"; break; -case 219: sName = "Divine Health"; break; - } - } - else if (nFeat < 230) - { - switch (nFeat) - { -case 221: sName = "Sneak Attack"; break; -case 222: sName = "Crippling Strike"; break; -case 223: sName = "Defensive Roll"; break; -case 224: sName = "Opportunist"; break; -case 225: sName = "Skill Mastery"; break; -case 226: sName = "Uncanny Reflex"; break; -case 227: sName = "Stonecunning"; break; -case 228: sName = "Darkvision"; break; -case 229: sName = "Hardiness Versus Poisons"; break; - } - } - else if (nFeat < 240) - { - switch (nFeat) - { -case 230: sName = "Hardiness Versus Spells"; break; -case 231: sName = "Battle Training Versus Orcs"; break; -case 232: sName = "Battle Training Versus Goblins"; break; -case 233: sName = "Battle Training Versus Giants"; break; -case 234: sName = "Skill Affinity Lore"; break; -case 235: sName = "Immunity To Sleep"; break; -case 236: sName = "Hardiness Versus Enchantments"; break; -case 237: sName = "Skill Affinity Listen"; break; -case 238: sName = "Skill Affinity Search"; break; -case 239: sName = "Skill Affinity Spot"; break; - } - } - else //<250 - { - switch (nFeat) - { -case 240: sName = "Keen Sense"; break; -case 241: sName = "Hardiness Versus Illusions"; break; -case 242: sName = "Battle Training Versus Reptilians"; break; -case 243: sName = "Skill Affinity Concentration"; break; -case 244: sName = "Partial Skill Affinity Listen"; break; -case 245: sName = "Partial Skill Affinity Search"; break; -case 246: sName = "Partial Skill Affinity Spot"; break; -case 247: sName = "Skill Affinity Move Silently"; break; -case 248: sName = "Lucky"; break; -case 249: sName = "Fearless"; break; - } - } - } - } -else if (nFeat < 500) - { - if (nFeat < 300) - { - if (nFeat < 260) - { - switch (nFeat) - { -case 250: sName = "Good Aim"; break; -case 251: sName = "Uncanny Dodge 2"; break; -case 252: sName = "Uncanny Dodge 3"; break; -case 253: sName = "Uncanny Dodge 4"; break; -case 254: sName = "Uncanny Dodge 5"; break; -case 255: sName = "Uncanny Dodge 6"; break; -case 256: sName = "Weapon Proficiency Elf"; break; -case 257: sName = "Bard Songs"; break; -case 258: sName = "Quick To Master"; break; -case 259: sName = "Slippery Mind"; break; - } - } - else if (nFeat < 270) - { - switch (nFeat) - { -case 260: sName = "Monk Ac Bonus"; break; -case 261: sName = "Favored Enemy Dwarf"; break; -case 262: sName = "Favored Enemy Elf"; break; -case 263: sName = "Favored Enemy Gnome"; break; -case 264: sName = "Favored Enemy Halfling"; break; -case 265: sName = "Favored Enemy Halfelf"; break; -case 266: sName = "Favored Enemy Halforc"; break; -case 267: sName = "Favored Enemy Human"; break; -case 268: sName = "Favored Enemy Aberration"; break; -case 269: sName = "Favored Enemy Animal"; break; - } - } - else if (nFeat < 280) - { - switch (nFeat) - { -case 270: sName = "Favored Enemy Beast"; break; -case 271: sName = "Favored Enemy Construct"; break; -case 272: sName = "Favored Enemy Dragon"; break; -case 273: sName = "Favored Enemy Goblinoid"; break; -case 274: sName = "Favored Enemy Monstrous"; break; -case 275: sName = "Favored Enemy Orc"; break; -case 276: sName = "Favored Enemy Reptilian"; break; -case 277: sName = "Favored Enemy Elemental"; break; -case 278: sName = "Favored Enemy Fey"; break; -case 279: sName = "Favored Enemy Giant"; break; - } - } - else if (nFeat < 290) - { - switch (nFeat) - { -case 280: sName = "Favored Enemy Magical Beast"; break; -case 281: sName = "Favored Enemy Outsider"; break; -case 284: sName = "Favored Enemy Shapechanger"; break; -case 285: sName = "Favored Enemy Undead"; break; -case 286: sName = "Favored Enemy Vermin"; break; -case 289: sName = "Weapon Proficiency Creature"; break; - } - } - else //<300 - { - switch (nFeat) - { -case 290: sName = "Weapon Specialization Creature"; break; -case 291: sName = "Weapon Focus Creature"; break; -case 292: sName = "Improved Critical Creature"; break; -case 293: sName = "Barbarian Rage"; break; -case 294: sName = "Turn Undead"; break; -case 296: sName = "Quivering Palm"; break; -case 297: sName = "Empty Body"; break; -case 299: sName = "Lay On Hands"; break; - } - } - } - else if (nFeat < 350) - { - if (nFeat < 310) - { - switch (nFeat) - { -case 300: sName = "Aura Of Courage"; break; -case 301: sName = "Smite Evil"; break; -case 302: sName = "Remove Disease"; break; -case 303: sName = "Summon Familiar"; break; -case 304: sName = "Elemental Shape"; break; -case 305: sName = "Wild Shape"; break; -case 306: sName = "War Domain Power"; break; -case 307: sName = "Strength Domain Power"; break; -case 308: sName = "Protection Domain Power"; break; -case 309: sName = "Luck Domain Power"; break; - } - } - else if (nFeat < 320) - { - switch (nFeat) - { -case 310: sName = "Death Domain Power"; break; -case 311: sName = "Air Domain Power"; break; -case 312: sName = "Animal Domain Power"; break; -case 313: sName = "Destruction Domain Power"; break; -case 314: sName = "Earth Domain Power"; break; -case 315: sName = "Evil Domain Power"; break; -case 316: sName = "Fire Domain Power"; break; -case 317: sName = "Good Domain Power"; break; -case 318: sName = "Healing Domain Power"; break; -case 319: sName = "Knowledge Domain Power"; break; - } - } - else if (nFeat < 330) - { - switch (nFeat) - { -case 320: sName = "Magic Domain Power"; break; -case 321: sName = "Plant Domain Power"; break; -case 322: sName = "Sun Domain Power"; break; -case 323: sName = "Travel Domain Power"; break; -case 324: sName = "Trickery Domain Power"; break; -case 325: sName = "Water Domain Power"; break; -case 326: sName = "Barbarian Rage"; break; -case 327: sName = "Barbarian Rage"; break; -case 328: sName = "Barbarian Rage"; break; -case 329: sName = "Barbarian Rage"; break; - } - } - else if (nFeat < 340) - { - switch (nFeat) - { -case 330: sName = "Barbarian Rage"; break; -case 331: sName = "Barbarian Rage"; break; -case 332: sName = "Damage Reduction"; break; -case 333: sName = "Damage Reduction"; break; -case 334: sName = "Damage Reduction"; break; -case 335: sName = "Wild Shape"; break; -case 336: sName = "Wild Shape"; break; -case 337: sName = "Wild Shape"; break; -case 338: sName = "Wild Shape"; break; -case 339: sName = "Wild Shape"; break; - } - } - else //<350 - { - switch (nFeat) - { -case 340: sName = "Elemental Shape"; break; -case 341: sName = "Elemental Shape"; break; -case 342: sName = "Elemental Shape"; break; -case 343: sName = "Ki Strike"; break; -case 344: sName = "Ki Strike"; break; -case 345: sName = "Sneak Attack"; break; -case 346: sName = "Sneak Attack"; break; -case 347: sName = "Sneak Attack"; break; -case 348: sName = "Sneak Attack"; break; -case 349: sName = "Sneak Attack"; break; - } - } - } - else if (nFeat < 400) - { - if (nFeat < 360) - { - switch (nFeat) - { -case 350: sName = "Sneak Attack"; break; -case 351: sName = "Sneak Attack"; break; -case 352: sName = "Sneak Attack"; break; -case 353: sName = "Sneak Attack"; break; -case 354: sName = "Lowlightvision"; break; -case 355: sName = "Bard Songs"; break; -case 356: sName = "Bard Songs"; break; -case 357: sName = "Bard Songs"; break; -case 358: sName = "Bard Songs"; break; -case 359: sName = "Bard Songs"; break; - } - } - else if (nFeat < 370) - { - switch (nFeat) - { -case 360: sName = "Bard Songs"; break; -case 361: sName = "Bard Songs"; break; -case 362: sName = "Bard Songs"; break; -case 363: sName = "Bard Songs"; break; -case 364: sName = "Bard Songs"; break; -case 365: sName = "Bard Songs"; break; -case 366: sName = "Bard Songs"; break; -case 367: sName = "Bard Songs"; break; -case 368: sName = "Bard Songs"; break; -case 369: sName = "Bard Songs"; break; - } - } - else if (nFeat < 380) - { - switch (nFeat) - { -case 370: sName = "Bard Songs"; break; -case 371: sName = "Bard Songs"; break; -case 372: sName = "Bard Songs"; break; -case 373: sName = "Bard Songs"; break; -case 374: sName = "Ambidexterity"; break; -case 375: sName = "Ambidexterity"; break; -case 377: sName = "Improved Initiative"; break; -case 378: sName = "Artist"; break; -case 379: sName = "Blooded"; break; - } - } - else if (nFeat < 390) - { - switch (nFeat) - { -case 380: sName = "Bullheaded"; break; -case 381: sName = "Courteous Magocracy"; break; -case 382: sName = "Luck Of Heroes"; break; -case 383: sName = "Resist Poison"; break; -case 384: sName = "Silver Palm"; break; -case 385: sName = "Smooth Talk"; break; -case 386: sName = "Snake Blood"; break; -case 387: sName = "Stealthy"; break; -case 388: sName = "Strong Soul"; break; -case 389: sName = "Expertise"; break; - } - } - else //<400 - { - switch (nFeat) - { -case 390: sName = "Improved Expertise"; break; -case 391: sName = "Great Cleave"; break; -case 392: sName = "Spring Attack"; break; -case 393: sName = "Greater Spell Focus Abjuration"; break; -case 394: sName = "Greater Spell Focus Conjuration"; break; -case 395: sName = "Greater Spell Focus Divination"; break; -case 396: sName = "Greater Spell Focus Enchantment"; break; -case 397: sName = "Greater Spell Focus Evocation"; break; -case 398: sName = "Greater Spell Focus Illusion"; break; -case 399: sName = "Greater Spell Focus Necromancy"; break; - } - } - } - else if (nFeat < 450) - { - if (nFeat < 410) - { - switch (nFeat) - { -case 400: sName = "Greater Spell Focus Transmutation"; break; -case 401: sName = "Greater Spell Penetration"; break; -case 402: sName = "Thug"; break; -case 403: sName = "Mercantile Background"; break; -case 404: sName = "Skill Focus Appraise"; break; -case 406: sName = "Skill Focus Tumble"; break; -case 407: sName = "Skill Focus Craft Trap"; break; -case 408: sName = "Blind Fight"; break; -case 409: sName = "Circle Kick"; break; - } - } - else if (nFeat < 420) - { - switch (nFeat) - { -case 410: sName = "Extra Stunning Attack"; break; -case 411: sName = "Rapid Reload"; break; -case 412: sName = "Zen Archery"; break; -case 413: sName = "Divine Might"; break; -case 414: sName = "Divine Shield"; break; -case 415: sName = "Arcane Defense Abjuration"; break; -case 416: sName = "Arcane Defense Conjuration"; break; -case 417: sName = "Arcane Defense Divination"; break; -case 418: sName = "Arcane Defense Enchatment"; break; -case 419: sName = "Arcane Defense Evocation"; break; - } - } - else if (nFeat < 430) - { - switch (nFeat) - { -case 420: sName = "Arcane Defense Illusion"; break; -case 421: sName = "Arcane Defense Necromancy"; break; -case 422: sName = "Arcane Defense Transmutation"; break; -case 423: sName = "Extra Music"; break; -case 424: sName = "Lingering Song"; break; -case 425: sName = "Dirty Fighting"; break; -case 426: sName = "Resist Disease"; break; -case 427: sName = "Resist Energy Cold"; break; -case 428: sName = "Resist Energy Acid"; break; -case 429: sName = "Resist Energy Fire"; break; - } - } - else if (nFeat < 440) - { - switch (nFeat) - { -case 430: sName = "Resist Energy Electrical"; break; -case 431: sName = "Resist Energy Sonic"; break; -case 433: sName = "Hide In Plain Sight"; break; -case 434: sName = "Shadow Daze"; break; -case 435: sName = "Summon Shadow"; break; -case 436: sName = "Shadow Evade"; break; -case 437: sName = "Deneirs Eye"; break; -case 438: sName = "Tymoras Smile"; break; -case 439: sName = "Lliiras Heart"; break; - } - } - else //<450 - { - switch (nFeat) - { -case 440: sName = "Craft Harper Item"; break; -case 441: sName = "Harper Sleep"; break; -case 442: sName = "Harper Cats Grace"; break; -case 443: sName = "Harper Eagles Splendor"; break; -case 444: sName = "Harper Invisibility"; break; -case 445: sName = "Prestige Enchant Arrow 1"; break; -case 446: sName = "Prestige Enchant Arrow 2"; break; -case 447: sName = "Prestige Enchant Arrow 3"; break; -case 448: sName = "Prestige Enchant Arrow 4"; break; -case 449: sName = "Prestige Enchant Arrow 5"; break; - } - } - } - else //<500 - { - if (nFeat < 460) - { - switch (nFeat) - { -case 450: sName = "Prestige Embue Arrow"; break; -case 451: sName = "Prestige Seeker Arrow 1"; break; -case 452: sName = "Prestige Seeker Arrow 2"; break; -case 453: sName = "Prestige Hail Of Arrows"; break; -case 454: sName = "Prestige Arrow Of Death"; break; -case 455: sName = "Prestige Death Attack 1"; break; -case 456: sName = "Prestige Death Attack 2"; break; -case 457: sName = "Prestige Death Attack 3"; break; -case 458: sName = "Prestige Death Attack 4"; break; -case 459: sName = "Prestige Death Attack 5"; break; - } - } - else if (nFeat < 470) - { - switch (nFeat) - { -case 460: sName = "Blackguard Sneak Attack 1d6"; break; -case 461: sName = "Blackguard Sneak Attack 2d6"; break; -case 462: sName = "Blackguard Sneak Attack 3d6"; break; -case 463: sName = "Prestige Poison Save 1"; break; -case 464: sName = "Prestige Poison Save 2"; break; -case 465: sName = "Prestige Poison Save 3"; break; -case 466: sName = "Prestige Poison Save 4"; break; -case 467: sName = "Prestige Poison Save 5"; break; -case 468: sName = "Prestige Spell Ghostly Visage"; break; -case 469: sName = "Prestige Darkness"; break; - } - } - else if (nFeat < 480) - { - switch (nFeat) - { -case 470: sName = "Prestige Invisibility 1"; break; -case 471: sName = "Prestige Invisibility 2"; break; -case 472: sName = "Smite Good"; break; -case 473: sName = "Prestige Dark Blessing"; break; -case 474: sName = "Inflict Light Wounds"; break; -case 475: sName = "Inflict Moderate Wounds"; break; -case 476: sName = "Inflict Serious Wounds"; break; -case 477: sName = "Inflict Critical Wounds"; break; -case 478: sName = "Bulls Strength"; break; -case 479: sName = "Contagion"; break; - } - } - else //<500 - { - switch (nFeat) - { -case 490: sName = "Epic Armor Skin"; break; -case 491: sName = "Epic Blinding Speed"; break; -case 492: sName = "Epic Damage Reduction 3"; break; -case 493: sName = "Epic Damage Reduction 6"; break; -case 494: sName = "Epic Damage Reduction 9"; break; -case 495: sName = "Epic Devastating Critical Club"; break; -case 496: sName = "Epic Devastating Critical Dagger"; break; -case 497: sName = "Epic Devastating Critical Dart"; break; -case 498: sName = "Epic Devastating Critical Heavycrossbow"; break; -case 499: sName = "Epic Devastating Critical Lightcrossbow"; break; - } - } - } - } -else if (nFeat < 750) - { - if (nFeat < 550) - { - if (nFeat < 510) - { - switch (nFeat) - { -case 500: sName = "Epic Devastating Critical Lightmace"; break; -case 501: sName = "Epic Devastating Critical Morningstar"; break; -case 502: sName = "Epic Devastating Critical Quarterstaff"; break; -case 503: sName = "Epic Devastating Critical Shortspear"; break; -case 504: sName = "Epic Devastating Critical Sickle"; break; -case 505: sName = "Epic Devastating Critical Sling"; break; -case 506: sName = "Epic Devastating Critical Unarmed"; break; -case 507: sName = "Epic Devastating Critical Longbow"; break; -case 508: sName = "Epic Devastating Critical Shortbow"; break; -case 509: sName = "Epic Devastating Critical Shortsword"; break; - } - } - else if (nFeat < 520) - { - switch (nFeat) - { -case 510: sName = "Epic Devastating Critical Rapier"; break; -case 511: sName = "Epic Devastating Critical Scimitar"; break; -case 512: sName = "Epic Devastating Critical Longsword"; break; -case 513: sName = "Epic Devastating Critical Greatsword"; break; -case 514: sName = "Epic Devastating Critical Handaxe"; break; -case 515: sName = "Epic Devastating Critical Throwingaxe"; break; -case 516: sName = "Epic Devastating Critical Battleaxe"; break; -case 517: sName = "Epic Devastating Critical Greataxe"; break; -case 518: sName = "Epic Devastating Critical Halberd"; break; -case 519: sName = "Epic Devastating Critical Lighthammer"; break; - } - } - else if (nFeat < 530) - { - switch (nFeat) - { -case 520: sName = "Epic Devastating Critical Lightflail"; break; -case 521: sName = "Epic Devastating Critical Warhammer"; break; -case 522: sName = "Epic Devastating Critical Heavyflail"; break; -case 523: sName = "Epic Devastating Critical Kama"; break; -case 524: sName = "Epic Devastating Critical Kukri"; break; -case 525: sName = "Epic Devastating Critical Shuriken"; break; -case 526: sName = "Epic Devastating Critical Scythe"; break; -case 527: sName = "Epic Devastating Critical Katana"; break; -case 528: sName = "Epic Devastating Critical Bastardsword"; break; -case 529: sName = "Epic Devastating Critical Diremace"; break; - } - } - else if (nFeat < 540) - { - switch (nFeat) - { -case 530: sName = "Epic Devastating Critical Doubleaxe"; break; -case 531: sName = "Epic Devastating Critical Twobladedsword"; break; -case 532: sName = "Epic Devastating Critical Creature"; break; -case 533: sName = "Epic Energy Resistance Cold 1"; break; -case 534: sName = "Epic Energy Resistance Cold 2"; break; -case 535: sName = "Epic Energy Resistance Cold 3"; break; -case 536: sName = "Epic Energy Resistance Cold 4"; break; -case 537: sName = "Epic Energy Resistance Cold 5"; break; -case 538: sName = "Epic Energy Resistance Cold 6"; break; -case 539: sName = "Epic Energy Resistance Cold 7"; break; - } - } - else //<550 - { - switch (nFeat) - { -case 540: sName = "Epic Energy Resistance Cold 8"; break; -case 541: sName = "Epic Energy Resistance Cold 9"; break; -case 542: sName = "Epic Energy Resistance Cold 10"; break; -case 543: sName = "Epic Energy Resistance Acid 1"; break; -case 544: sName = "Epic Energy Resistance Acid 2"; break; -case 545: sName = "Epic Energy Resistance Acid 3"; break; -case 546: sName = "Epic Energy Resistance Acid 4"; break; -case 547: sName = "Epic Energy Resistance Acid 5"; break; -case 548: sName = "Epic Energy Resistance Acid 6"; break; -case 549: sName = "Epic Energy Resistance Acid 7"; break; - } - } - } - else if (nFeat < 600) - { - if (nFeat < 560) - { - switch (nFeat) - { -case 550: sName = "Epic Energy Resistance Acid 8"; break; -case 551: sName = "Epic Energy Resistance Acid 9"; break; -case 552: sName = "Epic Energy Resistance Acid 10"; break; -case 553: sName = "Epic Energy Resistance Fire 1"; break; -case 554: sName = "Epic Energy Resistance Fire 2"; break; -case 555: sName = "Epic Energy Resistance Fire 3"; break; -case 556: sName = "Epic Energy Resistance Fire 4"; break; -case 557: sName = "Epic Energy Resistance Fire 5"; break; -case 558: sName = "Epic Energy Resistance Fire 6"; break; -case 559: sName = "Epic Energy Resistance Fire 7"; break; - } - } - else if (nFeat < 570) - { - switch (nFeat) - { -case 560: sName = "Epic Energy Resistance Fire 8"; break; -case 561: sName = "Epic Energy Resistance Fire 9"; break; -case 562: sName = "Epic Energy Resistance Fire 10"; break; -case 563: sName = "Epic Energy Resistance Electrical 1"; break; -case 564: sName = "Epic Energy Resistance Electrical 2"; break; -case 565: sName = "Epic Energy Resistance Electrical 3"; break; -case 566: sName = "Epic Energy Resistance Electrical 4"; break; -case 567: sName = "Epic Energy Resistance Electrical 5"; break; -case 568: sName = "Epic Energy Resistance Electrical 6"; break; -case 569: sName = "Epic Energy Resistance Electrical 7"; break; - } - } - else if (nFeat < 580) - { - switch (nFeat) - { -case 570: sName = "Epic Energy Resistance Electrical 8"; break; -case 571: sName = "Epic Energy Resistance Electrical 9"; break; -case 572: sName = "Epic Energy Resistance Electrical 10"; break; -case 573: sName = "Epic Energy Resistance Sonic 1"; break; -case 574: sName = "Epic Energy Resistance Sonic 2"; break; -case 575: sName = "Epic Energy Resistance Sonic 3"; break; -case 576: sName = "Epic Energy Resistance Sonic 4"; break; -case 577: sName = "Epic Energy Resistance Sonic 5"; break; -case 578: sName = "Epic Energy Resistance Sonic 6"; break; -case 579: sName = "Epic Energy Resistance Sonic 7"; break; - } - } - else if (nFeat < 590) - { - switch (nFeat) - { -case 580: sName = "Epic Energy Resistance Sonic 8"; break; -case 581: sName = "Epic Energy Resistance Sonic 9"; break; -case 582: sName = "Epic Energy Resistance Sonic 10"; break; -case 583: sName = "Epic Fortitude"; break; -case 584: sName = "Epic Prowess"; break; -case 585: sName = "Epic Reflexes"; break; -case 586: sName = "Epic Reputation"; break; -case 587: sName = "Epic Skill Focus Animal Empathy"; break; -case 588: sName = "Epic Skill Focus Appraise"; break; -case 589: sName = "Epic Skill Focus Concentration"; break; - } - } - else //<600 - { - switch (nFeat) - { -case 590: sName = "Epic Skill Focus Craft Trap"; break; -case 591: sName = "Epic Skill Focus Disabletrap"; break; -case 592: sName = "Epic Skill Focus Discipline"; break; -case 593: sName = "Epic Skill Focus Heal"; break; -case 594: sName = "Epic Skill Focus Hide"; break; -case 595: sName = "Epic Skill Focus Listen"; break; -case 596: sName = "Epic Skill Focus Lore"; break; -case 597: sName = "Epic Skill Focus Movesilently"; break; -case 598: sName = "Epic Skill Focus Openlock"; break; -case 599: sName = "Epic Skill Focus Parry"; break; - } - } - } - else if (nFeat < 650) - { - if (nFeat < 610) - { - switch (nFeat) - { -case 600: sName = "Epic Skill Focus Perform"; break; -case 601: sName = "Epic Skill Focus Persuade"; break; -case 602: sName = "Epic Skill Focus Pickpocket"; break; -case 603: sName = "Epic Skill Focus Search"; break; -case 604: sName = "Epic Skill Focus Settrap"; break; -case 605: sName = "Epic Skill Focus Spellcraft"; break; -case 606: sName = "Epic Skill Focus Spot"; break; -case 607: sName = "Epic Skill Focus Taunt"; break; -case 608: sName = "Epic Skill Focus Tumble"; break; -case 609: sName = "Epic Skill Focus Usemagicdevice"; break; - } - } - else if (nFeat < 620) - { - switch (nFeat) - { -case 610: sName = "Epic Spell Focus Abjuration"; break; -case 611: sName = "Epic Spell Focus Conjuration"; break; -case 612: sName = "Epic Spell Focus Divination"; break; -case 613: sName = "Epic Spell Focus Enchantment"; break; -case 614: sName = "Epic Spell Focus Evocation"; break; -case 615: sName = "Epic Spell Focus Illusion"; break; -case 616: sName = "Epic Spell Focus Necromancy"; break; -case 617: sName = "Epic Spell Focus Transmutation"; break; -case 618: sName = "Epic Spell Penetration"; break; -case 619: sName = "Epic Weapon Focus Club"; break; - } - } - else if (nFeat < 630) - { - switch (nFeat) - { -case 620: sName = "Epic Weapon Focus Dagger"; break; -case 621: sName = "Epic Weapon Focus Dart"; break; -case 622: sName = "Epic Weapon Focus Heavycrossbow"; break; -case 623: sName = "Epic Weapon Focus Lightcrossbow"; break; -case 624: sName = "Epic Weapon Focus Lightmace"; break; -case 625: sName = "Epic Weapon Focus Morningstar"; break; -case 626: sName = "Epic Weapon Focus Quarterstaff"; break; -case 627: sName = "Epic Weapon Focus Shortspear"; break; -case 628: sName = "Epic Weapon Focus Sickle"; break; -case 629: sName = "Epic Weapon Focus Sling"; break; - } - } - else if (nFeat < 640) - { - switch (nFeat) - { -case 630: sName = "Epic Weapon Focus Unarmed"; break; -case 631: sName = "Epic Weapon Focus Longbow"; break; -case 632: sName = "Epic Weapon Focus Shortbow"; break; -case 633: sName = "Epic Weapon Focus Shortsword"; break; -case 634: sName = "Epic Weapon Focus Rapier"; break; -case 635: sName = "Epic Weapon Focus Scimitar"; break; -case 636: sName = "Epic Weapon Focus Longsword"; break; -case 637: sName = "Epic Weapon Focus Greatsword"; break; -case 638: sName = "Epic Weapon Focus Handaxe"; break; -case 639: sName = "Epic Weapon Focus Throwingaxe"; break; - } - } - else //<650 - { - switch (nFeat) - { -case 640: sName = "Epic Weapon Focus Battleaxe"; break; -case 641: sName = "Epic Weapon Focus Greataxe"; break; -case 642: sName = "Epic Weapon Focus Halberd"; break; -case 643: sName = "Epic Weapon Focus Lighthammer"; break; -case 644: sName = "Epic Weapon Focus Lightflail"; break; -case 645: sName = "Epic Weapon Focus Warhammer"; break; -case 646: sName = "Epic Weapon Focus Heavyflail"; break; -case 647: sName = "Epic Weapon Focus Kama"; break; -case 648: sName = "Epic Weapon Focus Kukri"; break; -case 649: sName = "Epic Weapon Focus Shuriken"; break; - } - } - } - else if (nFeat < 700) - { - if (nFeat < 660) - { - switch (nFeat) - { -case 650: sName = "Epic Weapon Focus Scythe"; break; -case 651: sName = "Epic Weapon Focus Katana"; break; -case 652: sName = "Epic Weapon Focus Bastardsword"; break; -case 653: sName = "Epic Weapon Focus Diremace"; break; -case 654: sName = "Epic Weapon Focus Doubleaxe"; break; -case 655: sName = "Epic Weapon Focus Twobladedsword"; break; -case 656: sName = "Epic Weapon Focus Creature"; break; -case 657: sName = "Epic Weapon Specialization Club"; break; -case 658: sName = "Epic Weapon Specialization Dagger"; break; -case 659: sName = "Epic Weapon Specialization Dart"; break; - } - } - else if (nFeat < 670) - { - switch (nFeat) - { -case 660: sName = "Epic Weapon Specialization Heavycrossbow"; break; -case 661: sName = "Epic Weapon Specialization Lightcrossbow"; break; -case 662: sName = "Epic Weapon Specialization Lightmace"; break; -case 663: sName = "Epic Weapon Specialization Morningstar"; break; -case 664: sName = "Epic Weapon Specialization Quarterstaff"; break; -case 665: sName = "Epic Weapon Specialization Shortspear"; break; -case 666: sName = "Epic Weapon Specialization Sickle"; break; -case 667: sName = "Epic Weapon Specialization Sling"; break; -case 668: sName = "Epic Weapon Specialization Unarmed"; break; -case 669: sName = "Epic Weapon Specialization Longbow"; break; - } - } - else if (nFeat < 680) - { - switch (nFeat) - { -case 670: sName = "Epic Weapon Specialization Shortbow"; break; -case 671: sName = "Epic Weapon Specialization Shortsword"; break; -case 672: sName = "Epic Weapon Specialization Rapier"; break; -case 673: sName = "Epic Weapon Specialization Scimitar"; break; -case 674: sName = "Epic Weapon Specialization Longsword"; break; -case 675: sName = "Epic Weapon Specialization Greatsword"; break; -case 676: sName = "Epic Weapon Specialization Handaxe"; break; -case 677: sName = "Epic Weapon Specialization Throwingaxe"; break; -case 678: sName = "Epic Weapon Specialization Battleaxe"; break; -case 679: sName = "Epic Weapon Specialization Greataxe"; break; - } - } - else if (nFeat < 690) - { - switch (nFeat) - { -case 680: sName = "Epic Weapon Specialization Halberd"; break; -case 681: sName = "Epic Weapon Specialization Lighthammer"; break; -case 682: sName = "Epic Weapon Specialization Lightflail"; break; -case 683: sName = "Epic Weapon Specialization Warhammer"; break; -case 684: sName = "Epic Weapon Specialization Heavyflail"; break; -case 685: sName = "Epic Weapon Specialization Kama"; break; -case 686: sName = "Epic Weapon Specialization Kukri"; break; -case 687: sName = "Epic Weapon Specialization Shuriken"; break; -case 688: sName = "Epic Weapon Specialization Scythe"; break; -case 689: sName = "Epic Weapon Specialization Katana"; break; - } - } - else //<700 - { - switch (nFeat) - { -case 690: sName = "Epic Weapon Specialization Bastardsword"; break; -case 691: sName = "Epic Weapon Specialization Diremace"; break; -case 692: sName = "Epic Weapon Specialization Doubleaxe"; break; -case 693: sName = "Epic Weapon Specialization Twobladedsword"; break; -case 694: sName = "Epic Weapon Specialization Creature"; break; -case 695: sName = "Epic Will"; break; -case 696: sName = "Epic Improved Combat Casting"; break; -case 697: sName = "Epic Improved Ki Strike 4"; break; -case 698: sName = "Epic Improved Ki Strike 5"; break; -case 699: sName = "Epic Improved Spell Resistance 1"; break; - } - } - } - else //<750 - { - if (nFeat < 710) - { - switch (nFeat) - { -case 700: sName = "Epic Improved Spell Resistance 2"; break; -case 701: sName = "Epic Improved Spell Resistance 3"; break; -case 702: sName = "Epic Improved Spell Resistance 4"; break; -case 703: sName = "Epic Improved Spell Resistance 5"; break; -case 704: sName = "Epic Improved Spell Resistance 6"; break; -case 705: sName = "Epic Improved Spell Resistance 7"; break; -case 706: sName = "Epic Improved Spell Resistance 8"; break; -case 707: sName = "Epic Improved Spell Resistance 9"; break; -case 708: sName = "Epic Improved Spell Resistance 10"; break; -case 709: sName = "Epic Overwhelming Critical Club"; break; - } - } - else if (nFeat < 720) - { - switch (nFeat) - { -case 710: sName = "Epic Overwhelming Critical Dagger"; break; -case 711: sName = "Epic Overwhelming Critical Dart"; break; -case 712: sName = "Epic Overwhelming Critical Heavycrossbow"; break; -case 713: sName = "Epic Overwhelming Critical Lightcrossbow"; break; -case 714: sName = "Epic Overwhelming Critical Lightmace"; break; -case 715: sName = "Epic Overwhelming Critical Morningstar"; break; -case 716: sName = "Epic Overwhelming Critical Quarterstaff"; break; -case 717: sName = "Epic Overwhelming Critical Shortspear"; break; -case 718: sName = "Epic Overwhelming Critical Sickle"; break; -case 719: sName = "Epic Overwhelming Critical Sling"; break; - } - } - else if (nFeat < 730) - { - switch (nFeat) - { -case 720: sName = "Epic Overwhelming Critical Unarmed"; break; -case 721: sName = "Epic Overwhelming Critical Longbow"; break; -case 722: sName = "Epic Overwhelming Critical Shortbow"; break; -case 723: sName = "Epic Overwhelming Critical Shortsword"; break; -case 724: sName = "Epic Overwhelming Critical Rapier"; break; -case 725: sName = "Epic Overwhelming Critical Scimitar"; break; -case 726: sName = "Epic Overwhelming Critical Longsword"; break; -case 727: sName = "Epic Overwhelming Critical Greatsword"; break; -case 728: sName = "Epic Overwhelming Critical Handaxe"; break; -case 729: sName = "Epic Overwhelming Critical Throwingaxe"; break; - } - } - else if (nFeat < 740) - { - switch (nFeat) - { -case 730: sName = "Epic Overwhelming Critical Battleaxe"; break; -case 731: sName = "Epic Overwhelming Critical Greataxe"; break; -case 732: sName = "Epic Overwhelming Critical Halberd"; break; -case 733: sName = "Epic Overwhelming Critical Lighthammer"; break; -case 734: sName = "Epic Overwhelming Critical Lightflail"; break; -case 735: sName = "Epic Overwhelming Critical Warhammer"; break; -case 736: sName = "Epic Overwhelming Critical Heavyflail"; break; -case 737: sName = "Epic Overwhelming Critical Kama"; break; -case 738: sName = "Epic Overwhelming Critical Kukri"; break; -case 739: sName = "Epic Overwhelming Critical Shuriken"; break; - } - } - else //750 - { - switch (nFeat) - { -case 740: sName = "Epic Overwhelming Critical Scythe"; break; -case 741: sName = "Epic Overwhelming Critical Katana"; break; -case 742: sName = "Epic Overwhelming Critical Bastardsword"; break; -case 743: sName = "Epic Overwhelming Critical Diremace"; break; -case 744: sName = "Epic Overwhelming Critical Doubleaxe"; break; -case 745: sName = "Epic Overwhelming Critical Twobladedsword"; break; -case 746: sName = "Epic Overwhelming Critical Creature"; break; -case 747: sName = "Epic Perfect Health"; break; -case 748: sName = "Epic Self Concealment 1"; break; -case 749: sName = "Epic Self Concealment 2"; break; - } - } - } - } -else - { - if (nFeat < 800) - { - if (nFeat < 760) - { - switch (nFeat) - { -case 750: sName = "Epic Self Concealment 3"; break; -case 751: sName = "Epic Self Concealment 4"; break; -case 752: sName = "Epic Self Concealment 5"; break; -case 753: sName = "Epic Superior Initiative"; break; -case 754: sName = "Epic Toughness 1"; break; -case 755: sName = "Epic Toughness 2"; break; -case 756: sName = "Epic Toughness 3"; break; -case 757: sName = "Epic Toughness 4"; break; -case 758: sName = "Epic Toughness 5"; break; -case 759: sName = "Epic Toughness 6"; break; - } - } - else if (nFeat < 770) - { - switch (nFeat) - { -case 760: sName = "Epic Toughness 7"; break; -case 761: sName = "Epic Toughness 8"; break; -case 762: sName = "Epic Toughness 9"; break; -case 763: sName = "Epic Toughness 10"; break; -case 764: sName = "Epic Great Charisma 1"; break; -case 765: sName = "Epic Great Charisma 2"; break; -case 766: sName = "Epic Great Charisma 3"; break; -case 767: sName = "Epic Great Charisma 4"; break; -case 768: sName = "Epic Great Charisma 5"; break; -case 769: sName = "Epic Great Charisma 6"; break; - } - } - else if (nFeat < 780) - { - switch (nFeat) - { -case 770: sName = "Epic Great Charisma 7"; break; -case 771: sName = "Epic Great Charisma 8"; break; -case 772: sName = "Epic Great Charisma 9"; break; -case 773: sName = "Epic Great Charisma 10"; break; -case 774: sName = "Epic Great Constitution 1"; break; -case 775: sName = "Epic Great Constitution 2"; break; -case 776: sName = "Epic Great Constitution 3"; break; -case 777: sName = "Epic Great Constitution 4"; break; -case 778: sName = "Epic Great Constitution 5"; break; -case 779: sName = "Epic Great Constitution 6"; break; - } - } - else if (nFeat < 790) - { - switch (nFeat) - { -case 780: sName = "Epic Great Constitution 7"; break; -case 781: sName = "Epic Great Constitution 8"; break; -case 782: sName = "Epic Great Constitution 9"; break; -case 783: sName = "Epic Great Constitution 10"; break; -case 784: sName = "Epic Great Dexterity 1"; break; -case 785: sName = "Epic Great Dexterity 2"; break; -case 786: sName = "Epic Great Dexterity 3"; break; -case 787: sName = "Epic Great Dexterity 4"; break; -case 788: sName = "Epic Great Dexterity 5"; break; -case 789: sName = "Epic Great Dexterity 6"; break; - } - } - else //<800 - { - switch (nFeat) - { -case 790: sName = "Epic Great Dexterity 7"; break; -case 791: sName = "Epic Great Dexterity 8"; break; -case 792: sName = "Epic Great Dexterity 9"; break; -case 793: sName = "Epic Great Dexterity 10"; break; -case 794: sName = "Epic Great Intelligence 1"; break; -case 795: sName = "Epic Great Intelligence 2"; break; -case 796: sName = "Epic Great Intelligence 3"; break; -case 797: sName = "Epic Great Intelligence 4"; break; -case 798: sName = "Epic Great Intelligence 5"; break; -case 799: sName = "Epic Great Intelligence 6"; break; - } - } - } - else if (nFeat < 850) - { - if (nFeat < 810) - { - switch (nFeat) - { -case 800: sName = "Epic Great Intelligence 7"; break; -case 801: sName = "Epic Great Intelligence 8"; break; -case 802: sName = "Epic Great Intelligence 9"; break; -case 803: sName = "Epic Great Intelligence 10"; break; -case 804: sName = "Epic Great Wisdom 1"; break; -case 805: sName = "Epic Great Wisdom 2"; break; -case 806: sName = "Epic Great Wisdom 3"; break; -case 807: sName = "Epic Great Wisdom 4"; break; -case 808: sName = "Epic Great Wisdom 5"; break; -case 809: sName = "Epic Great Wisdom 6"; break; - } - } - else if (nFeat < 820) - { - switch (nFeat) - { -case 810: sName = "Epic Great Wisdom 7"; break; -case 811: sName = "Epic Great Wisdom 8"; break; -case 812: sName = "Epic Great Wisdom 9"; break; -case 813: sName = "Epic Great Wisdom 10"; break; -case 814: sName = "Epic Great Strength 1"; break; -case 815: sName = "Epic Great Strength 2"; break; -case 816: sName = "Epic Great Strength 3"; break; -case 817: sName = "Epic Great Strength 4"; break; -case 818: sName = "Epic Great Strength 5"; break; -case 819: sName = "Epic Great Strength 6"; break; - } - } - else if (nFeat < 830) - { - switch (nFeat) - { -case 820: sName = "Epic Great Strength 7"; break; -case 821: sName = "Epic Great Strength 8"; break; -case 822: sName = "Epic Great Strength 9"; break; -case 823: sName = "Epic Great Strength 10"; break; -case 824: sName = "Epic Great Smiting 1"; break; -case 825: sName = "Epic Great Smiting 2"; break; -case 826: sName = "Epic Great Smiting 3"; break; -case 827: sName = "Epic Great Smiting 4"; break; -case 828: sName = "Epic Great Smiting 5"; break; -case 829: sName = "Epic Great Smiting 6"; break; - } - } - else if (nFeat < 840) - { - switch (nFeat) - { -case 830: sName = "Epic Great Smiting 7"; break; -case 831: sName = "Epic Great Smiting 8"; break; -case 832: sName = "Epic Great Smiting 9"; break; -case 833: sName = "Epic Great Smiting 10"; break; -case 834: sName = "Epic Improved Sneak Attack 1"; break; -case 835: sName = "Epic Improved Sneak Attack 2"; break; -case 836: sName = "Epic Improved Sneak Attack 3"; break; -case 837: sName = "Epic Improved Sneak Attack 4"; break; -case 838: sName = "Epic Improved Sneak Attack 5"; break; -case 839: sName = "Epic Improved Sneak Attack 6"; break; - } - } - else //<850 - { - switch (nFeat) - { -case 840: sName = "Epic Improved Sneak Attack 7"; break; -case 841: sName = "Epic Improved Sneak Attack 8"; break; -case 842: sName = "Epic Improved Sneak Attack 9"; break; -case 843: sName = "Epic Improved Sneak Attack 10"; break; -case 844: sName = "Epic Improved Stunning Fist 1"; break; -case 845: sName = "Epic Improved Stunning Fist 2"; break; -case 846: sName = "Epic Improved Stunning Fist 3"; break; -case 847: sName = "Epic Improved Stunning Fist 4"; break; -case 848: sName = "Epic Improved Stunning Fist 5"; break; -case 849: sName = "Epic Improved Stunning Fist 6"; break; - } - } - } - else if (nFeat < 900) - { - if (nFeat < 860) - { - switch (nFeat) - { -case 850: sName = "Epic Improved Stunning Fist 7"; break; -case 851: sName = "Epic Improved Stunning Fist 8"; break; -case 852: sName = "Epic Improved Stunning Fist 9"; break; -case 853: sName = "Epic Improved Stunning Fist 10"; break; -case 854: sName = "Epic Planar Turning"; break; -case 855: sName = "Epic Bane Of Enemies"; break; -case 856: sName = "Epic Dodge"; break; -case 857: sName = "Epic Automatic Quicken 1"; break; -case 858: sName = "Epic Automatic Quicken 2"; break; -case 859: sName = "Epic Automatic Quicken 3"; break; - } - } - else if (nFeat < 870) - { - switch (nFeat) - { -case 860: sName = "Epic Automatic Silent Spell 1"; break; -case 861: sName = "Epic Automatic Silent Spell 2"; break; -case 862: sName = "Epic Automatic Silent Spell 3"; break; -case 863: sName = "Epic Automatic Still Spell 1"; break; -case 864: sName = "Epic Automatic Still Spell 2"; break; -case 865: sName = "Epic Automatic Still Spell 3"; break; -case 867: sName = "Whirlwind Attack"; break; -case 868: sName = "Improved Whirlwind"; break; -case 869: sName = "Mighty Rage"; break; - } - } - else if (nFeat < 880) - { - switch (nFeat) - { -case 870: sName = "Epic Lasting Inspiration"; break; -case 871: sName = "Curse Song"; break; -case 872: sName = "Wild Shape Undead"; break; -case 873: sName = "Wild Shape Dragon"; break; -case 874: sName = "Epic Spell Mummy Dust"; break; -case 875: sName = "Epic Spell Dragon Knight"; break; -case 876: sName = "Epic Spell Hellball"; break; -case 877: sName = "Epic Spell Mage Armour"; break; -case 878: sName = "Epic Spell Ruin"; break; -case 879: sName = "Weapon Of Choice Sickle"; break; - } - } - else if (nFeat < 890) - { - switch (nFeat) - { -case 880: sName = "Weapon Of Choice Kama"; break; -case 881: sName = "Weapon Of Choice Kukri"; break; -case 882: sName = "Ki Damage"; break; -case 883: sName = "Increase Multiplier"; break; -case 884: sName = "Superior Weapon Focus"; break; -case 885: sName = "Ki Critical"; break; -case 886: sName = "Bone Skin 2"; break; -case 889: sName = "Animate Dead"; break; - } - } - else //<900 - { - switch (nFeat) - { -case 890: sName = "Summon Undead"; break; -case 891: sName = "Deathless Vigor"; break; -case 892: sName = "Undead Graft 1"; break; -case 893: sName = "Undead Graft 2"; break; -case 894: sName = "Tough As Bone"; break; -case 895: sName = "Summon Greater Undead"; break; -case 896: sName = "Deathless Mastery"; break; -case 897: sName = "Deathless Master Touch"; break; -case 898: sName = "Greater Wildshape 1"; break; - } - } - } - else if (nFeat < 950) - { - if (nFeat < 910) - { - switch (nFeat) - { -case 900: sName = "Greater Wildshape 2"; break; -case 901: sName = "Greater Wildshape 3"; break; -case 902: sName = "Humanoid Shape"; break; -case 903: sName = "Greater Wildshape 4"; break; -case 904: sName = "Sacred Defense 1"; break; -case 905: sName = "Sacred Defense 2"; break; -case 906: sName = "Sacred Defense 3"; break; -case 907: sName = "Sacred Defense 4"; break; -case 908: sName = "Sacred Defense 5"; break; -case 909: sName = "Divine Wrath"; break; - } - } - else if (nFeat < 920) - { - switch (nFeat) - { -case 910: sName = "Extra Smiting"; break; -case 911: sName = "Skill Focus Craft Armor"; break; -case 912: sName = "Skill Focus Craft Weapon"; break; -case 913: sName = "Epic Skill Focus Craft Armor"; break; -case 914: sName = "Epic Skill Focus Craft Weapon"; break; -case 915: sName = "Skill Focus Bluff"; break; -case 916: sName = "Skill Focus Intimidate"; break; -case 917: sName = "Epic Skill Focus Bluff"; break; -case 918: sName = "Epic Skill Focus Intimidate"; break; -case 919: sName = "Weapon Of Choice Club"; break; - } - } - else if (nFeat < 930) - { - switch (nFeat) - { -case 920: sName = "Weapon Of Choice Dagger"; break; -case 921: sName = "Weapon Of Choice Lightmace"; break; -case 922: sName = "Weapon Of Choice Morningstar"; break; -case 923: sName = "Weapon Of Choice Quarterstaff"; break; -case 924: sName = "Weapon Of Choice Shortspear"; break; -case 925: sName = "Weapon Of Choice Shortsword"; break; -case 926: sName = "Weapon Of Choice Rapier"; break; -case 927: sName = "Weapon Of Choice Scimitar"; break; -case 928: sName = "Weapon Of Choice Longsword"; break; -case 929: sName = "Weapon Of Choice Greatsword"; break; - } - } - else if (nFeat < 940) - { - switch (nFeat) - { -case 930: sName = "Weapon Of Choice Handaxe"; break; -case 931: sName = "Weapon Of Choice Battleaxe"; break; -case 932: sName = "Weapon Of Choice Greataxe"; break; -case 933: sName = "Weapon Of Choice Halberd"; break; -case 934: sName = "Weapon Of Choice Lighthammer"; break; -case 935: sName = "Weapon Of Choice Lightflail"; break; -case 936: sName = "Weapon Of Choice Warhammer"; break; -case 937: sName = "Weapon Of Choice Heavyflail"; break; -case 938: sName = "Weapon Of Choice Scythe"; break; -case 939: sName = "Weapon Of Choice Katana"; break; - } - } - else //<950 - { - switch (nFeat) - { -case 940: sName = "Weapon Of Choice Bastardsword"; break; -case 941: sName = "Weapon Of Choice Diremace"; break; -case 942: sName = "Weapon Of Choice Doubleaxe"; break; -case 943: sName = "Weapon Of Choice Twobladedsword"; break; -case 944: sName = "Brew Potion"; break; -case 945: sName = "Scribe Scroll"; break; -case 946: sName = "Craft Wand"; break; -case 947: sName = "Dwarven Defender Defensive Stance"; break; -case 948: sName = "Damage Reduction 6"; break; -case 949: sName = "Prestige Defensive Awareness 1"; break; - } - } - } - else if (nFeat < 1000) - { - if (nFeat < 960) - { - switch (nFeat) - { -case 950: sName = "Prestige Defensive Awareness 2"; break; -case 951: sName = "Prestige Defensive Awareness 3"; break; -case 952: sName = "Weapon Focus Dwaxe"; break; -case 953: sName = "Weapon Specialization Dwaxe"; break; -case 954: sName = "Improved Critical Dwaxe"; break; -case 955: sName = "Epic Devastating Critical Dwaxe"; break; -case 956: sName = "Epic Weapon Focus Dwaxe"; break; -case 957: sName = "Epic Weapon Specialization Dwaxe"; break; -case 958: sName = "Epic Overwhelming Critical Dwaxe"; break; -case 959: sName = "Weapon Of Choice Dwaxe"; break; - } - } - else if (nFeat < 970) - { - switch (nFeat) - { -case 960: sName = "Use Poison"; break; -case 961: sName = "Dragon Armor"; break; -case 962: sName = "Dragon Abilities"; break; -case 963: sName = "Dragon Immune Paralysis"; break; -case 964: sName = "Dragon Immune Fire"; break; -case 965: sName = "Dragon Dis Breath"; break; -case 966: sName = "Epic Fighter"; break; -case 967: sName = "Epic Barbarian"; break; -case 968: sName = "Epic Bard"; break; -case 969: sName = "Epic Cleric"; break; - } - } - else if (nFeat < 980) - { - switch (nFeat) - { -case 970: sName = "Epic Druid"; break; -case 971: sName = "Epic Monk"; break; -case 972: sName = "Epic Paladin"; break; -case 973: sName = "Epic Ranger"; break; -case 974: sName = "Epic Rogue"; break; -case 975: sName = "Epic Sorcerer"; break; -case 976: sName = "Epic Wizard"; break; -case 977: sName = "Epic Arcane Archer"; break; -case 978: sName = "Epic Assassin"; break; -case 979: sName = "Epic Blackguard"; break; - } - } - else if (nFeat < 990) - { - switch (nFeat) - { -case 980: sName = "Epic Shadowdancer"; break; -case 981: sName = "Epic Harper Scout"; break; -case 982: sName = "Epic Divine Champion"; break; -case 983: sName = "Epic Weapon Master"; break; -case 984: sName = "Epic Pale Master"; break; -case 985: sName = "Epic Dwarven Defender"; break; -case 986: sName = "Epic Shifter"; break; -case 987: sName = "Epic Red Dragon Disc"; break; -case 988: sName = "Epic Thundering Rage"; break; -case 989: sName = "Epic Terrifying Rage"; break; - } - } - else //<1000 - { - switch (nFeat) - { -case 990: sName = "Epic Spell Epic Warding"; break; -case 991: sName = "Prestige Master Crafter"; break; -case 992: sName = "Prestige Scrounger"; break; -case 993: sName = "Weapon Focus Whip"; break; -case 994: sName = "Weapon Specialization Whip"; break; -case 995: sName = "Improved Critical Whip"; break; -case 996: sName = "Epic Devastating Critical Whip"; break; -case 997: sName = "Epic Weapon Focus Whip"; break; -case 998: sName = "Epic Weapon Specialization Whip"; break; -case 999: sName = "Epic Overwhelming Critical Whip"; break; - } - } - } - else //through 1071 - { - if (nFeat < 1010) - { - switch (nFeat) - { -case 1000: sName = "Weapon Of Choice Whip"; break; -case 1001: sName = "Epic Character"; break; -case 1002: sName = "Epic Epic Shadowlord"; break; -case 1003: sName = "Epic Epic Fiend"; break; -case 1004: sName = "Prestige Death Attack 6"; break; -case 1005: sName = "Prestige Death Attack 7"; break; -case 1006: sName = "Prestige Death Attack 8"; break; -case 1007: sName = "Blackguard Sneak Attack 4d6"; break; -case 1008: sName = "Blackguard Sneak Attack 5d6"; break; -case 1009: sName = "Blackguard Sneak Attack 6d6"; break; - } - } - else if (nFeat < 1020) - { - switch (nFeat) - { -case 1010: sName = "Blackguard Sneak Attack 7d6"; break; -case 1011: sName = "Blackguard Sneak Attack 8d6"; break; -case 1012: sName = "Blackguard Sneak Attack 9d6"; break; -case 1013: sName = "Blackguard Sneak Attack 10d6"; break; -case 1014: sName = "Blackguard Sneak Attack 11d6"; break; -case 1015: sName = "Blackguard Sneak Attack 12d6"; break; -case 1016: sName = "Blackguard Sneak Attack 13d6"; break; -case 1017: sName = "Blackguard Sneak Attack 14d6"; break; -case 1018: sName = "Blackguard Sneak Attack 15d6"; break; -case 1019: sName = "Prestige Death Attack 9"; break; - } - } - else if (nFeat < 1030) - { - switch (nFeat) - { -case 1020: sName = "Prestige Death Attack 10"; break; -case 1021: sName = "Prestige Death Attack 11"; break; -case 1022: sName = "Prestige Death Attack 12"; break; -case 1023: sName = "Prestige Death Attack 13"; break; -case 1024: sName = "Prestige Death Attack 14"; break; -case 1025: sName = "Prestige Death Attack 15"; break; -case 1026: sName = "Prestige Death Attack 16"; break; -case 1027: sName = "Prestige Death Attack 17"; break; -case 1028: sName = "Prestige Death Attack 18"; break; -case 1029: sName = "Prestige Death Attack 19"; break; - } - } - else if (nFeat < 1040) - { - switch (nFeat) - { -case 1030: sName = "Prestige Death Attack 20"; break; -case 1032: sName = "Sneak Attack 11"; break; -case 1033: sName = "Sneak Attack 12"; break; -case 1034: sName = "Sneak Attack 13"; break; -case 1035: sName = "Sneak Attack 14"; break; -case 1036: sName = "Sneak Attack 15"; break; -case 1037: sName = "Sneak Attack 16"; break; -case 1038: sName = "Sneak Attack 17"; break; -case 1039: sName = "Sneak Attack 18"; break; - } - } - else if (nFeat < 1050) - { - switch (nFeat) - { -case 1040: sName = "Sneak Attack 19"; break; -case 1041: sName = "Sneak Attack 20"; break; -case 1042: sName = "Dragon Hdincrease D6"; break; -case 1043: sName = "Dragon Hdincrease D8"; break; -case 1044: sName = "Dragon Hdincrease D10"; break; -case 1045: sName = "Prestige Enchant Arrow 6"; break; -case 1046: sName = "Prestige Enchant Arrow 7"; break; -case 1047: sName = "Prestige Enchant Arrow 8"; break; -case 1048: sName = "Prestige Enchant Arrow 9"; break; -case 1049: sName = "Prestige Enchant Arrow 10"; break; - } - } - else if (nFeat < 1060) - { - switch (nFeat) - { -case 1050: sName = "Prestige Enchant Arrow 11"; break; -case 1051: sName = "Prestige Enchant Arrow 12"; break; -case 1052: sName = "Prestige Enchant Arrow 13"; break; -case 1053: sName = "Prestige Enchant Arrow 14"; break; -case 1054: sName = "Prestige Enchant Arrow 15"; break; -case 1055: sName = "Prestige Enchant Arrow 16"; break; -case 1056: sName = "Prestige Enchant Arrow 17"; break; -case 1057: sName = "Prestige Enchant Arrow 18"; break; -case 1058: sName = "Prestige Enchant Arrow 19"; break; -case 1059: sName = "Prestige Enchant Arrow 20"; break; - } - } - else //through 1071 - { - switch (nFeat) - { -case 1060: sName = "Epic Outsider Shape"; break; -case 1061: sName = "Epic Construct Shape"; break; -case 1062: sName = "Epic Shifter Infinite Wildshape 1"; break; -case 1063: sName = "Epic Shifter Infinite Wildshape 2"; break; -case 1064: sName = "Epic Shifter Infinite Wildshape 3"; break; -case 1065: sName = "Epic Shifter Infinite Wildshape 4"; break; -case 1066: sName = "Epic Shifter Infinite Humanoid Shape"; break; -case 1067: sName = "Epic Barbarian Damage Reduction"; break; -case 1068: sName = "Epic Druid Infinite Wildshape"; break; -case 1069: sName = "Epic Druid Infinite Elemental Shape"; break; -case 1070: sName = "Prestige Poison Save Epic"; break; -case 1071: sName = "Epic Superior Weapon Focus"; break; - } - } - } - } -return sName; -} - -int GetIsFeatLimitedUses(int nFeat) -{ -int nReturn = FALSE; -if (nFeat < 330) - { - if (nFeat < 300) - { - switch(nFeat) - { -case 39: nReturn = TRUE; break; -case 199: nReturn = TRUE; break; -case 211: nReturn = TRUE; break; -case 223: nReturn = TRUE; break; -case 257: nReturn = TRUE; break; -case 293: nReturn = TRUE; break; -case 294: nReturn = TRUE; break; -case 296: nReturn = TRUE; break; -case 297: nReturn = TRUE; break; -case 299: nReturn = TRUE; break; - } - } - else - { - switch(nFeat) - { -case 301: nReturn = TRUE; break; -case 302: nReturn = TRUE; break; -case 303: nReturn = TRUE; break; -case 304: nReturn = TRUE; break; -case 305: nReturn = TRUE; break; -case 306: nReturn = TRUE; break; -case 307: nReturn = TRUE; break; -case 308: nReturn = TRUE; break; -case 310: nReturn = TRUE; break; -case 324: nReturn = TRUE; break; -case 326: nReturn = TRUE; break; -case 327: nReturn = TRUE; break; -case 328: nReturn = TRUE; break; -case 329: nReturn = TRUE; break; - } - } - } -else if (nFeat < 400) - { - if (nFeat < 360) - { - switch(nFeat) - { -case 330: nReturn = TRUE; break; -case 331: nReturn = TRUE; break; -case 335: nReturn = TRUE; break; -case 336: nReturn = TRUE; break; -case 337: nReturn = TRUE; break; -case 338: nReturn = TRUE; break; -case 339: nReturn = TRUE; break; -case 340: nReturn = TRUE; break; -case 341: nReturn = TRUE; break; -case 342: nReturn = TRUE; break; -case 355: nReturn = TRUE; break; -case 356: nReturn = TRUE; break; -case 357: nReturn = TRUE; break; -case 358: nReturn = TRUE; break; -case 359: nReturn = TRUE; break; - } - } - else - { - switch(nFeat) - { -case 360: nReturn = TRUE; break; -case 361: nReturn = TRUE; break; -case 362: nReturn = TRUE; break; -case 363: nReturn = TRUE; break; -case 364: nReturn = TRUE; break; -case 365: nReturn = TRUE; break; -case 366: nReturn = TRUE; break; -case 367: nReturn = TRUE; break; -case 368: nReturn = TRUE; break; -case 369: nReturn = TRUE; break; -case 370: nReturn = TRUE; break; -case 371: nReturn = TRUE; break; -case 372: nReturn = TRUE; break; -case 373: nReturn = TRUE; break; - } - } - } -else if (nFeat < 500) - { - if (nFeat < 460) - { - switch(nFeat) - { -case 434: nReturn = TRUE; break; -case 435: nReturn = TRUE; break; -case 436: nReturn = TRUE; break; -case 438: nReturn = TRUE; break; -case 440: nReturn = TRUE; break; -case 441: nReturn = TRUE; break; -case 442: nReturn = TRUE; break; -case 443: nReturn = TRUE; break; -case 444: nReturn = TRUE; break; -case 450: nReturn = TRUE; break; -case 451: nReturn = TRUE; break; -case 452: nReturn = TRUE; break; -case 453: nReturn = TRUE; break; -case 454: nReturn = TRUE; break; - } - } - else - { - switch(nFeat) - { -case 468: nReturn = TRUE; break; -case 469: nReturn = TRUE; break; -case 470: nReturn = TRUE; break; -case 471: nReturn = TRUE; break; -case 472: nReturn = TRUE; break; -case 474: nReturn = TRUE; break; -case 475: nReturn = TRUE; break; -case 476: nReturn = TRUE; break; -case 477: nReturn = TRUE; break; -case 478: nReturn = TRUE; break; -case 479: nReturn = TRUE; break; -case 491: nReturn = TRUE; break; - } - } - } -else - { - if (nFeat < 900) - { - switch(nFeat) - { -case 869: nReturn = TRUE; break; -case 872: nReturn = TRUE; break; -case 873: nReturn = TRUE; break; -case 874: nReturn = TRUE; break; -case 875: nReturn = TRUE; break; -case 876: nReturn = TRUE; break; -case 877: nReturn = TRUE; break; -case 878: nReturn = TRUE; break; -case 882: nReturn = TRUE; break; -case 889: nReturn = TRUE; break; -case 890: nReturn = TRUE; break; -case 892: nReturn = TRUE; break; -case 893: nReturn = TRUE; break; -case 895: nReturn = TRUE; break; -case 897: nReturn = TRUE; break; -case 898: nReturn = TRUE; break; - } - } - else - { - switch(nFeat) - { -case 900: nReturn = TRUE; break; -case 901: nReturn = TRUE; break; -case 902: nReturn = TRUE; break; -case 903: nReturn = TRUE; break; -case 909: nReturn = TRUE; break; -case 947: nReturn = TRUE; break; -case 965: nReturn = TRUE; break; -case 990: nReturn = TRUE; break; -case 1060: nReturn = TRUE; break; -case 1061: nReturn = TRUE; break; - } - } - } -return nReturn; -} - - - -//below used to compile -/* -void main() -{ - -} -*/ diff --git a/_removed files/hgll_func_inc.nss b/_removed files/hgll_func_inc.nss deleted file mode 100644 index c27bce72..00000000 --- a/_removed files/hgll_func_inc.nss +++ /dev/null @@ -1,1405 +0,0 @@ -#include "hgll_const_inc" -#include "hgll_struct_stat" -#include "hgll_featreq_inc" -#include "hgll_classft_inc" -#include "hgll_leto_inc" -#include "hgll_spells_inc" -#include "aps_include" -//--------------------------------DECLARATIONS--------------------------------// - -// This returns the current legendary level ("LL") of the PC. It is designed to -// work hand in hand with DAR subraces by tracking level by entering it in -// the (normally unused on PCs) Lootable field on the character file (".bic file"). -// If you are not using DAR, it will still function correctly, using GetHitDice to -// track non-legendary levels. -int CheckLegendaryLevel(object oPC); -// This function determines whether a PC has enough experience to take the next legendary -// level. Possible return values: 1 for having enough, 0 for not, -1 for having too few -// levels to gain Legendary levels, and -2 for already having the maximum amount of LL. -int GetHasXPForNextLL(object oPC); -// This function was used to remove xp from a character based on what LL they were taking. -// It subtracted XP and then returned the XP that was subtracted. It returns zero if they -// are level 60 and -1 if they aren't level 40 yet. It is not used in the current configuration, -// which just lets the xp keep adding up, rather than subtracting the xp after the level is -// gained. This ensures that the character doesn't lose the experience that accrued if for some -// reason Letoscript misfires and fails to edit the character. -int SubtractXPForNextLL(object oPC); -// This function returns the amount of XP the PC is missing to reach their next LL. It will -// return the amount needed to reach level 41 if they are under level 40. If they already -// have enough, it returns 0. If they are level 60, it returns -1. -int GetXPNeededForNextLL(object oPC); -// This function checks for whether or not the PC gains a feat this level. By default it -// is set to one every three levels, carrying the progression of character feats onward from -// the last standard one received at 39, adding new feats starting at level 42 and ending at -// level 60. It is easily modified so that you can assign feats at whatever levels desired. -int GetGainsFeatOnLevelUp(object oPC); -// This function checks for whether or not the PC gains a stat this level. By default it -// is set to one every two levels, doubling the progression of character stats onward from -// the last standard one received at 40, adding new stats starting at level 42 and ending at -// level 60. It is easily modified so that you can assign stats at whatever levels desired. -int GetGainsStatOnLevelUp(object oPC); -// This function tells the caller whether the PC gains +1 to saving throws this level. By default -// it is set to one every four levels, halving the progression of character saves onward from -// the last standard increase received at 40, increasing saves starting at level 44 and ending at -// level 60. It is easily modified so that you can increase saves at whatever levels desired. -int GetGainsSavesOnLevelUp(object oPC); -// This function permanently tags a PC with the CLASS_TYPE that controls his LLs. -void SetControlClass(object oPC, int nClass); -// This function is where any other requirements besides experence and level -// are added to GetHasXPForNextLL. It returns TRUE by default unless modified. -int GetCanGainLL(object oPC); -// This function outputs debugging info to the player and log, but only if DEBUG is -// set to TRUE in hgll_const_inc. -void DoDebug(object oPC, string sDebug); -// This function calculates the Base Ability Scores and Skills of a character, including -// improvements by level and by feats, but filtering out bonuses from gear and effects. -// Skills need another round of filtering before they arrive at base levels. -// sWP: If you specify a WayPoint Tag in an inaccesible area, the clones will be -// generated there. -struct xAbility GetRoughAbilities(object oPC, string sWP=""); -// This function returns the number of Great Strenth feats the character has. -int GetHasGreatStrenth(object oPC); -// This function returns the number of Great Dexterity feats the character has. -int GetHasGreatDexterity(object oPC); -// This function returns the number of Great Constitution feats the character has. -int GetHasGreatConstitution(object oPC); -// This function returns the number of Great Intelligence feats the character has. -int GetHasGreatIntelligence(object oPC); -// This function returns the number of Great Wisdom feats the character has. -int GetHasGreatWisdom(object oPC); -// This function returns the number of Great Charisma feats the character has. -int GetHasGreatCharisma(object oPC); -// This function filters out the Greater Stat Feats and Red Dragon Disciple ability bonuses -// from the ability scores. -int GetBaseStat(int nStatType, int nStat, object oPC); -// This function returns the Red Dragon Disciple ability bonus the character has for the -// specified ability. -int GetRDDStatMod(int nStatType, object oPC); -// This function returns the point vaule penalty (a positive number) for -// dexterity-based skills of the armor worn by the PC. -int GetArmorPenalty(object oPC); -// This function returns the point vaule penalty (a positive number) for -// dexterity-based skills of the shield worn by the PC. -int GetShieldPenalty(object oPC); -// This function takes a given stat number and calculates the bonus from it. -int GetBaseAbilityModifier(int nAmount); -// This function takes the scores retrieved from the GetRoughAbilities function and -// subtracts feat and ability bonuses from the skill to arrive at final base skill. -int GetBaseSkill(int nSkill, struct xAbility stat, object oPC); -// This function calculates the values of all the characters base skills, -// after adjusting them for stat modifiers and feats via GetBaseSkill. -struct xAbility GetBaseAbilities(struct xAbility stat, object oPC); -// This function sets local ints indicating the base ability for all 6 ability scores and -// all 27 skills. They are called later to help determine dependant characteristics like -// hitpoints, and are used to determine feat availabilities, etc. -void SetBaseAbilityMarkers(struct xAbility stat, object oPC); -//This function deletes all the ints tracking base ability and skill scores. -void DeleteBaseAbilityMarkers(object oPC); -// This function determines and returns the amount of skill points a character will get each -// LL based on their control class, INT modifier, and their main race (humans get +1) -int GetSkillPointsGainedOnLevelUp(object oPC); -// This function determines whether a skill is available to the charcter and should appear on the -// skill list, based on the character's control class, the amount of points they have remaining, -// the cost of the skill for the control class, and their current skill level in the skill. -int GetIsSkillAvailable(object oPC, int nSkill); -// This function returns the name string of the specified skill. -string GetNameOfSkill(int nSkill); -// This function returns the name of the tracking int for the specified skill. -string GetNameOfTrackingInt(int nSkill); -// This function determines the amount of HP that a character gets on levelup based on their -// control class, their CON modifier, and whether or not they've taken the toughness feat. -int GetHitPointsGainedOnLevelUp(object oPC); -// This function restores all limited usage feats so that GetHasFeat will not -// return a false negative. -void ReplenishLimitedUseFeats(object oPC); -// This function determines whether a feat is available to the charcter and should appear on the -// feat list, based on the character's control class, whether they meet the feat's requirements, -// whether they already have the feat, and whether the feat is restricted. -int GetIsFeatAvailable(int nFeat, object oPC); -// This function returns the name of the designated ability score. -string GetNameOfAbility(int nStat); -// This function returns TRUE if the specified feat is a class feat and the character has -// enough levels in the class to take it. Otherwise it returns FALSE. -int GetIsClassFeat(int nFeat, int nClass, object oPC); - -//----------------------------------FUNCTIONS---------------------------------// - -int CheckLegendaryLevel(object oPC) -{ -int nLevel = GetLootable(oPC); -if (nLevel<41) - { - return GetHitDice(oPC); - } -else - { - return nLevel; - } -} - -int GetHasXPForNextLL(object oPC) -{ -switch(CheckLegendaryLevel(oPC)) - { - case 40: return (XP_REQ_LVL41-GetXP(oPC)<=0); break; - case 41: return (XP_REQ_LVL42-GetXP(oPC)<=0); break; - case 42: return (XP_REQ_LVL43-GetXP(oPC)<=0); break; - case 43: return (XP_REQ_LVL44-GetXP(oPC)<=0); break; - case 44: return (XP_REQ_LVL45-GetXP(oPC)<=0); break; - case 45: return (XP_REQ_LVL46-GetXP(oPC)<=0); break; - case 46: return (XP_REQ_LVL47-GetXP(oPC)<=0); break; - case 47: return (XP_REQ_LVL48-GetXP(oPC)<=0); break; - case 48: return (XP_REQ_LVL49-GetXP(oPC)<=0); break; - case 49: return (XP_REQ_LVL50-GetXP(oPC)<=0); break; - case 50: return (XP_REQ_LVL51-GetXP(oPC)<=0); break; - case 51: return (XP_REQ_LVL52-GetXP(oPC)<=0); break; - case 52: return (XP_REQ_LVL53-GetXP(oPC)<=0); break; - case 53: return (XP_REQ_LVL54-GetXP(oPC)<=0); break; - case 54: return (XP_REQ_LVL55-GetXP(oPC)<=0); break; - case 55: return (XP_REQ_LVL56-GetXP(oPC)<=0); break; - case 56: return (XP_REQ_LVL57-GetXP(oPC)<=0); break; - case 57: return (XP_REQ_LVL58-GetXP(oPC)<=0); break; - case 58: return (XP_REQ_LVL59-GetXP(oPC)<=0); break; - case 59: return (XP_REQ_LVL60-GetXP(oPC)<=0); break; - case 60: return -2; break; - default: return -1; break; - } - return -3; -} - -int SubtractXPForNextLL(object oPC) -{ -switch(CheckLegendaryLevel(oPC)) - { - case 40: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL41)); return XP_REQ_LVL41; break; - case 41: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL42)); return XP_REQ_LVL42; break; - case 42: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL43)); return XP_REQ_LVL43; break; - case 43: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL44)); return XP_REQ_LVL44; break; - case 44: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL45)); return XP_REQ_LVL45; break; - case 45: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL46)); return XP_REQ_LVL46; break; - case 46: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL47)); return XP_REQ_LVL47; break; - case 47: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL48)); return XP_REQ_LVL48; break; - case 48: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL49)); return XP_REQ_LVL49; break; - case 49: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL50)); return XP_REQ_LVL50; break; - case 50: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL51)); return XP_REQ_LVL51; break; - case 51: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL52)); return XP_REQ_LVL52; break; - case 52: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL53)); return XP_REQ_LVL53; break; - case 53: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL54)); return XP_REQ_LVL54; break; - case 54: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL55)); return XP_REQ_LVL55; break; - case 55: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL56)); return XP_REQ_LVL56; break; - case 56: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL57)); return XP_REQ_LVL57; break; - case 57: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL58)); return XP_REQ_LVL58; break; - case 58: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL59)); return XP_REQ_LVL59; break; - case 59: SetXP(oPC,(GetXP(oPC)-XP_REQ_LVL60)); return XP_REQ_LVL60; break; - case 60: return 0; break; - default: return -1; break; - } - return -3; -} - -int GetXPNeededForNextLL(object oPC) -{ -int nXP; -switch(CheckLegendaryLevel(oPC)) - { - case 40: nXP = XP_REQ_LVL41-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 41: nXP = XP_REQ_LVL42-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 42: nXP = XP_REQ_LVL43-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 43: nXP = XP_REQ_LVL44-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 44: nXP = XP_REQ_LVL45-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 45: nXP = XP_REQ_LVL46-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 46: nXP = XP_REQ_LVL47-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 47: nXP = XP_REQ_LVL48-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 48: nXP = XP_REQ_LVL49-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 49: nXP = XP_REQ_LVL50-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 50: nXP = XP_REQ_LVL51-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 51: nXP = XP_REQ_LVL52-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 52: nXP = XP_REQ_LVL53-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 53: nXP = XP_REQ_LVL54-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 54: nXP = XP_REQ_LVL55-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 55: nXP = XP_REQ_LVL56-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 56: nXP = XP_REQ_LVL57-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 57: nXP = XP_REQ_LVL58-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 58: nXP = XP_REQ_LVL59-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 59: nXP = XP_REQ_LVL60-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - case 60: nXP = -1; - default: nXP = XP_REQ_LVL41-(GetXP(oPC)); if(nXP<=0) nXP = 0; break; - } -return nXP; -} - -int GetGainsFeatOnLevelUp(object oPC) -{ -switch(CheckLegendaryLevel(oPC)) - { - case 41: return 1; break; - case 44: return 1; break; - case 47: return 1; break; - case 50: return 1; break; - case 53: return 1; break; - case 56: return 1; break; - case 59: return 1; break; - default: return 0; break; - } - return -3; -} - -int GetGainsStatOnLevelUp(object oPC) -{ -switch(CheckLegendaryLevel(oPC)) - { - case 41: return 1; break; - case 43: return 1; break; - case 45: return 1; break; - case 47: return 1; break; - case 49: return 1; break; - case 51: return 1; break; - case 53: return 1; break; - case 55: return 1; break; - case 57: return 1; break; - case 59: return 1; break; - default: return 0; break; - } - return -3; -} - -int GetGainsSavesOnLevelUp(object oPC) -{ - switch(CheckLegendaryLevel(oPC)) - { - case 43: - case 47: - case 51: - case 55: - case 59: return 1; break; - default: return 0; break; - } - return -3; -} - -void SetControlClass(object oPC, int nClass) -{ -SetPersistentInt(oPC, "ControlClass", nClass); -DoDebug(oPC, "Control Class: " + IntToString(nClass)); -} - - - -int GetCanGainLL(object oPC) -{ -string immortalname; -string sName = GetName(oPC); -immortalname = GetStringLeft(sName, 8) + GetStringRight(sName, 8) + GetStringLeft(GetPCPlayerName(oPC), 8) + GetStringRight(GetPCPlayerName(oPC), 8); -int nImmortal = 2;//GetLocalInt(oPC, immortalname); -if (nImmortal == 2) return TRUE; -return FALSE; -} - -void DoDebug(object oPC, string sDebug) -{ -if (DEBUG) - { - WriteTimestampedLogEntry(sDebug); - SendMessageToPC(oPC, sDebug); - } -} - -struct xAbility GetRoughAbilities(object oPC, string sWP="") -{ - effect eEffect; - itemproperty ipPenalty; - int iCount; - int nValue; - int nValue2; - int nClass = GetControlClass(oPC); - object oItem, oWP, oClone; - location lClone; - struct xAbility xAbility; - for(iCount = 0; iCount < NUM_INVENTORY_SLOTS; iCount++) - { - oItem = GetItemInSlot(iCount, oPC); - if(GetIsObjectValid(oItem)) - { - ipPenalty = GetFirstItemProperty(oItem); - while(GetIsItemPropertyValid(ipPenalty)) - { - if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_DECREASED_ABILITY_SCORE)) - { - if(GetItemPropertyType(ipPenalty) == ITEM_PROPERTY_DECREASED_ABILITY_SCORE) - { - nValue = GetItemPropertyCostTableValue(ipPenalty);//will return between -1 and -10, matching the maximum penalty to skills from any given item - switch(GetItemPropertySubType(ipPenalty)) - { - case ABILITY_STRENGTH: xAbility.nSTR += nValue; break; - case ABILITY_DEXTERITY: xAbility.nDEX += nValue; break; - case ABILITY_CONSTITUTION: xAbility.nCON += nValue; break; - case ABILITY_INTELLIGENCE: xAbility.nINT += nValue; break; - case ABILITY_WISDOM: xAbility.nWIS += nValue; break; - case ABILITY_CHARISMA: xAbility.nCHA += nValue; break; - } - } - } - if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_DECREASED_SKILL_MODIFIER)) - { - if(GetItemPropertyType(ipPenalty) == ITEM_PROPERTY_DECREASED_SKILL_MODIFIER) - { - nValue2 = GetItemPropertyCostTableValue(ipPenalty);//will return between -1 and -10, matching the maximum penalty to skills from any given item - switch(GetItemPropertySubType(ipPenalty)) - { - case SKILL_ANIMAL_EMPATHY: xAbility.nANIMAL_EMPATHY += nValue2; break; - case SKILL_CONCENTRATION: xAbility.nCONCENTRATION += nValue2; break; - case SKILL_DISABLE_TRAP: xAbility.nDISABLE_TRAP += nValue2; break; - case SKILL_DISCIPLINE: xAbility.nDISCIPLINE += nValue2; break; - case SKILL_HEAL: xAbility.nHEAL += nValue2; break; - case SKILL_HIDE: xAbility.nHIDE += nValue2; break; - case SKILL_LISTEN: xAbility.nLISTEN += nValue2; break; - case SKILL_LORE: xAbility.nLORE += nValue2; break; - case SKILL_MOVE_SILENTLY: xAbility.nMOVE_SILENTLY += nValue2; break; - case SKILL_OPEN_LOCK: xAbility.nOPEN_LOCK += nValue2; break; - case SKILL_PARRY: xAbility.nPARRY += nValue2; break; - case SKILL_PERFORM: xAbility.nPERFORM += nValue2; break; - case SKILL_PERSUADE: xAbility.nPERSUADE += nValue2; break; - case SKILL_PICK_POCKET: xAbility.nPICK_POCKET += nValue2; break; - case SKILL_SEARCH: xAbility.nSEARCH += nValue2; break; - case SKILL_SET_TRAP: xAbility.nSET_TRAP += nValue2; break; - case SKILL_SPELLCRAFT: xAbility.nSPELLCRAFT += nValue2; break; - case SKILL_SPOT: xAbility.nSPOT += nValue2; break; - case SKILL_TAUNT: xAbility.nTAUNT += nValue2; break; - case SKILL_USE_MAGIC_DEVICE: xAbility.nUSE_MAGIC_DEVICE += nValue2; break; - case SKILL_APPRAISE: xAbility.nAPPRAISE += nValue2; break; - case SKILL_TUMBLE: xAbility.nTUMBLE += nValue2; break; - case SKILL_CRAFT_TRAP: xAbility.nCRAFT_TRAP += nValue2; break; - case SKILL_BLUFF: xAbility.nBLUFF += nValue2; break; - case SKILL_INTIMIDATE: xAbility.nINTIMIDATE += nValue2; break; - case SKILL_CRAFT_ARMOR: xAbility.nCRAFT_ARMOR += nValue2; break; - case SKILL_CRAFT_WEAPON: xAbility.nCRAFT_WEAPON += nValue2; break; - } - } - } - ipPenalty = GetNextItemProperty(oItem); - } - } - } - //Create Clone - oWP = GetWaypointByTag(sWP); - lClone = GetLocation(oWP); - if(sWP != "" && oWP != OBJECT_INVALID && GetAreaFromLocation(lClone)!= OBJECT_INVALID) - { - lClone = GetLocation(oWP); - } - else - { - lClone = GetLocation(oPC); - } - oClone = CopyObject(oPC,lClone); - //Remove Effects from Clone - eEffect = GetFirstEffect(oClone); - while(GetEffectType(eEffect) != EFFECT_TYPE_INVALIDEFFECT) - { - RemoveEffect(oClone, eEffect); - eEffect = GetNextEffect(oClone); - } - for(iCount = 0; iCount < 6; iCount++) - { - eEffect = EffectAbilityIncrease(iCount, 12); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oClone); - nValue = GetAbilityScore(oClone, iCount); - switch(iCount) - { - case ABILITY_STRENGTH: if(xAbility.nSTR >= -10) xAbility.nSTR += nValue - 12; else xAbility.nSTR = nValue - 2; break; - case ABILITY_DEXTERITY: if(xAbility.nDEX >= -10) xAbility.nDEX += nValue - 12; else xAbility.nDEX = nValue - 2; break; - case ABILITY_CONSTITUTION: if(xAbility.nCON >= -10) xAbility.nCON += nValue - 12; else xAbility.nCON = nValue - 2; break; - case ABILITY_INTELLIGENCE: if(xAbility.nINT >= -10) xAbility.nINT += nValue - 12; else xAbility.nINT = nValue - 2; break; - case ABILITY_WISDOM: if(xAbility.nWIS >= -10) xAbility.nWIS += nValue - 12; else xAbility.nWIS = nValue - 2; break; - case ABILITY_CHARISMA: if(xAbility.nCHA >= -10) xAbility.nCHA += nValue - 12; else xAbility.nCHA = nValue - 2; break; - } - } - for(iCount = 0; iCount < 27; iCount++) - { - //eEffect = EffectSkillIncrease(iCount, 50); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oClone); - nValue = GetSkillRank(iCount, oClone); - switch(iCount)//we subtract and extra 6 here for the stats being at +12, for a total of -56 - { - case SKILL_ANIMAL_EMPATHY: if(xAbility.nANIMAL_EMPATHY >= -10) xAbility.nANIMAL_EMPATHY += nValue - 6; else xAbility.nANIMAL_EMPATHY = nValue - 2; break; - case SKILL_CONCENTRATION: if(xAbility.nCONCENTRATION >= -10) xAbility.nCONCENTRATION += nValue - 6; else xAbility.nCONCENTRATION = nValue - 2; break; - case SKILL_DISABLE_TRAP: if(xAbility.nDISABLE_TRAP >= -10) xAbility.nDISABLE_TRAP += nValue - 6; else xAbility.nDISABLE_TRAP = nValue - 2; break; - case SKILL_DISCIPLINE: if(xAbility.nDISCIPLINE >= -10) xAbility.nDISCIPLINE += nValue - 6; else xAbility.nDISCIPLINE = nValue - 2; break; - case SKILL_HEAL: if(xAbility.nHEAL >= -10) xAbility.nHEAL += nValue - 6; else xAbility.nHEAL = nValue - 2; break; - case SKILL_HIDE: if(xAbility.nHIDE >= -10) xAbility.nHIDE += nValue - 6; else xAbility.nHIDE = nValue - 2; break; - case SKILL_LISTEN: if(xAbility.nLISTEN >= -10) xAbility.nLISTEN += nValue - 6; else xAbility.nLISTEN = nValue - 2; break; - case SKILL_LORE: if(xAbility.nLORE >= -10) xAbility.nLORE += nValue - 6; else xAbility.nLORE = nValue - 2; break; - case SKILL_MOVE_SILENTLY: if(xAbility.nMOVE_SILENTLY >= -10) xAbility.nMOVE_SILENTLY += nValue - 6; else xAbility.nMOVE_SILENTLY = nValue - 2; break; - case SKILL_OPEN_LOCK: if(xAbility.nOPEN_LOCK >= -10) xAbility.nOPEN_LOCK += nValue - 6; else xAbility.nOPEN_LOCK = nValue - 2; break; - case SKILL_PARRY: if(xAbility.nPARRY >= -10) xAbility.nPARRY += nValue - 6; else xAbility.nPARRY = nValue - 2; break; - case SKILL_PERFORM: if(xAbility.nPERFORM >= -10) xAbility.nPERFORM += nValue - 6; else xAbility.nPERFORM = nValue - 2; break; - case SKILL_PERSUADE: if(xAbility.nPERSUADE >= -10) xAbility.nPERSUADE += nValue - 6; else xAbility.nPERSUADE = nValue - 2; break; - case SKILL_PICK_POCKET: if(xAbility.nPICK_POCKET >= -10) xAbility.nPICK_POCKET += nValue - 6; else xAbility.nPICK_POCKET = nValue - 2; break; - case SKILL_SEARCH: if(xAbility.nSEARCH >= -10) xAbility.nSEARCH += nValue - 6; else xAbility.nSEARCH = nValue - 2; break; - case SKILL_SET_TRAP: if(xAbility.nSET_TRAP >= -10) xAbility.nSET_TRAP += nValue - 6; else xAbility.nSET_TRAP = nValue - 2; break; - case SKILL_SPELLCRAFT: if(xAbility.nSPELLCRAFT >= -10) xAbility.nSPELLCRAFT += nValue - 6; else xAbility.nSPELLCRAFT = nValue - 2; break; - case SKILL_SPOT: if(xAbility.nSPOT >= -10) xAbility.nSPOT += nValue - 6; else xAbility.nSPOT = nValue - 2; break; - case SKILL_TAUNT: if(xAbility.nTAUNT >= -10) xAbility.nTAUNT += nValue - 6; else xAbility.nTAUNT = nValue - 2; break; - case SKILL_USE_MAGIC_DEVICE: if(xAbility.nUSE_MAGIC_DEVICE >= -10) xAbility.nUSE_MAGIC_DEVICE += nValue - 6; else xAbility.nUSE_MAGIC_DEVICE = nValue - 2; break; - case SKILL_APPRAISE: if(xAbility.nAPPRAISE >= -10) xAbility.nAPPRAISE += nValue - 6; else xAbility.nAPPRAISE = nValue - 2; break; - case SKILL_TUMBLE: if(xAbility.nTUMBLE >= -10) xAbility.nTUMBLE += nValue - 6; else xAbility.nTUMBLE = nValue - 2; break; - case SKILL_CRAFT_TRAP: if(xAbility.nCRAFT_TRAP >= -10) xAbility.nCRAFT_TRAP += nValue - 6; else xAbility.nCRAFT_TRAP = nValue - 2; break; - case SKILL_BLUFF: if(xAbility.nBLUFF >= -10) xAbility.nBLUFF += nValue - 6; else xAbility.nBLUFF = nValue - 2; break; - case SKILL_INTIMIDATE: if(xAbility.nINTIMIDATE >= -10) xAbility.nINTIMIDATE += nValue - 6; else xAbility.nINTIMIDATE = nValue - 2; break; - case SKILL_CRAFT_ARMOR: if(xAbility.nCRAFT_ARMOR >= -10) xAbility.nCRAFT_ARMOR += nValue - 6; else xAbility.nCRAFT_ARMOR = nValue - 2; break; - case SKILL_CRAFT_WEAPON: if(xAbility.nCRAFT_WEAPON >= -10) xAbility.nCRAFT_WEAPON += nValue - 6; else xAbility.nCRAFT_WEAPON = nValue - 2; break; - } - } -//dont try to destroy or take the clone items, wont work -DestroyObject(oClone); -return xAbility; -} - -int GetBaseAbilityModifier(int nAmount) -{ - if ((nAmount%2)==0) - { - nAmount = (nAmount/2)+(nAmount%2); - nAmount = nAmount-5; - } - else - { - nAmount = (nAmount/2)+(nAmount%2); - nAmount = nAmount-6; - } - return nAmount; -} - -int GetHasGreatStrenth(object oPC) -{ - int nFeat = 0; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_1,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_2,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_3,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_4,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_5,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_6,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_7,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_8,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_9,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_STRENGTH_10,oPC)) nFeat++; - return nFeat; -} - -int GetHasGreatDexterity(object oPC) -{ - int nFeat = 0; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_1,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_2,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_3,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_4,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_5,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_6,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_7,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_8,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_9,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_DEXTERITY_10,oPC)) nFeat++; - return nFeat; -} - -int GetHasGreatConstitution(object oPC) -{ - int nFeat = 0; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_1,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_2,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_3,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_4,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_5,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_6,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_7,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_8,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_9,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CONSTITUTION_10,oPC)) nFeat++; - return nFeat; -} - -int GetHasGreatIntelligence(object oPC) -{ - int nFeat = 0; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_1,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_2,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_3,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_4,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_5,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_6,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_7,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_8,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_9,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_INTELLIGENCE_10,oPC)) nFeat++; - return nFeat; -} - -int GetHasGreatWisdom(object oPC) -{ - int nFeat = 0; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_1,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_2,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_3,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_4,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_5,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_6,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_7,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_8,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_9,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_WISDOM_10,oPC)) nFeat++; - return nFeat; -} - -int GetHasGreatCharisma(object oPC) -{ - int nFeat = 0; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_1,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_2,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_3,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_4,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_5,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_6,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_7,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_8,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_9,oPC)) nFeat++; - if(GetHasFeat(FEAT_EPIC_GREAT_CHARISMA_10,oPC)) nFeat++; - return nFeat; -} - -int GetBaseStat(int nStatType, int nStat, object oPC) -{ -int nSubtract = 0; -int nBase; -switch(nStatType) - { - case ABILITY_STRENGTH: - nSubtract = GetHasGreatStrenth(oPC) + GetRDDStatMod(nStatType, oPC); - nBase = nStat; break; - case ABILITY_DEXTERITY: - nSubtract = GetHasGreatDexterity(oPC) + GetRDDStatMod(nStatType, oPC); - nBase = nStat; break ; - case ABILITY_CONSTITUTION: - nSubtract = GetHasGreatConstitution(oPC) + GetRDDStatMod(nStatType, oPC);; - nBase = nStat; break; - case ABILITY_INTELLIGENCE: - nSubtract = GetHasGreatIntelligence(oPC) + GetRDDStatMod(nStatType, oPC);; - nBase = nStat; break; - case ABILITY_WISDOM: - nSubtract = GetHasGreatWisdom(oPC) + GetRDDStatMod(nStatType, oPC);; - nBase = nStat; break; - case ABILITY_CHARISMA: - nSubtract = GetHasGreatCharisma(oPC) + GetRDDStatMod(nStatType, oPC);; - nBase = nStat; break; - default: return -3; break; - } -return (nBase-nSubtract); -} - -int GetRDDStatMod(int nStatType, object oPC) -{ -int nRDDLevel = GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE, oPC); -int nReturn = 0; -if (nRDDLevel < 1) return 0;//if not rdd, return -switch(nStatType) - { - case ABILITY_STRENGTH: - if (nRDDLevel > 9) nReturn = 8; - else if (nRDDLevel > 3) nReturn = 4; - else if (nRDDLevel > 1) nReturn = 2; - else nReturn = 0; - break; - case ABILITY_DEXTERITY: - if (nRDDLevel > 6) nReturn = 2; - else nReturn = 0; - break; - case ABILITY_CONSTITUTION: - - case ABILITY_INTELLIGENCE: - if (nRDDLevel > 8) nReturn = 2; - else nReturn = 0; - break; - case ABILITY_WISDOM: - nReturn = 0; - break; - case ABILITY_CHARISMA: - if (nRDDLevel > 9) nReturn = 2; - else nReturn = 0; - break; - } -return nReturn; -} - -int GetArmorPenalty(object oPC) -{ - object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC); - if (!GetIsObjectValid(oItem)) return 0; - if (GetBaseItemType(oItem) != BASE_ITEM_ARMOR) return 0; - SetIdentified(oItem,FALSE); - int nPenalty = 0; - switch (GetGoldPieceValue(oItem)) - { - case 1: nPenalty = 0; break; - case 5: nPenalty = 0; break; - case 10: nPenalty = 0; break; - case 15: nPenalty = 1; break; - case 100: nPenalty = 2; break; - case 150: nPenalty = 5; break; - case 200: nPenalty = 7; break; - case 600: nPenalty = 7; break; - case 1500: nPenalty = 8; break; - } - SetIdentified(oItem,TRUE); - return nPenalty; -} - -int GetShieldPenalty(object oPC) -{ - object oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC); - if (!GetIsObjectValid(oItem)) return 0; - int nType = GetBaseItemType(oItem); - int nPenalty = 0; - switch(nType) - { - case BASE_ITEM_SMALLSHIELD: nPenalty = 1; break; - case BASE_ITEM_LARGESHIELD: nPenalty = 2; break; - case BASE_ITEM_TOWERSHIELD: nPenalty = 10; break; - default: nPenalty = 0; break; - } - return nPenalty; -} - -int GetBaseSkill(int nSkill, struct xAbility stat, object oPC) -{ -int nSubtract = 0; -int nModifier = 0; -int nBase = 0; -int nArmorShield = 0; -int nValue = GetSkillRank(nSkill, oPC); -if (GetCostOfSkill(GetControlClass(oPC), nSkill) == -1 || nValue == 0) - { - return 0; //if skill non-available return 0 - } -else - { - switch(nSkill) - { - case SKILL_ANIMAL_EMPATHY: - nBase = stat.nANIMAL_EMPATHY; - if(GetHasFeat(FEAT_SKILL_FOCUS_ANIMAL_EMPATHY,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_ANIMAL_EMPATHY,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier=GetBaseAbilityModifier(stat.nCHA); - break; - case SKILL_APPRAISE: - nBase = stat.nAPPRAISE; - if(GetHasFeat(FEAT_SILVER_PALM,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILLFOCUS_APPRAISE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_APPRAISE,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_BLUFF: - nBase = stat.nBLUFF; - if(GetHasFeat(FEAT_EPIC_REPUTATION,oPC)) - nSubtract=nSubtract+4; - if(GetHasFeat(FEAT_SKILL_FOCUS_BLUFF,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_BLUFF,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCHA); - break; - case SKILL_CONCENTRATION: - nBase = stat.nCONCENTRATION; - if(GetHasFeat(FEAT_SKILL_AFFINITY_CONCENTRATION,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_CONCENTRATION,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_CONCENTRATION,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatConstitution(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCON); - break; - case SKILL_CRAFT_ARMOR: - nBase = stat.nCRAFT_ARMOR; - if(GetHasFeat(FEAT_SKILL_FOCUS_CRAFT_ARMOR,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_CRAFT_TRAP: - nBase = stat.nCRAFT_TRAP; - if(GetHasFeat(FEAT_SKILL_FOCUS_CRAFT_TRAP,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_CRAFT_WEAPON: - nBase = stat.nCRAFT_WEAPON; - if(GetHasFeat(FEAT_SKILL_FOCUS_CRAFT_WEAPON,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_DISABLE_TRAP: - nBase = stat.nDISABLE_TRAP; - if(GetHasFeat(FEAT_SKILL_FOCUS_DISABLE_TRAP,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_DISABLETRAP,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_DISCIPLINE: - nBase = stat.nDISCIPLINE; - if(GetHasFeat(FEAT_SKILL_FOCUS_DISCIPLINE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_DISCIPLINE,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatStrenth(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nSTR); - break; - case SKILL_HEAL: - nBase = stat.nHEAL; - if(GetHasFeat(FEAT_SKILL_FOCUS_HEAL,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_HEAL,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatWisdom(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nWIS); - break; - case SKILL_HIDE: - nBase = stat.nHIDE; - if(GetHasFeat(FEAT_STEALTHY,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_HIDE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_HIDE,oPC)) - nSubtract=nSubtract+10; - nArmorShield = GetArmorPenalty(oPC) + GetShieldPenalty(oPC); -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_INTIMIDATE: - nBase = stat.nINTIMIDATE; - if(GetHasFeat(FEAT_EPIC_REPUTATION,oPC)) - nSubtract=nSubtract+4; - if(GetHasFeat(FEAT_SKILL_FOCUS_INTIMIDATE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_INTIMIDATE,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCHA); - break; - case SKILL_LISTEN: - nBase = stat.nLISTEN; - if(GetHasFeat(FEAT_PARTIAL_SKILL_AFFINITY_LISTEN,oPC)) - nSubtract++; - if(GetHasFeat(FEAT_ALERTNESS,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_AFFINITY_LISTEN,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_LISTEN,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_LISTEN,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatWisdom(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nWIS); - break; - case SKILL_LORE: - nBase = stat.nLORE; - if(GetHasFeat(FEAT_BARDIC_KNOWLEDGE,oPC)) - nSubtract=nSubtract+GetLevelByClass(CLASS_TYPE_BARD,oPC)+GetLevelByClass(CLASS_TYPE_HARPER); - if(GetHasFeat(FEAT_SKILL_AFFINITY_LORE,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_COURTLY_MAGOCRACY,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_LORE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_LORE,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_MOVE_SILENTLY: - nBase = stat.nMOVE_SILENTLY; - if(GetHasFeat(FEAT_STEALTHY,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_AFFINITY_MOVE_SILENTLY,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_MOVE_SILENTLY,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY,oPC)) - nSubtract=nSubtract+10; - nArmorShield = GetArmorPenalty(oPC) + GetShieldPenalty(oPC); -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_OPEN_LOCK: - nBase = stat.nOPEN_LOCK; - if(GetHasFeat(FEAT_SKILL_FOCUS_OPEN_LOCK,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_OPENLOCK,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_PARRY: - nBase = stat.nPARRY; - if(GetHasFeat(FEAT_SKILL_FOCUS_PARRY,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_PARRY,oPC)) - nSubtract=nSubtract+10; - nArmorShield = GetArmorPenalty(oPC) + GetShieldPenalty(oPC); -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_PERFORM: - nBase = stat.nPERFORM; - if(GetHasFeat(FEAT_ARTIST,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_PERFORM,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_PERFORM,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCHA); - break; - case SKILL_PERSUADE: - nBase = stat.nPERSUADE; - if(GetHasFeat(FEAT_SILVER_PALM,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_THUG,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_EPIC_REPUTATION,oPC)) - nSubtract=nSubtract+4; - if(GetHasFeat(FEAT_SKILL_FOCUS_PERSUADE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_PERSUADE,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCHA); - break; - case SKILL_PICK_POCKET: - nBase = stat.nPICK_POCKET; - if(GetHasFeat(FEAT_SKILL_FOCUS_PICK_POCKET,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_PICKPOCKET,oPC)) - nSubtract=nSubtract+10; - nArmorShield = GetArmorPenalty(oPC) + GetShieldPenalty(oPC); -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_SEARCH: - nBase = stat.nSEARCH; - if(GetHasFeat(FEAT_PARTIAL_SKILL_AFFINITY_SEARCH,oPC)) - nSubtract=nSubtract+1; - if(GetHasFeat(FEAT_SKILL_AFFINITY_SEARCH,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_SEARCH,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_SEARCH,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_SET_TRAP: - nBase = stat.nSET_TRAP; - if(GetHasFeat(FEAT_SKILL_FOCUS_SET_TRAP,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_SETTRAP,oPC)) - nSubtract=nSubtract+10; - nArmorShield = GetArmorPenalty(oPC) + GetShieldPenalty(oPC); -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_SPELLCRAFT: - nBase = stat.nSPELLCRAFT; - if(GetHasFeat(FEAT_COURTLY_MAGOCRACY,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_SPELLCRAFT,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatIntelligence(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nINT); - break; - case SKILL_SPOT: - nBase = stat.nSPOT; - if(GetHasFeat(FEAT_ALERTNESS,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_BLOODED,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_ARTIST,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_PARTIAL_SKILL_AFFINITY_SPOT,oPC)) - nSubtract=nSubtract+1; - if(GetHasFeat(FEAT_SKILL_AFFINITY_SPOT,oPC)) - nSubtract=nSubtract+2; - if(GetHasFeat(FEAT_SKILL_FOCUS_SPOT,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_SPOT,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatWisdom(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nWIS); - break; - case SKILL_TAUNT: - nBase = stat.nTAUNT; - if(GetHasFeat(FEAT_EPIC_REPUTATION,oPC)) - nSubtract=nSubtract+4; - if(GetHasFeat(FEAT_SKILL_FOCUS_TAUNT,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_TAUNT,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCHA); - break; - case SKILL_TUMBLE: - nBase = stat.nTUMBLE; - if(GetHasFeat(FEAT_SKILL_FOCUS_TUMBLE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_TUMBLE,oPC)) - nSubtract=nSubtract+10; - nArmorShield = GetArmorPenalty(oPC) + GetShieldPenalty(oPC); -// nSubtract = nSubtract + (GetHasGreatDexterity(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nDEX); - break; - case SKILL_USE_MAGIC_DEVICE: - nBase = stat.nUSE_MAGIC_DEVICE; - if(GetHasFeat(FEAT_SKILL_FOCUS_USE_MAGIC_DEVICE,oPC)) - nSubtract=nSubtract+3; - if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE,oPC)) - nSubtract=nSubtract+10; -// nSubtract = nSubtract + (GetHasGreatCharisma(oPC)/2); - nModifier = GetBaseAbilityModifier(stat.nCHA); - break; - default: return -3; - } - return (nBase-nSubtract-nModifier+nArmorShield); - } -} - -struct xAbility GetBaseAbilities(struct xAbility stat, object oPC) -{ -struct xAbility base; -int iCount; -int nBaseAbility; -for(iCount = 0; iCount < 6; iCount++)//filter out the greater stat feats - { - switch(iCount) - { - case ABILITY_STRENGTH: base.nSTR = GetBaseStat(iCount, stat.nSTR, oPC); break; - case ABILITY_DEXTERITY: base.nDEX = GetBaseStat(iCount, stat.nDEX, oPC); break; - case ABILITY_CONSTITUTION: base.nCON = GetBaseStat(iCount, stat.nCON, oPC); break; - case ABILITY_INTELLIGENCE: base.nINT = GetBaseStat(iCount, stat.nINT, oPC); break; - case ABILITY_WISDOM: base.nWIS = GetBaseStat(iCount, stat.nWIS, oPC); break; - case ABILITY_CHARISMA: base.nCHA = GetBaseStat(iCount, stat.nCHA, oPC); break; - } - } -//For skills we must still process them to remove ability and feat bonuses. -for(iCount = 0; iCount < 27; iCount++) - { - nBaseAbility = GetBaseSkill(iCount, stat, oPC); - switch (iCount) - { - case 0: base.nANIMAL_EMPATHY = nBaseAbility; break; - case 1: base.nCONCENTRATION = nBaseAbility; break; - case 2: base.nDISABLE_TRAP = nBaseAbility; break; - case 3: base.nDISCIPLINE = nBaseAbility; break; - case 4: base.nHEAL = nBaseAbility; break; - case 5: base.nHIDE = nBaseAbility; break; - case 6: base.nLISTEN = nBaseAbility; break; - case 7: base.nLORE = nBaseAbility; break; - case 8: base.nMOVE_SILENTLY = nBaseAbility; break; - case 9: base.nOPEN_LOCK = nBaseAbility; break; - case 10: base.nPARRY = nBaseAbility; break; - case 11: base.nPERFORM = nBaseAbility; break; - case 12: base.nPERSUADE = nBaseAbility; break; - case 13: base.nPICK_POCKET = nBaseAbility; break; - case 14: base.nSEARCH = nBaseAbility; break; - case 15: base.nSET_TRAP = nBaseAbility; break; - case 16: base.nSPELLCRAFT = nBaseAbility; break; - case 17: base.nSPOT = nBaseAbility; break; - case 18: base.nTAUNT = nBaseAbility; break; - case 19: base.nUSE_MAGIC_DEVICE = nBaseAbility; break; - case 20: base.nAPPRAISE = nBaseAbility; break; - case 21: base.nTUMBLE = nBaseAbility; break; - case 22: base.nCRAFT_TRAP = nBaseAbility; break; - case 23: base.nBLUFF = nBaseAbility; break; - case 24: base.nINTIMIDATE = nBaseAbility; break; - case 25: base.nCRAFT_ARMOR = nBaseAbility; break; - case 26: base.nCRAFT_WEAPON = nBaseAbility; break; - } - } -return base; -} - -void SetBaseAbilityMarkers(struct xAbility stat, object oPC) -{ -SetLocalInt(oPC, "BASE_STR", stat.nSTR); -SetLocalInt(oPC, "BASE_DEX", stat.nDEX); -SetLocalInt(oPC, "BASE_CON", stat.nCON); -SetLocalInt(oPC, "BASE_INT", stat.nINT); -SetLocalInt(oPC, "BASE_WIS", stat.nWIS); -SetLocalInt(oPC, "BASE_CHA", stat.nCHA); -DoDebug(oPC, "Base ability ints set as STR: "+IntToString(GetLocalInt(oPC, "BASE_STR"))+", DEX: "+IntToString(GetLocalInt(oPC, "BASE_DEX"))+", CON: "+IntToString(GetLocalInt(oPC, "BASE_CON"))+", INT: "+IntToString(GetLocalInt(oPC, "BASE_INT"))+", WIS: "+IntToString(GetLocalInt(oPC, "BASE_WIS"))+", CHA: "+IntToString(GetLocalInt(oPC, "BASE_CHA"))+"."); -SetLocalInt(oPC, "BASE_ANIMAL", stat.nANIMAL_EMPATHY); -SetLocalInt(oPC, "BASE_CONCEN", stat.nCONCENTRATION); -SetLocalInt(oPC, "BASE_DISABL", stat.nDISABLE_TRAP); -SetLocalInt(oPC, "BASE_DISCIP", stat.nDISCIPLINE); -SetLocalInt(oPC, "BASE_HEAL", stat.nHEAL); -SetLocalInt(oPC, "BASE_HIDE", stat.nHIDE); -DoDebug(oPC, "Base ability ints set as ANIMAL: "+IntToString(GetLocalInt(oPC, "BASE_ANIMAL"))+", CONCEN: "+IntToString(GetLocalInt(oPC, "BASE_CONCEN"))+", DISABL: "+IntToString(GetLocalInt(oPC, "BASE_DISABL"))+", DISCIP: "+IntToString(GetLocalInt(oPC, "BASE_DISCIP"))+", HEAL: "+IntToString(GetLocalInt(oPC, "BASE_HEAL"))+", HIDE: "+IntToString(GetLocalInt(oPC, "BASE_HIDE"))+"."); -SetLocalInt(oPC, "BASE_LISTEN", stat.nLISTEN); -SetLocalInt(oPC, "BASE_LORE", stat.nLORE); -SetLocalInt(oPC, "BASE_MOVE_S", stat.nMOVE_SILENTLY); -SetLocalInt(oPC, "BASE_OPEN_L", stat.nOPEN_LOCK); -SetLocalInt(oPC, "BASE_PARRY", stat.nPARRY); -SetLocalInt(oPC, "BASE_PERFOR", stat.nPERFORM); -DoDebug(oPC, "Base ability ints set as LISTEN: "+IntToString(GetLocalInt(oPC, "BASE_LISTEN"))+", LORE: "+IntToString(GetLocalInt(oPC, "BASE_LORE"))+", MOVE_S: "+IntToString(GetLocalInt(oPC, "BASE_MOVE_S"))+", OPEN_L: "+IntToString(GetLocalInt(oPC, "BASE_OPEN_L"))+", PARRY: "+IntToString(GetLocalInt(oPC, "BASE_PARRY"))+", PERFOR: "+IntToString(GetLocalInt(oPC, "BASE_PERFOR"))+"."); -SetLocalInt(oPC, "BASE_PERSUA", stat.nPERSUADE); -SetLocalInt(oPC, "BASE_PICK_P", stat.nPICK_POCKET); -SetLocalInt(oPC, "BASE_SEARCH", stat.nSEARCH); -SetLocalInt(oPC, "BASE_SET_TR", stat.nSET_TRAP); -SetLocalInt(oPC, "BASE_SPELLC", stat.nSPELLCRAFT); -SetLocalInt(oPC, "BASE_SPOT", stat.nSPOT); -DoDebug(oPC, "Base ability ints set as PERSUA: "+IntToString(GetLocalInt(oPC, "BASE_PERSUA"))+", PICK_P: "+IntToString(GetLocalInt(oPC, "BASE_PICK_P"))+", SEARCH: "+IntToString(GetLocalInt(oPC, "BASE_SEARCH"))+", SET_TR: "+IntToString(GetLocalInt(oPC, "BASE_SET_TR"))+", SPELLC: "+IntToString(GetLocalInt(oPC, "BASE_SPELLC"))+", SPOT: "+IntToString(GetLocalInt(oPC, "BASE_SPOT"))+"."); -SetLocalInt(oPC, "BASE_TAUNT", stat.nTAUNT); -SetLocalInt(oPC, "BASE_USE_MA", stat.nUSE_MAGIC_DEVICE); -SetLocalInt(oPC, "BASE_APPRAI", stat.nAPPRAISE); -SetLocalInt(oPC, "BASE_TUMBLE", stat.nTUMBLE); -SetLocalInt(oPC, "BASE_CRAFT_T", stat.nCRAFT_TRAP); -SetLocalInt(oPC, "BASE_BLUFF", stat.nBLUFF); -DoDebug(oPC, "Base ability ints set as TAUNT: "+IntToString(GetLocalInt(oPC, "BASE_TAUNT"))+", USE_MA: "+IntToString(GetLocalInt(oPC, "BASE_USE_MA"))+", APPRAI: "+IntToString(GetLocalInt(oPC, "BASE_APPRAI"))+", TUMBLE: "+IntToString(GetLocalInt(oPC, "BASE_TUMBLE"))+", CRAFT_T: "+IntToString(GetLocalInt(oPC, "BASE_CRAFT_T"))+", BLUFF: "+IntToString(GetLocalInt(oPC, "BASE_BLUFF"))+"."); -SetLocalInt(oPC, "BASE_INTIMI", stat.nINTIMIDATE); -SetLocalInt(oPC, "BASE_CRAFT_A", stat.nCRAFT_ARMOR); -SetLocalInt(oPC, "BASE_CRAFT_W", stat.nCRAFT_WEAPON); -DoDebug(oPC, "Base ability ints set as INTIMI: "+IntToString(GetLocalInt(oPC, "BASE_INTIMI"))+", CRAFT_A: "+IntToString(GetLocalInt(oPC, "BASE_CRAFT_A"))+", CRAFT_W: "+IntToString(GetLocalInt(oPC, "BASE_CRAFT_W"))+"."); -} - -void DeleteBaseAbilityMarkers(object oPC) -{ -DeleteLocalInt(oPC, "BASE_STR"); -DeleteLocalInt(oPC, "BASE_DEX"); -DeleteLocalInt(oPC, "BASE_CON"); -DeleteLocalInt(oPC, "BASE_INT"); -DeleteLocalInt(oPC, "BASE_WIS"); -DeleteLocalInt(oPC, "BASE_CHA"); -DoDebug(oPC, "Base ability ints set as STR: "+IntToString(GetLocalInt(oPC, "BASE_STR"))+", DEX: "+IntToString(GetLocalInt(oPC, "BASE_DEX"))+", CON: "+IntToString(GetLocalInt(oPC, "BASE_CON"))+", INT: "+IntToString(GetLocalInt(oPC, "BASE_INT"))+", WIS: "+IntToString(GetLocalInt(oPC, "BASE_WIS"))+", CHA: "+IntToString(GetLocalInt(oPC, "BASE_CHA"))+"."); -DeleteLocalInt(oPC, "BASE_ANIMAL"); -DeleteLocalInt(oPC, "BASE_CONCEN"); -DeleteLocalInt(oPC, "BASE_DISABL"); -DeleteLocalInt(oPC, "BASE_DISCIP"); -DeleteLocalInt(oPC, "BASE_HEAL"); -DeleteLocalInt(oPC, "BASE_HIDE"); -DoDebug(oPC, "Base ability ints set as ANIMAL: "+IntToString(GetLocalInt(oPC, "BASE_ANIMAL"))+", CONCEN: "+IntToString(GetLocalInt(oPC, "BASE_CONCEN"))+", DISABL: "+IntToString(GetLocalInt(oPC, "BASE_DISABL"))+", DISCIP: "+IntToString(GetLocalInt(oPC, "BASE_DISCIP"))+", HEAL: "+IntToString(GetLocalInt(oPC, "BASE_HEAL"))+", HIDE: "+IntToString(GetLocalInt(oPC, "BASE_HIDE"))+"."); -DeleteLocalInt(oPC, "BASE_LISTEN"); -DeleteLocalInt(oPC, "BASE_LORE"); -DeleteLocalInt(oPC, "BASE_MOVE_S"); -DeleteLocalInt(oPC, "BASE_OPEN_L"); -DeleteLocalInt(oPC, "BASE_PARRY"); -DeleteLocalInt(oPC, "BASE_PERFOR"); -DoDebug(oPC, "Base ability ints set as LISTEN: "+IntToString(GetLocalInt(oPC, "BASE_LISTEN"))+", LORE: "+IntToString(GetLocalInt(oPC, "BASE_LORE"))+", MOVE_S: "+IntToString(GetLocalInt(oPC, "BASE_MOVE_S"))+", OPEN_L: "+IntToString(GetLocalInt(oPC, "BASE_OPEN_L"))+", PARRY: "+IntToString(GetLocalInt(oPC, "BASE_PARRY"))+", PERFOR: "+IntToString(GetLocalInt(oPC, "BASE_PERFOR"))+"."); -DeleteLocalInt(oPC, "BASE_PERSUA"); -DeleteLocalInt(oPC, "BASE_PICK_P"); -DeleteLocalInt(oPC, "BASE_SEARCH"); -DeleteLocalInt(oPC, "BASE_SET_TR"); -DeleteLocalInt(oPC, "BASE_SPELLC"); -DeleteLocalInt(oPC, "BASE_SPOT"); -DoDebug(oPC, "Base ability ints set as PERSUA: "+IntToString(GetLocalInt(oPC, "BASE_PERSUA"))+", PICK_P: "+IntToString(GetLocalInt(oPC, "BASE_PICK_P"))+", SEARCH: "+IntToString(GetLocalInt(oPC, "BASE_SEARCH"))+", SET_TR: "+IntToString(GetLocalInt(oPC, "BASE_SET_TR"))+", SPELLC: "+IntToString(GetLocalInt(oPC, "BASE_SPELLC"))+", SPOT: "+IntToString(GetLocalInt(oPC, "BASE_SPOT"))+"."); -DeleteLocalInt(oPC, "BASE_TAUNT"); -DeleteLocalInt(oPC, "BASE_USE_MA"); -DeleteLocalInt(oPC, "BASE_APPRAI"); -DeleteLocalInt(oPC, "BASE_TUMBLE"); -DeleteLocalInt(oPC, "BASE_CRAFT_T"); -DeleteLocalInt(oPC, "BASE_BLUFF"); -DoDebug(oPC, "Base ability ints set as TAUNT: "+IntToString(GetLocalInt(oPC, "BASE_TAUNT"))+", USE_MA: "+IntToString(GetLocalInt(oPC, "BASE_USE_MA"))+", APPRAI: "+IntToString(GetLocalInt(oPC, "BASE_APPRAI"))+", TUMBLE: "+IntToString(GetLocalInt(oPC, "BASE_TUMBLE"))+", CRAFT_T: "+IntToString(GetLocalInt(oPC, "BASE_CRAFT_T"))+", BLUFF: "+IntToString(GetLocalInt(oPC, "BASE_BLUFF"))+"."); -DeleteLocalInt(oPC, "BASE_INTIMI"); -DeleteLocalInt(oPC, "BASE_CRAFT_A"); -DeleteLocalInt(oPC, "BASE_CRAFT_W"); -DoDebug(oPC, "Base ability ints set as INTIMI: "+IntToString(GetLocalInt(oPC, "BASE_INTIMI"))+", CRAFT_A: "+IntToString(GetLocalInt(oPC, "BASE_CRAFT_A"))+", CRAFT_W: "+IntToString(GetLocalInt(oPC, "BASE_CRAFT_W"))+"."); -} - -int GetSkillPointsGainedOnLevelUp(object oPC) -{ -int nClass = GetControlClass(oPC); -int nInt = GetLocalInt(oPC, "BASE_INT"); -int nClassBonus = 0; -int nRaceBonus = 0; -int nTotal; -if(GetRacialType(oPC)==RACIAL_TYPE_HUMAN) - { - nRaceBonus = 1; - } -switch(nClass) - { - case CLASS_TYPE_ROGUE: - nClassBonus = 8; break; - case CLASS_TYPE_SHADOWDANCER: - nClassBonus = 6; break; - case CLASS_TYPE_ARCANE_ARCHER: - case CLASS_TYPE_ASSASSIN: - case CLASS_TYPE_BARBARIAN: - case CLASS_TYPE_BARD: - case CLASS_TYPE_DRUID: - case CLASS_TYPE_HARPER: - case CLASS_TYPE_MONK: - case CLASS_TYPE_RANGER: - case CLASS_TYPE_SHIFTER: - nClassBonus = 4; break; - case CLASS_TYPE_BLACKGUARD: - case CLASS_TYPE_CLERIC: - case CLASS_TYPE_FIGHTER: - case CLASS_TYPE_DIVINECHAMPION: - case CLASS_TYPE_DRAGONDISCIPLE: - case CLASS_TYPE_DWARVENDEFENDER: - case CLASS_TYPE_PALADIN: - case CLASS_TYPE_PALEMASTER: - case CLASS_TYPE_SORCERER: - case CLASS_TYPE_WEAPON_MASTER: - case CLASS_TYPE_WIZARD: - nClassBonus = 2; break; - } -nTotal = nClassBonus+nRaceBonus+GetBaseAbilityModifier(nInt); -DoDebug(oPC, "Skill Points Gained: "+IntToString(nTotal)+"."); -return nTotal; -} - -int GetIsSkillAvailable(object oPC, int nSkill) -{ -int nPointsAvailable = GetLocalInt(oPC, "PointsAvailable"); -int nClass = GetControlClass(oPC); -int nLevel = CheckLegendaryLevel(oPC); -int nSkillMax; -int nSkillTotal; -switch (nSkill) - { - case 0: nSkillTotal = GetLocalInt(oPC, "BASE_ANIMAL"); break; - case 1: nSkillTotal = GetLocalInt(oPC, "BASE_CONCEN"); break; - case 2: nSkillTotal = GetLocalInt(oPC, "BASE_DISABL"); break; - case 3: nSkillTotal = GetLocalInt(oPC, "BASE_DISCIP"); break; - case 4: nSkillTotal = GetLocalInt(oPC, "BASE_HEAL"); break; - case 5: nSkillTotal = GetLocalInt(oPC, "BASE_HIDE"); break; - case 6: nSkillTotal = GetLocalInt(oPC, "BASE_LISTEN"); break; - case 7: nSkillTotal = GetLocalInt(oPC, "BASE_LORE"); break; - case 8: nSkillTotal = GetLocalInt(oPC, "BASE_MOVE_S"); break; - case 9: nSkillTotal = GetLocalInt(oPC, "BASE_OPEN_L"); break; - case 10: nSkillTotal = GetLocalInt(oPC, "BASE_PARRY"); break; - case 11: nSkillTotal = GetLocalInt(oPC, "BASE_PERFOR"); break; - case 12: nSkillTotal = GetLocalInt(oPC, "BASE_PERSUA"); break; - case 13: nSkillTotal = GetLocalInt(oPC, "BASE_PICK_P"); break; - case 14: nSkillTotal = GetLocalInt(oPC, "BASE_SEARCH"); break; - case 15: nSkillTotal = GetLocalInt(oPC, "BASE_SET_TR"); break; - case 16: nSkillTotal = GetLocalInt(oPC, "BASE_SPELLC"); break; - case 17: nSkillTotal = GetLocalInt(oPC, "BASE_SPOT"); break; - case 18: nSkillTotal = GetLocalInt(oPC, "BASE_TAUNT"); break; - case 19: nSkillTotal = GetLocalInt(oPC, "BASE_USE_MA"); break; - case 20: nSkillTotal = GetLocalInt(oPC, "BASE_APPRAI"); break; - case 21: nSkillTotal = GetLocalInt(oPC, "BASE_TUMBLE"); break; - case 22: nSkillTotal = GetLocalInt(oPC, "BASE_CRAFT_T"); break; - case 23: nSkillTotal = GetLocalInt(oPC, "BASE_BLUFF"); break; - case 24: nSkillTotal = GetLocalInt(oPC, "BASE_INTIMI"); break; - case 25: nSkillTotal = GetLocalInt(oPC, "BASE_CRAFT_A"); break; - case 26: nSkillTotal = GetLocalInt(oPC, "BASE_CRAFT_W"); break; - } -int nSkillCost = GetCostOfSkill(nClass, nSkill);//returns -1 if not available -if (nSkillCost == 2)//cross-class - { - nSkillMax = (nLevel+4)/2;//they can go up to half of (three points higher than their new level), CheckLegendaryLevel returns the CURRENT level - } -else - { - nSkillMax = nLevel+4;//they can go three points higher than their new level, CheckLegendaryLevel returns the CURRENT level - } -if((nSkillCost > 0) && (nPointsAvailable >= nSkillCost) && (nSkillTotal < nSkillMax)) return TRUE; -else return FALSE; -} - -string GetNameOfSkill(int nSkill) -{ -string sSkill; -switch (nSkill) - { - case 0: sSkill = "Animal Empathy"; break; - case 1: sSkill = "Concentration"; break; - case 2: sSkill = "Disable Trap"; break; - case 3: sSkill = "Discipline"; break; - case 4: sSkill = "Heal"; break; - case 5: sSkill = "Hide"; break; - case 6: sSkill = "Listen"; break; - case 7: sSkill = "Lore"; break; - case 8: sSkill = "Move Silently"; break; - case 9: sSkill = "Open Lock"; break; - case 10: sSkill = "Parry"; break; - case 11: sSkill = "Perform"; break; - case 12: sSkill = "Persuade"; break; - case 13: sSkill = "Pick Pocket"; break; - case 14: sSkill = "Search"; break; - case 15: sSkill = "Set Trap"; break; - case 16: sSkill = "Spellcraft"; break; - case 17: sSkill = "Spot"; break; - case 18: sSkill = "Taunt"; break; - case 19: sSkill = "Use Magic Device"; break; - case 20: sSkill = "Appraise"; break; - case 21: sSkill = "Tumble"; break; - case 22: sSkill = "Craft Trap"; break; - case 23: sSkill = "Bluff"; break; - case 24: sSkill = "Intimidate"; break; - case 25: sSkill = "Craft Armor"; break; - case 26: sSkill = "Craft Weapon"; break; - default: sSkill = ""; break; - } -return sSkill; -} - -string GetNameOfTrackingInt(int nSkill) -{ -string sSkill; -switch (nSkill) - { - case 0: sSkill = "BASE_ANIMAL"; break; - case 1: sSkill = "BASE_CONCEN"; break; - case 2: sSkill = "BASE_DISABL"; break; - case 3: sSkill = "BASE_DISCIP"; break; - case 4: sSkill = "BASE_HEAL"; break; - case 5: sSkill = "BASE_HIDE"; break; - case 6: sSkill = "BASE_LISTEN"; break; - case 7: sSkill = "BASE_LORE"; break; - case 8: sSkill = "BASE_MOVE_S"; break; - case 9: sSkill = "BASE_OPEN_L"; break; - case 10: sSkill = "BASE_PARRY"; break; - case 11: sSkill = "BASE_PERFOR"; break; - case 12: sSkill = "BASE_PERSUA"; break; - case 13: sSkill = "BASE_PICK_P"; break; - case 14: sSkill = "BASE_SEARCH"; break; - case 15: sSkill = "BASE_SET_TR"; break; - case 16: sSkill = "BASE_SPELLC"; break; - case 17: sSkill = "BASE_SPOT"; break; - case 18: sSkill = "BASE_TAUNT"; break; - case 19: sSkill = "BASE_USE_MA"; break; - case 20: sSkill = "BASE_APPRAI"; break; - case 21: sSkill = "BASE_TUMBLE"; break; - case 22: sSkill = "BASE_CRAFT_T"; break; - case 23: sSkill = "BASE_BLUFF"; break; - case 24: sSkill = "BASE_INTIMI"; break; - case 25: sSkill = "BASE_CRAFT_A"; break; - case 26: sSkill = "BASE_CRAFT_W"; break; - default: sSkill = ""; break; - } -return sSkill; -} - -int GetHitPointsGainedOnLevelUp(object oPC) -{ -int nClass = GetControlClass(oPC); -int nCon = GetLocalInt(oPC, "BASE_CON"); -int nClassDie; -int nFeatBonus = 0; -int nTotal; -if(GetHasFeat(FEAT_TOUGHNESS, oPC)) -{ -nFeatBonus = 1; -} -switch(nClass) - { - case CLASS_TYPE_DWARVENDEFENDER: - case CLASS_TYPE_BARBARIAN: - nClassDie = 12; break; - case CLASS_TYPE_DIVINECHAMPION: - case CLASS_TYPE_WEAPON_MASTER: - case CLASS_TYPE_PALADIN: - case CLASS_TYPE_RANGER: - case CLASS_TYPE_BLACKGUARD: - case CLASS_TYPE_FIGHTER: - case CLASS_TYPE_DRAGONDISCIPLE: - nClassDie = 10; break; - case CLASS_TYPE_SHADOWDANCER: - case CLASS_TYPE_DRUID: - case CLASS_TYPE_ARCANE_ARCHER: - case CLASS_TYPE_MONK: - case CLASS_TYPE_SHIFTER: - case CLASS_TYPE_CLERIC: - nClassDie = 8; break; - case CLASS_TYPE_ROGUE: - case CLASS_TYPE_ASSASSIN: - case CLASS_TYPE_BARD: - case CLASS_TYPE_HARPER: - case CLASS_TYPE_PALEMASTER: - nClassDie = 6; break; - case CLASS_TYPE_SORCERER: - case CLASS_TYPE_WIZARD: - nClassDie = 4; break; - } -nTotal = nClassDie+nFeatBonus+GetBaseAbilityModifier(nCon)+10; -DoDebug(oPC, "HP Gained: "+IntToString(nTotal)+"."); -return nTotal; -} - -void ReplenishLimitedUseFeats(object oPC) -{ -int nFeat = 0; -for(nFeat = 0; nFeat < 1072; nFeat++) - { - if (GetIsFeatLimitedUses(nFeat)) - { - IncrementRemainingFeatUses(oPC, nFeat); - } - } -} - -int GetIsFeatAvailable(int nFeat, object oPC) -{ -int nClass = GetControlClass(oPC); -if (DEV_CRIT_DISABLED && GetIsFeatDevCrit(nFeat)) return FALSE; -if (GetIsFeatFirstLevelOnly(nFeat)) return FALSE; -if (GetHasFeat(nFeat, oPC) && nFeat != 13) return FALSE;//only Extra Turning (13) may be taken multiple times -if (!GetIsClassFeat(nFeat, nClass, oPC) && !GetIsGeneralFeat(nFeat)) return FALSE;//if it's not a class skill and it's not a general skill return FALSE -if (GetAreFeatStatReqsMet(nFeat, oPC) && - GetAreFeatSkillReqsMet(nFeat, oPC) && - GetAreFeatFeatReqsMet(nFeat, oPC) && - GetHasRequiredSpellLevelForFeat(oPC, nFeat)) return TRUE; - -return FALSE; -} - -string GetNameOfAbility(int nStat) -{ -string sReturn; -switch (nStat) - { - case ABILITY_STRENGTH: sReturn = "Strength"; break; - case ABILITY_DEXTERITY: sReturn = "Dexterity"; break; - case ABILITY_CONSTITUTION: sReturn = "Constitution"; break; - case ABILITY_INTELLIGENCE: sReturn = "Intelligence"; break; - case ABILITY_WISDOM: sReturn = "Wisdom"; break; - case ABILITY_CHARISMA: sReturn = "Charisma"; break; - } -return sReturn; -} - -int GetIsClassFeat(int nFeat, int nClass, object oPC) -{ -int nLevel = GetClassLevelReqForFeat(nFeat, nClass); -if (nLevel < -1) return FALSE; -if (GetLevelByClass(nClass, oPC) < nLevel) return FALSE; -return TRUE; -} - -//below used to compile -/* -void main() -{ - -} -*/ diff --git a/_removed files/hgll_leto_inc.nss b/_removed files/hgll_leto_inc.nss deleted file mode 100644 index 9c7f146c..00000000 --- a/_removed files/hgll_leto_inc.nss +++ /dev/null @@ -1,284 +0,0 @@ -#include "hgll_const_inc" -//--------------------------------DECLARATIONS--------------------------------// - -// This function bridges Letoscript into NWNX. -string LetoScript(string script); -// This function returns the bicfilename of the character specified. -string GetBicFileName(object oPC); -// This function finds the most recently edited .bic file in the player's folder, -// and applies whatever changes are conatained within the string of Letoscript. You must -// set the path to your servervault folder in the hgll_const_inc script for it to work. -// The easiest way to ensure that the ingame character is the most recently edited -// file is to save the character at least 3 seconds or more before calling this function. -void ApplyLetoScriptToPC(string Script, object oPC); -// This function tells Letoscript to add a stat point to the specified stat. -string AddStatPoint(int nStat); -// This function tells Letoscript to add a skill point to the specified skill. -string AddSkillPoint(int iSkill); -// This function tells Letoscript to add +1 to all the character's saving throws. -string ModifySaves(); -// This function tells Letoscript to add the specified number of hit points to the character. -string AddHitPoints(int nHP, int nLevel); -// This function tells Letoscript to add the specified feat to the character, treating -// it as if he had gained it on character creation (level 0). This ensures that deleveling -// the character thus will not remove the feat. -string AddFeat(int iFeat = -1); - -//----------------------------------FUNCTIONS---------------------------------// - -//--------------------------FUNCTIONS TAKEN FROM DAR--------------------------// - -string LetoScript(string script) -{ - SetLocalString(GetModule(), "NWNX!LETO!SCRIPT", script); - return GetLocalString(GetModule(), "NWNX!LETO!SCRIPT"); -} - - -string SetDocumentedLevel(int level = 1) { - string script = ""; - if (PHOENIX) - { - if(level > -1) script = ""; - } - else - { - if(level > -1) script = "/Lootable = "+IntToString(level)+";"; - } - return script; -} - -string GetBicFileName(object oPC) -{ - string sChar, sBicName; - string sPCName = GetStringLowerCase(GetName(oPC)); - int i, iNameLength = GetStringLength(sPCName); - - for(i=0; i < iNameLength; i++) { - sChar = GetSubString(sPCName, i, 1); - if (TestStringAgainstPattern("(*a|*n|*w|'|-|_)", sChar)) { - if (sChar != " ") sBicName += sChar; - } - } - return GetStringLeft(sBicName, 16); -} - -//------------------------------FUNCTIONS ADDED-------------------------------// - -void ApplyLetoScriptToPC(string Script, object oPC) -{ - string VaultPath = NWNPATH; - string Player = GetPCPlayerName(oPC); - string BicPath = VaultPath + Player + "/"; - string BicFile; - if (PHOENIX) - { - BicFile = BicPath + GetBicFileName(oPC)+ ".bic"; - Script = ">"+Script+">"; - } - else - { - Script = - "$RealFile = q<" + BicPath + "> + FindNewestBic q<" + BicPath + ">;" + - "$EditFile = $RealFile + '.utc';" + - "FileRename $RealFile, $EditFile;" + - "%bic = $EditFile or die;" + - Script + - "%bic = '>';" + - "close %bic;" + - "FileRename $EditFile, $RealFile;"; - } - SetLocalString(oPC, "LetoScript", Script); - //DelayCommand(3.0f, ActivatePortal(oPC, "62.167.237.11:5122", "", "",TRUE)); - DelayCommand(3.0f, BootPC(oPC)); - //DelayCommand(3.0f, ActivatePortal(oPC, "64.137.237.115:5121", "", "", TRUE)); -} - -string AddStatPoint(int nStat) -{ -string sReturn; -switch (nStat) - { - case ABILITY_STRENGTH: sReturn = "Str"; break; - case ABILITY_DEXTERITY: sReturn = "Dex"; break; - case ABILITY_CONSTITUTION: sReturn = "Con"; break; - case ABILITY_INTELLIGENCE: sReturn = "Int"; break; - case ABILITY_WISDOM: sReturn = "Wis"; break; - case ABILITY_CHARISMA: sReturn = "Cha"; break; - default: return ""; - } - if (PHOENIX) - { - return "+1)}>"; - } - else - { - return "/"+sReturn+" = /"+sReturn+" + 1;"; - } -} - -string AddSkillPoint(int iSkill) -{ - string sSkill = IntToString(iSkill); - if (PHOENIX) - { - return - "+1)}>"+ - "+1)}>"; - } - else - { - return - "/SkillList/["+sSkill+"]/Rank = /SkillList/["+sSkill+"]/Rank +1; "+ - "/LvlStatList/[0]/SkillList/["+sSkill+"]/Rank = /SkillList/["+sSkill+"]/Rank +1; "; - } -} - -string ModifySaves() -{ - string sLeto; - if (PHOENIX) - { - sLeto = "+1}>" + - "+1}>" + - "+1}>"; - } - else - { - sLeto = "/fortbonus = /fortbonus +1; /refbonus = /refbonus +1; /willbonus = /willbonus +1; "; - } - return sLeto; -} - -string AddHitPoints(int nHP, int nLevel) -{ -int nLvlHPAddedAt; -string sLeto; -string sLvl; -string sHP = IntToString(nHP); -if (nLevel < 41) - { - nLvlHPAddedAt = 0;//we add the hp at a different level each level so that the 255 field limit is never reached - if it was, it would roll over, causing the loss of 255 hps - } -else - { - nLvlHPAddedAt = nLevel - 40; - } -sLvl = IntToString(nLvlHPAddedAt); -if (PHOENIX) - { - sLeto = "+" + sHP + "}>" + - "+" + sHP + "}>" + - "+" + sHP + "}>" + - "+" + sHP + "}>" + - "+" + sHP + "}>"; - } -else - { - sLeto = "/HitPoints = /HitPoints + " + sHP + "; "; - sLeto += "/LvlStatList/[" + IntToString(nLvlHPAddedAt) + "]/LvlStatHitDie = /LvlStatList/[" + IntToString(nLvlHPAddedAt) + "]/LvlStatHitDie + " + sHP + "; "; - sLeto += "/MaxHitPoints = /MaxHitPoints + " + sHP + "; "; - sLeto += "/CurrentHitPoints = /CurrentHitPoints + " + sHP + "; "; - sLeto += "/PregameCurrent = /PregameCurrent + " + sHP + "; "; - } -return sLeto; -} - -string AddFeat(int iFeat = -1) -{ - string sLeto; - string sEnd; - if(iFeat < 0) return ""; - if(iFeat > 763 && iFeat < 824)//Greater Ability Feats - { - if(iFeat <= 773)//CHA - { - if (PHOENIX) - { - sLeto = "+1)}>"; - } - else - { - sLeto = "/Cha = /Cha + 1;"; - } - } - else if(iFeat <= 783)//CON - { - if (PHOENIX) - { - sLeto = "+1)}>"; - } - else - { - sLeto = "/Con = /Con + 1;"; - } - } - else if(iFeat <= 793)//DEX - { - if (PHOENIX) - { - sLeto = "+1)}>"; - } - else - { - sLeto = "/Dex = /Dex + 1;"; - } - } - else if(iFeat <= 803)//INT - { - if (PHOENIX) - { - sLeto = "+1)}>"; - } - else - { - sLeto = "/Int = /Int + 1;"; - } - } - else if(iFeat <= 813)//WIS - { - if (PHOENIX) - { - sLeto = "+1)}>"; - } - else - { - sLeto = "/Wis = /Wis + 1;"; - } - } - else // <= 823 STR - { - if (PHOENIX) - { - sLeto = "+1)}>"; - } - else - { - sLeto = "/Str = /Str + 1;"; - } - } - } - else - { - sLeto = ""; - } - if (PHOENIX) - { - sEnd = "" + - ""; - } - else - { - sEnd = "add /FeatList/Feat, type => gffWord, value => " + IntToString(iFeat) + ";" + - "add /LvlStatList/[0]/FeatList/Feat, type => gffWord, value => " + IntToString(iFeat) + ";"; - } - return sLeto + sEnd; - -} -//below used to compile -/* -void main() -{ - -} -*/ diff --git a/_removed files/hgll_spells_inc.nss b/_removed files/hgll_spells_inc.nss deleted file mode 100644 index 0f40c236..00000000 --- a/_removed files/hgll_spells_inc.nss +++ /dev/null @@ -1,808 +0,0 @@ -//Returns the level of the input bard spell. Returns -1 if the input is not a bard spell. -int GetBardSpellLevel(int nSpell); -//Returns the level of the input sorcerer spell. Returns -1 if the input is not a sorcerer spell. -int GetSorcSpellLevel(int nSpell); -//This returns the name of any input sorcerer or bard spell. -string GetSpellName(int nSpell); - -int GetBardSpellLevel(int nSpell) -{ -int nResult = -1; //Defaults to not a Bard Spell - switch (nSpell/150) - { - case 0://0-149 - switch (nSpell/25) - { - case 0://0-24 - switch(nSpell) - { - case 4: nResult=3; break; - case 8: nResult=2; break; - case 9: nResult=2; break; - case 13: nResult=2; break; - case 15: nResult=3; break; - case 16: nResult=1; break; - case 20: nResult=3; break; - case 21: nResult=2; break; - } - break; - case 1://25-49 - switch(nSpell) - { - case 26: nResult=3; break; - case 31: nResult=4; break; - case 32: nResult=1; break; - case 33: nResult=0; break; - case 34: nResult=2; break; - case 35: nResult=3; break; - case 36: nResult=2; break; - case 37: nResult=0; break; - case 40: nResult=4; break; - case 41: nResult=3; break; - case 45: nResult=4; break; - } - break; - case 2://50-74 - switch(nSpell) - { - case 54: nResult=3; break; - case 66: nResult=1; break; - case 67: nResult=5; break; - } - break; - case 3://75-99 - switch(nSpell) - { - case 75: nResult=3; break; - case 78: nResult=3; break; - case 80: nResult=5; break; - case 82: nResult=4; break; - case 83: nResult=2; break; - case 86: nResult=1; break; - case 88: nResult=4; break; - case 90: nResult=2; break; - case 92: nResult=3; break; - case 94: nResult=1; break; - } - break; - case 4://100-124 - switch(nSpell) - { - case 100: nResult=0; break; - case 102: nResult=1; break; - case 113: nResult=6; break; - case 118: nResult=5; break; - case 120: nResult=2; break; - case 121: nResult=5; break; - } - break; - case 5://125-149 - switch(nSpell) - { - case 126: nResult=4; break; - case 146: nResult=3; break; - case 147: nResult=3; break; - } - break; - } - break; - case 1://150-299 - switch (nSpell/25) - { - case 6://150-174 - switch (nSpell) - { - case 151: nResult=0; break; - case 155: nResult=1; break; - case 157: nResult=2; break; - case 163: nResult=2; break; - case 165: nResult=1; break; - case 166: nResult=3; break; - case 167: nResult=2; break; - case 174: nResult=1; break; - } - break; - case 7://175-199 - switch (nSpell) - { - case 175: nResult=2; break; - case 176: nResult=3; break; - case 177: nResult=4; break; - case 179: nResult=5; break; - case 180: nResult=6; break; - } - break; - - } - break; - case 2://300-449 - switch (nSpell/25) - { - case 12://300-324 - switch (nSpell) - { - case 321: nResult=1; break; - case 322: nResult=3; break; - } - break; - case 14://350-374 - switch (nSpell) - { - case 354: nResult=2; break; - case 355: nResult=2; break; - case 356: nResult=2; break; - case 365: nResult=2; break; - case 368: nResult=6; break; - case 369: nResult=6; break; - case 373: nResult=4; break; - } - break; - case 15://375-399 - switch (nSpell) - { - case 376: nResult=4; break; - case 377: nResult=3; break; - } - break; - case 16://400-424 - switch (nSpell) - { - case 416: nResult=0; break; - } - break; - case 17://425-449 - switch (nSpell) - { - case 436: nResult=1; break; - case 442: nResult=1; break; - case 445: nResult=6; break; - } - break; - } - break; - case 3://450-569 - switch (nSpell/25) - { - case 18://450-474 - switch (nSpell) - { - case 456: nResult=1; break; - case 457: nResult=2; break; - case 458: nResult=3; break; - } - break; - - case 21://525-549 - switch (nSpell) - { - case 539: nResult=3; break; - case 544: nResult=1; break; - case 545: nResult=3; break; - } - break; - case 22://550-569 - switch (nSpell) - { - case 569: nResult=2; break; - } - break; - } - break; - } - -return nResult; -} - -int GetSorcSpellLevel(int nSpell) -{ -int nResult=-1;//Defaults to not a sorcerer spell - switch (nSpell/150) - { - case 0://0-149 - switch (nSpell/25) - { - case 0://0-24 - switch (nSpell) - { - case 0: nResult=6; break; - case 2: nResult=5; break; - case 4: nResult=4; break; - case 8: nResult=2; break; - case 9: nResult=2; break; - case 10: nResult=1; break; - case 13: nResult=2; break; - case 14: nResult=6; break; - case 15: nResult=4; break; - case 16: nResult=1; break; - case 18: nResult=6; break; - case 20: nResult=3; break; - case 21: nResult=3; break; - case 23: nResult=5; break; - case 24: nResult=1; break; - } - break; - case 1://25-49 - switch (nSpell) - { - case 25: nResult=5; break; - case 26: nResult=4; break; - case 27: nResult=4; break; - case 28: nResult=7; break; - case 30: nResult=8; break; - case 36: nResult=2; break; - case 37: nResult=0; break; - case 39: nResult=7; break; - case 40: nResult=5; break; - case 41: nResult=3; break; - case 44: nResult=9; break; - case 45: nResult=5; break; - case 47: nResult=4; break; - case 49: nResult=2; break; - } - break; - case 2://50-74 - switch (nSpell) - { - case 50: nResult=1; break; - case 51: nResult=9; break; - case 52: nResult=4; break; - case 54: nResult=4; break; - case 55: nResult=5; break; - case 56: nResult=7; break; - case 58: nResult=3; break; - case 59: nResult=3; break; - case 63: nResult=9; break; - case 64: nResult=2; break; - case 65: nResult=6; break; - case 66: nResult=1; break; - case 67: nResult=6; break; - case 69: nResult=8; break; - case 71: nResult=5; break; - case 72: nResult=6; break; - case 73: nResult=9; break; - case 74: nResult=6; break; - } - break; - case 3://75-99 - switch (nSpell) - { - case 75: nResult=3; break; - case 78: nResult=3; break; - case 82: nResult=5; break; - case 83: nResult=3; break; - case 86: nResult=1; break; - case 88: nResult=4; break; - case 89: nResult=8; break; - case 90: nResult=2; break; - case 92: nResult=3; break; - case 93: nResult=2; break; - case 94: nResult=2; break; - case 95: nResult=5; break; - case 96: nResult=5; break; - case 98: nResult=4; break; - case 99: nResult=5; break; - } - break; - case 4://100-124 - switch (nSpell) - { - case 100: nResult=0; break; - case 101: nResult=3; break; - case 102: nResult=1; break; - case 107: nResult=1; break; - case 110: nResult=8; break; - case 111: nResult=8; break; - case 113: nResult=6; break; - case 115: nResult=2; break; - case 116: nResult=9; break; - case 117: nResult=8; break; - case 118: nResult=5; break; - case 119: nResult=4; break; - case 120: nResult=2; break; - case 121: nResult=6; break; - case 122: nResult=9; break; - case 123: nResult=7; break; - } - break; - case 5://125-149 - switch (nSpell) - { - case 127: nResult=4; break; - case 128: nResult=6; break; - case 130: nResult=4; break; - case 131: nResult=9; break; - case 132: nResult=7; break; - case 134: nResult=8; break; - case 135: nResult=7; break; - case 137: nResult=3; break; - case 141: nResult=7; break; - case 143: nResult=1; break; - case 144: nResult=0; break; - case 145: nResult=4; break; - case 146: nResult=4; break; - } - break; - } - break; - case 1://150-299 - switch (nSpell/25) - { - case 6://150-174 - switch (nSpell) - { - case 150: nResult=2; break; - case 151: nResult=0; break; - case 155: nResult=1; break; - case 157: nResult=2; break; - case 158: nResult=6; break; - case 159: nResult=4; break; - case 160: nResult=7; break; - case 161: nResult=9; break; - case 165: nResult=1; break; - case 166: nResult=3; break; - case 169: nResult=7; break; - case 171: nResult=3; break; - case 172: nResult=4; break; - case 174: nResult=1; break; - } - break; - case 7://175-199 - switch (nSpell) - { - case 175: nResult=2; break; - case 176: nResult=3; break; - case 177: nResult=4; break; - case 178: nResult=9; break; - case 179: nResult=5; break; - case 180: nResult=6; break; - case 181: nResult=7; break; - case 182: nResult=8; break; - case 184: nResult=6; break; - case 185: nResult=9; break; - case 186: nResult=6; break; - case 188: nResult=3; break; - case 190: nResult=9; break; - case 191: nResult=4; break; - case 192: nResult=2; break; - case 193: nResult=9; break; - } - break; - } - break; - case 2://300-449 - switch (nSpell/25) - { - case 12://300-324 - switch (nSpell) - { - case 321: nResult=1; break; - case 322: nResult=3; break; - } - break; - case 14://350-374 - switch (nSpell) - { - case 354: nResult=2; break; - case 355: nResult=2; break; - case 356: nResult=2; break; - case 365: nResult=2; break; - case 367: nResult=8; break; - case 368: nResult=4; break; - case 369: nResult=5; break; - case 370: nResult=3; break; - case 371: nResult=1; break; - } - break; - case 15://375-399 - switch (nSpell) - { - case 375: nResult=4; break; - case 376: nResult=6; break; - case 377: nResult=3; break; - } - break; - case 16://400-424 - switch (nSpell) - { - case 415: nResult=1; break; - case 416: nResult=0; break; - case 417: nResult=1; break; - case 419: nResult=2; break; - case 424: nResult=0; break; - } - break; - case 17://425-449 - switch (nSpell) - { - case 427: nResult=8; break; - case 430: nResult=7; break; - case 436: nResult=2; break; - case 439: nResult=0; break; - case 440: nResult=5; break; - case 443: nResult=8; break; - case 447: nResult=1; break; - case 448: nResult=6; break; - } - break; - } - break; - case 3://450-569 - switch (nSpell/25) - { - case 18://450-474 - switch (nSpell) - { - case 456: nResult=1; break; - case 457: nResult=2; break; - case 458: nResult=3; break; - case 459: nResult=5; break; - case 460: nResult=6; break; - case 461: nResult=7; break; - case 462: nResult=8; break; - case 463: nResult=9; break; - } - break; - case 19://475-499 - switch (nSpell) - { - case 485: nResult=6; break; - case 486: nResult=6; break; - } - break; - case 20://500-524 - switch (nSpell) - { - case 515: nResult=7; break; - case 516: nResult=5; break; - case 518: nResult=2; break; - case 519: nResult=2; break; - case 520: nResult=2; break; - case 521: nResult=1; break; - case 522: nResult=1; break; - case 523: nResult=3; break; - case 524: nResult=5; break; - } - break; - case 21://525-549 - switch (nSpell) - { - case 526: nResult=3; break; - case 527: nResult=2; break; - case 528: nResult=6; break; - case 533: nResult=9; break; - case 534: nResult=1; break; - case 539: nResult=3; break; - case 541: nResult=8; break; - case 542: nResult=2; break; - case 543: nResult=1; break; - case 544: nResult=1; break; - case 545: nResult=3; break; - } - break; - case 22://550-569 - switch (nSpell) - { - case 569: nResult=2; break; - } - break; - } - break; - } -return nResult; -} - -string GetSpellName(int nSpell) -{ -string sResult = ""; - - switch (nSpell/150) - { - case 0://0-149 - switch (nSpell/25) - { - case 0://0-24 - switch (nSpell) - { - case 0: sResult = "Acid Fog"; break; - case 2: sResult = "Animate Dead"; break; - case 4: sResult = "Bestow Curse"; break; - case 8: sResult = "Blindness and Deafness"; break; - case 9: sResult = "Bull's Strength"; break; - case 10: sResult = "Burning Hands"; break; - case 13: sResult = "Cat's Grace"; break; - case 14: sResult = "Chain Lightning"; break; - case 15: sResult = "Charm Monster"; break; - case 16: sResult = "Charm Person"; break; - case 18: sResult = "Circle of Death"; break; - case 20: sResult = "Clairaudience and Clairvoyance"; break; - case 21: sResult = "Clarity"; break; - case 23: sResult = "Cloudkill"; break; - case 24: sResult = "Color Spray"; break; - } - break; - case 1://25-49 - switch (nSpell) - { - case 25: sResult = "Cone of Cold"; break; - case 26: sResult = "Confusion"; break; - case 27: sResult = "Contagion"; break; - case 28: sResult = "Control Undead"; break; - case 30: sResult = "Create Undead"; break; - case 31: sResult = "Cure Critical Wounds"; break; - case 32: sResult = "Cure Light Wounds"; break; - case 33: sResult = "Cure Minor Wounds"; break; - case 34: sResult = "Cure Moderate Wounds"; break; - case 35: sResult = "Cure Serious Wounds"; break; - case 36: sResult = "Darkness"; break; - case 37: sResult = "Daze"; break; - case 39: sResult = "Delayed Blast Fireball"; break; - case 40: sResult = "Dismissal"; break; - case 41: sResult = "Dispel Magic"; break; - case 44: sResult = "Dominate Monster"; break; - case 45: sResult = "Dominate Person"; break; - case 47: sResult = "Elemental Shield"; break; - case 49: sResult = "Endurance"; break; - } - break; - case 2://50-74 - switch (nSpell) - { - case 50: sResult = "Endure Elements"; break; - case 51: sResult = "Energy Drain"; break; - case 52: sResult = "Enervation"; break; - case 54: sResult = "Fear"; break; - case 55: sResult = "Feeblemind"; break; - case 56: sResult = "Finger of Death"; break; - case 58: sResult = "Fireball"; break; - case 59: sResult = "Flame Arrow"; break; - case 63: sResult = "Gate"; break; - case 64: sResult = "Ghoul Touch"; break; - case 65: sResult = "Globe of Invulnerability"; break; - case 66: sResult = "Grease"; break; - case 67: sResult = "Greater Dispelling"; break; - case 69: sResult = "Greater Planar Binding"; break; - case 71: sResult = "Greater Shadow Conjuration"; break; - case 72: sResult = "Greater Spell Breach"; break; - case 73: sResult = "Greater Spell Mantle"; break; - case 74: sResult = "Greater Stoneskin"; break; - } - break; - case 3://75-99 - switch (nSpell) - { - case 75: sResult = "Gust of Wind"; break; - case 78: sResult = "Haste"; break; - case 80: sResult = "Healing Circle"; break; - case 82: sResult = "Hold Monster"; break; - case 83: sResult = "Hold Person"; break; - case 86: sResult = "Identify"; break; - case 88: sResult = "Improved Invisibility"; break; - case 89: sResult = "Incendiary Cloud"; break; - case 90: sResult = "Invisibility"; break; - case 92: sResult = "Invisibility Sphere"; break; - case 93: sResult = "Knock"; break; - case 94: sResult = "Lesser Dispel"; break; - case 95: sResult = "Lesser Mind Blank"; break; - case 96: sResult = "Lesser Planar Binding"; break; - case 97: sResult = "Lesser Restoration"; break; - case 98: sResult = "Lesser Spell Breach"; break; - case 99: sResult = "Lesser Spell Mantle"; break; - } - break; - case 4://100-124 - switch (nSpell) - { - case 100: sResult = "Light"; break; - case 101: sResult = "Lightning Bolt"; break; - case 102: sResult = "Mage Armor"; break; - case 107: sResult = "Magic Missle"; break; - case 110: sResult = "Mass Blindness and Deafness"; break; - case 111: sResult = "Mass Charm"; break; - case 113: sResult = "Mass Haste"; break; - case 115: sResult = "Melf's Acid Arrow"; break; - case 116: sResult = "Meteor Swarm"; break; - case 117: sResult = "Mind Blank"; break; - case 118: sResult = "Mind Fog"; break; - case 119: sResult = "Minor Globe of Invulnerability"; break; - case 120: sResult = "Ghostly Visage"; break; - case 121: sResult = "Ethereal Visage"; break; - case 122: sResult = "Mordenkainen's Disjunction"; break; - case 123: sResult = "Mordenkainen's Sword"; break; - } - break; - case 5://125-149 - switch (nSpell) - { - case 126: sResult = "Neutralize Poison"; break; - case 127: sResult = "Phantasmal Killer"; break; - case 128: sResult = "Planar Binding"; break; - case 130: sResult = "Polymorph Self"; break; - case 131: sResult = "Power Word Kill"; break; - case 132: sResult = "Power Word Stun"; break; - case 134: sResult = "Premonition"; break; - case 135: sResult = "Premonition"; break; - case 137: sResult = "Protection from Elements"; break; - case 141: sResult = "Protection from Spells"; break; - case 143: sResult = "Ray of Enfeeblement"; break; - case 144: sResult = "Ray of Frost"; break; - case 145: sResult = "Remove Blindness and Deafness"; break; - case 146: sResult = "Remove Curse"; break; - case 147: sResult = "Remove Disease"; break; - } - break; - } - break; - case 1://150-299 - switch (nSpell/25) - { - case 6://150-174 - switch (nSpell) - { - case 150: sResult = "Resist Elements"; break; - case 151: sResult = "Resistance"; break; - case 155: sResult = "Scare"; break; - case 157: sResult = "See Invisibility"; break; - case 158: sResult = "Shades"; break; - case 159: sResult = "Shadow Conjuration"; break; - case 160: sResult = "Shadow Shield"; break; - case 161: sResult = "Shapechange"; break; - case 163: sResult = "Silence"; break; - case 165: sResult = "Sleep"; break; - case 166: sResult = "Slow"; break; - case 167: sResult = "Sound Burst"; break; - case 169: sResult = "Spell Mantle"; break; - case 171: sResult = "Stinking Cloud"; break; - case 172: sResult = "Stoneskin"; break; - case 174: sResult = "Summon Creature I"; break; - } - break; - case 7://175-199 - switch (nSpell) - { - case 175: sResult = "Summon Creature II"; break; - case 176: sResult = "Summon Creature III"; break; - case 177: sResult = "Summon Creature IV"; break; - case 178: sResult = "Summon Creature IX"; break; - case 179: sResult = "Summon Creature V"; break; - case 180: sResult = "Summon Creature VI"; break; - case 181: sResult = "Summon Creature VII"; break; - case 182: sResult = "Summon Creature VIII"; break; - case 184: sResult = "Tenser's Transformation"; break; - case 185: sResult = "Timestop"; break; - case 186: sResult = "True Seeing"; break; - case 188: sResult = "Vampric Touch"; break; - case 190: sResult = "Wail of the Banshee"; break; - case 191: sResult = "Wall of Fire"; break; - case 192: sResult = "Web"; break; - case 193: sResult = "Weird"; break; - } - break; - - } - break; - case 2://300-449 - switch (nSpell/25) - { - case 12://300-324 - switch (nSpell) - { - case 321: sResult = "Protection from Alignment"; break; - case 322: sResult = "Magic Circle Against Alignment"; break; - } - break; - case 14://350-374 - switch (nSpell) - { - case 354: sResult = "Eagle's Splendor"; break; - case 355: sResult = "Owl's Wisdom"; break; - case 356: sResult = "Fox's Cunning"; break; - case 365: sResult = "Ultravision"; break; - case 367: sResult = "Horrid Wilting"; break; - case 368: sResult = "Ice Storm"; break; - case 369: sResult = "Energy Buffer"; break; - case 370: sResult = "Negative Energy Burst"; break; - case 371: sResult = "Negative Energy Ray"; break; - case 373: sResult = "War Cry"; break; - } - break; - case 15://375-399 - switch (nSpell) - { - case 376: sResult = "Legend Lore"; break; - case 377: sResult = "Find Traps"; break; - } - break; - case 16://400-424 - switch (nSpell) - { - case 415: sResult = "True Strike"; break; - case 416: sResult = "Flare"; break; - case 417: sResult = "Shield"; break; - case 419: sResult = "Continual Flame"; break; - case 424: sResult = "Acid Splash"; break; - } - break; - case 17://425-449 - switch (nSpell) - { - case 427: sResult = "Sunburst"; break; - case 430: sResult = "Banishment"; break; - case 436: sResult = "Balagarn's Iron Horn"; break; - case 439: sResult = "Electric Jolt"; break; - case 440: sResult = "Firebrand"; break; - case 441: sResult = "Wounding Whispers"; break; - case 442: sResult = "Amplify"; break; - case 443: sResult = "Greater Sanctuary"; break; - case 445: sResult = "Dirge"; break; - case 447: sResult = "Isaac's Lesser Missle Storm"; break; - case 448: sResult = "Isaac's Greater Missle Storm"; break; - } - break; - } - break; - case 3://450-569 - switch (nSpell/25) - { - case 18://450-474 - switch (nSpell) - { - case 456: sResult = "Expeditious Retreat"; break; - case 457: sResult = "Tasha's Hideous Laughter"; break; - case 458: sResult = "Displacement"; break; - case 459: sResult = "Bigby's Interposing Hand"; break; - case 460: sResult = "Bigby's Forceful Hand"; break; - case 461: sResult = "Bigby's Grasping Hand"; break; - case 462: sResult = "Bigby's Clenched Fist"; break; - case 463: sResult = "Bigby's Crushing Hand"; break; - } - break; - case 19://475-499 - switch (nSpell) - { - case 485: sResult = "Flesh to Stone"; break; - case 486: sResult = "Stone to Flesh"; break; - } - break; - case 20://500-524 - switch (nSpell) - { - case 515: sResult = "Great Thunderclap"; break; - case 516: sResult = "Ball Lightning"; break; - case 518: sResult = "Combust"; break; - case 519: sResult = "Death Armor"; break; - case 520: sResult = "Gedlee's Electric Loop"; break; - case 521: sResult = "Horizikaul's Boom"; break; - case 522: sResult = "Ironguts"; break; - case 523: sResult = "Mestil's Acid Breath"; break; - case 524: sResult = "Mestil's Acid Sheath"; break; - } - break; - case 21://525-549 - switch (nSpell) - { - case 526: sResult = "Scintillating Sphere"; break; - case 527: sResult = "Stone Bones"; break; - case 528: sResult = "Undeath to Death"; break; - case 533: sResult = "Black Blade of Disaster"; break; - case 534: sResult = "Shelgarn's Persistent Blade"; break; - case 539: sResult = "Keen Edge"; break; - case 541: sResult = "Blackstaff"; break; - case 542: sResult = "Flame Weapon"; break; - case 543: sResult = "Ice Dagger"; break; - case 544: sResult = "Magic Weapon"; break; - case 545: sResult = "Greater Magic Weapon"; break; - } - break; - case 22://550-569 - switch (nSpell) - { - case 569: sResult = "Cloud of Bewilderment"; break; - } - break; - } - break; - } -return sResult; -} - -//void main(){} diff --git a/_removed files/hgll_struct_stat.nss b/_removed files/hgll_struct_stat.nss deleted file mode 100644 index be0df5e4..00000000 --- a/_removed files/hgll_struct_stat.nss +++ /dev/null @@ -1,39 +0,0 @@ -// Original script taken from post by CID-78 in the Bioware scripting forums. -// Modified to return 'base' skills as well, though they must be passed through -// another filter for feats and stat bonuses after this function. -struct xAbility -{ - int nSTR; //stats in 2da order - int nDEX; - int nCON; - int nINT; - int nWIS; - int nCHA; - int nANIMAL_EMPATHY;//skills in 2da order - int nCONCENTRATION; - int nDISABLE_TRAP; - int nDISCIPLINE; - int nHEAL; - int nHIDE; - int nLISTEN; - int nLORE; - int nMOVE_SILENTLY; - int nOPEN_LOCK; - int nPARRY; - int nPERFORM; - int nPERSUADE; - int nPICK_POCKET; - int nSEARCH; - int nSET_TRAP; - int nSPELLCRAFT; - int nSPOT; - int nTAUNT; - int nUSE_MAGIC_DEVICE; - int nAPPRAISE; - int nTUMBLE; - int nCRAFT_TRAP; - int nBLUFF; - int nINTIMIDATE; - int nCRAFT_ARMOR; - int nCRAFT_WEAPON; -}; diff --git a/_removed files/nw_s0_acidfoga.nss b/_removed files/nw_s0_acidfoga.nss deleted file mode 100644 index 2f5a9fbc..00000000 --- a/_removed files/nw_s0_acidfoga.nss +++ /dev/null @@ -1,64 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Acid Fog: On Enter -//:: NW_S0_AcidFogA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - All creatures within the AoE take 2d6 acid damage - per round and upon entering if they fail a Fort Save - their movement is halved. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - - effect eDam; - effect eVis = EffectVisualEffect(VFX_IMP_ACID_S); - effect eSlow = EffectMovementSpeedDecrease(50); - object oTarget = GetEnteringObject(); - float fDelay = GetRandomDelay(1.0, 2.2); - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the target - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_ACID_FOG)); - //Spell resistance check - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay)) - { - //Roll Damage - //Enter Metamagic conditions - nDamage = d8(5); - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 40;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - //Make a Fortitude Save to avoid the effects of the movement hit. - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ACID, GetAreaOfEffectCreator(), fDelay)) - { - //slowing effect - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSlow, oTarget); - // * BK: Removed this because it reduced damage, didn't make sense nDamage = d6(); - } - - //Set Damage Effect with the modified damage - eDam = EffectDamage(nDamage, DAMAGE_TYPE_ACID); - //Apply damage and visuals - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - } - } -} diff --git a/_removed files/nw_s0_acidfogc.nss b/_removed files/nw_s0_acidfogc.nss deleted file mode 100644 index b945bf4d..00000000 --- a/_removed files/nw_s0_acidfogc.nss +++ /dev/null @@ -1,79 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Acid Fog: Heartbeat -//:: NW_S0_AcidFogC.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - All creatures within the AoE take 2d6 acid damage - per round and upon entering if they fail a Fort Save - their movement is halved. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage = d8(3); - effect eDam; - - effect eVis = EffectVisualEffect(VFX_IMP_ACID_S); - object oTarget; - float fDelay; - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 24;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // When the caster is no longer there, all functions calling - // GetAreaOfEffectCreator will fail. Its better to remove the barrier then - //-------------------------------------------------------------------------- - if (!GetIsObjectValid(GetAreaOfEffectCreator())) - { - DestroyObject(OBJECT_SELF); - return; - } - - - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_ACID); - //Start cycling through the AOE Object for viable targets including doors and placable objects. - oTarget = GetFirstInPersistentObject(OBJECT_SELF); - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ACID, GetAreaOfEffectCreator(), fDelay)) - { - nDamage = d6(); - } - fDelay = GetRandomDelay(0.4, 1.2); - //Fire cast spell at event for the affected target - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_ACID_FOG)); - //Spell resistance check - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay)) - { - //Apply damage and visuals - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - //Get next target. - oTarget = GetNextInPersistentObject(OBJECT_SELF); - } -} diff --git a/_removed files/nw_s0_bescurse.nss b/_removed files/nw_s0_bescurse.nss deleted file mode 100644 index ebfe86e4..00000000 --- a/_removed files/nw_s0_bescurse.nss +++ /dev/null @@ -1,64 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Bestow Curse -//:: NW_S0_BesCurse.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Afflicted creature must save or suffer a -2 penalty - to all ability scores. This is a supernatural effect. -*/ -//::////////////////////////////////////////////// -//:: Created By: Bob McCabe -//:: Created On: March 6, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk -//:: VFX Pass By: Preston W, On: June 20, 2001 -//:: Update Pass By: Preston W, On: July 20, 2001 - -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - //Declare major variables - object oTarget = GetSpellTargetObject(); - effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE); - effect eCurse = EffectCurse(4, 4, 4, 4, 4, 4); - - //Make sure that curse is of type supernatural not magical - eCurse = SupernaturalEffect(eCurse); - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Signal spell cast at event - SignalEvent(oTarget, EventSpellCastAt(oTarget, SPELL_BESTOW_CURSE)); - //Make SR Check - if (!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Make Will Save - if (!/*Will Save*/ MySavingThrow(SAVING_THROW_WILL, oTarget, GetEpicSpellSaveDC())) - { - //Apply Effect and VFX - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eCurse, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } - } -} diff --git a/_removed files/nw_s0_bladebara.nss b/_removed files/nw_s0_bladebara.nss deleted file mode 100644 index 512af426..00000000 --- a/_removed files/nw_s0_bladebara.nss +++ /dev/null @@ -1,66 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Blade Barrier: On Enter -//:: NW_S0_BladeBarA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creates a wall 10m long and 2m thick of whirling - blades that hack and slice anything moving into - them. Anything caught in the blades takes - 2d6 per caster level. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: July 20, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - object oTarget = GetEnteringObject(); - effect eDam; - effect eVis = EffectVisualEffect(VFX_COM_BLOOD_LRG_RED); - int nMetaMagic = GetMetaMagicFeat(); - int nLevel = GetCasterLevel(GetAreaOfEffectCreator()); - - //Make level check - if (nLevel > 25) - { - nLevel = 25; - } - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire spell cast at event - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_BLADE_BARRIER)); - //Roll Damage - int nDamage = d6(nLevel); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = nLevel * 6;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); - } - //Make SR Check - if (!MyResistSpell(GetAreaOfEffectCreator(), oTarget) ) - { - if(MySavingThrow(SAVING_THROW_REFLEX, oTarget, GetEpicSpellSaveDC())) - { - nDamage = nDamage/2; - } - //Set damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_SLASHING); - //Apply damage and VFX - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } -} - diff --git a/_removed files/nw_s0_bladebarc.nss b/_removed files/nw_s0_bladebarc.nss deleted file mode 100644 index cd5073b7..00000000 --- a/_removed files/nw_s0_bladebarc.nss +++ /dev/null @@ -1,82 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Blade Barrier: Heartbeat -//:: NW_S0_BladeBarA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creates a wall 10m long and 2m thick of whirling - blades that hack and slice anything moving into - them. Anything caught in the blades takes - 2d6 per caster level. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: July 20, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - object oTarget; - effect eDam; - effect eVis = EffectVisualEffect(VFX_COM_BLOOD_LRG_RED); - int nMetaMagic = GetMetaMagicFeat(); - int nLevel = GetCasterLevel(GetAreaOfEffectCreator()); - - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // Add damage to placeables/doors now that the command support bit fields - //-------------------------------------------------------------------------- - oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_DOOR); - - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // When the caster is no longer there, all functions calling - // GetAreaOfEffectCreator will fail. Its better to remove the barrier then - //-------------------------------------------------------------------------- - if (!GetIsObjectValid(GetAreaOfEffectCreator())) - { - DestroyObject(OBJECT_SELF); - return; - } - - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire spell cast at event - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_BLADE_BARRIER)); - //Make SR Check - if (!MyResistSpell(GetAreaOfEffectCreator(), oTarget) ) - { - //Roll Damage - int nDamage = d6(nLevel); - //Enter Metamagic conditions - if(nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = nLevel * 6;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); - } - if(MySavingThrow(SAVING_THROW_REFLEX, oTarget, GetEpicSpellSaveDC())) - { - nDamage = nDamage/2; - } - //Set damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_SLASHING); - //Apply damage and VFX - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } - oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_DOOR); - } -} - diff --git a/_removed files/nw_s0_calllghtn.nss b/_removed files/nw_s0_calllghtn.nss deleted file mode 100644 index 99f21ff5..00000000 --- a/_removed files/nw_s0_calllghtn.nss +++ /dev/null @@ -1,98 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Call Lightning -//:: NW_S0_CallLghtn.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - This spells smites an area around the caster - with bolts of lightning which strike all enemies. - Bolts do 1d10 per level up 10d10 -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 22, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 20, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oCaster = OBJECT_SELF; - int nCasterLvl = GetCasterLevel(oCaster); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - float fDelay; - effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_M); - effect eDam; - - //Get the spell target location as opposed to the spell target. - location lTarget = GetSpellTargetLocation(); - //Limit Caster level for the purposes of damage - if (nCasterLvl > 20) - { - nCasterLvl = 20; - } - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while (GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CALL_LIGHTNING)); - //Get the distance between the explosion and the target to calculate delay - fDelay = GetRandomDelay(0.4, 1.75); - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Roll damage for each target - nDamage = d6(nCasterLvl); - //Resolve metamagic - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLvl; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage / 2; - } - //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ELECTRICITY); - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); - if(nDamage > 0) - { - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the flame that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} diff --git a/_removed files/nw_s0_chlightn.nss b/_removed files/nw_s0_chlightn.nss deleted file mode 100644 index bb48393e..00000000 --- a/_removed files/nw_s0_chlightn.nss +++ /dev/null @@ -1,186 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Chain Lightning -//:: NW_S0_ChLightn -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The primary target is struck with 1d6 per caster, - 1/2 with a reflex save. 1 secondary target per - level is struck for 1d6 / 2 caster levels. No - repeat targets can be chosen. -*/ -//::////////////////////////////////////////////// -//:: Created By: Brennon Holmes -//:: Created On: March 8, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: April 26, 2001 -//:: Update Pass By: Preston W, On: July 26, 2001 - -/* -bugfix by Kovi 2002.07.28 -- successful saving throw and (improved) evasion was ignored for - secondary targets, -- all secondary targets suffered exactly the same damage -2002.08.25 -- primary target was not effected -*/ - -#include "x0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - - //Limit caster level - // June 2/04 - Bugfix: Cap the level BEFORE the damage calculation, not after. Doh. - if (nCasterLevel > 20) - { - nCasterLevel = 20; - } - int nDamage = d6(nCasterLevel); - int nDamStrike; - int nNumAffected = 0; - int nMetaMagic = GetMetaMagicFeat(); - //Declare lightning effect connected the casters hands - effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF, BODY_NODE_HAND);; - effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S); - effect eDamage; - object oFirstTarget = GetSpellTargetObject(); - object oHolder; - object oTarget; - location lSpellLocation; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLevel;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/is +50% - } - //Damage the initial target - if (spellsIsTarget(oFirstTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oFirstTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CHAIN_LIGHTNING)); - //Make an SR Check - if (!MyResistSpell(OBJECT_SELF, oFirstTarget)) - { - //Adjust damage via Reflex Save or Evasion or Improved Evasion - nDamStrike = GetReflexAdjustedDamage(nDamage, oFirstTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ELECTRICITY); - //Set the damage effect for the first target - eDamage = EffectDamage(nDamStrike, DAMAGE_TYPE_ELECTRICAL); - //Apply damage to the first target and the VFX impact. - if(nDamStrike > 0) - { - ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oFirstTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oFirstTarget); - } - } - } - //Apply the lightning stream effect to the first target, connecting it with the caster - ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oFirstTarget,0.5); - - - //Reinitialize the lightning effect so that it travels from the first target to the next target - eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oFirstTarget, BODY_NODE_CHEST); - - - float fDelay = 0.2; - int nCnt = 0; - - - // * - // * Secondary Targets - // * - - - //Get the first target in the spell shape - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oFirstTarget), TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - while (GetIsObjectValid(oTarget) && nCnt < nCasterLevel) - { - //Make sure the caster's faction is not hit and the first target is not hit - if (oTarget != oFirstTarget && spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF) - { - //Connect the new lightning stream to the older target and the new target - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,0.5)); - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CHAIN_LIGHTNING)); - //Do an SR check - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - - nDamage = d6(nCasterLevel) ; - - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLevel;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/is +50% - } - //Adjust damage via Reflex Save or Evasion or Improved Evasion - nDamStrike = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ELECTRICITY); - //Apply the damage and VFX impact to the current target - eDamage = EffectDamage(nDamStrike /2, DAMAGE_TYPE_ELECTRICAL); - if(nDamStrike > 0) //age > 0) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget)); - } - } - oHolder = oTarget; - - //change the currect holder of the lightning stream to the current target - if (GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) - { - eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oHolder, BODY_NODE_CHEST); - } - else - { - // * April 2003 trying to make sure beams originate correctly - effect eNewLightning = EffectBeam(VFX_BEAM_LIGHTNING, oHolder, BODY_NODE_CHEST); - if(GetIsEffectValid(eNewLightning)) - { - eLightning = eNewLightning; - } - } - - fDelay = fDelay + 0.1f; - } - //Count the number of targets that have been hit. - if(GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) - { - nCnt++; - } - - // April 2003: Setting the new origin for the beam - // oFirstTarget = oTarget; - - //Get the next target in the shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oFirstTarget), TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } - } diff --git a/_removed files/nw_s0_conecold.nss b/_removed files/nw_s0_conecold.nss deleted file mode 100644 index c04fa62e..00000000 --- a/_removed files/nw_s0_conecold.nss +++ /dev/null @@ -1,105 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Cone of Cold -//:: NW_S0_ConeCold -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// Cone of cold creates an area of extreme cold, -// originating at your hand and extending outward -// in a cone. It drains heat, causing 1d6 points of -// cold damage per caster level (maximum 15d6). -*/ -//::////////////////////////////////////////////// -//:: Created By: Noel Borstad -//:: Created On: 10/18/02000 -//::////////////////////////////////////////////// -//:: Last Updated By: Aidan Scanlan On: April 11, 2001 -//:: Update Pass By: Preston W, On: July 25, 2001 - -float SpellDelay (object oTarget, int nShape); - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - - float fDelay; - location lTargetLocation = GetSpellTargetLocation(); - object oTarget; - //Limit Caster level for the purposes of damage. - if (nCasterLevel > 25) - { - nCasterLevel = 25; - } - //Declare the spell shape, size and the location. Capture the first target object in the shape. - oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - // March 2003. Removed this as part of the reputation pass - // if((GetSpellId() == 340 && !GetIsFriend(oTarget)) || GetSpellId() == 25) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CONE_OF_COLD)); - //Get the distance between the target and caster to delay the application of effects - fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20.0; - //Make SR check, and appropriate saving throw(s). - if(!MyResistSpell(OBJECT_SELF, oTarget, fDelay) && (oTarget != OBJECT_SELF)) - { - //Detemine damage - nDamage = d6(nCasterLevel); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLevel;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - //Adjust damage according to Reflex Save, Evasion or Improved Evasion - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_COLD); - - // Apply effects to the currently selected target. - effect eCold = EffectDamage(nDamage, DAMAGE_TYPE_COLD); - effect eVis = EffectVisualEffect(VFX_IMP_FROST_L); - if(nDamage > 0) - { - //Apply delayed effects - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCold, oTarget)); - } - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} - diff --git a/_removed files/nw_s0_crgrund.nss b/_removed files/nw_s0_crgrund.nss deleted file mode 100644 index afb3df79..00000000 --- a/_removed files/nw_s0_crgrund.nss +++ /dev/null @@ -1,70 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Create Greater Undead -//:: NW_S0_CrGrUnd.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons an undead type pegged to the character's - level. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = nCasterLevel; - nDuration = 24; - effect eSummon; - //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - //Make metamagic extend check - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Determine undead to summon based on level - if (nCasterLevel <= 15) - { - eSummon = EffectSummonCreature("vampire01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 16) && (nCasterLevel <= 18)) - { - eSummon = EffectSummonCreature("lichlord01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 19) && (nCasterLevel <= 24)) - { - eSummon = EffectSummonCreature("demilich01",VFX_FNF_SUMMON_UNDEAD); - } - else - { - eSummon = EffectSummonCreature("greatlich02",VFX_FNF_SUMMON_UNDEAD); - } - //Apply summon effect and VFX impact. - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); -} - diff --git a/_removed files/nw_s0_crpdooma.nss b/_removed files/nw_s0_crpdooma.nss deleted file mode 100644 index f20713f9..00000000 --- a/_removed files/nw_s0_crpdooma.nss +++ /dev/null @@ -1,51 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Creeping Doom: On Enter -//:: NW_S0_AcidFogA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creature caught in the swarm take an initial - damage of 1d20, but there after they take - 1d4 per swarm counter on the AOE. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - - //Declare major variables - int nDamage; - effect eDam; - effect eVis = EffectVisualEffect(VFX_COM_BLOOD_REG_RED); - object oTarget = GetEnteringObject(); - effect eSpeed = EffectMovementSpeedDecrease(50); - effect eVis2 = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eLink = EffectLinkEffects(eSpeed, eVis2); - - float fDelay; - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the target - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_CREEPING_DOOM)); - fDelay = GetRandomDelay(1.0, 1.8); - //Spell resistance check - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay)) - { - //Roll Damage - nDamage = d6(4)+ 6; - - //Set Damage Effect with the modified damage - eDam = EffectDamage(nDamage, DAMAGE_TYPE_SONIC); - //Apply damage and visuals - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSpeed, oTarget); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - } - } -} diff --git a/_removed files/nw_s0_crpdoomc.nss b/_removed files/nw_s0_crpdoomc.nss deleted file mode 100644 index 12f3b18a..00000000 --- a/_removed files/nw_s0_crpdoomc.nss +++ /dev/null @@ -1,85 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Creeping Doom: Heartbeat -//:: NW_S0_CrpDoomC.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creature caught in the swarm take an initial - damage of 1d20, but there after they take - 1d6 per swarm counter on the AOE. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - - //Declare major variables - int nDamage; - effect eDam; - effect eVis = EffectVisualEffect(VFX_COM_BLOOD_REG_RED); - object oTarget = GetEnteringObject(); - string sConstant1 = "NW_SPELL_CONSTANT_CREEPING_DOOM1" + ObjectToString(GetAreaOfEffectCreator()); - string sConstant2 = "NW_SPELL_CONSTANT_CREEPING_DOOM2" + ObjectToString(GetAreaOfEffectCreator()); - int nSwarm = GetLocalInt(OBJECT_SELF, sConstant1); - int nDamCount = GetLocalInt(OBJECT_SELF, sConstant2); - float fDelay; - if(nSwarm < 1) - { - nSwarm = 1; - } - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // When the caster is no longer there, all functions calling - // GetAreaOfEffectCreator will fail. Its better to remove the barrier then - //-------------------------------------------------------------------------- - if (!GetIsObjectValid(GetAreaOfEffectCreator())) - { - DestroyObject(OBJECT_SELF); - return; - } - - - //Get first target in spell area - oTarget = GetFirstInPersistentObject(); - while(GetIsObjectValid(oTarget) && nDamCount < 1000) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - fDelay = GetRandomDelay(1.0, 2.2); - //------------------------------------------------------------------ - // According to the book, SR Does not count against creeping doom - //------------------------------------------------------------------ - //Spell resistance check -// if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay)) -// { - SignalEvent(oTarget,EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_CREEPING_DOOM)); - //Roll Damage - nDamage = d6(nSwarm)+ 12; - //Set Damage Effect with the modified damage - eDam = EffectDamage(nDamage, DAMAGE_TYPE_SONIC); - //Apply damage and visuals - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - nDamCount = nDamCount + nDamage; -// } - } - //Get next target in spell area - oTarget = GetNextInPersistentObject(); - } - if(nDamCount >= 1000) - { - DestroyObject(OBJECT_SELF, 1.0); - } - else - { - nSwarm++; - SetLocalInt(OBJECT_SELF, sConstant1, nSwarm); - SetLocalInt(OBJECT_SELF, sConstant2, nDamCount); - } -} diff --git a/_removed files/nw_s0_crundead.nss b/_removed files/nw_s0_crundead.nss deleted file mode 100644 index d0448a14..00000000 --- a/_removed files/nw_s0_crundead.nss +++ /dev/null @@ -1,71 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Create Undead -//:: NW_S0_CrUndead.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Spell summons a Ghoul, Shadow, Ghast, Wight or - Wraith -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = nCasterLevel; - nDuration = 24; - effect eSummon; - //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Set the summoned undead to the appropriate template based on the caster level - if (nCasterLevel <= 13) - { - eSummon = EffectSummonCreature("doomknight01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 14) && (nCasterLevel <= 18)) - { - eSummon = EffectSummonCreature("vampire01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 19) && (nCasterLevel <= 25)) - { - eSummon = EffectSummonCreature("lichlord01",VFX_FNF_SUMMON_UNDEAD); // change later - } - else if ((nCasterLevel >= 26)) - { - eSummon = EffectSummonCreature("demilich01",VFX_FNF_SUMMON_UNDEAD); - } - - //Apply VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); -} - diff --git a/_removed files/nw_s0_delfirea.nss b/_removed files/nw_s0_delfirea.nss deleted file mode 100644 index 8b288074..00000000 --- a/_removed files/nw_s0_delfirea.nss +++ /dev/null @@ -1,98 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Delayed Blast Fireball: On Enter -//:: NW_S0_DelFireA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The caster creates a trapped area which detects - the entrance of enemy creatures into 3 m area - around the spell location. When tripped it - causes a fiery explosion that does 1d6 per - caster level up to a max of 20d6 damage. -*/ -//::////////////////////////////////////////////// -//:: Georg: Removed Spellhook, fixed damage cap -//:: Created By: Preston Watamaniuk -//:: Created On: July 27, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" -void main() -{ - - //Declare major variables - object oTarget = GetEnteringObject(); - object oCaster = GetAreaOfEffectCreator(); - location lTarget = GetLocation(OBJECT_SELF); - int nDamage; - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(oCaster); - int nFire = GetLocalInt(OBJECT_SELF, "NW_SPELL_DELAY_BLAST_FIREBALL"); - //Limit caster level - if (nCasterLevel > 30) - { - nCasterLevel = 30; - } - effect eDam; - effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - //Check the faction of the entering object to make sure the entering object is not in the casters faction - if(nFire == 0) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - SetLocalInt(OBJECT_SELF, "NW_SPELL_DELAY_BLAST_FIREBALL",TRUE); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Cycle through the targets in the explosion area - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_DELAYED_BLAST_FIREBALL)); - //Make SR check - if (!MyResistSpell(oCaster, oTarget)) - { - nDamage = d8(nCasterLevel); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 8 * nCasterLevel;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2);//Damage/Healing is +50% - } - //Change damage according to Reflex, Evasion and Improved Evasion - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE, GetAreaOfEffectCreator()); - //Set up the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - if(nDamage > 0) - { - //Apply VFX impact and damage effect - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - DelayCommand(0.01, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - } - else - { - //They will be taking SOMETHING! - nDamage = d8(12); - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - - //Apply VFX impact and damage effect - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - DelayCommand(0.01, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - - } - } - } - //Get next target in the sequence - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } - DestroyObject(OBJECT_SELF, 1.0); - } - } -} diff --git a/_removed files/nw_s0_delfirebal.nss b/_removed files/nw_s0_delfirebal.nss deleted file mode 100644 index 02a5d66a..00000000 --- a/_removed files/nw_s0_delfirebal.nss +++ /dev/null @@ -1,59 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Delayed Blast Fireball -//:: NW_S0_DelFirebal.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The caster creates a trapped area which detects - the entrance of enemy creatures into 3 m area - around the spell location. When tripped it - causes a fiery explosion that does 1d6 per - caster level up to a max of 20d6 damage. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: July 27, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables including Area of Effect Object - effect eAOE = EffectAreaOfEffect(AOE_PER_DELAY_BLAST_FIREBALL); - location lTarget = GetSpellTargetLocation(); - int nDuration = GetCasterLevel(OBJECT_SELF); - //Make sure the duration is at least one round - if (nDuration == 0) - { - nDuration = 1; - } - int nMetaMagic = GetMetaMagicFeat(); - //Check Extend metamagic feat. - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2;//Duration is +100% - } - //Create an instance of the AOE Object using the Apply Effect function - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eAOE, lTarget, RoundsToSeconds(nDuration)); -} - - diff --git a/_removed files/nw_s0_destruc.nss b/_removed files/nw_s0_destruc.nss deleted file mode 100644 index add3a9c9..00000000 --- a/_removed files/nw_s0_destruc.nss +++ /dev/null @@ -1,82 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Destruction -//:: NW_S0_Destruc -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The target creature is destroyed if it fails a - Fort save, otherwise it takes 10d6 damage. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Aug 13, 2001 -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - int nCasterLevel = GetCasterLevel(OBJECT_SELF)/2; - effect eSlay = EffectDeath(); - effect eDam; - effect eVis = EffectVisualEffect(234); - - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_DESTRUCTION)); - //Make SR check - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Make a saving throw check - //This spell is no longer a Death Effect They make a save or die. - if(!/*Fort Save*/ MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC())) - { - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_INSTANT, eSlay, oTarget); - } - else - { - nDamage = d8(1) * nCasterLevel; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 8 * nCasterLevel;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - //Set damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_DIVINE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - } - //Apply VFX impact - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } -} diff --git a/_removed files/nw_s0_eleswarm.nss b/_removed files/nw_s0_eleswarm.nss deleted file mode 100644 index c3ae370e..00000000 --- a/_removed files/nw_s0_eleswarm.nss +++ /dev/null @@ -1,59 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Elemental Swarm -//:: NW_S0_EleSwarm.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - This spell creates a conduit from the caster - to the elemental planes. The first elemental - summoned is a 24 HD Air elemental. Whenever an - elemental dies it is replaced by the next - elemental in the chain Air, Water, Earth, Fire -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: Update Pass By: Preston W, On: July 30, 2001 - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = GetCasterLevel(OBJECT_SELF); - nDuration = 24; - effect eSummon; - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - //Check for metamagic duration - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration * 2; //Duration is +100% - } - //Set the summoning effect - // eSummon = EffectSwarm(FALSE, "NW_SW_AIRGREAT", "NW_SW_WATERGREAT","NW_SW_EARTHGREAT","NW_SW_FIREGREAT"); - eSummon = EffectSwarm(TRUE, "airgreat8", "watergreat8", "earthgreat8", "firegreat8"); - //Apply the summon effect - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSummon, OBJECT_SELF, HoursToSeconds(nDuration)); -} - diff --git a/_removed files/nw_s0_enedrain.nss b/_removed files/nw_s0_enedrain.nss deleted file mode 100644 index d1462c36..00000000 --- a/_removed files/nw_s0_enedrain.nss +++ /dev/null @@ -1,68 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Energy Drain -//:: NW_S0_EneDrain.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Target loses 2d4 levels. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE); - object oTarget = GetSpellTargetObject(); - int nMetaMagic = GetMetaMagicFeat(); - int nDrain = d4(2); - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDrain = 8;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDrain = nDrain + (nDrain/2); //Damage/Healing is +50% - } - effect eDrain = EffectNegativeLevel(nDrain); - eDrain = SupernaturalEffect(eDrain); - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ENERGY_DRAIN)); - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_NEGATIVE)) - { - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDrain, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } - } -} - diff --git a/_removed files/nw_s0_enervat.nss b/_removed files/nw_s0_enervat.nss deleted file mode 100644 index 34a17ca0..00000000 --- a/_removed files/nw_s0_enervat.nss +++ /dev/null @@ -1,79 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Enervation -//:: NW_S0_Enervat.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Target Loses 1d4 levels for 1 hour per caster - level -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE); - object oTarget = GetSpellTargetObject(); - int nMetaMagic = GetMetaMagicFeat(); - int nDrain = d4(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDrain = 4;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDrain = nDrain + (nDrain/2); //Damage/Healing is +50% - } - else if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - - effect eDrain = EffectNegativeLevel(nDrain); - effect eLink = EffectLinkEffects(eDrain, eDur); - - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ENERVATION)); - //Resist magic check - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_NEGATIVE)) - { - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDuration)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } - } -} - diff --git a/_removed files/nw_s0_findtrap.nss b/_removed files/nw_s0_findtrap.nss deleted file mode 100644 index bc46da73..00000000 --- a/_removed files/nw_s0_findtrap.nss +++ /dev/null @@ -1,36 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Find Traps -//:: NW_S0_FindTrap -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Finds and removes all traps within 30m. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Oct 29, 2001 -//::////////////////////////////////////////////// - -void main() -{ - effect eVis = EffectVisualEffect(VFX_IMP_KNOCK); - int nCnt = 1; - - object oTrap = GetNearestObject(OBJECT_TYPE_TRIGGER | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nCnt); - - while(GetIsObjectValid(oTrap) && GetDistanceToObject(oTrap) <= 30.0) - { - if(GetIsTrapped(oTrap)) - { - int DC = GetTrapDisarmDC(oTrap); - if (DC <= 30){ - SetTrapDetectedBy(oTrap, OBJECT_SELF); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTrap)); - DelayCommand(2.0, SetTrapDisabled(oTrap)); - } - } - nCnt++; - oTrap = GetNearestObject(OBJECT_TYPE_TRIGGER | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nCnt); - } -} - diff --git a/_removed files/nw_s0_fingdeath.nss b/_removed files/nw_s0_fingdeath.nss deleted file mode 100644 index 88ff52a5..00000000 --- a/_removed files/nw_s0_fingdeath.nss +++ /dev/null @@ -1,97 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Finger of Death -//:: NW_S0_FingDeath -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// You can slay any one living creature within range. -// The victim is entitled to a Fortitude saving throw to -// survive the attack. If he succeeds, he instead -// sustains 3d6 points of damage +1 point per caster -// level. -*/ -//::////////////////////////////////////////////// -//:: Created By: Noel Borstad -//:: Created On: Oct 17, 2000 -//::////////////////////////////////////////////// -//:: Updated By: Georg Z, On: Aug 21, 2003 - no longer affects placeables - -#include "x0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - effect eDam; - effect eVis = EffectVisualEffect(VFX_IMP_DEATH_L); - effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - - if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE,OBJECT_SELF)) - { - //GZ: I still signal this event for scripting purposes, even if a placeable - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FINGER_OF_DEATH)); - if (GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) - { - - //Make SR check - if (!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Make Forttude save - if (!MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_DEATH)) - { - //Apply the death effect and VFX impact - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget); - //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - else - { - // Target shouldn't take damage if they are immune to death magic. - - //NOTE: I have made it where they take dmg no matter what! - // if ( GetIsImmune( oTarget, IMMUNITY_TYPE_DEATH) == FALSE ) - // { - //Roll damage(d6 X Caster Level up 40!) - nDamage = d6(1) * nCasterLvl; - //Make metamagic checks - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLvl; - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); - } - //Set damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE); - //Apply damage effect and VFX impact - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); - // } - } - } - } - } -} diff --git a/_removed files/nw_s0_fireball.nss b/_removed files/nw_s0_fireball.nss deleted file mode 100644 index 559a028e..00000000 --- a/_removed files/nw_s0_fireball.nss +++ /dev/null @@ -1,109 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Fireball -//:: NW_S0_Fireball -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// A fireball is a burst of flame that detonates with -// a low roar and inflicts 1d6 points of damage per -// caster level (maximum of 10d6) to all creatures -// within the area. Unattended objects also take -// damage. The explosion creates almost no pressure. -*/ -//::////////////////////////////////////////////// -//:: Created By: Noel Borstad -//:: Created On: Oct 18 , 2000 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: April 6, 2001 -//:: Last Updated By: AidanScanlan, On: April 11, 2001 -//:: Last Updated By: Preston Watamaniuk, On: May 25, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oCaster = OBJECT_SELF; - int nCasterLvl = GetCasterLevel(oCaster); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - float fDelay; - effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - effect eDam; - - //Get the spell target location as opposed to the spell target. - location lTarget = GetSpellTargetLocation(); - //Limit Caster level for the purposes of damage - if (nCasterLvl > 15) - { - nCasterLvl = 15; - } - //Apply the fireball explosion at the location captured above. - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while (GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - if((GetSpellId() == 341) || GetSpellId() == 58) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL)); - //Get the distance between the explosion and the target to calculate delay - fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Roll damage for each target - nDamage = d6(nCasterLvl); - //Resolve metamagic - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLvl; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage / 2; - } - //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE); - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - if(nDamage > 0) - { - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the flame that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} - diff --git a/_removed files/nw_s0_firestrm.nss b/_removed files/nw_s0_firestrm.nss deleted file mode 100644 index 70a8a1b6..00000000 --- a/_removed files/nw_s0_firestrm.nss +++ /dev/null @@ -1,104 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Fire Storm -//:: NW_S0_FireStm -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creates a zone of destruction around the caster - within which all living creatures are pummeled - with fire. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 11, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 21, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - int nDamage2; - - //Level Capp - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - if(nCasterLevel > 30) - { - nCasterLevel == 30; - } - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - effect eFireStorm = EffectVisualEffect(VFX_FNF_FIRESTORM); - float fDelay; - //Apply Fire and Forget Visual in the area; - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eFireStorm, GetLocation(OBJECT_SELF)); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF), OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while(GetIsObjectValid(oTarget)) - { - //This spell smites everyone who is more than 2 meters away from the caster. - //if (GetDistanceBetween(oTarget, OBJECT_SELF) > 2.0) - //{ - if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF) - { - fDelay = GetRandomDelay(1.5, 2.5); - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIRE_STORM)); - //Make SR check, and appropriate saving throw(s). - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Roll Damage - nDamage = d6(nCasterLevel); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLevel;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2);//Damage/Healing is +50% - } - //Save versus both holy and fire damage - nDamage2 = nDamage; //No Save for Divine Dmg.. - //GetReflexAdjustedDamage(nDamage/2, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_DIVINE); - nDamage = GetReflexAdjustedDamage(nDamage/2, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE); - if(nDamage > 0) - { - // Apply effects to the currently selected target. For this spell we have used - //both Divine and Fire damage. - effect eDivine = EffectDamage(nDamage2, DAMAGE_TYPE_DIVINE); - effect eFire = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDivine, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - //} - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF), OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} diff --git a/_removed files/nw_s0_flmarrow.nss b/_removed files/nw_s0_flmarrow.nss deleted file mode 100644 index 09467c42..00000000 --- a/_removed files/nw_s0_flmarrow.nss +++ /dev/null @@ -1,99 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Flame Arrow -//:: NW_S0_FlmArrow -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Fires a stream of fiery arrows at the selected - target that do 4d6 damage per arrow. 1 Arrow - per 4 levels is created. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Sept 20, 2001 -//:: Updated By: Georg Zoeller, Aug 18 2003: Uncapped -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables ( fDist / (3.0f * log( fDist ) + 2.0f) ) - object oTarget = GetSpellTargetObject(); - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nDamage = 0; - int nMetaMagic = GetMetaMagicFeat(); - int nCnt; - effect eMissile; - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S); - int nMissiles = (nCasterLvl)/4; - - float fDist = GetDistanceBetween(OBJECT_SELF, oTarget); - float fDelay = fDist/(3.0 * log(fDist) + 2.0); - //Limit missiles to five - if(nMissiles == 0) - { - nMissiles = 1; - } - /* Uncapped because PHB does list any cap and we now got epic levels - else if (nMissiles > 5) - { - nMissiles = 5; - }*/ - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FLAME_ARROW)); - //Apply a single damage hit for each missile instead of as a single mass - //Make SR Check - for (nCnt = 1; nCnt <= nMissiles; nCnt++) - { - if(!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - - //Roll damage - int nDam = d6(3) + 8; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDam = 26;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDam = nDam + nDam/2; //Damage/Healing is +50% - } - nDam = GetReflexAdjustedDamage(nDam, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE); - //Set damage effect - effect eDam = EffectDamage(nDam, DAMAGE_TYPE_FIRE); - //Apply the MIRV and damage effect - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oTarget)); - - } - // * May 2003: Make it so the arrow always appears, even if resisted - eMissile = EffectVisualEffect(VFX_IMP_MIRV_FLAME); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget); - } - } -} - diff --git a/_removed files/nw_s0_flmstrike.nss b/_removed files/nw_s0_flmstrike.nss deleted file mode 100644 index 0359a17b..00000000 --- a/_removed files/nw_s0_flmstrike.nss +++ /dev/null @@ -1,108 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Flame Strike -//:: NW_S0_FlmStrike -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// A flame strike is a vertical column of divine fire -// roaring downward. The spell deals 1d6 points of -// damage per level, to a maximum of 15d6. Half the -// damage is fire damage, but the rest of the damage -// results directly from divine power and is therefore -// not subject to protection from elements (fire), -// fire shield (chill shield), etc. -*/ -//::////////////////////////////////////////////// -//:: Created By: Noel Borstad -//:: Created On: Oct 19, 2000 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 20, 2001 -//:: Update Pass By: Preston W, On: Aug 1, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget; - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nDamage, nDamage2; - int nMetaMagic = GetMetaMagicFeat(); - effect eStrike = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE); - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S); - effect eHoly; - effect eFire; - - //Limit caster level for the purposes of determining damage. - if (nCasterLvl > 25) - { - nCasterLvl = 25; - } - - - //Declare the spell shape, size and the location. Capture the first target object in the shape. - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetSpellTargetLocation(), FALSE, OBJECT_TYPE_CREATURE|OBJECT_TYPE_PLACEABLE|OBJECT_TYPE_DOOR); - //Apply the location impact visual to the caster location instead of caster target creature. - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eStrike, GetSpellTargetLocation()); - //Cycle through the targets within the spell shape until an invalid object is captured. - while ( GetIsObjectValid(oTarget) ) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FLAME_STRIKE)); - //Make SR check, and appropriate saving throw(s). - if (!MyResistSpell(OBJECT_SELF, oTarget, 0.6)) - { - nDamage = d6(nCasterLvl); - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLvl; - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); - } - //Adjust the damage based on Reflex Save, Evasion and Improved Evasion - nDamage2 = GetReflexAdjustedDamage(nDamage/2, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_DIVINE); - nDamage = GetReflexAdjustedDamage(nDamage/2, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE); - //Make a faction check so that only enemies receieve the full brunt of the damage. - if(!GetIsFriend(oTarget)) - { - eHoly = EffectDamage(nDamage2,DAMAGE_TYPE_DIVINE); - DelayCommand(0.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHoly, oTarget)); - } - // Apply effects to the currently selected target. - eFire = EffectDamage(nDamage,DAMAGE_TYPE_FIRE); - if(nDamage > 0) - { - DelayCommand(0.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oTarget)); - DelayCommand(0.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM,GetSpellTargetLocation(), FALSE, OBJECT_TYPE_CREATURE|OBJECT_TYPE_PLACEABLE|OBJECT_TYPE_DOOR); - } -} diff --git a/_removed files/nw_s0_gate.nss b/_removed files/nw_s0_gate.nss deleted file mode 100644 index 376f0bd2..00000000 --- a/_removed files/nw_s0_gate.nss +++ /dev/null @@ -1,70 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Gate -//:: NW_S0_Gate.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -//:: Summons a Balor to fight for the caster. -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -void CreateBalor(); -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_GATE); - //Make metamagic extend check - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Summon the Balor and apply the VFX impact - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); - location lSpellTargetLOC = GetSpellTargetLocation(); - - if(GetHasSpellEffect(SPELL_PROTECTION_FROM_EVIL) || - GetHasSpellEffect(SPELL_MAGIC_CIRCLE_AGAINST_EVIL) || - GetHasSpellEffect(SPELL_HOLY_AURA)) - { - eSummon = EffectSummonCreature("gatebalor01",VFX_FNF_SUMMON_GATE,3.0); - float fSeconds = RoundsToSeconds(nDuration); - DelayCommand(3.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lSpellTargetLOC, fSeconds)); - - } - else - { - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lSpellTargetLOC); - DelayCommand(3.0, CreateBalor()); - } -} - -void CreateBalor() -{ - CreateObject(OBJECT_TYPE_CREATURE, "gatebalor1", GetSpellTargetLocation()); -} - diff --git a/_removed files/nw_s0_grplanar.nss b/_removed files/nw_s0_grplanar.nss deleted file mode 100644 index 748de3fd..00000000 --- a/_removed files/nw_s0_grplanar.nss +++ /dev/null @@ -1,102 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Greater Planar Binding -//:: NW_S0_GrPlanar.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons an outsider dependant on alignment, or - holds an outsider if the creature fails a save. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - effect eGate; - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eDur2 = EffectVisualEffect(VFX_DUR_PARALYZED); - effect eDur3 = EffectVisualEffect(VFX_DUR_PARALYZE_HOLD); - - effect eLink = EffectLinkEffects(eDur, EffectParalyze()); - eLink = EffectLinkEffects(eLink, eDur2); - eLink = EffectLinkEffects(eLink, eDur3); - - object oTarget = GetSpellTargetObject(); - int nRacial = GetRacialType(oTarget); - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Check to see if a valid target has been chosen - if (GetIsObjectValid(oTarget)) - { - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_GREATER_PLANAR_BINDING)); - //Check for racial type - if(nRacial == RACIAL_TYPE_OUTSIDER) - { - //Allow will save to negate hold effect - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()+20)) - { - //Apply the hold effect - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration/2)); - } - } - } - } - else - { - //If the ground was clicked on summon an outsider based on alignment - int nAlign = GetAlignmentGoodEvil(OBJECT_SELF); - float fDelay = 3.0; - switch (nAlign) - { - case ALIGNMENT_EVIL: - eSummon = EffectSummonCreature("succubus03", VFX_FNF_SUMMON_GATE, 3.0); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_GATE); - break; - case ALIGNMENT_GOOD: - eSummon = EffectSummonCreature("avenger03", VFX_FNF_SUMMON_CELESTIAL, 3.0); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL); - break; - case ALIGNMENT_NEUTRAL: - eSummon = EffectSummonCreature("slaad03", VFX_FNF_SUMMON_MONSTER_3, 1.0); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - fDelay = 1.0; - break; - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), RoundsToSeconds(nDuration)); - } -} - diff --git a/_removed files/nw_s0_hammgods.nss b/_removed files/nw_s0_hammgods.nss deleted file mode 100644 index cd522c76..00000000 --- a/_removed files/nw_s0_hammgods.nss +++ /dev/null @@ -1,110 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Hammer of the Gods -//:: [NW_S0_HammGods.nss] -//:: Copyright (c) 2000 Bioware Corp. -//::////////////////////////////////////////////// -//:: Does 1d8 damage to all enemies within the -//:: spells 20m radius and dazes them if a -//:: Will save is failed. -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 21, 2001 -//:: Update Pass By: Preston W, On: Aug 1, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - effect eDam; - effect eDaze = EffectDazed(); - effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - - effect eLink = EffectLinkEffects(eMind, eDaze); - eLink = EffectLinkEffects(eLink, eDur); - - effect eVis = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_HOLY); - effect eStrike = EffectVisualEffect(VFX_FNF_STRIKE_HOLY); - float fDelay; - int nDamageDice = nCasterLvl/2; - if(nDamageDice == 0) - { - nDamageDice = 1; - } - //Limit caster level - if (nDamageDice > 15) - { - nDamageDice = 15; - } - int nDamage; - //Apply the holy strike VFX - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eStrike, GetSpellTargetLocation()); - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, GetSpellTargetLocation()); - while (GetIsObjectValid(oTarget)) - { - //Make faction checks - if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HAMMER_OF_THE_GODS)); - //Make SR Check - if (!MyResistSpell(OBJECT_SELF, oTarget)) - { - fDelay = GetRandomDelay(0.6, 1.3); - //Roll damage - nDamage = d8(nDamageDice); - //Make metamagic checks - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 8 * nDamageDice; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = FloatToInt( IntToFloat(nDamage) * 1.5 ); - } - //Make a will save for half damage and negation of daze effect - if (MySavingThrow(SAVING_THROW_WILL, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_DIVINE, OBJECT_SELF, 0.5)) - { - nDamage = nDamage / 2; - } - else - { - //Apply daze effect - DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(d6()))); - } - //Set damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_DIVINE ); - //Apply the VFX impact and damage effect - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - //Get next target in shape - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, GetSpellTargetLocation()); - } -} diff --git a/_removed files/nw_s0_horrwilt.nss b/_removed files/nw_s0_horrwilt.nss deleted file mode 100644 index 5dbcfc4e..00000000 --- a/_removed files/nw_s0_horrwilt.nss +++ /dev/null @@ -1,105 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Horrid Wilting -//:: NW_S0_HorrWilt -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - All living creatures (not undead or constructs) - suffer 1d8 damage per caster level to a maximum - of 25d8 damage. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Sept 12 , 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -int bInt; - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oCaster = OBJECT_SELF; - int nCasterLvl = GetCasterLevel(oCaster); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - float fDelay; - effect eExplode = EffectVisualEffect(VFX_FNF_HORRID_WILTING); - effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - effect eDam; - - //Get the spell target location as opposed to the spell target. - location lTarget = GetSpellTargetLocation(); - //Limit Caster level for the purposes of damage - if (nCasterLvl > 35) - { - nCasterLvl = 35; - } - //Apply the horrid wilting explosion at the location captured above. - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget); - //Cycle through the targets within the spell shape until an invalid object is captured. - while (GetIsObjectValid(oTarget)) - { - // GZ: Not much fun if the caster is always killing himself - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HORRID_WILTING)); - //Get the distance between the explosion and the target to calculate delay - fDelay = GetRandomDelay(1.5, 2.5); - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - if(GetRacialType(oTarget) != RACIAL_TYPE_CONSTRUCT && GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) - { - //Roll damage for each target - nDamage = d8(nCasterLvl); - //Resolve metamagic - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 8 * nCasterLvl; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage / 2; - } //Epic DC Bonus Added - if(/*Fort Save*/ MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_NONE, OBJECT_SELF, fDelay)) - { - nDamage = nDamage/2; - } - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL); - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the flame that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget); - } -} diff --git a/_removed files/nw_s0_icestorm.nss b/_removed files/nw_s0_icestorm.nss deleted file mode 100644 index 3a0891bc..00000000 --- a/_removed files/nw_s0_icestorm.nss +++ /dev/null @@ -1,97 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Ice Storm -//:: NW_S0_IceStorm -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Everyone in the area takes 3d6 Bludgeoning - and 2d6 Cold damage. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Sept 12, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oCaster = OBJECT_SELF; - int nCasterLvl = GetCasterLevel(oCaster); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage, nDamage2, nDamage3; - int nVariable = nCasterLvl/2; - float fDelay; - effect eExplode = EffectVisualEffect(VFX_FNF_ICESTORM); //USE THE ICESTORM FNF - effect eVis = EffectVisualEffect(VFX_IMP_FROST_S); - effect eDam,eDam2, eDam3; - //Get the spell target location as opposed to the spell target. - location lTarget = GetSpellTargetLocation(); - //Apply the ice storm VFX at the location captured above. - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while (GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - fDelay = GetRandomDelay(0.75, 2.25); - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ICE_STORM)); - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Roll damage for each target - nDamage = d6(3); - nDamage2 = d6(2); - nDamage3 = d6(nVariable); - //Resolve metamagic - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 18; - nDamage2 = 12; - nDamage3 = 6 * nVariable; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage / 2); - nDamage2 = nDamage2 + (nDamage2 / 2); - nDamage3 = nDamage3 + (nDamage3 / 2); - } - nDamage2 = nDamage2 + nDamage3; - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_BLUDGEONING); - eDam2 = EffectDamage(nDamage2, DAMAGE_TYPE_COLD); - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam2, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the impact that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} - diff --git a/_removed files/nw_s0_implosion.nss b/_removed files/nw_s0_implosion.nss deleted file mode 100644 index 78100d10..00000000 --- a/_removed files/nw_s0_implosion.nss +++ /dev/null @@ -1,80 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Implosion -//:: NW_S0_Implosion.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - All persons within a 5ft radius of the spell must - save at +3 DC or die. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 13, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget; - effect eDeath = EffectDeath(TRUE); - effect eEffect; - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nMult = d6(1); - int nTotalDmg = nMult * nCasterLvl; - eDeath = SupernaturalEffect(eDeath); - effect eImplode= EffectVisualEffect(VFX_FNF_IMPLOSION); - float fDelay; - //Apply the implose effect - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImplode, GetSpellTargetLocation()); - //Get the first target in the shape - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetSpellTargetLocation()); - - while (GetIsObjectValid(oTarget)) - { - if (oTarget != OBJECT_SELF && spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_IMPLOSION)); - fDelay = GetRandomDelay(0.4, 1.2); - //Make SR check - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Make Reflex save - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_DEATH, OBJECT_SELF, fDelay)) - { - //Apply death effect and the VFX impact - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget)); - } - - //Apply Damage If spell is not resisted by magic... - eEffect = EffectDamage(nTotalDmg, DAMAGE_TYPE_DIVINE, DAMAGE_POWER_ENERGY); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget, 0.0f); - } - } - //Get next target in the shape - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetSpellTargetLocation()); - } -} - diff --git a/_removed files/nw_s0_imprinvis.nss b/_removed files/nw_s0_imprinvis.nss deleted file mode 100644 index d861e413..00000000 --- a/_removed files/nw_s0_imprinvis.nss +++ /dev/null @@ -1,66 +0,0 @@ -///:://///////////////////////////////////////////// -//:: Improved Invisibility -//:: NW_S0_ImprInvis.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Target creature can attack and cast spells while - invisible -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_MIND); - - effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_IMPROVED); - - effect eVis = EffectVisualEffect(VFX_DUR_INVISIBILITY); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - effect eCover = EffectConcealment(55); - effect eLink = EffectLinkEffects(eDur, eCover); - eLink = EffectLinkEffects(eLink, eVis); - - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_IMPROVED_INVISIBILITY, FALSE)); - int nDuration = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget); - - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvis, oTarget, TurnsToSeconds(nDuration)); -} - - diff --git a/_removed files/nw_s0_incclouda.nss b/_removed files/nw_s0_incclouda.nss deleted file mode 100644 index c8c7b7e7..00000000 --- a/_removed files/nw_s0_incclouda.nss +++ /dev/null @@ -1,67 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Incendiary Cloud -//:: NW_S0_IncCloud.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Person within the AoE take 4d6 fire damage - per round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// -//:: March 2003: Removed movement speed penalty -#include "X0_I0_SPELLS" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - effect eDam; - object oTarget; - //Declare and assign personal impact visual effect. - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S); - // effect eSpeed = EffectMovementSpeedDecrease(50); - effect eVis2 = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eLink = eVis2; //EffectLinkEffects(eSpeed, eVis2); - - float fDelay; - //Capture the first target object in the shape. - oTarget = GetEnteringObject(); - //Declare the spell shape, size and the location. - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_INCENDIARY_CLOUD)); - //Make SR check, and appropriate saving throw(s). - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay)) - { - fDelay = GetRandomDelay(0.5, 2.0); - //Roll damage. - nDamage = d8(6) + 16; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 64;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - //Adjust damage for Reflex Save, Evasion and Improved Evasion - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE, GetAreaOfEffectCreator()); - // Apply effects to the currently selected target. - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - if(nDamage > 0) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - // ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSpeed, oTarget); - } -} diff --git a/_removed files/nw_s0_inccloudc.nss b/_removed files/nw_s0_inccloudc.nss deleted file mode 100644 index 3cf4999e..00000000 --- a/_removed files/nw_s0_inccloudc.nss +++ /dev/null @@ -1,80 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Incendiary Cloud -//:: NW_S0_IncCloudC.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Objects within the AoE take 4d6 fire damage - per round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// -//:: Updated By: GeorgZ 2003-08-21: Now affects doors and placeables as well -#include "X0_I0_SPELLS" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - effect eDam; - object oTarget; - //Declare and assign personal impact visual effect. - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S); - - float fDelay; - //Capture the first target object in the shape. - - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // When the caster is no longer there, all functions calling - // GetAreaOfEffectCreator will fail. Its better to remove the barrier then - //-------------------------------------------------------------------------- - if (!GetIsObjectValid(GetAreaOfEffectCreator())) - { - DestroyObject(OBJECT_SELF); - return; - } - - - oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Declare the spell shape, size and the location. - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - fDelay = GetRandomDelay(0.5, 2.0); - //Make SR check, and appropriate saving throw(s). - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay)) - { - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_INCENDIARY_CLOUD)); - //Roll damage. - nDamage = d8(4) + 16; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 50;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - //Adjust damage for Reflex Save, Evasion and Improved Evasion - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(),SAVING_THROW_TYPE_FIRE, GetAreaOfEffectCreator()); - // Apply effects to the currently selected target. - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - if(nDamage > 0) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} diff --git a/_removed files/nw_s0_knock.nss b/_removed files/nw_s0_knock.nss deleted file mode 100644 index d4a54c67..00000000 --- a/_removed files/nw_s0_knock.nss +++ /dev/null @@ -1,35 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Knock -//:: NW_S0_Knock -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Opens doors not locked by magical means. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Nov 29, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk -//:: VFX Pass By: Preston W, On: June 22, 2001 -#include "nw_i0_spells" - -void main() -{ - object oTarget; - effect eVis = EffectVisualEffect(VFX_IMP_KNOCK); - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 50.0, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - float fDelay; - while(GetIsObjectValid(oTarget)) - { - fDelay = GetRandomDelay(0.5, 2.5); - if( GetLocked(oTarget)) - { - if (GetLockUnlockDC(oTarget) <= 30){ - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - AssignCommand(oTarget, ActionUnlockObject(oTarget)); - } - } - oTarget = GetNextObjectInShape(SHAPE_SPHERE, 50.0, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} diff --git a/_removed files/nw_s0_lghtnbolt.nss b/_removed files/nw_s0_lghtnbolt.nss deleted file mode 100644 index 51e19578..00000000 --- a/_removed files/nw_s0_lghtnbolt.nss +++ /dev/null @@ -1,112 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Lightning Bolt -//:: NW_S0_LightnBolt -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Does 1d6 per level in a 5ft tube for 30m -*/ -//::////////////////////////////////////////////// -//:: Created By: Noel Borstad -//:: Created On: March 8, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: May 2, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - - //Limit caster level - if (nCasterLevel > 15) - { - nCasterLevel = 15; - } - int nDamage; - int nMetaMagic = GetMetaMagicFeat(); - //Set the lightning stream to start at the caster's hands - effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF, BODY_NODE_HAND); - effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S); - effect eDamage; - object oTarget = GetSpellTargetObject(); - location lTarget = GetLocation(oTarget); - object oNextTarget, oTarget2; - float fDelay; - int nCnt = 1; - - oTarget2 = GetNearestObject(OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nCnt); - while(GetIsObjectValid(oTarget2) && GetDistanceToObject(oTarget2) <= 30.0) - { - //Get first target in the lightning area by passing in the location of first target and the casters vector (position) - oTarget = GetFirstObjectInShape(SHAPE_SPELLCYLINDER, 30.0, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, GetPosition(OBJECT_SELF)); - while (GetIsObjectValid(oTarget)) - { - //Exclude the caster from the damage effects - if (oTarget != OBJECT_SELF && oTarget2 == oTarget) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_LIGHTNING_BOLT)); - //Make an SR check - if (!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Roll damage - nDamage = d6(nCasterLevel); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLevel;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - //Adjust damage based on Reflex Save, Evasion and Improved Evasion - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(),SAVING_THROW_TYPE_ELECTRICITY); - //Set damage effect - eDamage = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); - if(nDamage > 0) - { - fDelay = GetSpellEffectDelay(GetLocation(oTarget), oTarget); - //Apply VFX impcat, damage effect and lightning effect - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget)); - } - } - ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,1.0); - //Set the currect target as the holder of the lightning effect - oNextTarget = oTarget; - eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNextTarget, BODY_NODE_CHEST); - } - } - //Get the next object in the lightning cylinder - oTarget = GetNextObjectInShape(SHAPE_SPELLCYLINDER, 30.0, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, GetPosition(OBJECT_SELF)); - } - nCnt++; - oTarget2 = GetNearestObject(OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nCnt); - } -} - diff --git a/_removed files/nw_s0_lsplanar.nss b/_removed files/nw_s0_lsplanar.nss deleted file mode 100644 index 084dbf88..00000000 --- a/_removed files/nw_s0_lsplanar.nss +++ /dev/null @@ -1,114 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Lesser Planar Binding -//:: NW_S0_LsPlanar.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons an outsider dependant on alignment, or - holds an outsider if the creature fails a save. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 20, 2001 - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - effect eGate; - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eDur2 = EffectVisualEffect(VFX_DUR_PARALYZED); - effect eDur3 = EffectVisualEffect(VFX_DUR_PARALYZE_HOLD); - effect eLink = EffectLinkEffects(eDur, EffectParalyze()); - eLink = EffectLinkEffects(eLink, eDur2); - eLink = EffectLinkEffects(eLink, eDur3); - - object oTarget = GetSpellTargetObject(); - int nRacial = GetRacialType(oTarget); - if(nDuration == 0) - { - nDuration = 1; - } - - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Check to see if the target is valid - if (GetIsObjectValid(oTarget)) - { - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_LESSER_PLANAR_BINDING)); - //Check to make sure the target is an outsider - if(nRacial == RACIAL_TYPE_OUTSIDER) - { - //Make a will save - if(!WillSave(oTarget, GetSpellSaveDC())) - { - //Apply the linked effect - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration/2)); - } - } - } - } - else - { - //Get the alignment of the caster - int nAlign = GetAlignmentGoodEvil(OBJECT_SELF); - float fDelay = 3.0; - switch (nAlign) - { - //Set the summon effect based on alignment - case ALIGNMENT_EVIL: - { - eSummon = EffectSummonCreature("succubus01",VFX_FNF_SUMMON_GATE , fDelay); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_GATE); - } - break; - case ALIGNMENT_GOOD: - { - eSummon = EffectSummonCreature("lantern01", 219 ,fDelay); - //eGate = EffectVisualEffect(219); - } - break; - case ALIGNMENT_NEUTRAL: - { - eSummon = EffectSummonCreature("slaad01", VFX_FNF_SUMMON_MONSTER_3); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3, ,1.0); - } - break; - } - //Apply the summon effect and the VFX impact - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eGate, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - } -} - diff --git a/_removed files/nw_s0_metswarm.nss b/_removed files/nw_s0_metswarm.nss deleted file mode 100644 index 348b3d81..00000000 --- a/_removed files/nw_s0_metswarm.nss +++ /dev/null @@ -1,94 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Meteor Swarm -//:: NW_S0_MetSwarm -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Everyone in a 50ft radius around the caster - takes 20d6 fire damage. Those within 6ft of the - caster will take no damage. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 24 , 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 22, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic; - int nDamage; - effect eFire; - effect eMeteor = EffectVisualEffect(VFX_FNF_METEOR_SWARM); - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - //Apply the meteor swarm VFX area impact - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eMeteor, GetLocation(OBJECT_SELF)); - //Get first object in the spell area - float fDelay; - - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF) - { - fDelay = GetRandomDelay(); - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_METEOR_SWARM)); - //Make sure the target is outside the 2m safe zone - if (GetDistanceBetween(oTarget, OBJECT_SELF) > 2.0) - { - //Make SR check - if (!MyResistSpell(OBJECT_SELF, oTarget, 0.5)) - { - //Roll damage - nDamage = d6(20); - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 120;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(),SAVING_THROW_TYPE_FIRE); - //Set the damage effect - eFire = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - if(nDamage > 0) - { - //Apply damage effect and VFX impact. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - } - //Get next target in the spell area - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); - } -} - diff --git a/_removed files/nw_s0_mordswrd.nss b/_removed files/nw_s0_mordswrd.nss deleted file mode 100644 index f90e6f9b..00000000 --- a/_removed files/nw_s0_mordswrd.nss +++ /dev/null @@ -1,50 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Mordenkainen's Sword -//:: NW_S0_MordSwrd.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a Helmed Horror to battle for the caster -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Oct 29, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("mordsword01"); - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), RoundsToSeconds(nDuration)); -} - diff --git a/_removed files/nw_s0_negray.nss b/_removed files/nw_s0_negray.nss deleted file mode 100644 index 78bd0f32..00000000 --- a/_removed files/nw_s0_negray.nss +++ /dev/null @@ -1,96 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Negative Energy Ray -//:: NW_S0_NegRay -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Fires a bolt of negative energy at the target - doing 1d6 damage. Does an additional 1d6 - damage for 2 levels after level 1 (3,5,7,9) to - a maximum of 5d6 at level 9. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Sept 13, 2001 -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - - if(nCasterLevel > 20) - { - nCasterLevel = 20; - } - nCasterLevel = (nCasterLevel + 1) / 2; - int nDamage = d6(nCasterLevel); - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLevel;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - effect eVisHeal = EffectVisualEffect(VFX_IMP_HEALING_M); - effect eRay; - if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) - { - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_NEGATIVE_ENERGY_RAY)); - eRay = EffectBeam(VFX_BEAM_EVIL, OBJECT_SELF, BODY_NODE_HAND); - if (!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Make a saving throw check - if(/*Will Save*/ MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_NEGATIVE)) - { - nDamage /= 2; - } - effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE); - //Apply the VFX impact and effects - //DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - } - } - } - else - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_NEGATIVE_ENERGY_RAY, FALSE)); - eRay = EffectBeam(VFX_BEAM_EVIL, OBJECT_SELF, BODY_NODE_HAND); - effect eHeal = EffectHeal(nDamage); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisHeal, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget); - } - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7); -} diff --git a/_removed files/nw_s0_planar.nss b/_removed files/nw_s0_planar.nss deleted file mode 100644 index baf01289..00000000 --- a/_removed files/nw_s0_planar.nss +++ /dev/null @@ -1,107 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Planar Binding -//:: NW_S0_Planar.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons an outsider dependant on alignment, or - holds an outsider if the creature fails a save. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -#include "NW_I0_SPELLS" - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - effect eGate; - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eDur2 = EffectVisualEffect(VFX_DUR_PARALYZED); - effect eDur3 = EffectVisualEffect(VFX_DUR_PARALYZE_HOLD); - effect eLink = EffectLinkEffects(eDur, EffectParalyze()); - eLink = EffectLinkEffects(eLink, eDur2); - eLink = EffectLinkEffects(eLink, eDur3); - - int nRacial = GetRacialType(oTarget); - int nAlign = GetAlignmentGoodEvil(OBJECT_SELF); - if(nDuration == 0) - { - nDuration == 1; - } - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Check to make sure a target was selected - if (GetIsObjectValid(oTarget)) - { - //Check the racial type of the target - if(nRacial == RACIAL_TYPE_OUTSIDER) - { - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_PLANAR_BINDING)); - //Make a Will save - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()+2)) - { - //Apply the linked effect - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration/2)); - } - } - } - } - else - { - //Set the summon effect based on the alignment of the caster - float fDelay = 3.0; - switch (nAlign) - { - case ALIGNMENT_EVIL: - eSummon = EffectSummonCreature("succubus02",VFX_FNF_SUMMON_GATE, fDelay); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_GATE); - break; - case ALIGNMENT_GOOD: - eSummon = EffectSummonCreature("hound02", VFX_FNF_SUMMON_CELESTIAL, fDelay); - //eGate = EffectVisualEffect(219); - break; - case ALIGNMENT_NEUTRAL: - eSummon = EffectSummonCreature("slaad02",VFX_FNF_SUMMON_MONSTER_3, 1.0); - //eGate = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - //fDelay = 1.0; - break; - } - //Apply the summon effect and VFX impact - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eGate, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - } -} - diff --git a/_removed files/nw_s0_pwkill.nss b/_removed files/nw_s0_pwkill.nss deleted file mode 100644 index 0d0d3905..00000000 --- a/_removed files/nw_s0_pwkill.nss +++ /dev/null @@ -1,136 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Power Word, Kill -//:: NW_S0_PWKill -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// When power word, kill is uttered, you can either -// target a single creature or let the spell affect a -// group. -// If power word, kill is targeted at a single creature, -// that creature dies if it has 100 or fewer hit points. -// If the power word, kill is cast as an area spell, it -// kills creatures in a 15-foot-radius sphere. It only -// kills creatures that have 20 or fewer hit points, and -// only up to a total of 200 hit points of such -// creatures. The spell affects creatures with the lowest. -*/ -//::////////////////////////////////////////////// -//:: Created By: Noel Borstad -//:: Created On: Dec 18, 2000 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 22, 2001 -//:: Update Pass By: Preston W, On: Aug 3, 2001 -#include "X0_I0_SPELLS" - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nDamageDealt = 0; - int nHitpoints, nMin; - object oWeakest; - effect eDeath = EffectDeath(); - effect eVis = EffectVisualEffect(VFX_IMP_DEATH); - effect eWord = EffectVisualEffect(VFX_FNF_PWKILL); - float fDelay; - int bKill; - - //Apply the VFX impact - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eWord, GetSpellTargetLocation()); - //Check for the single creature or area targeting of the spell - if (GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_POWER_WORD_KILL)); - //Check the creatures HP - if ( GetCurrentHitPoints(oTarget) <= 200 ) - { - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Apply the death effect and the VFX impact - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } - } - } - else - { - //Continue through the while loop while the damage deal is less than 200. - while (nDamageDealt < 200) - { - //Set nMin higher than the highest HP amount allowed - nMin = 25; - oWeakest = OBJECT_INVALID; - //Get the first target in the spell area - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetSpellTargetLocation()); - while (GetIsObjectValid(oTarget)) - { - //Make sure the target avoids all allies. - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - bKill = GetLocalInt(oTarget, "NW_SPELL_PW_KILL_" + GetTag(OBJECT_SELF)); - //Get the HP of the current target - nHitpoints = GetCurrentHitPoints(oTarget); - //Check if the currently selected target is lower in HP than the weakest stored creature - if ((nHitpoints < nMin) && ((nHitpoints > 0) && (nHitpoints <= 20)) && bKill == FALSE) - { - nMin = nHitpoints; - oWeakest = oTarget; - } - } - //Get next target in the spell area - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetSpellTargetLocation()); - } - //If no weak targets are available then break out of the loop - if (!GetIsObjectValid(oWeakest)) - { - nDamageDealt = 250; - } - else - { - fDelay = GetRandomDelay(0.75, 2.0); - SetLocalInt(oWeakest, "NW_SPELL_PW_KILL_" + GetTag(OBJECT_SELF), TRUE); - //Fire cast spell at event for the specified target - SignalEvent(oWeakest, EventSpellCastAt(OBJECT_SELF, SPELL_POWER_WORD_KILL)); - if(!MyResistSpell(OBJECT_SELF, oWeakest, fDelay)) - { - //Apply the VFX impact and death effect - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oWeakest)); - if(!GetIsImmune(oWeakest, IMMUNITY_TYPE_DEATH)) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oWeakest)); - } - //Add the creatures HP to the total - nDamageDealt = nDamageDealt + nMin; - string sTag = "NW_SPELL_PW_KILL_" + GetTag(OBJECT_SELF); - DelayCommand(fDelay + 0.25, DeleteLocalInt(oWeakest, sTag)); - } - } - } - } -} diff --git a/_removed files/nw_s0_raisdead.nss b/_removed files/nw_s0_raisdead.nss deleted file mode 100644 index 4ee6f14c..00000000 --- a/_removed files/nw_s0_raisdead.nss +++ /dev/null @@ -1,47 +0,0 @@ -//:://///////////////////////////////////////////// -//:: [Raise Dead] -//:: [NW_S0_RaisDead.nss] -//:: Copyright (c) 2000 Bioware Corp. -//::////////////////////////////////////////////// -//:: Brings a character back to life with 1 HP. -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 31, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001 -//:: VFX Pass By: Preston W, On: June 22, 2001 - -void main() -{ - //Declare major variables - object oTarget = GetSpellTargetObject(); - object oPC = oTarget; - object oItem; - - //Remove the death token - object oDeath = GetItemPossessedBy(oPC, "death"); - DestroyObject(oDeath, 0.0f); - - effect eRaise = EffectResurrection(); - effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD); - - if (GetLocalInt(GetArea(oTarget), "streamed")==2){ - return; - } - if(GetIsDead(oTarget)) - { - SetPlotFlag(oTarget, 0); - - SetCampaignInt(GetName(GetModule()), "DEATH_LOG", 0, oPC); - - - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RAISE_DEAD, FALSE)); - //Apply raise dead effect and VFX impact - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eRaise, oTarget); - - } -} - diff --git a/_removed files/nw_s0_regen.nss b/_removed files/nw_s0_regen.nss deleted file mode 100644 index c20c792c..00000000 --- a/_removed files/nw_s0_regen.nss +++ /dev/null @@ -1,59 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Regenerate -//:: NW_S0_Regen -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Grants the selected target 6 HP of regeneration - every round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Oct 22, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - effect eRegen = EffectRegenerate(12, 6.0); - effect eVis = EffectVisualEffect(VFX_IMP_HEAD_NATURE); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - - effect eLink = EffectLinkEffects(eRegen, eDur); - - - int nMeta = GetMetaMagicFeat(); - int nLevel = GetCasterLevel(OBJECT_SELF); - //Meta-Magic Checks - if (nMeta == METAMAGIC_EXTEND) - { - nLevel *= 2; - - } - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_REGENERATE, FALSE)); - //Apply effects and VFX - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nLevel)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - -} diff --git a/_removed files/nw_s0_resserec.nss b/_removed files/nw_s0_resserec.nss deleted file mode 100644 index 115921f8..00000000 --- a/_removed files/nw_s0_resserec.nss +++ /dev/null @@ -1,52 +0,0 @@ -//:://///////////////////////////////////////////// -//:: [Ressurection] -//:: [NW_S0_Ressurec.nss] -//:: Copyright (c) 2000 Bioware Corp. -//::////////////////////////////////////////////// -//:: Brings a character back to life with full -//:: health. -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 31, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001 -//:: VFX Pass By: Preston W, On: June 22, 2001 - -void main() -{ - //Get the spell target - object oTarget = GetSpellTargetObject(); - object oPC = oTarget; - object oItem; - object oDeath = GetItemPossessedBy(oPC, "death"); - DestroyObject(oDeath, 0.0f); - - if (!GetIsDead(oTarget)){return;} - - if (GetLocalInt(GetArea(oTarget), "streamed")==2){ - return; - } - - //Check to make sure the target is dead first - if (GetIsDead(oTarget)) - { - SetPlotFlag(oTarget, 0); - - //Remove the Death Logging from the player.. - SetCampaignInt(GetName(GetModule()), "DEATH_LOG", 0, oPC); - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RESURRECTION, FALSE)); - //Declare major variables - int nHealed = GetMaxHitPoints(oTarget); - effect eRaise = EffectResurrection(); - effect eHeal = EffectHeal(nHealed + 10); - effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD); - //Apply the heal, raise dead and VFX impact effect - ApplyEffectToObject(DURATION_TYPE_INSTANT, eRaise, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget)); - - } -} - diff --git a/_removed files/nw_s0_shadconj.nss b/_removed files/nw_s0_shadconj.nss deleted file mode 100644 index 8b569af4..00000000 --- a/_removed files/nw_s0_shadconj.nss +++ /dev/null @@ -1,105 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Shadow Conjuration -//:: NW_S0_ShadConj.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - If the opponent is clicked on Shadow Bolt is cast. - If the caster clicks on himself he will cast - Mage Armor and Mirror Image. If they click on - the ground they will summon a Shadow. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -void ShadowBolt (object oTarget, int nMetaMagic); - -void main() -{ - int nMetaMagic = GetMetaMagicFeat(); - object oTarget = GetSpellTargetObject(); - int nCast; - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eVis; - - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - - if (GetIsObjectValid(oTarget)) - { - if (oTarget == OBJECT_SELF) - { - nCast = 1; - } - else - { - nCast = 2; - } - } - else - { - nCast = 3; - } - - switch (nCast) - { - case 1: - { - eVis = EffectVisualEffect(VFX_IMP_AC_BONUS); - effect eAC = EffectACIncrease(4, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL); - effect eMirror = EffectVisualEffect(VFX_DUR_BLUR); - effect eMiss = EffectConcealment(40); - effect eLink = EffectLinkEffects(eAC, eMirror); - eLink = EffectLinkEffects(eLink, eVis); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eMiss, OBJECT_SELF, HoursToSeconds(nDuration)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, TurnsToSeconds(nDuration)); - } - case 2: - if (!ResistSpell(OBJECT_SELF, oTarget)) - { - ShadowBolt(oTarget, nMetaMagic); - } - case 3: - eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("shadfiend01"); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); - } -} - -void ShadowBolt (object oTarget, int nMetaMagic) -{ - int nDamage; - int nBolts = GetCasterLevel(OBJECT_SELF)/5; - int nCnt; - effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - effect eDam; - for (nCnt = 0; nCnt < nBolts; nCnt++) - { - int nDam = d6(2); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 12;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage/2; //Damage/Healing is +50% - } - if (ReflexSave(oTarget, GetSpellSaveDC())) - { - nDamage = nDamage/2; - } - eDam = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - } -} - - diff --git a/_removed files/nw_s0_shades.nss b/_removed files/nw_s0_shades.nss deleted file mode 100644 index 265bae6c..00000000 --- a/_removed files/nw_s0_shades.nss +++ /dev/null @@ -1,105 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Shades -//:: NW_S0_Shades.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - If the opponent is clicked on Shadow Bolt is cast. - If the caster clicks on himself he will cast - Stoneskin and Mirror Image. If they click on - the ground they will summon a Shadow Lord. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -void ShadowBolt (object oTarget, int nMetaMagic); - -void main() -{ - int nMetaMagic = GetMetaMagicFeat(); - object oTarget = GetSpellTargetObject(); - int nCast; - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eVis; - - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - - if (GetIsObjectValid(oTarget)) - { - if (oTarget == OBJECT_SELF) - { - nCast = 1; - } - else - { - nCast = 2; - } - } - else - { - nCast = 3; - } - - switch (nCast) - { - case 1: - { - eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN); - effect eStone = EffectDamageReduction(5, DAMAGE_POWER_PLUS_FIVE, nDuration * 10); - effect eMirror = EffectVisualEffect(VFX_DUR_BLUR); - effect eLink = EffectLinkEffects(eStone, eMirror); - effect eMiss = EffectConcealment(40); - eLink = EffectLinkEffects(eLink, eVis); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eMiss, OBJECT_SELF, HoursToSeconds(nDuration)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, HoursToSeconds(nDuration)); - } - case 2: - if (!ResistSpell(OBJECT_SELF, oTarget)) - { - ShadowBolt(oTarget, nMetaMagic); - } - case 3: - eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("shadlord01"); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); - } -} - -void ShadowBolt (object oTarget, int nMetaMagic) -{ - int nDamage; - int nBolts = GetCasterLevel(OBJECT_SELF)/5; - int nCnt; - effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - - for (nCnt = 0; nCnt < nBolts; nCnt++) - { - int nDam = d6(4); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 24;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage/2; //Damage/Healing is +50% - } - if (ReflexSave(oTarget, GetSpellSaveDC())) - { - nDamage = nDamage/2; - } - effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - } -} - - diff --git a/_removed files/nw_s0_slaylive.nss b/_removed files/nw_s0_slaylive.nss deleted file mode 100644 index 61809695..00000000 --- a/_removed files/nw_s0_slaylive.nss +++ /dev/null @@ -1,85 +0,0 @@ -//:://///////////////////////////////////////////// -//:: [Slay Living] -//:: [NW_S0_SlayLive.nss] -//:: Copyright (c) 2000 Bioware Corp. -//::////////////////////////////////////////////// -//:: Caster makes a touch attack and if the target -//:: fails a Fortitude save they die. -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: January 22nd / 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001 -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "NW_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - object oTarget = GetSpellTargetObject(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDamage; - effect eDam; - effect eVis = EffectVisualEffect(VFX_IMP_DEATH); - effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - - if(!GetIsReactionTypeFriendly(oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_SLAY_LIVING)); - //Make SR check - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Make melee touch attack - if(TouchAttackMelee(oTarget)) - { - //Make Fort save - if (!/*Fort Save*/ MySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_DEATH)) - { - //Apply the death effect and VFX impact - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget); - //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - else - { - //Roll damage - nDamage = d6(3)+ nCasterLevel; - //Make metamagic checks - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 18 + nCasterLevel; - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); - } - //Apply damage effect and VFX impact - eDam = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - } - } - } - } -} diff --git a/_removed files/nw_s0_slow.nss b/_removed files/nw_s0_slow.nss deleted file mode 100644 index 67bd7fe0..00000000 --- a/_removed files/nw_s0_slow.nss +++ /dev/null @@ -1,84 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Slow -//:: NW_S0_Slow.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Character can take only one partial action - per round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 29, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget; - effect eSlow = EffectSlow(); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eLink = EffectLinkEffects(eSlow, eDur); - - effect eVis = EffectVisualEffect(VFX_IMP_SLOW); - effect eImpact = EffectVisualEffect(VFX_FNF_LOS_NORMAL_30); - int nMetaMagic = GetMetaMagicFeat(); - //Determine spell duration as an integer for later conversion to Rounds, Turns or Hours. - int nDuration = GetCasterLevel(OBJECT_SELF); - int nLevel = nDuration; - int nCount = 0; - location lSpell = GetSpellTargetLocation(); - - //Metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation()); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lSpell); - //Cycle through the targets within the spell shape until an invalid object is captured or the number of - //targets affected is equal to the caster level. - while(GetIsObjectValid(oTarget) && nCount < nLevel) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_SLOW)); - if (!MyResistSpell(OBJECT_SELF, oTarget) && !/*Will Save*/ MySavingThrow(SAVING_THROW_WILL, oTarget, GetEpicSpellSaveDC())) - { - //Apply the slow effect and VFX impact - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - //Count the number of creatures affected - nCount++; - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lSpell); - } -} - diff --git a/_removed files/nw_s0_splresis.nss b/_removed files/nw_s0_splresis.nss deleted file mode 100644 index 9afb25b0..00000000 --- a/_removed files/nw_s0_splresis.nss +++ /dev/null @@ -1,76 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Spell Resistance -//:: NW_S0_SplResis -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The target creature gains 12 + Caster Level SR. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: March 19, 2001 -//::////////////////////////////////////////////// -//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001 -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nMetaMagic = GetMetaMagicFeat(); - int nLevel = GetCasterLevel(OBJECT_SELF); - - //Epic Spell Resistance Added - int nDC; - int nAdjs; - nAdjs = GetCasterLevel(OBJECT_SELF) - 20; - if(GetCasterLevel(OBJECT_SELF)>=23) - { - nDC = nAdjs/3; - SendMessageToPC(OBJECT_SELF, "Your Epic Spell Resistance Bonus = + " + IntToString(nDC) + " DC"); - } - else if(GetCasterLevel(OBJECT_SELF) <=22) - { - nDC = 0; - } - - //Epic Resistance Added - int nBonus = 12 + nLevel + nDC; - effect eSR = EffectSpellResistanceIncrease(nBonus); - effect eVis = EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - effect eDur2 = EffectVisualEffect(249); - effect eLink = EffectLinkEffects(eSR, eDur); - eLink = EffectLinkEffects(eLink, eDur2); - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_SPELL_RESISTANCE, FALSE)); - //Check for metamagic extension - if (nMetaMagic == METAMAGIC_EXTEND) - { - nLevel = nLevel *2; //Duration is +100% - } - //Apply VFX impact and SR bonus effect - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nLevel)); -} diff --git a/_removed files/nw_s0_stormvenc.nss b/_removed files/nw_s0_stormvenc.nss deleted file mode 100644 index b2b89098..00000000 --- a/_removed files/nw_s0_stormvenc.nss +++ /dev/null @@ -1,74 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Storm of Vengeance: Heartbeat -//:: NW_S0_StormVenC.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creates an AOE that decimates the enemies of - the cleric over a 30ft radius around the caster -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Nov 8, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - effect eAcid = EffectDamage(d8(5), DAMAGE_TYPE_ACID); - effect eElec = EffectDamage(d8(7), DAMAGE_TYPE_ELECTRICAL); - effect eStun = EffectStunned(); - effect eVisAcid = EffectVisualEffect(VFX_IMP_ACID_S); - effect eVisElec = EffectVisualEffect(VFX_IMP_LIGHTNING_M); - effect eVisStun = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eLink = EffectLinkEffects(eStun, eVisStun); - eLink = EffectLinkEffects(eLink, eDur); - - float fDelay; - //Get first target in spell area - object oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE); - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_STORM_OF_VENGEANCE)); - //Make an SR Check - fDelay = GetRandomDelay(0.5, 2.0); - if(MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay) == 0) - { - //Make a saving throw check - // * if the saving throw is made they still suffer acid damage. - // * if they fail the saving throw, they suffer Electrical damage too - if(MySavingThrow(SAVING_THROW_REFLEX, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ELECTRICITY, GetAreaOfEffectCreator(), fDelay)) - { - //Apply the VFX impact and effects - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisAcid, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eAcid, oTarget)); - if (d2()==1) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisElec, oTarget)); - } - } - else - { - //Apply the VFX impact and effects - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisAcid, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eAcid, oTarget)); - //Apply the VFX impact and effects - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisElec, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eElec, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(2))); - } - } - } - //Get next target in spell area - oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE); - } -} diff --git a/_removed files/nw_s0_summon.nss b/_removed files/nw_s0_summon.nss deleted file mode 100644 index 5f8a7740..00000000 --- a/_removed files/nw_s0_summon.nss +++ /dev/null @@ -1,260 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Creature Series -//:: NW_S0_Summon -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Carries out the summoning of the appropriate - creature for the Summon Monster Series of spells - 1 to 9 -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 8, 2002 -//::////////////////////////////////////////////// - -effect SetSummonEffect(int nSpellID); - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nSpellID = GetSpellId(); - int nDuration = GetCasterLevel(OBJECT_SELF); - nDuration = 24; - if(nDuration == 1) - { - nDuration = 4; - } - effect eSummon = SetSummonEffect(nSpellID); - - //Make metamagic check for extend - int nMetaMagic = GetMetaMagicFeat(); - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); -} - - -effect SetSummonEffect(int nSpellID) -{ - int nFNF_Effect; - int nRoll = d3(); - string sSummon; - if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) //WITH THE ANIMAL DOMAIN - { - if(nSpellID == SPELL_SUMMON_CREATURE_I) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; - sSummon = "NW_S_BOARDIRE"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_II) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; - sSummon = "NW_S_WOLFDIRE"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_III) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; - sSummon = "direspider4"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_IV) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2; - sSummon = "diretiger5"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_V) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2; - sSummon = "direbear6"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_VI) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "airelder7"; - break; - - case 2: - sSummon = "waterelder7"; - break; - - case 3: - sSummon = "fireelder7"; - break; - } - } - else if(nSpellID == SPELL_SUMMON_CREATURE_VII) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "airgreat8"; - break; - - case 2: - sSummon = "watergreat8"; - break; - - case 3: - sSummon = "firegreat8"; - break; - } - } - else if(nSpellID == SPELL_SUMMON_CREATURE_VIII) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "asummon9"; - break; - - case 2: - sSummon = "bsummon9"; - break; - - case 3: - sSummon = "csummon9"; - break; - } - } - else if(nSpellID == SPELL_SUMMON_CREATURE_IX) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "asummon9"; - break; - - case 2: - sSummon = "csummon9"; - break; - - case 3: - sSummon = "dsummon9"; - break; - } - } - } - else //WITOUT THE ANIMAL DOMAIN - { - if(nSpellID == SPELL_SUMMON_CREATURE_I) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; - sSummon = "NW_S_badgerdire"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_II) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; - sSummon = "NW_S_BOARDIRE"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_III) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; - sSummon = "NW_S_WOLFDIRE"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_IV) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2; - sSummon = "direspider4"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_V) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2; - sSummon = "diretiger5"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_VI) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2; - sSummon = "direbear6"; - } - else if(nSpellID == SPELL_SUMMON_CREATURE_VII) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "airelder7"; - break; - - case 2: - sSummon = "waterelder7"; - break; - - case 3: - sSummon = "fireelder7"; - break; - } - } - else if(nSpellID == SPELL_SUMMON_CREATURE_VIII) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "airgreat8"; - break; - - case 2: - sSummon = "watergreat8"; - break; - - case 3: - sSummon = "firegreat8"; - break; - } - } - else if(nSpellID == SPELL_SUMMON_CREATURE_IX) - { - nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3; - switch (nRoll) - { - case 1: - sSummon = "asummon9"; - break; - - case 2: - sSummon = "bsummon9"; - break; - - case 3: - sSummon = "csummon9"; - break; - - } - } - } - //effect eVis = EffectVisualEffect(nFNF_Effect); - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); - effect eSummonedMonster = EffectSummonCreature(sSummon, nFNF_Effect); - return eSummonedMonster; -} - diff --git a/_removed files/nw_s0_summon4.nss b/_removed files/nw_s0_summon4.nss deleted file mode 100644 index 9beb093d..00000000 --- a/_removed files/nw_s0_summon4.nss +++ /dev/null @@ -1,54 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Monster IV -//:: NW_S0_Summon4 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a Sword Spider to fight for the character -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - - -#include "x2_inc_spellhook" -void main() -{ - - /* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("direspider4"); - if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) - { - eSummon = EffectSummonCreature("diretiger5"); - } - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration)); -} - diff --git a/_removed files/nw_s0_summon5.nss b/_removed files/nw_s0_summon5.nss deleted file mode 100644 index 9ea66ffc..00000000 --- a/_removed files/nw_s0_summon5.nss +++ /dev/null @@ -1,52 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Monster V -//:: NW_S0_Summon5 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a dire spider to fight for the character -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12 , 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "x2_inc_spellhook" -void main() -{ - /* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("diretiger5"); - if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) - { - eSummon = EffectSummonCreature("direbear6"); - } - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration)); -} diff --git a/_removed files/nw_s0_summon6.nss b/_removed files/nw_s0_summon6.nss deleted file mode 100644 index 669b3b93..00000000 --- a/_removed files/nw_s0_summon6.nss +++ /dev/null @@ -1,70 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Monster VI -//:: NW_S0_Summon6 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a dire bear to fight for the character -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "x2_inc_spellhook" -void main() -{ - - /* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("direbear6"); - if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) - { - int nRoll = d4(); - switch (nRoll) - { - case 1: - eSummon = EffectSummonCreature("airelder7"); - break; - - case 2: - eSummon = EffectSummonCreature("waterelder7"); - break; - - case 3: - eSummon = EffectSummonCreature("earthelder7"); - break; - - case 4: - eSummon = EffectSummonCreature("fireelder7"); - break; - } - } - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration)); -} diff --git a/_removed files/nw_s0_summon7.nss b/_removed files/nw_s0_summon7.nss deleted file mode 100644 index 9c3ed080..00000000 --- a/_removed files/nw_s0_summon7.nss +++ /dev/null @@ -1,90 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Monster VII -//:: NW_S0_Summon7 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a Minogon to fight for the character -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "x2_inc_spellhook" -void main() -{ - /* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - int nRoll = d4(); - if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) - { - switch (nRoll) - { - case 1: - eSummon = EffectSummonCreature("airegreat8"); - break; - - case 2: - eSummon = EffectSummonCreature("watergreat8"); - break; - - case 3: - eSummon = EffectSummonCreature("earthgreat8"); - break; - - case 4: - eSummon = EffectSummonCreature("firegreat8"); - break; - } - } - else - { - switch (nRoll) - { - case 1: - eSummon = EffectSummonCreature("airelder7"); - break; - - case 2: - eSummon = EffectSummonCreature("waterelder7"); - break; - - case 3: - eSummon = EffectSummonCreature("earthelder7"); - break; - - case 4: - eSummon = EffectSummonCreature("fireelder7"); - break; - } - } - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration)); -} diff --git a/_removed files/nw_s0_summon8.nss b/_removed files/nw_s0_summon8.nss deleted file mode 100644 index 4b773f24..00000000 --- a/_removed files/nw_s0_summon8.nss +++ /dev/null @@ -1,92 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Monster VIII -//:: NW_S0_Summon8 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a greater earth elemental to fight for the character -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "x2_inc_spellhook" -void main() -{ - /* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - int nRoll = d4(); - if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) - { - switch (nRoll) - { - case 1: - eSummon = EffectSummonCreature("asummon9"); - break; - - case 2: - eSummon = EffectSummonCreature("bsummon9"); - break; - - case 3: - eSummon = EffectSummonCreature("csummon9"); - break; - - case 4: - eSummon = EffectSummonCreature("dsummon9"); - break; - - } - } - else - { - switch (nRoll) - { - case 1: - eSummon = EffectSummonCreature("airgreat8"); - break; - - case 2: - eSummon = EffectSummonCreature("watergreat8"); - break; - - case 3: - eSummon = EffectSummonCreature("earthgreat8"); - break; - - case 4: - eSummon = EffectSummonCreature("firegreat8"); - break; - } - } - - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration)); -} diff --git a/_removed files/nw_s0_summon9.nss b/_removed files/nw_s0_summon9.nss deleted file mode 100644 index 35fc9ea8..00000000 --- a/_removed files/nw_s0_summon9.nss +++ /dev/null @@ -1,66 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Monster IX -//:: NW_S0_Summon9 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a elder elemental to fight for the character -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: April 12, 2001 -//::////////////////////////////////////////////// -//:: VFX Pass By: Preston W, On: June 25, 2001 - -#include "x2_inc_spellhook" -void main() -{ - - /* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon; - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - int nRoll = d4(); - switch (nRoll) - { - case 1: - eSummon = EffectSummonCreature("asummon9"); - break; - - case 2: - eSummon = EffectSummonCreature("bsummon9"); - break; - - case 3: - eSummon = EffectSummonCreature("csummon9"); - break; - - case 4: - eSummon = EffectSummonCreature("dsummon9"); - break; - } - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration)); -} diff --git a/_removed files/nw_s0_summshad.nss b/_removed files/nw_s0_summshad.nss deleted file mode 100644 index 6b9be3a3..00000000 --- a/_removed files/nw_s0_summshad.nss +++ /dev/null @@ -1,70 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Shadow -//:: NW_S0_SummShad.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Spell powerful ally from the shadow plane to - battle for the wizard -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Oct 26, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = nCasterLevel; - effect eSummon; - //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Set the summoned undead to the appropriate template based on the caster level - if (nCasterLevel <= 7) - { - eSummon = EffectSummonCreature("shadow01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 8) && (nCasterLevel <= 17)) - { - eSummon = EffectSummonCreature("shadhound01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 18) && (nCasterLevel <= 23)) - { - eSummon = EffectSummonCreature("shadfiend01",VFX_FNF_SUMMON_UNDEAD); // change later - } - else if ((nCasterLevel >= 24)) - { - eSummon = EffectSummonCreature("shadlord01",VFX_FNF_SUMMON_UNDEAD); - } - - //Apply VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); -} - diff --git a/_removed files/nw_s0_summshad02.nss b/_removed files/nw_s0_summshad02.nss deleted file mode 100644 index ea3664fe..00000000 --- a/_removed files/nw_s0_summshad02.nss +++ /dev/null @@ -1,64 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Shadow -//:: NW_S0_SummShad02.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Spell powerful ally from the shadow plane to - battle for the wizard -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Oct 26, 2001 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-23 by GeorgZ - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetLevelByClass(CLASS_TYPE_CLERIC); - effect eSummon; - //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - - //Set the summoned undead to the appropriate template based on the caster level - if (nCasterLevel <= 7) - { - eSummon = EffectSummonCreature("shadow01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 8) && (nCasterLevel <= 17)) - { - eSummon = EffectSummonCreature("shadhound01",VFX_FNF_SUMMON_UNDEAD); - } - else if ((nCasterLevel >= 18) && (nCasterLevel <= 23)) - { - eSummon = EffectSummonCreature("shadfiend01",VFX_FNF_SUMMON_UNDEAD); // change later - } - else if ((nCasterLevel >= 24)) - { - eSummon = EffectSummonCreature("shadlord01",VFX_FNF_SUMMON_UNDEAD); - } - - //Apply VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(24)); -} - diff --git a/_removed files/nw_s0_timestop.nss b/_removed files/nw_s0_timestop.nss deleted file mode 100644 index e1723a53..00000000 --- a/_removed files/nw_s0_timestop.nss +++ /dev/null @@ -1,158 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Time Stop -//:: NW_S0_TimeStop.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - All persons in the Area are frozen in time - except the caster. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// - -// Place the following variable on an area to disable timestop in that area. -// NAME : TIMESTOP_DISABLED TYPE : Int VALUE : 1 - -// If set to zero, the duration will default to 1 + 1d4 rounds. Otherwise, the -// duration will be the number of seconds the variable is changed to. -const int TIME_STOP_OVERRIDE_DURATION = 13; -// ex. const int TIME_STOP_OVERRIDE_DURATION = 9; Timestop lasts 9 seconds. - -// Number of seconds before Timestop can be recast after being cast. Countdown -//messages are sent based on this time. Set to 0.0 if you dont want there to -//be any cooldown -const float TIME_STOP_COOLDOWN_TIME = 0.0; - -//If set to 1, Timestop will not be usable\ -const int TIME_STOP_DISABLE = 0; - -#include "x2_inc_spellhook" - -int DetermineDuration() -{ - int nDuration = 1 + d4(1); - float fDuration = RoundsToSeconds(nDuration); - int nSeconds = FloatToInt(fDuration); - if (TIME_STOP_OVERRIDE_DURATION != 0) nSeconds = TIME_STOP_OVERRIDE_DURATION; - return nSeconds; -} - -void TimeStopDelay(object oCaster) -{ - float Delay1 = TIME_STOP_COOLDOWN_TIME * 0.25; - string Message1 = IntToString(FloatToInt(Delay1)); - float Delay2 = TIME_STOP_COOLDOWN_TIME * 0.50; - string Message2 = IntToString(FloatToInt(Delay2)); - float Delay3 = TIME_STOP_COOLDOWN_TIME * 0.75; - string Message3 = IntToString(FloatToInt(Delay3)); - SetLocalInt(oCaster, "TIMESTOP_DELAY", 1); - DelayCommand(Delay1, FloatingTextStringOnCreature("Time Stop Recastable In " + Message3 + " seconds", oCaster, FALSE)); - DelayCommand(Delay2, FloatingTextStringOnCreature("Time Stop Recastable In " + Message2 + " seconds", oCaster, FALSE)); - DelayCommand(Delay3, FloatingTextStringOnCreature("Time Stop Recastable In " + Message1 + " seconds", oCaster, FALSE)); - DelayCommand(TIME_STOP_COOLDOWN_TIME, FloatingTextStringOnCreature("Time Stop Ready", oCaster, FALSE)); - DelayCommand(TIME_STOP_COOLDOWN_TIME, DeleteLocalInt(oCaster, "TIMESTOP_DELAY")); -} -void Timestop(object oCaster) -{ - object oArea = GetArea(oCaster); - - effect eParalyze = EffectCutsceneParalyze(); - int nDuration = DetermineDuration(); - float fDuration = IntToFloat(nDuration); - object oTarget = GetFirstObjectInArea(oArea); - - while (GetIsObjectValid(oTarget)) { - if (GetIsPC(oTarget) == TRUE || GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) { - if (GetIsDM(oTarget) == FALSE) { - if (oTarget != oCaster) { - FloatingTextStringOnCreature("Time Stopped", oTarget, FALSE); - AssignCommand(oTarget, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eParalyze, oTarget, fDuration)); } } } - - oTarget = GetNextObjectInArea(oArea); } -} - -void TimestopCheck(object oCaster, int nDuration) -{ - if (nDuration == 0) return; - - nDuration = nDuration - 1; - float fDuration = IntToFloat(nDuration); - object oArea = GetArea(oCaster); - location lCaster = GetLocation(oCaster); - - effect eParalyze = EffectCutsceneParalyze(); - object oTarget = GetFirstObjectInArea(oArea); - - while (GetIsObjectValid(oTarget)) { - if (GetIsPC(oTarget) == TRUE || GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) { - if (GetIsDM(oTarget) == FALSE) { - if (oTarget != oCaster) { - - effect eEffect = GetFirstEffect(oTarget); - while (GetIsEffectValid(eEffect)) { - if (GetEffectType(eEffect) == EFFECT_TYPE_CUTSCENE_PARALYZE) { - SetLocalInt(oTarget, "TIME_STOPPED", 1); } - eEffect = GetNextEffect(oTarget); } - - if (GetLocalInt(oTarget, "TIME_STOPPED") == 0) { - FloatingTextStringOnCreature("Time Stopped", oTarget, FALSE); - AssignCommand(oTarget, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eParalyze, oTarget, fDuration)); } - - DeleteLocalInt(oTarget, "TIME_STOPPED"); } } } - - oTarget = GetNextObjectInArea(oArea); } - - DelayCommand(1.0, TimestopCheck(oCaster, nDuration)); -} - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - string sName = GetName(OBJECT_SELF); - if (TIME_STOP_DISABLE == 1) { - FloatingTextStringOnCreature("Timestop is disabled on this server", OBJECT_SELF, FALSE); - return; } - - - if (GetLocalInt(GetArea(OBJECT_SELF), "TIMESTOP_DISABLED") == 1 && GetName(OBJECT_SELF) != "Archmage Jezebeth") { - FloatingTextStringOnCreature("Time Stop is not permitted in this area", OBJECT_SELF, FALSE); - return; } - - if (GetLocalInt(OBJECT_SELF, "TIMESTOP_DELAY") == 1) { - FloatingTextStringOnCreature("Timestop is not castable yet", OBJECT_SELF, FALSE); - return; } - - if (TIME_STOP_COOLDOWN_TIME != 0.0) { - string Message = IntToString(FloatToInt(TIME_STOP_COOLDOWN_TIME)); - FloatingTextStringOnCreature("Time Stop Recastable In " + Message + " seconds", OBJECT_SELF, FALSE); - DelayCommand(0.6, TimeStopDelay(OBJECT_SELF)); } - - //Declare major variables - location lTarget = GetSpellTargetLocation(); - effect eVis = EffectVisualEffect(VFX_FNF_TIME_STOP); - int nDuration = DetermineDuration(); - - //Fire cast spell at event for the specified target - SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_TIME_STOP, FALSE)); - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lTarget); - Timestop(OBJECT_SELF); - DelayCommand(1.0, TimestopCheck(OBJECT_SELF, nDuration)); - -} diff --git a/_removed files/nw_s0_timestop1.nss b/_removed files/nw_s0_timestop1.nss deleted file mode 100644 index 13a7119f..00000000 --- a/_removed files/nw_s0_timestop1.nss +++ /dev/null @@ -1,56 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Time Stop -//:: NW_S0_TimeStop.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - All persons in the Area are frozen in time - except the caster. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// - -/*This is a modified version of kaltors PW friendly time stop script -It has been modified to do several new functions - ---It not will not dominate summoned units, to prevent them from becomine masterless ---It follows standard 9.0 second timestop with a .75 delay ---It applies a small visual affect to all units to show a timestop in effect ---It applies a knockdown effect to summoned units to prevent them doing anything(no summoned unit has - immune to knockdown to my knowledge ---it applies a Immobilize effect to prevent units from moving (an occasional bug with big PW's on high CPU load). -*/ - -void main() -{ - object oArea = GetArea(OBJECT_SELF); - location lLocation = GetLocation(OBJECT_SELF); - object oTG = GetFirstObjectInArea(oArea); - - int nRoll = 2 + d4(); - int bonus = ( (GetCasterLevel(OBJECT_SELF)-20) / 10 ); - if(bonus < 1 || bonus >40) - { bonus = 0; } - - SendMessageToPC(OBJECT_SELF, "Time stopped for " + IntToString(nRoll+bonus) + " rounds."); - - while (oTG != OBJECT_INVALID) - { - if(GetObjectType(oTG) == OBJECT_TYPE_CREATURE && oTG != OBJECT_SELF){ - if(!GetIsObjectValid(GetMaster(oTG))){ - DelayCommand(0.35f, AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectCutsceneDominated(), oTG, (RoundsToSeconds(nRoll+bonus) + 2.0)))); - } - else{ - DelayCommand(0.35f, AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(), oTG, (RoundsToSeconds(nRoll+bonus) + 2.0)))); - } - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_BLUR), oTG, 3.75f); - DelayCommand(0.35f, AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectCutsceneImmobilize(), oTG, (RoundsToSeconds(nRoll+bonus) + 2.0)))); - } - oTG = GetNextObjectInArea(oArea); - } - SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_TIME_STOP, FALSE)); - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_TIME_STOP), lLocation); -} diff --git a/_removed files/nw_s0_timestop3.nss b/_removed files/nw_s0_timestop3.nss deleted file mode 100644 index 6af4d98e..00000000 --- a/_removed files/nw_s0_timestop3.nss +++ /dev/null @@ -1,76 +0,0 @@ -// Function to get creature(s) within radius and apply the alternate TimeStop - -int TestScrollUsage() -{ - int n = GetLevelByClass(CLASS_TYPE_BARD) + - GetLevelByClass(CLASS_TYPE_SORCERER) + - GetLevelByClass(CLASS_TYPE_WIZARD) + - GetLevelByClass(CLASS_TYPE_ROGUE); - return Random(15) < n; -} -// Begin Main Function -void main() - { - int fDur = 12+ d6(); - float dur = IntToFloat(fDur); - - if (!TestScrollUsage() && !GetIsDM(OBJECT_SELF) && GetRacialType(OBJECT_SELF) != RACIAL_TYPE_DRAGON) { - SendMessageToPC(OBJECT_SELF, "Casting from item failed"); - return; - } - int nRoll; - int nRoll2 = d4(); - if (nRoll2 == 1){nRoll = 2;} - if (nRoll2 == 2 || nRoll2 == 3){nRoll = 3;} - if (nRoll2 == 4){nRoll = 4;} - - object dragon = GetNearestCreature(CREATURE_TYPE_RACIAL_TYPE, RACIAL_TYPE_DRAGON); - object area = GetArea(dragon); - - string pc = GetPCPlayerName(OBJECT_SELF); - - object area2 = GetArea(OBJECT_SELF); - string busted = GetName(area2); - if (GetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON){ - area = GetArea(GetWaypointByTag("sage")); - fDur = 18+ d6();} - if (dragon != OBJECT_INVALID && area == area2){ - SendMessageToPC(OBJECT_SELF, "There is a disturbance in the time stream, and you cannot cast Time Stop."); - return; - } - - - if (GetLocalInt(GetArea(OBJECT_SELF), "streamed")==2) { - SendMessageToPC(OBJECT_SELF, "Time is already stopped"); - return; - } - - DelayCommand(1.0, SetLocalInt(GetArea(OBJECT_SELF), "streamed", 2)); - DelayCommand(dur, DeleteLocalInt(OBJECT_SELF, "streamed")); - //Signal event to start the TimeStop - SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_TIME_STOP, FALSE)); - // Begin custom TimeStop - SendMessageToAllDMs("Timestop cast by " + pc + " in " + busted); - -float fDist = 200.0; - object oNearestC; // Define nearest creature - // Begin loop to find all creatures within the fDist meter radius - oNearestC = GetFirstObjectInShape(SHAPE_SPHERE, fDist, GetSpellTargetLocation(), FALSE, OBJECT_TYPE_CREATURE); - while(GetIsObjectValid(oNearestC)) - { - - - - // This makes sure the Caster is not Timestopped and skips any PC's/NPC's associates - if (oNearestC != OBJECT_SELF) { - AssignCommand(oNearestC, ClearAllActions()); - DelayCommand(0.01, SetCommandable( FALSE, oNearestC )); - DelayCommand(dur, SetCommandable( FALSE, oNearestC )); - - } - // Get the next creature in the fDist meter radius and continue loop - oNearestC = GetNextObjectInShape(SHAPE_SPHERE, fDist, GetSpellTargetLocation(), FALSE, OBJECT_TYPE_CREATURE); - } - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_TIME_STOP), GetSpellTargetLocation()); -} diff --git a/_removed files/nw_s0_vamptch.nss b/_removed files/nw_s0_vamptch.nss deleted file mode 100644 index d81a1e42..00000000 --- a/_removed files/nw_s0_vamptch.nss +++ /dev/null @@ -1,125 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Vampiric Touch -//:: NW_S0_VampTch -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - drain 1d6 - HP per 2 caster levels from the target. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Oct 29, 2001 -//::////////////////////////////////////////////// - -/* -bugfix by Kovi 2002.07.22 -- did double damage with maximize -- temporary hp was stacked -2002.08.25 -- got temporary hp some immune creatures (Negative Energy Protection), lost -temporary hp against other resistant (SR, Shadow Shield) - -Georg 2003-09-11 -- Put in melee touch attack check, as the fixed attack bonus is now calculated correctly - -*/ - -#include "x0_I0_SPELLS" - - -#include "x2_inc_spellhook" - -void main() -{ - - //-------------------------------------------------------------------------- - /* Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - */ - //-------------------------------------------------------------------------- - - if (!X2PreSpellCastCode()) - { - return; - } - //-------------------------------------------------------------------------- - // End of Spell Cast Hook - //-------------------------------------------------------------------------- - - - object oTarget = GetSpellTargetObject(); - int nMetaMagic = GetMetaMagicFeat(); - - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDDice = nCasterLevel /2; - if ((nDDice) == 0) - { - nDDice = 1; - } - //-------------------------------------------------------------------------- - // GZ: Cap according to the book - //-------------------------------------------------------------------------- - else if (nDDice>20) - { - nDDice = 20; - } - - int nDamage = d6(nDDice); - - //-------------------------------------------------------------------------- - //Enter Metamagic conditions - //-------------------------------------------------------------------------- - - nDamage = MaximizeOrEmpower(6,nDDice,nMetaMagic); - int nDuration = nCasterLevel/2; - - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration *= 2; - } - - //-------------------------------------------------------------------------- - //Limit damage to max hp + 10 - //-------------------------------------------------------------------------- - int nMax = GetCurrentHitPoints(oTarget) + 20; - if(nMax < nDamage) - { - nDamage = nMax; - } - - effect eHeal = EffectTemporaryHitpoints(nDamage); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - effect eLink = EffectLinkEffects(eHeal, eDur); - - effect eDamage = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE); - effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - effect eVisHeal = EffectVisualEffect(VFX_IMP_HEALING_M); - if(GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) - { - if(!GetIsReactionTypeFriendly(oTarget) && - GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD && - GetRacialType(oTarget) != RACIAL_TYPE_CONSTRUCT && - !GetHasSpellEffect(SPELL_NEGATIVE_ENERGY_PROTECTION, oTarget)) - { - - - SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_VAMPIRIC_TOUCH, FALSE)); - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_VAMPIRIC_TOUCH, TRUE)); - // GZ: * GetSpellCastItem() == OBJECT_INVALID is used to prevent feedback from showing up when used as OnHitCastSpell property - if (TouchAttackMelee(oTarget,GetSpellCastItem() == OBJECT_INVALID)>0) - { - if(MyResistSpell(OBJECT_SELF, oTarget) == 0) - { - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisHeal, OBJECT_SELF); - RemoveTempHitPoints(); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, HoursToSeconds(nDuration)); - } - } - } - } -} diff --git a/_removed files/nw_s0_wallfirea.nss b/_removed files/nw_s0_wallfirea.nss deleted file mode 100644 index 03b09932..00000000 --- a/_removed files/nw_s0_wallfirea.nss +++ /dev/null @@ -1,60 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Wall of Fire: On Enter -//:: NW_S0_WallFireA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Person within the AoE take 4d6 fire damage - per round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - effect eDam; - object oTarget; - - //Declare and assign personal impact visual effect. - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - //Capture the first target object in the shape. - oTarget = GetEnteringObject(); - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_WALL_OF_FIRE)); - //Make SR check, and appropriate saving throw(s). - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget)) - { - //Roll damage. - nDamage = d6(4) + 16; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 40;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE); - if(nDamage > 0) - { - // Apply effects to the currently selected target. - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - } - } - } -} diff --git a/_removed files/nw_s0_wallfirec.nss b/_removed files/nw_s0_wallfirec.nss deleted file mode 100644 index fcf7c778..00000000 --- a/_removed files/nw_s0_wallfirec.nss +++ /dev/null @@ -1,78 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Wall of Fire: Heartbeat -//:: NW_S0_WallFireA.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Person within the AoE take 4d6 fire damage - per round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 17, 2001 -//::////////////////////////////////////////////// - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - effect eDam; - object oTarget; - - //Declare and assign personal impact visual effect. - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - //Capture the first target object in the shape. - - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // When the caster is no longer there, all functions calling - // GetAreaOfEffectCreator will fail. Its better to remove the barrier then - //-------------------------------------------------------------------------- - if (!GetIsObjectValid(GetAreaOfEffectCreator())) - { - DestroyObject(OBJECT_SELF); - return; - } - - oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Declare the spell shape, size and the location. - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_WALL_OF_FIRE)); - //Make SR check, and appropriate saving throw(s). - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget)) - { - //Roll damage. - nDamage = d6(4) + 16; - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 40;//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); //Damage/Healing is +50% - } - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_FIRE); - if(nDamage > 0) - { - // Apply effects to the currently selected target. - eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oTarget, 1.0); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} diff --git a/_removed files/nwnx_admin_t.nss b/_removed files/nwnx_admin_t.nss deleted file mode 100644 index 113ce5ef..00000000 --- a/_removed files/nwnx_admin_t.nss +++ /dev/null @@ -1,26 +0,0 @@ -#include "nwnx_admin" -#include "nwnx_tests" - -void main() -{ - WriteTimestampedLogEntry("NWNX_Administration unit test begin.."); - - string sString = "FuzzyKittens"; - - NWNX_Administration_SetPlayerPassword(sString); - NWNX_Tests_Report("NWNX_Administration", "{Set/Get}PlayerPassword", NWNX_Administration_GetPlayerPassword() == sString); - - NWNX_Administration_ClearPlayerPassword(); - NWNX_Tests_Report("NWNX_Administration", "ClearPlayerPassword", NWNX_Administration_GetPlayerPassword() == ""); - - NWNX_Administration_SetDMPassword(sString); - NWNX_Tests_Report("NWNX_Administration", "{Set/Get}DMPassword", NWNX_Administration_GetDMPassword() == sString); - - NWNX_Administration_SetPlayOption(NWNX_ADMINISTRATION_OPTION_EXAMINE_EFFECTS, TRUE); - NWNX_Tests_Report("NWNX_Administration", "{Set/Get}PlayOption", NWNX_Administration_GetPlayOption(NWNX_ADMINISTRATION_OPTION_EXAMINE_EFFECTS)); - - NWNX_Administration_SetDebugValue(NWNX_ADMINISTRATION_DEBUG_MOVEMENT_SPEED, TRUE); - NWNX_Tests_Report("NWNX_Administration", "{Set/Get}DebugValue", NWNX_Administration_GetDebugValue(NWNX_ADMINISTRATION_DEBUG_MOVEMENT_SPEED)); - - WriteTimestampedLogEntry("NWNX_Administration unit test end."); -} diff --git a/_removed files/nwnx_area_t.nss b/_removed files/nwnx_area_t.nss deleted file mode 100644 index 0cef05af..00000000 --- a/_removed files/nwnx_area_t.nss +++ /dev/null @@ -1,73 +0,0 @@ -#include "nwnx_area" -#include "nwnx_tests" - -void main() -{ - WriteTimestampedLogEntry("NWNX_Area unit test begin.."); - - object oArea = GetAreaFromLocation(GetStartingLocation()); - - if (GetIsObjectValid(oArea)) - { - WriteTimestampedLogEntry("Using starting area: " + GetName(oArea)); - - object oPC = GetFirstPC(); - - if (GetIsObjectValid(oPC) && GetArea(oPC) == oArea) - { - NWNX_Tests_Report("NWNX_Area", "GetNumberOfPlayersInArea", NWNX_Area_GetNumberOfPlayersInArea(oArea) == 1); - } - else - { - WriteTimestampedLogEntry("No player in area, skipping 'GetNumberOfPlayersInArea' test"); - } - - NWNX_Area_SetPVPSetting(oArea, NWNX_AREA_PVP_SETTING_PARTY_PVP); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}PVPSetting", NWNX_Area_GetPVPSetting(oArea) == NWNX_AREA_PVP_SETTING_PARTY_PVP); - - NWNX_Area_SetAreaSpotModifier(oArea, 25); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}AreaSpotModifier", NWNX_Area_GetAreaSpotModifier(oArea) == 25); - - NWNX_Area_SetAreaListenModifier(oArea, 25); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}AreaListenModifier", NWNX_Area_GetAreaListenModifier(oArea) == 25); - - NWNX_Area_SetNoRestingAllowed(oArea, TRUE); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}NoRestingAllowed", NWNX_Area_GetNoRestingAllowed(oArea)); - - NWNX_Area_SetWindPower(oArea, 2); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}WindPower", NWNX_Area_GetWindPower(oArea) == 2); - - NWNX_Area_SetWeatherChance(oArea, NWNX_AREA_WEATHER_CHANCE_LIGHTNING, 50); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}WeatherChance", NWNX_Area_GetWeatherChance(oArea, NWNX_AREA_WEATHER_CHANCE_LIGHTNING) == 50); - - NWNX_Area_SetFogClipDistance(oArea, 12.5f); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}FogClipDistance", NWNX_Area_GetFogClipDistance(oArea) == 12.5f); - - NWNX_Area_SetShadowOpacity(oArea, 75); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}ShadowOpacity", NWNX_Area_GetShadowOpacity(oArea) == 75); - - NWNX_Area_SetDayNightCycle(oArea, NWNX_AREA_DAYNIGHTCYCLE_ALWAYS_DARK); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}DayNightCycle", NWNX_Area_GetDayNightCycle(oArea) == NWNX_AREA_DAYNIGHTCYCLE_ALWAYS_DARK); - - NWNX_Area_SetSunMoonColors(oArea, NWNX_AREA_COLOR_TYPE_MOON_DIFFUSE, FOG_COLOR_GREEN); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}SunMoonColors", NWNX_Area_GetSunMoonColors(oArea, NWNX_AREA_COLOR_TYPE_MOON_DIFFUSE) == FOG_COLOR_GREEN); - - vector vLoc = GetPositionFromLocation(GetStartingLocation()); - object oWP = CreateObject(OBJECT_TYPE_WAYPOINT, "nw_waypoint001", GetStartingLocation()); - object oAT = NWNX_Area_CreateTransition(oArea, oWP, vLoc.x, vLoc.y, vLoc.z); - NWNX_Tests_Report("NWNX_Area", "CreateTransition", oAT != OBJECT_INVALID); - - string sResult = NWNX_Area_GetTileModelResRef(oArea, vLoc.x, vLoc.y); - NWNX_Tests_Report("NWNX_Area", "GetTileModelResRef", sResult != ""); - - NWNX_Area_SetTileAnimationLoop(oArea, vLoc.x, vLoc.y, 1, FALSE); - NWNX_Tests_Report("NWNX_Area", "{Set/Get}TileAnimationLoop", NWNX_Area_GetTileAnimationLoop(oArea, vLoc.x, vLoc.y, 1) == FALSE); - } - else - { - WriteTimestampedLogEntry("No valid area found, aborting."); - } - - - WriteTimestampedLogEntry("NWNX_Area unit test end."); -} diff --git a/_removed files/nwnx_chat_t.nss b/_removed files/nwnx_chat_t.nss deleted file mode 100644 index 03c35cea..00000000 --- a/_removed files/nwnx_chat_t.nss +++ /dev/null @@ -1,20 +0,0 @@ -#include "nwnx_chat" -#include "nwnx_tests" - -void main() -{ - WriteTimestampedLogEntry("NWNX_Chat unit test begin.."); - - float fDefaultTalk = NWNX_Chat_GetChatHearingDistance(); - NWNX_Chat_SetChatHearingDistance(fDefaultTalk + 10.0f); - - NWNX_Tests_Report("NWNX_Chat", "SetChatHearingDistance Default", fDefaultTalk == NWNX_Chat_GetChatHearingDistance() - 10.0f); - - object oPC = GetFirstPC(); - float fPCWhisper = NWNX_Chat_GetChatHearingDistance(oPC, NWNX_CHAT_CHANNEL_PLAYER_WHISPER); - NWNX_Chat_SetChatHearingDistance(fPCWhisper + 2.0f, oPC, NWNX_CHAT_CHANNEL_PLAYER_WHISPER); - - NWNX_Tests_Report("NWNX_Chat", "SetChatHearingDistance Per PC", fPCWhisper == NWNX_Chat_GetChatHearingDistance(oPC, NWNX_CHAT_CHANNEL_PLAYER_WHISPER) - 2.0f); - - WriteTimestampedLogEntry("NWNX_Chat unit test end."); -} diff --git a/_removed files/nwnx_creature_t.nss b/_removed files/nwnx_creature_t.nss deleted file mode 100644 index ee192a66..00000000 --- a/_removed files/nwnx_creature_t.nss +++ /dev/null @@ -1,256 +0,0 @@ -#include "nwnx_creature" -#include "nwnx_tests" - -const int FEAT_BARBARIAN_RAGE_2 = 326; - -void main() -{ - WriteTimestampedLogEntry("NWNX_Creature unit test begin.."); - - object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); - if (!GetIsObjectValid(oCreature)) - { - WriteTimestampedLogEntry("NWNX_Creature test: Failed to create creature"); - return; - } - - - // - // FEAT related functions - // - - int nFeatCountLvl1 = NWNX_Creature_GetFeatCountByLevel(oCreature, 1); - int nFeatCountTotal = NWNX_Creature_GetFeatCount(oCreature); - - NWNX_Tests_Report("NWNX_Creature", "GetKnowsFeat", NWNX_Creature_GetKnowsFeat(oCreature, FEAT_PLAYER_TOOL_01) == 0); - - NWNX_Creature_AddFeat(oCreature, FEAT_PLAYER_TOOL_01); - NWNX_Tests_Report("NWNX_Creature", "AddFeat", NWNX_Creature_GetKnowsFeat(oCreature, FEAT_PLAYER_TOOL_01) == 1); - - NWNX_Tests_Report("NWNX_Creature", "GetFeatCountByLevel", NWNX_Creature_GetFeatCountByLevel(oCreature, 1) == nFeatCountLvl1); - NWNX_Tests_Report("NWNX_Creature", "GetFeatCount", NWNX_Creature_GetFeatCount(oCreature) == (nFeatCountTotal+1)); - - NWNX_Tests_Report("NWNX_Creature", "GetFeatByIndex", NWNX_Creature_GetFeatByIndex(oCreature, nFeatCountTotal) == FEAT_PLAYER_TOOL_01); - - NWNX_Creature_RemoveFeat(oCreature, FEAT_PLAYER_TOOL_01); - NWNX_Tests_Report("NWNX_Creature", "RemoveFeat", NWNX_Creature_GetKnowsFeat(oCreature, FEAT_PLAYER_TOOL_01) == 0); - NWNX_Tests_Report("NWNX_Creature", "GetFeatCount", NWNX_Creature_GetFeatCount(oCreature) == nFeatCountTotal); - NWNX_Tests_Report("NWNX_Creature", "GetFeatByIndex", NWNX_Creature_GetFeatByIndex(oCreature, nFeatCountTotal) == -1); - - NWNX_Creature_AddFeatByLevel(oCreature, FEAT_PLAYER_TOOL_01, 1); - NWNX_Tests_Report("NWNX_Creature", "AddFeatByLevel", NWNX_Creature_GetKnowsFeat(oCreature, FEAT_PLAYER_TOOL_01) == 1); - NWNX_Tests_Report("NWNX_Creature", "GetFeatCountByLevel", NWNX_Creature_GetFeatCountByLevel(oCreature, 1) > nFeatCountLvl1); - NWNX_Tests_Report("NWNX_Creature", "GetFeatCount", NWNX_Creature_GetFeatCount(oCreature) == (nFeatCountTotal+1)); - NWNX_Tests_Report("NWNX_Creature", "GetFeatByIndex", NWNX_Creature_GetFeatByIndex(oCreature, nFeatCountTotal) == FEAT_PLAYER_TOOL_01); - - NWNX_Tests_Report("NWNX_Creature", "GetFeatByLevel", NWNX_Creature_GetFeatByLevel(oCreature, 1, nFeatCountLvl1) == FEAT_PLAYER_TOOL_01); - NWNX_Tests_Report("NWNX_Creature", "GetFeatGrantLevel", NWNX_Creature_GetFeatGrantLevel(oCreature, FEAT_PLAYER_TOOL_01) == 1); - - NWNX_Creature_AddFeat(oCreature, FEAT_BARBARIAN_RAGE); - NWNX_Tests_Report("NWNX_Creature", "GetHighestLevelOfFeat", NWNX_Creature_GetHighestLevelOfFeat(oCreature, FEAT_BARBARIAN_RAGE) == FEAT_BARBARIAN_RAGE); - NWNX_Creature_AddFeat(oCreature, FEAT_BARBARIAN_RAGE_2); - NWNX_Tests_Report("NWNX_Creature", "GetHighestLevelOfFeat", NWNX_Creature_GetHighestLevelOfFeat(oCreature, FEAT_BARBARIAN_RAGE) == FEAT_BARBARIAN_RAGE_2); - - NWNX_Creature_AddFeat(oCreature, FEAT_STUNNING_FIST); - NWNX_Tests_Report("NWNX_Creature", "GetFeatRemainingUses", NWNX_Creature_GetFeatRemainingUses(oCreature, FEAT_STUNNING_FIST) == 1); - NWNX_Creature_SetFeatRemainingUses(oCreature, FEAT_STUNNING_FIST, 0); - NWNX_Tests_Report("NWNX_Creature", "GetFeatRemainingUses", NWNX_Creature_GetFeatRemainingUses(oCreature, FEAT_STUNNING_FIST) == 0); - - int uses = NWNX_Creature_GetFeatTotalUses(oCreature, FEAT_STUNNING_FIST); - WriteTimestampedLogEntry("Creature has " + IntToString(uses) + " total uses of STUNNING FIST left"); - - // - // SPECIAL ABILITY functions - // - struct NWNX_Creature_SpecialAbility ability; - ability.id = 1; ability.ready = 1; ability.level = 1; - - int nAbilityCount = NWNX_Creature_GetSpecialAbilityCount(oCreature); - NWNX_Creature_AddSpecialAbility(oCreature, ability); - NWNX_Tests_Report("NWNX_Creature", "AddSpecialAbility", NWNX_Creature_GetSpecialAbilityCount(oCreature) > nAbilityCount); - - ability = NWNX_Creature_GetSpecialAbility(oCreature, nAbilityCount); - NWNX_Tests_Report("NWNX_Creature", "GetSpecialAbility", ability.id == 1); - - NWNX_Creature_RemoveSpecialAbility(oCreature, nAbilityCount); - NWNX_Tests_Report("NWNX_Creature", "RemoveSpecialAbility", NWNX_Creature_GetSpecialAbilityCount(oCreature) == nAbilityCount); - - // - // SPELL functions - // - // TODO: Need a wizard. - - // - // MISC - // - - int nBaseAC = NWNX_Creature_GetBaseAC(oCreature); - NWNX_Tests_Report("NWNX_Creature", "GetBaseAC", nBaseAC >= 0); - - NWNX_Creature_SetBaseAC(oCreature, nBaseAC + 5); - NWNX_Tests_Report("NWNX_Creature", "SetBaseAC", NWNX_Creature_GetBaseAC(oCreature) > nBaseAC); - - - int nOldStr = GetAbilityScore(oCreature, ABILITY_STRENGTH, TRUE); - NWNX_Creature_SetRawAbilityScore(oCreature, ABILITY_STRENGTH, 25); - NWNX_Tests_Report("NWNX_Creature", "SetAbilityScore", nOldStr != GetAbilityScore(oCreature, ABILITY_STRENGTH, TRUE)); - NWNX_Tests_Report("NWNX_Creature", "SetAbilityScore", 25 == GetAbilityScore(oCreature, ABILITY_STRENGTH, TRUE)); - - ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_BADGER), oCreature); - NWNX_Tests_Report("NWNX_Creature", "GetPrePolymorphAbilityScore", 25 == NWNX_Creature_GetPrePolymorphAbilityScore(oCreature, ABILITY_STRENGTH)); - RemoveEffect(oCreature, GetFirstEffect(oCreature)); - - NWNX_Tests_Report("NWNX_Creature", "GetMovementRateFactor", 1.0 == NWNX_Creature_GetMovementRateFactor(oCreature)); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectMovementSpeedIncrease(25), oCreature); - NWNX_Tests_Report("NWNX_Creature", "GetMovementRateFactor", 1.25 == NWNX_Creature_GetMovementRateFactor(oCreature)); - NWNX_Creature_SetMovementRateFactor(oCreature, 1.5); - NWNX_Tests_Report("NWNX_Creature", "SetMovementRateFactor", 1.5 == NWNX_Creature_GetMovementRateFactor(oCreature)); - - int nLvl1HP = NWNX_Creature_GetMaxHitPointsByLevel(oCreature, 1); - NWNX_Tests_Report("NWNX_Creature", "GetMaxHitPointsByLevel", nLvl1HP >= 0); - - NWNX_Creature_SetMaxHitPointsByLevel(oCreature, 1, nLvl1HP + 5); - NWNX_Tests_Report("NWNX_Creature", "SetMaxHitPointsByLevel", NWNX_Creature_GetMaxHitPointsByLevel(oCreature, 1) > nLvl1HP); - - - int nSkillRanks = GetSkillRank(SKILL_LISTEN, oCreature, TRUE); - NWNX_Creature_SetSkillRank(oCreature, SKILL_LISTEN, nSkillRanks + 5); - NWNX_Tests_Report("NWNX_Creature", "SetSkillRank", GetSkillRank(SKILL_LISTEN, oCreature, TRUE) > nSkillRanks); - - int nBAB = GetBaseAttackBonus(oCreature); - NWNX_Creature_SetBaseAttackBonus(oCreature, 6); - NWNX_Tests_Report("NWNX_Creature", "SetBaseAttackBonus", GetBaseAttackBonus(oCreature) == 6); - SetBaseAttackBonus(4, oCreature); - NWNX_Tests_Report("NWNX_Creature", "GetAttacksPerRound - base", NWNX_Creature_GetAttacksPerRound(oCreature, TRUE) == 2); - NWNX_Tests_Report("NWNX_Creature", "GetAttacksPerRound - override", NWNX_Creature_GetAttacksPerRound(oCreature, FALSE) == 4); - RestoreBaseAttackBonus(oCreature); - NWNX_Tests_Report("NWNX_Creature", "GetAttacksPerRound - base", NWNX_Creature_GetAttacksPerRound(oCreature, TRUE) == 2); - NWNX_Tests_Report("NWNX_Creature", "GetAttacksPerRound - override", NWNX_Creature_GetAttacksPerRound(oCreature, FALSE) == 2); - - int nGender = GetGender(oCreature); - NWNX_Creature_SetGender(oCreature, !nGender); - NWNX_Tests_Report("NWNX_Creature", "SetGender", GetGender(oCreature) != nGender); - - int nSize = GetCreatureSize(oCreature); - NWNX_Creature_SetSize(oCreature, nSize + 1); - NWNX_Tests_Report("NWNX_Creature", "SetSize", GetCreatureSize(oCreature) != nSize); - - int nSkillPointsRemaining = NWNX_Creature_GetSkillPointsRemaining(oCreature); - NWNX_Tests_Report("NWNX_Creature", "GetSkillPointsRemaining", nSkillPointsRemaining >= 0); - NWNX_Creature_SetSkillPointsRemaining(oCreature, nSkillPointsRemaining+1); - NWNX_Tests_Report("NWNX_Creature", "SetSkillPointsRemaining", NWNX_Creature_GetSkillPointsRemaining(oCreature) == nSkillPointsRemaining+1); - - int nGold = GetGold(oCreature); - NWNX_Creature_SetGold(oCreature, nGold + 100); - NWNX_Tests_Report("NWNX_Creature", "SetGold", GetGold(oCreature) == (nGold+100)); - - int nSave = NWNX_Creature_GetBaseSavingThrow(oCreature, SAVING_THROW_WILL); - NWNX_Creature_SetBaseSavingThrow(oCreature, SAVING_THROW_WILL, nSave + 10); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etBaseSavingThrow", NWNX_Creature_GetBaseSavingThrow(oCreature, SAVING_THROW_WILL) == nSave+10); - - - int cls = NWNX_Creature_GetClassByLevel(oCreature, 1); - NWNX_Creature_LevelUp(oCreature, cls, 10); - NWNX_Tests_Report("NWNX_Creature", "LevelUp", GetLevelByPosition(1, oCreature) == 11); - NWNX_Creature_LevelDown(oCreature, 10); - NWNX_Tests_Report("NWNX_Creature", "LevelDown", GetLevelByPosition(1, oCreature) == 1); - NWNX_Creature_SetClassByPosition(oCreature, 0, CLASS_TYPE_ROGUE); - NWNX_Creature_LevelUp(oCreature, CLASS_TYPE_ROGUE, 20); - NWNX_Creature_LevelUp(oCreature, CLASS_TYPE_ROGUE, 20); - NWNX_Creature_LevelUp(oCreature, CLASS_TYPE_ROGUE, 20); - NWNX_Creature_LevelUp(oCreature, CLASS_TYPE_ROGUE, 20); - NWNX_Tests_Report("NWNX_Creature", "LevelUp+SetLevelByPosition", GetLevelByPosition(1, oCreature) == 60); - - NWNX_Creature_SetLevelByPosition(oCreature, 0, 1); // Ugh, game uses 1-based indexing here.. - NWNX_Tests_Report("NWNX_Creature", "SetLevelByPosition", GetLevelByPosition(1, oCreature) == 1); - - float fCR = GetChallengeRating(oCreature); - NWNX_Creature_SetChallengeRating(oCreature, fCR + 1.0); - NWNX_Tests_Report("NWNX_Creature", "SetChallengeRating", GetChallengeRating(oCreature) == (fCR + 1.0)); - - int iOldBonus = NWNX_Creature_GetTotalEffectBonus(oCreature, NWNX_CREATURE_BONUS_TYPE_ABILITY, OBJECT_INVALID, 0, 0, -1, -1, -1, ABILITY_STRENGTH); - effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH,1); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStr, oCreature, 2.0f); - int iNewBonus = NWNX_Creature_GetTotalEffectBonus(oCreature, NWNX_CREATURE_BONUS_TYPE_ABILITY, OBJECT_INVALID, 0, 0, -1, -1, -1, ABILITY_STRENGTH); - NWNX_Tests_Report("NWNX_Creature", "GetTotalEffectBonus", iOldBonus+1 == iNewBonus); - - int iSR = GetSpellResistance(oCreature); - NWNX_Creature_SetSpellResistance(oCreature, iSR + 10); - NWNX_Tests_Report("NWNX_Creature", "SetSpellResistance", GetSpellResistance(oCreature) == (iSR + 10)); - - NWNX_Creature_SetAnimalCompanionCreatureType(oCreature, ANIMAL_COMPANION_CREATURE_TYPE_PANTHER); - NWNX_Tests_Report("NWNX_Creature", "SetAnimalCompanionCreatureType", GetAnimalCompanionCreatureType(oCreature) == ANIMAL_COMPANION_CREATURE_TYPE_PANTHER); - - NWNX_Creature_SetFamiliarCreatureType(oCreature, FAMILIAR_CREATURE_TYPE_PSEUDO_DRAGON); - NWNX_Tests_Report("NWNX_Creature", "SetFamiliarCreatureType", GetFamiliarCreatureType(oCreature) == FAMILIAR_CREATURE_TYPE_PSEUDO_DRAGON); - - NWNX_Creature_SetAnimalCompanionName(oCreature, "Fuzzles"); - NWNX_Tests_Report("NWNX_Creature", "SetAnimalCompanionName", GetAnimalCompanionName(oCreature) == "Fuzzles"); - - NWNX_Creature_SetFamiliarName(oCreature, "Fuzzles"); - NWNX_Tests_Report("NWNX_Creature", "SetFamiliarName", GetFamiliarName(oCreature) == "Fuzzles"); - - int bDisarmable = NWNX_Creature_GetDisarmable(oCreature); - NWNX_Creature_SetDisarmable(oCreature, !bDisarmable); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etDisarmable", NWNX_Creature_GetDisarmable(oCreature) != bDisarmable); - - //Spawn a Wizard - oCreature = CreateObject(OBJECT_TYPE_CREATURE, "NW_ELFMAGE001", GetStartingLocation()); - if (!GetIsObjectValid(oCreature)) - { - WriteTimestampedLogEntry("NWNX_Creature test: Failed to create creature"); - return; - } - - //Test specialization functions on a class that has specialization - int nSchool = NWNX_Creature_GetSpecialization(oCreature, CLASS_TYPE_WIZARD); - NWNX_Creature_SetSpecialization(oCreature, CLASS_TYPE_WIZARD, (nSchool+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etSpecialization", NWNX_Creature_GetSpecialization(oCreature, CLASS_TYPE_WIZARD) == (nSchool+1)%5); - - //Test old functions for compatibility (deprecated) - nSchool = NWNX_Creature_GetWizardSpecialization(oCreature); - NWNX_Creature_SetWizardSpecialization(oCreature, (nSchool+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etWizardSpecialization", NWNX_Creature_GetWizardSpecialization(oCreature) == (nSchool+1)%5); - - //Test domain functions on a class that doesn't have domains - int nDomain = NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_WIZARD, 1); - NWNX_Tests_Report("NWNX_Creature", "GetDomain", NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_WIZARD, 1) == 0); - NWNX_Creature_SetDomain(oCreature, CLASS_TYPE_WIZARD, 1, (nDomain+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etDomain", NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_WIZARD, 1) == (nDomain+1)%5); - int nDomain2 = NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_WIZARD, 2); - NWNX_Tests_Report("NWNX_Creature", "GetDomain", NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_WIZARD, 2) == 0); - NWNX_Creature_SetDomain(oCreature, CLASS_TYPE_WIZARD, 2, (nDomain2+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etDomain", NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_WIZARD, 2) == (nDomain2+1)%5); - - //Spawn a cleric - oCreature = CreateObject(OBJECT_TYPE_CREATURE, "NW_BANDIT004", GetStartingLocation()); - if (!GetIsObjectValid(oCreature)) - { - WriteTimestampedLogEntry("NWNX_Creature test: Failed to create creature"); - return; - } - - //Test specialization functions on a class that doesn't have specialization - nSchool = NWNX_Creature_GetSpecialization(oCreature, CLASS_TYPE_CLERIC); - NWNX_Tests_Report("NWNX_Creature", "GetSpecialization", NWNX_Creature_GetSpecialization(oCreature, CLASS_TYPE_CLERIC) == 0); - NWNX_Creature_SetSpecialization(oCreature, CLASS_TYPE_CLERIC, (nSchool+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etSpecialization", NWNX_Creature_GetSpecialization(oCreature, CLASS_TYPE_CLERIC) == (nSchool+1)%5); - - //Test domain functions on a class that has domains - nDomain = NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_CLERIC, 1); - NWNX_Creature_SetDomain(oCreature, CLASS_TYPE_CLERIC, 1, (nDomain+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etDomain", NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_CLERIC, 1) == (nDomain+1)%5); - nDomain2 = NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_CLERIC, 2); - NWNX_Creature_SetDomain(oCreature, CLASS_TYPE_CLERIC, 2, (nDomain2+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etDomain", NWNX_Creature_GetDomain(oCreature, CLASS_TYPE_CLERIC, 2) == (nDomain2+1)%5); - - //Test old functions for compatibility (deprecated) - nDomain = NWNX_Creature_GetClericDomain(oCreature, 1); - NWNX_Creature_SetClericDomain(oCreature, 1, (nDomain+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etClericDomain", NWNX_Creature_GetClericDomain(oCreature, 1) == (nDomain+1)%5); - nDomain2 = NWNX_Creature_GetClericDomain(oCreature, 2); - NWNX_Creature_SetClericDomain(oCreature, 2, (nDomain2+1)%5); - NWNX_Tests_Report("NWNX_Creature", "{S,G}etClericDomain", NWNX_Creature_GetClericDomain(oCreature, 2) == (nDomain2+1)%5); - - WriteTimestampedLogEntry("NWNX_Creature unit test end."); -} diff --git a/_removed files/nwnx_dialog_t.nss b/_removed files/nwnx_dialog_t.nss deleted file mode 100644 index ff74404f..00000000 --- a/_removed files/nwnx_dialog_t.nss +++ /dev/null @@ -1,37 +0,0 @@ -#include "nwnx_dialog" - -void _report() -{ - string sMessage = "NWNX_Dialog debug:"; - int id = NWNX_Dialog_GetCurrentNodeID(); - sMessage = "\nNode ID = " + IntToString(id); - - int type = NWNX_Dialog_GetCurrentNodeType(); - sMessage += "\nCurrent node type = " + IntToString(type) + " ("; - switch (type) - { - case NWNX_DIALOG_NODE_TYPE_INVALID: sMessage += "INVALID)"; break; - case NWNX_DIALOG_NODE_TYPE_STARTING_NODE: sMessage += "STARTING_NODE)"; break; - case NWNX_DIALOG_NODE_TYPE_ENTRY_NODE: sMessage += "ENTRY_NODE)"; break; - case NWNX_DIALOG_NODE_TYPE_REPLY_NODE: sMessage += "REPLY_NODE)"; break; - } - - int scripttype = NWNX_Dialog_GetCurrentScriptType(); - sMessage += "\nScript type = " + IntToString(scripttype) + " ("; - switch (scripttype) - { - case NWNX_DIALOG_SCRIPT_TYPE_OTHER: sMessage += "OTHER)"; break; - case NWNX_DIALOG_SCRIPT_TYPE_STARTING_CONDITIONAL: sMessage += "STARTING_CONDITIONAL)"; break; - case NWNX_DIALOG_SCRIPT_TYPE_ACTION_TAKEN: sMessage += "ACTION_TAKEN)"; break; - } - - int index = NWNX_Dialog_GetCurrentNodeIndex(); - sMessage += "\nNode index = " + IntToString(index); - - string text = NWNX_Dialog_GetCurrentNodeText(); - sMessage += "\nText = '" + text + "'"; - - NWNX_Dialog_SetCurrentNodeText(text + " [ADDED]"); - - SendMessageToPC(GetFirstPC(), sMessage); -} diff --git a/_removed files/nwnx_dialog_t1.nss b/_removed files/nwnx_dialog_t1.nss deleted file mode 100644 index 11f93fd7..00000000 --- a/_removed files/nwnx_dialog_t1.nss +++ /dev/null @@ -1,7 +0,0 @@ -#include "nwnx_dialog_t" - -int StartingConditional() -{ - _report(); - return FALSE; -} diff --git a/_removed files/nwnx_dialog_t2.nss b/_removed files/nwnx_dialog_t2.nss deleted file mode 100644 index 7249a40f..00000000 --- a/_removed files/nwnx_dialog_t2.nss +++ /dev/null @@ -1,7 +0,0 @@ -#include "nwnx_dialog_t" - -int StartingConditional() -{ - _report(); - return TRUE; -} diff --git a/_removed files/nwnx_dialog_t3.nss b/_removed files/nwnx_dialog_t3.nss deleted file mode 100644 index fb2a52e8..00000000 --- a/_removed files/nwnx_dialog_t3.nss +++ /dev/null @@ -1,6 +0,0 @@ -#include "nwnx_dialog_t" - -void main() -{ - _report(); -} diff --git a/_removed files/nwnx_effect_t.nss b/_removed files/nwnx_effect_t.nss deleted file mode 100644 index 52431842..00000000 --- a/_removed files/nwnx_effect_t.nss +++ /dev/null @@ -1,80 +0,0 @@ -#include "nwnx_effect" -#include "nwnx_tests" - -void printeff(struct NWNX_EffectUnpacked n) -{ - string s = "Unpacked effect: \n"; - s += "nType = " + IntToString(n.nType) + "\n"; - s += "nSubType = " + IntToString(n.nSubType) + "\n"; - - s += "fDuration = " + FloatToString(n.fDuration) + "\n"; - s += "nExpiryCalendarDay = " + IntToString(n.nExpiryCalendarDay) + "\n"; - s += "nExpiryTimeOfDay = " + IntToString(n.nExpiryTimeOfDay) + "\n"; - - s += "oCreator = " + ObjectToString(n.oCreator) + "\n"; - s += "nSpellId = " + IntToString(n.nSpellId) + "\n"; - s += "bExpose = " + IntToString(n.bExpose) + "\n"; - s += "bShowIcon = " + IntToString(n.bShowIcon) + "\n"; - s += "nCasterLevel = " + IntToString(n.nCasterLevel) + "\n"; - - s += "bLinkLeftValid = " + IntToString(n.bLinkLeftValid) + "\n"; - struct NWNX_EffectUnpacked link = NWNX_Effect_UnpackEffect(n.eLinkLeft); - s += "bLinkLeft (nType) = " + IntToString(link.nType) + "\n"; - s += "bLinkRightValid = " + IntToString(n.bLinkRightValid) + "\n"; - link = NWNX_Effect_UnpackEffect(n.eLinkRight); - s += "bLinkRight (nType) = " + IntToString(link.nType) + "\n"; - - s += "nNumIntegers = " + IntToString(n.nNumIntegers) + "\n"; - s += "nParam0 = " + IntToString(n.nParam0) + "\n"; - s += "nParam1 = " + IntToString(n.nParam1) + "\n"; - s += "nParam2 = " + IntToString(n.nParam2) + "\n"; - s += "nParam3 = " + IntToString(n.nParam3) + "\n"; - s += "nParam4 = " + IntToString(n.nParam4) + "\n"; - s += "nParam5 = " + IntToString(n.nParam5) + "\n"; - s += "nParam6 = " + IntToString(n.nParam6) + "\n"; - s += "nParam7 = " + IntToString(n.nParam7) + "\n"; - s += "fParam0 = " + FloatToString(n.fParam0) + "\n"; - s += "fParam1 = " + FloatToString(n.fParam1) + "\n"; - s += "fParam2 = " + FloatToString(n.fParam2) + "\n"; - s += "fParam3 = " + FloatToString(n.fParam3) + "\n"; - s += "sParam0 = " + "'" + n.sParam0 + "'" + "\n"; - s += "sParam1 = " + "'" + n.sParam1 + "'" + "\n"; - s += "sParam2 = " + "'" + n.sParam2 + "'" + "\n"; - s += "sParam3 = " + "'" + n.sParam3 + "'" + "\n"; - s += "sParam4 = " + "'" + n.sParam4 + "'" + "\n"; - s += "sParam5 = " + "'" + n.sParam5 + "'" + "\n"; - s += "oParam0 = " + ObjectToString(n.oParam0) + "\n"; - s += "oParam1 = " + ObjectToString(n.oParam1) + "\n"; - s += "oParam2 = " + ObjectToString(n.oParam2) + "\n"; - s += "oParam3 = " + ObjectToString(n.oParam3) + "\n"; - - s += "sTag = " + "'" + n.sTag + "'" + "\n"; - - WriteTimestampedLogEntry(s); -} - -void main() -{ - WriteTimestampedLogEntry("NWNX_Effect unit test begin.."); - - effect eCurse = EffectCurse(1, 2, 3, 4, 5, 6); - effect eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN); - effect e = EffectLinkEffects(eCurse, eVis); - e = TagEffect(e, "NWNX_EFFECT_TEST"); - - struct NWNX_EffectUnpacked unpacked = NWNX_Effect_UnpackEffect(e); - printeff(unpacked); - NWNX_Tests_Report("NWNX_Effect", "UnpackEffect", unpacked.sTag == "NWNX_EFFECT_TEST"); - - effect packed = NWNX_Effect_PackEffect(unpacked); - NWNX_Tests_Report("NWNX_Effect", "PackEffect", GetEffectTag(packed) == "NWNX_EFFECT_TEST"); - - object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, packed, oCreature); - - e = NWNX_Effect_SetEffectExpiredScript(EffectDarkness(), "effect_test"); - unpacked = NWNX_Effect_UnpackEffect(e); - NWNX_Tests_Report("NWNX_Effect", "SetEffectExpiredScript", unpacked.sParam4 == "effect_test"); - - WriteTimestampedLogEntry("NWNX_Effect unit test end."); -} diff --git a/_removed files/nwnx_feedback_t.nss b/_removed files/nwnx_feedback_t.nss deleted file mode 100644 index 7a3edabc..00000000 --- a/_removed files/nwnx_feedback_t.nss +++ /dev/null @@ -1,34 +0,0 @@ -#include "nwnx_feedback" -#include "nwnx_tests" - -const int NWNX_FEEDBACK_REST_BEGINNING_REST = 18; -const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE = 3; - -void main() -{ - WriteTimestampedLogEntry("NWNX_Feedback unit test begin.."); - - NWNX_Feedback_SetFeedbackMessageHidden(NWNX_FEEDBACK_REST_BEGINNING_REST, TRUE); - NWNX_Tests_Report("NWNX_Feedback", "{Set/Get}FeedbackMessageHidden (Global)", NWNX_Feedback_GetFeedbackMessageHidden(NWNX_FEEDBACK_REST_BEGINNING_REST)); - - NWNX_Feedback_SetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE, TRUE); - NWNX_Tests_Report("NWNX_Feedback", "{Set/Get}CombatMessageHidden (Global)", NWNX_Feedback_GetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE)); - - object oPC = GetFirstPC(); - - if( GetIsObjectValid(oPC) ) - { - NWNX_Feedback_SetFeedbackMessageHidden(NWNX_FEEDBACK_REST_BEGINNING_REST, TRUE, oPC); - NWNX_Tests_Report("NWNX_Feedback", "{Set/Get}FeedbackMessageHidden (Personal)", NWNX_Feedback_GetFeedbackMessageHidden(NWNX_FEEDBACK_REST_BEGINNING_REST, oPC)); - - NWNX_Feedback_SetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE, TRUE, oPC); - NWNX_Tests_Report("NWNX_Feedback", "{Set/Get}CombatMessageHidden (Personal)", NWNX_Feedback_GetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE, oPC)); - } - else - { - WriteTimestampedLogEntry("No valid PC found, skipping personal feedback state tests"); - } - - - WriteTimestampedLogEntry("NWNX_Feedback unit test end."); -} diff --git a/_removed files/nwnx_itemprop_t.nss b/_removed files/nwnx_itemprop_t.nss deleted file mode 100644 index f7886565..00000000 --- a/_removed files/nwnx_itemprop_t.nss +++ /dev/null @@ -1,42 +0,0 @@ -#include "nwnx_itemprop" -#include "nwnx_tests" - -void printip(struct NWNX_IPUnpacked n) -{ - string s = "Unpacked IP: \n"; - s += "nProperty = " + IntToString(n.nProperty) + "\n"; - s += "nSubType = " + IntToString(n.nSubType) + "\n"; - s += "nCostTable = " + IntToString(n.nCostTable) + "\n"; - s += "nCostTableValue = " + IntToString(n.nCostTableValue) + "\n"; - s += "nParam1 = " + IntToString(n.nParam1) + "\n"; - s += "nParam1Value = " + IntToString(n.nParam1Value) + "\n"; - s += "nUsesPerDay = " + IntToString(n.nUsesPerDay) + "\n"; - s += "nChanceToAppear = " + IntToString(n.nChanceToAppear) + "\n"; - s += "bUsable = " + IntToString(n.bUsable) + "\n"; - s += "nSpellId = " + IntToString(n.nSpellId) + "\n"; - s += "sTag = " + "'" + n.sTag + "'" + "\n"; - - WriteTimestampedLogEntry(s); -} - -void main() -{ - WriteTimestampedLogEntry("NWNX_ItemProperty unit test begin.."); - - itemproperty ip = ItemPropertyDamageBonusVsRace(1,2,3); - ip = TagItemProperty(ip, "NWNX_ItemProperty_TEST"); - - struct NWNX_IPUnpacked unpacked = NWNX_ItemProperty_UnpackIP(ip); - printip(unpacked); - NWNX_Tests_Report("NWNX_ItemProperty", "UnpackIP", unpacked.sTag == "NWNX_ItemProperty_TEST"); - - itemproperty ip2 = NWNX_ItemProperty_PackIP(unpacked); - NWNX_Tests_Report("NWNX_ItemProperty", "PackIP", GetIsItemPropertyValid(ip2)); - NWNX_Tests_Report("NWNX_ItemProperty", "PackIP", GetItemPropertyTag(ip2) == "NWNX_ItemProperty_TEST"); - NWNX_Tests_Report("NWNX_ItemProperty", "PackIP", GetItemPropertyCostTable(ip2) == unpacked.nCostTable); - NWNX_Tests_Report("NWNX_ItemProperty", "PackIP", GetItemPropertyCostTableValue(ip2) == unpacked.nCostTableValue); - NWNX_Tests_Report("NWNX_ItemProperty", "PackIP", GetItemPropertyParam1(ip2) == unpacked.nParam1); - NWNX_Tests_Report("NWNX_ItemProperty", "PackIP", GetItemPropertyParam1Value(ip2) == unpacked.nParam1Value); - - WriteTimestampedLogEntry("NWNX_ItemProperty unit test end."); -} diff --git a/_removed files/nwnx_object_t.nss b/_removed files/nwnx_object_t.nss deleted file mode 100644 index 6bf99fda..00000000 --- a/_removed files/nwnx_object_t.nss +++ /dev/null @@ -1,121 +0,0 @@ -#include "nwnx_object" -#include "nwnx_tests" - -void main() -{ - WriteTimestampedLogEntry("NWNX_Object unit test begin.."); - - object o = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); - if (!GetIsObjectValid(o)) - { - WriteTimestampedLogEntry("NWNX_Object test: Failed to create creature"); - return; - } - - int nVarCount = NWNX_Object_GetLocalVariableCount(o); - SetLocalInt(o, "nwnx_object_test", 1); - NWNX_Tests_Report("NWNX_Object", "GetLocalVariableCount", NWNX_Object_GetLocalVariableCount(o) == (nVarCount+1)); - - struct NWNX_Object_LocalVariable lv = NWNX_Object_GetLocalVariable(o, nVarCount); - NWNX_Tests_Report("NWNX_Object", "GetLocalVariable", lv.key == "nwnx_object_test"); - NWNX_Tests_Report("NWNX_Object", "GetLocalVariable", lv.type == NWNX_OBJECT_LOCALVAR_TYPE_INT); - - string sObj = ObjectToString(o); - NWNX_Tests_Report("NWNX_Object", "StringToObject", NWNX_Object_StringToObject(sObj) == o); - NWNX_Tests_Report("NWNX_Object", "Negative: StringToObject", NWNX_Object_StringToObject("!@#!@#!@#!") == OBJECT_INVALID); - - vector vPos = GetPosition(o); - vPos.x += 1; - NWNX_Object_SetPosition(o, vPos); - NWNX_Tests_Report("NWNX_Object", "SetPosition", GetPosition(o).x == vPos.x); - - int nMaxHP = GetMaxHitPoints(o); - NWNX_Object_SetMaxHitPoints(o, nMaxHP + 1); - NWNX_Tests_Report("NWNX_Object", "SetMaxHitPoints", GetMaxHitPoints(o) == (nMaxHP + 1)); - - int nCurrHP = GetCurrentHitPoints(o); - NWNX_Object_SetCurrentHitPoints(o, nCurrHP + 1); - NWNX_Tests_Report("NWNX_Object", "SetCurrentHitPoints", GetCurrentHitPoints(o) == (nCurrHP + 1)); - - string dialog = "nwnxtest"; - NWNX_Object_SetDialogResref(o, dialog); - NWNX_Tests_Report("NWNX_Object", "SetDialogResRef/GetDialogResRef", NWNX_Object_GetDialogResref(o) == dialog); - - NWNX_Object_SetInt(o, "TestInt", 10, TRUE); - NWNX_Object_SetString(o, "TestString_1", "This is a string.", TRUE); - NWNX_Object_SetString(o, "TestString_2", "This is another string.", TRUE); - NWNX_Object_SetFloat(o, "TestFloat", 1.5f, TRUE); - NWNX_Tests_Report("NWNX_Object", "Set/GetInt", NWNX_Object_GetInt(o, "TestInt") == 10); - NWNX_Tests_Report("NWNX_Object", "Set/GetString #1", NWNX_Object_GetString(o, "TestString_1") == "This is a string."); - NWNX_Tests_Report("NWNX_Object", "Set/GetString #2", NWNX_Object_GetString(o, "TestString_2") == "This is another string."); - NWNX_Tests_Report("NWNX_Object", "Set/GetFloat", NWNX_Object_GetFloat(o, "TestFloat") == 1.5f); - - string sSerialized = NWNX_Object_Serialize(o); - NWNX_Tests_Report("NWNX_Object", "Serialize", sSerialized != ""); - WriteTimestampedLogEntry("Serialized chicken: " + sSerialized); - - object oDeserialized = NWNX_Object_Deserialize(sSerialized); - NWNX_Tests_Report("NWNX_Object", "Deserialize", GetIsObjectValid(oDeserialized)); - - NWNX_Object_DeleteInt(o, "TestInt"); - NWNX_Object_DeleteString(o, "TestString_1"); - NWNX_Object_DeleteString(o, "TestString_2"); - NWNX_Object_DeleteFloat(o, "TestFloat"); - NWNX_Tests_Report("NWNX_Object", "DeleteInt", NWNX_Object_GetInt(o, "TestInt") == 0); - NWNX_Tests_Report("NWNX_Object", "DeleteString #1", NWNX_Object_GetString(o, "TestString_1") == ""); - NWNX_Tests_Report("NWNX_Object", "DeleteString #2", NWNX_Object_GetString(o, "TestString_2") == ""); - NWNX_Tests_Report("NWNX_Object", "DeleteFloat", NWNX_Object_GetFloat(o, "TestFloat") == 0.0f); - - NWNX_Tests_Report("NWNX_Object", "(Deserialized Object) GetInt", NWNX_Object_GetInt(oDeserialized, "TestInt") == 10); - NWNX_Tests_Report("NWNX_Object", "(Deserialized Object) GetString #1", NWNX_Object_GetString(oDeserialized, "TestString_1") == "This is a string."); - NWNX_Tests_Report("NWNX_Object", "(Deserialized Object) GetString #2", NWNX_Object_GetString(oDeserialized, "TestString_2") == "This is another string."); - NWNX_Tests_Report("NWNX_Object", "(Deserialized Object) GetFloat", NWNX_Object_GetFloat(oDeserialized, "TestFloat") == 1.5f); - - NWNX_Object_DeleteVarRegex(oDeserialized, ".*TestString.*"); - - NWNX_Tests_Report("NWNX_Object", "DeleteVarRegex", NWNX_Object_GetInt(oDeserialized, "TestInt") == 10); - NWNX_Tests_Report("NWNX_Object", "DeleteVarRegex", NWNX_Object_GetString(oDeserialized, "TestString_1") == ""); - NWNX_Tests_Report("NWNX_Object", "DeleteVarRegex", NWNX_Object_GetString(oDeserialized, "TestString_2") == ""); - NWNX_Tests_Report("NWNX_Object", "DeleteVarRegex", NWNX_Object_GetFloat(oDeserialized, "TestFloat") == 1.5f); - - WriteTimestampedLogEntry("Deserialized " + GetName(oDeserialized) + " in " + GetName(GetArea(oDeserialized))); - - object bag = CreateObject(OBJECT_TYPE_ITEM, "nw_it_contain006", GetStartingLocation()); // Bag of holding - CreateItemOnObject("x2_it_adaplate", bag, 1); - CreateItemOnObject("x2_it_adaplate", bag, 1); - CreateItemOnObject("x2_it_adaplate", bag, 1); - int iFits = NWNX_Object_CheckFit(bag, BASE_ITEM_ARROW); - NWNX_Tests_Report("NWNX_Object", "CheckFit", iFits == 1); - iFits = NWNX_Object_CheckFit(bag, BASE_ITEM_ARMOR); - NWNX_Tests_Report("NWNX_Object", "CheckFit", iFits == 0); - object oItem = GetFirstItemInInventory(bag); - while (oItem != OBJECT_INVALID) - { - DestroyObject(oItem); - oItem = GetNextItemInInventory(bag); - } - DestroyObject(bag); - - NWNX_Tests_Report("NWNX_Object", "GetDamageImmunity", NWNX_Object_GetDamageImmunity(o, DAMAGE_TYPE_FIRE) == 0); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectDamageImmunityIncrease(DAMAGE_TYPE_FIRE, 50), o); - NWNX_Tests_Report("NWNX_Object", "GetDamageImmunity", NWNX_Object_GetDamageImmunity(o, DAMAGE_TYPE_FIRE) == 50); - - object oPlc = CreateObject(OBJECT_TYPE_PLACEABLE, "nw_defportal", GetStartingLocation()); - NWNX_Object_SetPlaceableIsStatic(oPlc, 1); - NWNX_Tests_Report("NWNX_Object", "SetPlaceableIsStatic 1", NWNX_Object_GetPlaceableIsStatic(oPlc) == 1); - DestroyObject(oPlc); - - oPlc = CreateObject(OBJECT_TYPE_PLACEABLE, "nw_plc_driftwd1", GetStartingLocation()); - NWNX_Object_SetPlaceableIsStatic(oPlc, 0); - NWNX_Tests_Report("NWNX_Object", "SetPlaceableIsStatic 2", NWNX_Object_GetPlaceableIsStatic(oPlc) == 0); - DestroyObject(oPlc); - - oPlc = CreateObject(OBJECT_TYPE_PLACEABLE, "nw_plc_driftwd1", GetStartingLocation()); - NWNX_Object_SetAutoRemoveKey(oPlc, 1); - NWNX_Tests_Report("NWNX_Object", "SetAutoRemoveKey", NWNX_Object_GetAutoRemoveKey(oPlc) == 1); - DestroyObject(oPlc); - - DestroyObject(o); - DestroyObject(oDeserialized); - WriteTimestampedLogEntry("NWNX_Object unit test end."); -} diff --git a/_removed files/nwnx_player_t.nss b/_removed files/nwnx_player_t.nss deleted file mode 100644 index 574431cb..00000000 --- a/_removed files/nwnx_player_t.nss +++ /dev/null @@ -1,16 +0,0 @@ -#include "nwnx_player" -#include "nwnx_tests" - -void main() -{ - WriteTimestampedLogEntry("NWNX_Player unit test begin.."); - - object oPC = GetFirstPC(); - if (!GetIsObjectValid(oPC)) - { - WriteTimestampedLogEntry("NWNX_Player test: No PC found"); - return; - } - - WriteTimestampedLogEntry("NWNX_Player unit test end."); -} diff --git a/_removed files/nwnx_race_t.nss b/_removed files/nwnx_race_t.nss deleted file mode 100644 index 48a15c79..00000000 --- a/_removed files/nwnx_race_t.nss +++ /dev/null @@ -1,33 +0,0 @@ -#include "nwnx_race" -#include "nwnx_tests" - -void main() -{ - WriteTimestampedLogEntry("NWNX_Race unit test begin.."); - - object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); - int iSR = GetSpellResistance(oCreature); - int iSkillRank = GetSkillRank(SKILL_HEAL, oCreature); - int iAC = GetAC(oCreature); - int iImmune = GetIsImmune(oCreature, IMMUNITY_TYPE_CURSED); - DestroyObject(oCreature); - - NWNX_Race_SetRacialModifier(RACIAL_TYPE_ANIMAL, NWNX_RACE_MODIFIER_SRCHARGEN, 10); - NWNX_Race_SetRacialModifier(RACIAL_TYPE_ANIMAL, NWNX_RACE_MODIFIER_SKILL, SKILL_HEAL, 5); - NWNX_Race_SetRacialModifier(RACIAL_TYPE_ANIMAL, NWNX_RACE_MODIFIER_AC, 1); - NWNX_Race_SetRacialModifier(RACIAL_TYPE_ANIMAL, NWNX_RACE_MODIFIER_IMMUNITY, IMMUNITY_TYPE_CURSED); - - oCreature = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); - int iNewSR = GetSpellResistance(oCreature); - int iNewSkillRank = GetSkillRank(SKILL_HEAL, oCreature); - int iNewAC = GetAC(oCreature); - int iNewImmune = GetIsImmune(oCreature, IMMUNITY_TYPE_CURSED); - DestroyObject(oCreature); - - NWNX_Tests_Report("NWNX_Race", "SetRacialModifier SR", iSR == iNewSR - 10); - NWNX_Tests_Report("NWNX_Race", "SetRacialModifier SkillRank", iSkillRank == iNewSkillRank - 5); - NWNX_Tests_Report("NWNX_Race", "SetRacialModifier AC", iAC == iNewAC - 1); - NWNX_Tests_Report("NWNX_Race", "SetRacialModifier Immunity", iImmune != iNewImmune); - - WriteTimestampedLogEntry("NWNX_Race unit test end."); -} diff --git a/_removed files/nwnx_sql_t.nss b/_removed files/nwnx_sql_t.nss deleted file mode 100644 index ffbb7306..00000000 --- a/_removed files/nwnx_sql_t.nss +++ /dev/null @@ -1,249 +0,0 @@ -#include "nwnx_sql" -#include "nwnx_object" -#include "nwnx_tests" - -void cleanup() -{ - NWNX_Tests_Report("NWNX_SQL", "Cleanup sql_test", NWNX_SQL_ExecuteQuery("DROP TABLE sql_test")); - NWNX_Tests_Report("NWNX_SQL", "Cleanup stress_test", NWNX_SQL_ExecuteQuery("DROP TABLE stress_test")); - NWNX_Tests_Report("NWNX_SQL", "Cleanup error_test", NWNX_SQL_ExecuteQuery("DROP TABLE error_test")); -} - -void main() -{ - WriteTimestampedLogEntry("NWNX_SQL unit test begin.."); - - string db_type = GetStringUpperCase(NWNX_SQL_GetDatabaseType()); - WriteTimestampedLogEntry("Testing database " + db_type); - - string sCreate = ""; - string sInsert = ""; - - /* MySQL and SQLite version */ - if (db_type == "MYSQL" || db_type == "SQLITE") - { - sCreate = "CREATE TABLE sql_test (" + - "colInt INT, colFloat FLOAT, colStr VARCHAR(256)," + - "colObjId INT, colObj TEXT(1000000) );"; - - sInsert = "INSERT INTO sql_test(colInt, colFloat, colStr, colObjId, colObj) VALUES(?, ?, ?, ?, ?)"; - } - - /* PostgreSQL version */ - if (db_type == "POSTGRESQL") - { - sCreate = "CREATE TABLE sql_test (" + - "colInt INT, colFloat FLOAT, colStr VARCHAR(256)," + - "colObjId INT, colObj TEXT );"; - - // Even though we're using 0 based parameter numbers, PostgreSQL requires the parameter - // numbers in the actual SQL string to be 1 based (e.g. $1, $2... not $0, $1... ) - sInsert = "INSERT INTO sql_test(colInt, colFloat, colStr, colObjId, colObj) VALUES($1, $2, $3, $4, $5)"; - } - - int b = NWNX_SQL_ExecuteQuery(sCreate); - NWNX_Tests_Report("NWNX_SQL", "Create Table", b); - - object o = CreateObject(OBJECT_TYPE_CREATURE, "nw_chicken", GetStartingLocation()); - if (!GetIsObjectValid(o)) - { - WriteTimestampedLogEntry("NWNX_SQL test: Failed to create creature"); - cleanup(); - return; - } - - vector v = Vector(5.0, 5.0, 0.0); // slightly different location. - - b = NWNX_SQL_PrepareQuery(sInsert); - NWNX_Tests_Report("NWNX_SQL", "Complex PrepareQuery", b); - NWNX_Tests_Report("NWNX_SQL", "GetPreparedQueryParamCount", NWNX_SQL_GetPreparedQueryParamCount() == 5); - - NWNX_SQL_PreparedInt(0, 42); - NWNX_SQL_PreparedFloat(1, 0.42); - NWNX_SQL_PreparedString(2, "FourtyTwooo"); - NWNX_SQL_PreparedObjectId(3, o); - NWNX_SQL_PreparedObjectFull(4, o); - - b = NWNX_SQL_ExecutePreparedQuery(); - NWNX_Tests_Report("NWNX_SQL", "Complex ExecutePreparedQuery", b); - - b = NWNX_SQL_ExecuteQuery("SELECT * FROM sql_test;"); - NWNX_Tests_Report("NWNX_SQL", "Select ExecuteQuery", b); - - if (b) - { - while (NWNX_SQL_ReadyToReadNextRow()) - { - NWNX_SQL_ReadNextRow(); - int n = StringToInt(NWNX_SQL_ReadDataInActiveRow(0)); - NWNX_Tests_Report("NWNX_SQL", "ReadInt", n == 42); - float f = StringToFloat(NWNX_SQL_ReadDataInActiveRow(1)); - NWNX_Tests_Report("NWNX_SQL", "ReadFloat", fabs(f - 0.42) < 0.01); - string s = NWNX_SQL_ReadDataInActiveRow(2); - NWNX_Tests_Report("NWNX_SQL", "ReadString", s == "FourtyTwooo"); - - string sObjId = NWNX_SQL_ReadDataInActiveRow(3); // In base 10 - object o2 = NWNX_Object_StringToObject(IntToHexString(StringToInt(sObjId))); - NWNX_Tests_Report("NWNX_SQL", "ReadObjectId", o == o2); - - object o3 = NWNX_SQL_ReadFullObjectInActiveRow(4, GetArea(o), v.x, v.y, v.z); - NWNX_Tests_Report("NWNX_SQL", "ReadFullObject", GetIsObjectValid(o3)); - // Alternatively: - // object o3 = NWNX_Object_Deserialize(NWNX_SQL_ReadDataInActiveRow(4)); - } - } - - - object oPlc = CreateObject(OBJECT_TYPE_PLACEABLE, "nw_plc_chestburd", GetStartingLocation()); - object oItem = CreateObject(OBJECT_TYPE_ITEM, "x0_it_mring013", GetStartingLocation()); - if (!GetIsObjectValid(oPlc) || !GetIsObjectValid(oItem)) - { - WriteTimestampedLogEntry("NWNX_SQL test: Failed to create objects.."); - } - else - { - object oTmp = GetFirstItemInInventory(oPlc); - while (GetIsObjectValid(oTmp)) - { - WriteTimestampedLogEntry("NWNX_SQL Destroying auto created object " + GetTag(oTmp)); - DestroyObject(oTmp); - oTmp = GetNextItemInInventory(oPlc); - } - - string test2 = ""; - if (db_type == "MYSQL" || db_type == "SQLITE") - { - test2="INSERT INTO sql_test(colInt, colFloat, colStr, colObjId, colObj) VALUES(1337,0.0,'xxx',1337,?)"; - } - if (db_type == "POSTGRESQL") - { - test2="INSERT INTO sql_test(colInt, colFloat, colStr, colObjId, colObj) VALUES(1337,0.0,'xxx',1337,$1)"; - } - - NWNX_SQL_PrepareQuery(test2); - - NWNX_SQL_PreparedObjectFull(0, oItem); - b = NWNX_SQL_ExecutePreparedQuery(); - NWNX_Tests_Report("NWNX_SQL", "Insert item full", b); - - b = NWNX_SQL_ExecuteQuery("SELECT colObj FROM sql_test WHERE colInt=1337"); - NWNX_Tests_Report("NWNX_SQL", "Select item", b); - - if (NWNX_SQL_ReadyToReadNextRow()) - { - NWNX_SQL_ReadNextRow(); - - object oItem2 = NWNX_SQL_ReadFullObjectInActiveRow(0, oPlc); - NWNX_Tests_Report("NWNX_SQL", "ReadFullObject Item", GetIsObjectValid(oItem2)); - NWNX_Tests_Report("NWNX_SQL", "Deserialized to placeable's inventory", oItem2 == GetFirstItemInInventory(oPlc)); - NWNX_Tests_Report("NWNX_SQL", "Deserialized to placeable's inventory - possessor", GetItemPossessor(oItem2) == oPlc); - - object oItem3 = NWNX_SQL_ReadFullObjectInActiveRow(0, GetArea(oPlc), v.x, v.y, v.z); - NWNX_Tests_Report("NWNX_SQL", "Deserialized to area", GetArea(oItem3) == GetArea(oPlc)); - - object oItem4 = NWNX_SQL_ReadFullObjectInActiveRow(0, o); - NWNX_Tests_Report("NWNX_SQL", "Deserialized to creature's inventory - possessor", GetItemPossessor(oItem4) == o); - } - else - { - WriteTimestampedLogEntry("NWNX_SQL not ready to read item"); - } - - } - - int STRESS_CNT = 10; - - WriteTimestampedLogEntry("NWNX_SQL stress test."); - NWNX_SQL_ExecuteQuery("create table stress_test ( i_key int, i_int int, s_text varchar(8))"); - int i; - // Brute force some inserts - for ( i=1 ; i<=STRESS_CNT ; i++ ) // Generate 1000 rows. - { - // Simulates the existing NWNX2 ODBC way of generating SQL. - NWNX_SQL_ExecuteQuery("insert into stress_test values ( " + IntToString(i) + ", " + IntToString(i*2) + ", '" + IntToString(i*100) + "')"); - } - NWNX_SQL_ExecuteQuery("delete from stress_test where i_key > 0"); - int res = NWNX_SQL_GetAffectedRows(); - WriteTimestampedLogEntry("Deleted " + IntToString(res) + " rows."); - report ("Delete rows", res == STRESS_CNT); - - // now do some elegant inserts - string test3 = ""; - if (db_type == "MYSQL" || db_type == "SQLITE") - { - test3 = "insert into stress_test values ( ?, ?, ? )"; - } - if (db_type == "POSTGRESQL") - { - test3 = "insert into stress_test values ( $1, $2, $3 )"; - } - - NWNX_SQL_PrepareQuery(test3); - for ( i = 1 ; i <= STRESS_CNT ; i++ ) - { - NWNX_SQL_PreparedInt(0, i); - NWNX_SQL_PreparedInt(1, i*2); - NWNX_SQL_PreparedString(2, IntToString(i*100)); - b = NWNX_SQL_ExecutePreparedQuery(); - NWNX_Tests_Report("NWNX_SQL", "Elegant Looping ExecutePreparedQuery", b); - } - NWNX_SQL_ExecuteQuery("delete from stress_test where i_key > 0"); - res = NWNX_SQL_GetAffectedRows(); - WriteTimestampedLogEntry("Deleted " + IntToString(res) + " rows."); - NWNX_Tests_Report("Delete rows", res == STRESS_CNT); - - // Test some error output. - b = NWNX_SQL_ExecuteQuery("create table error_test (col varchar(10))"); - NWNX_Tests_Report("Test Table Create", b); - - b = NWNX_SQL_ExecuteQuery("insert into error_test values('abcdefghij')"); - NWNX_Tests_Report("good insert", b); - - if (db_type != "SQLITE") - {// SQLite doesn't care about size constraints of columns - b = NWNX_SQL_ExecuteQuery("insert into error_test values('abcde000fghij')"); - report ("bad insert", !b); - if (!b) { - WriteTimestampedLogEntry("There should be an error a couple rows up."); - } - } - - string test4 = ""; - if (db_type == "MYSQL" || db_type == "SQLITE") - { - test3 = "insert into error_test values ( ? )"; - } - if (db_type == "POSTGRESQL") - { - test3 = "insert into error_test values ( $1 )"; - } - NWNX_SQL_PrepareQuery(test3); - NWNX_SQL_PreparedString(100, "lala"); // out of bounds, must not crash. - - NWNX_Tests_Report("NWNX_SQL", "Negative prepare query", NWNX_SQL_PrepareQuery("not a valid query!") == 0); - NWNX_Tests_Report("NWNX_SQL", "GetLastError", NWNX_SQL_GetLastError() != ""); - - // Test with null values - NWNX_SQL_ExecuteQuery("INSERT INTO sql_test(colInt, colFloat, colStr, colObjId, colObj) VALUES(5121, null, null, null, null)"); - NWNX_Tests_Report("NWNX_SQL", "Select null", NWNX_SQL_ExecuteQuery("SELECT * FROM sql_test WHERE colInt=5121")); - if (NWNX_SQL_ReadyToReadNextRow()) - { - NWNX_SQL_ReadNextRow(); - int n = StringToInt(NWNX_SQL_ReadDataInActiveRow(0)); - NWNX_Tests_Report("NWNX_SQL", "ReadInt", n == 5121); - float f = StringToFloat(NWNX_SQL_ReadDataInActiveRow(1)); - NWNX_Tests_Report("NWNX_SQL", "ReadFloat", f == 0.0); - string s = NWNX_SQL_ReadDataInActiveRow(2); - NWNX_Tests_Report("NWNX_SQL", "ReadString", s == ""); - - string sObjId = NWNX_SQL_ReadDataInActiveRow(3); // In base 10 - NWNX_Tests_Report("NWNX_SQL", "ReadObjectId", sObjId == ""); - - object obj = NWNX_SQL_ReadFullObjectInActiveRow(4); - NWNX_Tests_Report("NWNX_SQL", "ReadFullObject", obj == OBJECT_INVALID); - } - - cleanup(); - WriteTimestampedLogEntry("Testing database " + db_type + " complete."); - WriteTimestampedLogEntry("NWNX_SQL unit tests end."); -} diff --git a/_removed files/old_thunderclap.nss b/_removed files/old_thunderclap.nss deleted file mode 100644 index 188e42a2..00000000 --- a/_removed files/old_thunderclap.nss +++ /dev/null @@ -1,107 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Great Thunderclap -//:: X2_S0_GrtThdclp -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// You create a loud noise equivalent to a peal of -// thunder and its acommpanying shock wave. The -// spell has three effects. First, all creatures -// in the area must make Will saves to avoid being -// stunned for 1 round. Second, the creatures must -// make Fortitude saves or be deafened for 1 minute. -// Third, they must make Reflex saves or fall prone. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 20, 2002 -//:: Updated On: Oct 20, 2003 - some nice Vfx:) -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -#include "x0_i0_spells" - -#include "x2_inc_spellhook" - -void main() -{ - - /* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - //Epic DC Bonus Added - int nDB; - int nAdjs; - nAdjs = GetCasterLevel(OBJECT_SELF) - 20; - if(GetCasterLevel(OBJECT_SELF)>=23) - { - nDB = nAdjs/3; - SendMessageToPC(OBJECT_SELF, "Your Epic DC Bonus = +" + IntToString(nDB) + " DC"); - } - else if(GetCasterLevel(OBJECT_SELF) <=22) - { - nDB = 0; - } - - int nDamage = 0; - int nDC = GetSpellSaveDC(); - float fDelay; - effect eExplode = EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION); - effect eVis = EffectVisualEffect(VFX_IMP_SONIC); - effect eVis2 = EffectVisualEffect(VFX_IMP_BLIND_DEAF_M); - effect eVis3 = EffectVisualEffect(VFX_IMP_STUN); - effect eDeaf = EffectDeaf(); - effect eKnock = EffectKnockdown(); - effect eStun = EffectStunned(); - effect eShake = EffectVisualEffect(356); - effect eDmg = EffectDamage(d8(3), DAMAGE_TYPE_SONIC, DAMAGE_POWER_ENERGY); - - location lTarget = GetSpellTargetLocation(); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eShake, OBJECT_SELF, 2.0f); - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_GARGANTUAN, lTarget, TRUE, OBJECT_TYPE_CREATURE); - while (GetIsObjectValid(oTarget)) - { - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF) - { - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - - //Get the distance between the explosion and the target to calculate delay - fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; - - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_SONIC)) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDeaf, oTarget, RoundsToSeconds(10))); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget)); - } - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_SONIC)) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, RoundsToSeconds(1))); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - if(!MySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_SONIC)) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eKnock, oTarget, 6.0f)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis3, oTarget,4.0f)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDmg, oTarget)); - } - } - } - - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_GARGANTUAN, lTarget, TRUE, OBJECT_TYPE_CREATURE); - -} - diff --git a/_removed files/vat_stripdmfi.nss b/_removed files/vat_stripdmfi.nss deleted file mode 100644 index 0c14b6cb..00000000 --- a/_removed files/vat_stripdmfi.nss +++ /dev/null @@ -1,28 +0,0 @@ -#include "inc_levelset" - -void main() -{ - object oTarget = GetPCSpeaker(); - int iFoundItemFlag = 0; - //for testing - //AssignCommand(oTarget, SpeakString("stripInventory fired")); - - //valid only for creatures - //if ( GetObjectType(oTarget) != OBJECT_TYPE_CREATURE) return; - - // set the variables - int i; - object oItem = GetFirstItemInInventory(oTarget); - - // destroy unequipped items in inventory - while ( GetIsObjectValid(oItem) ) - { - if (GetIsDMFI(oItem)) - { - DestroyObject(oItem); - iFoundItemFlag = 1; - } - oItem = GetNextItemInInventory(oTarget); - } - if (iFoundItemFlag = 0) FloatingTextStringOnCreature("No DMFI items found.", oTarget, FALSE); -} diff --git a/_removed files/vat_stripflags.nss b/_removed files/vat_stripflags.nss deleted file mode 100644 index 0a557029..00000000 --- a/_removed files/vat_stripflags.nss +++ /dev/null @@ -1,60 +0,0 @@ -#include "inc_levelset" - -void main() -{ - object oTarget = GetPCSpeaker(); - int iFoundItemFlag = 0; - int i = 0; - //for testing - //AssignCommand(oTarget, SpeakString("stripInventory fired")); - - //valid only for creatures - //if ( GetObjectType(oTarget) != OBJECT_TYPE_CREATURE) return; - - // set the variables - object oItem = GetFirstItemInInventory(oTarget); - - // unflag unequipped items in inventory - while ( GetIsObjectValid(oItem) ) - { - //SendMessageToPC(oTarget, "Evaluating " + GetName(oItem)); - - if (GetPlotFlag(oItem) == TRUE) - { - SetPlotFlag(oItem, FALSE); - SendMessageToPC(oTarget, "Plot flag removed from " + GetName(oItem)); - iFoundItemFlag = 1; - } - - if (GetStolenFlag(oItem) == TRUE) - { - SetStolenFlag(oItem, FALSE); - SendMessageToPC(oTarget, "Stolen flag removed from " + GetName(oItem)); - iFoundItemFlag = 1; - } - //else SendMessageToPC(oTarget, GetName(oItem) + " was not changed."); - - oItem = GetNextItemInInventory(oTarget); - } - - //unflag equipped items in slots - for ( i = 0; i < NUM_INVENTORY_SLOTS; i++ ) - { - oItem = GetItemInSlot(i, oTarget); - if (GetPlotFlag(oItem) == TRUE) - { - SetPlotFlag(oItem, FALSE); - SendMessageToPC(oTarget, "Plot flag removed from " + GetName(oItem)); - iFoundItemFlag = 1; - } - - if (GetStolenFlag(oItem) == TRUE) - { - SetStolenFlag(oItem, FALSE); - SendMessageToPC(oTarget, "Stolen flag removed from " + GetName(oItem)); - iFoundItemFlag = 1; - } - } - - if (iFoundItemFlag == 0) SendMessageToPC(oTarget, "No Plot or Stolen items found."); -} diff --git a/_removed files/vat_stripnondrop.nss b/_removed files/vat_stripnondrop.nss deleted file mode 100644 index 08ae6aa0..00000000 --- a/_removed files/vat_stripnondrop.nss +++ /dev/null @@ -1,51 +0,0 @@ -#include "inc_levelset" - -void main() -{ - object oTarget = GetPCSpeaker(); - int iFoundItemFlag = 0; - int i = 0; - //for testing - //AssignCommand(oTarget, SpeakString("stripInventory fired")); - - //valid only for creatures - //if ( GetObjectType(oTarget) != OBJECT_TYPE_CREATURE) return; - - // set the variables - object oItem = GetFirstItemInInventory(oTarget); - - // unflag unequipped items in inventory - while ( GetIsObjectValid(oItem) ) - { - //SendMessageToPC(oTarget, "Evaluating " + GetName(oItem)); - - if (GetIsDMFI(oItem) != TRUE) - { - if (GetItemCursedFlag(oItem) == TRUE) - { - - SetItemCursedFlag(oItem, FALSE); - SendMessageToPC(oTarget, GetName(oItem) + " changed to droppable."); - iFoundItemFlag = 1; - } - //else SendMessageToPC(oTarget, GetName(oItem) + " was not changed."); - } - else SendMessageToPC(oTarget, GetName(oItem) + " is a DMFI item."); - - oItem = GetNextItemInInventory(oTarget); - } - - //unflag equipped items in slots - for ( i = 0; i < NUM_INVENTORY_SLOTS; i++ ) - { - oItem = GetItemInSlot(i, oTarget); - if (GetItemCursedFlag(oItem) == TRUE) - { - SetItemCursedFlag(oItem, FALSE); - SendMessageToPC(oTarget, GetName(oItem) + " changed to droppable."); - iFoundItemFlag = 1; - } - } - - if (iFoundItemFlag == 0) SendMessageToPC(oTarget, "No cursed / non-droppable items found."); -} diff --git a/_removed files/x0_s0_bombard.nss b/_removed files/x0_s0_bombard.nss deleted file mode 100644 index e42b51f4..00000000 --- a/_removed files/x0_s0_bombard.nss +++ /dev/null @@ -1,107 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Bombardment -//:: X0_S0_Bombard -//:: Copyright (c) 2002 Bioware Corp. -//::////////////////////////////////////////////// -/* -// Rocks fall from sky -// 1d8 damage/level to a max of 10d8 -// Reflex save for half -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent -//:: Created On: July 22 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: Andrew Nobbs May 01, 2003 - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oCaster = OBJECT_SELF; - int nCasterLvl = GetCasterLevel(oCaster); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - float fDelay; - effect eExplode = EffectVisualEffect(VFX_FNF_METEOR_SWARM); - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - effect eDam; - - - //Get the spell target location as opposed to the spell target. - location lTarget = GetSpellTargetLocation(); - //Limit Caster level for the purposes of damage - if (nCasterLvl > 20) - { - nCasterLvl = 20; - } - - //Apply the fireball explosion at the location captured above. - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while (GetIsObjectValid(oTarget)) - { - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) == TRUE) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - //Get the distance between the explosion and the target to calculate delay - fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Roll damage for each target - nDamage = d8(nCasterLvl); - //Resolve metamagic - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 8 * nCasterLvl; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage / 2; - } - //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ALL); - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_BLUDGEONING); - if(nDamage > 0) - { - - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the flame that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} - - - diff --git a/_removed files/x0_s0_enten.nss b/_removed files/x0_s0_enten.nss deleted file mode 100644 index 645796ad..00000000 --- a/_removed files/x0_s0_enten.nss +++ /dev/null @@ -1,24 +0,0 @@ -//:://///////////////////////////////////////////// -//:: x0_s0_entEN -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Applies a miss chance to any enemies - of the area of effect creator. -*/ -//::////////////////////////////////////////////// -//:: Created By: -//:: Created On: -//::////////////////////////////////////////////// - -void main() -{ - object oTarget = GetEnteringObject(); - if(!GetIsReactionTypeFriendly(oTarget, GetAreaOfEffectCreator())) - { - effect eMiss = EffectMissChance(40, MISS_CHANCE_TYPE_VS_RANGED); - - // * only leaving the area of effect removes the miss chance - ApplyEffectToObject(DURATION_TYPE_PERMANENT, eMiss, oTarget); - } -} diff --git a/_removed files/x0_s0_entrshield.nss b/_removed files/x0_s0_entrshield.nss deleted file mode 100644 index 24518009..00000000 --- a/_removed files/x0_s0_entrshield.nss +++ /dev/null @@ -1,65 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Entropic Shield -//:: x0_s0_entrshield.nss -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - 20% concealment to ranged attacks including - ranged spell attacks - - Duration: 1 turn/level - -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent Knowles -//:: Created On: July 18, 2002 -//::////////////////////////////////////////////// -//:: VFX Pass By: -#include "NW_I0_SPELLS" - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = OBJECT_SELF; - int nDuration = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - effect eVis = EffectVisualEffect(VFX_IMP_AC_BONUS); - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) //Duration is +100% - { - nDuration = nDuration * 2; - } - //Set the four unique armor bonuses - effect eShield = EffectConcealment(40, MISS_CHANCE_TYPE_VS_RANGED); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - - effect eLink = EffectLinkEffects(eShield, eDur); -// RemoveEffectsFromSpell(oTarget, GetSpellId()); - - //Apply the armor bonuses and the VFX impact - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); -} - diff --git a/_removed files/x0_s0_ether.nss b/_removed files/x0_s0_ether.nss deleted file mode 100644 index 9a44c6d6..00000000 --- a/_removed files/x0_s0_ether.nss +++ /dev/null @@ -1,48 +0,0 @@ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - effect eVis = EffectVisualEffect(VFX_DUR_SANCTUARY); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - effect eSanc = EffectEthereal(); - - effect eLink = EffectLinkEffects(eVis, eSanc); - eLink = EffectLinkEffects(eLink, eDur); - - int nDuration = GetCasterLevel(OBJECT_SELF); - //Enter Metamagic conditions - int nMetaMagic = GetMetaMagicFeat(); - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ETHEREALNESS, FALSE)); - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration)); -} diff --git a/_removed files/x0_s0_firebrand.nss b/_removed files/x0_s0_firebrand.nss deleted file mode 100644 index 92897881..00000000 --- a/_removed files/x0_s0_firebrand.nss +++ /dev/null @@ -1,50 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Firebrand -//:: x0_x0_Firebrand -//:: Copyright (c) 2002 Bioware Corp. -//::////////////////////////////////////////////// -/* -// * Fires a flame arrow to every target in a -// * colossal area -// * Each target explodes into a small fireball for -// * 1d6 damage / level (max = 15 levels) -// * Only nLevel targets can be affected -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent -//:: Created On: July 29 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - int nDamage = GetCasterLevel(OBJECT_SELF); - if (nDamage > 25) - nDamage = 25; - - DoMissileStorm(nDamage, 25, SPELL_FIREBRAND, VFX_IMP_MIRV_FLAME, VFX_IMP_FLAME_M, DAMAGE_TYPE_FIRE, TRUE, TRUE); -} - - - - diff --git a/_removed files/x0_s0_fleshsto.nss b/_removed files/x0_s0_fleshsto.nss deleted file mode 100644 index 67f5d2a9..00000000 --- a/_removed files/x0_s0_fleshsto.nss +++ /dev/null @@ -1,57 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Flesh to Stone -//:: x0_s0_fleshsto -//:: Copyright (c) 2002 Bioware Corp. -//::////////////////////////////////////////////// -/* -//:: The target freezes in place, standing helpless. -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent Knowles -//:: Created On: October 16, 2002 -//::////////////////////////////////////////////// -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -//Override in town, no casting! -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - - - if (MyResistSpell(OBJECT_SELF,oTarget) <1) - { - DoPetrification(nCasterLvl, OBJECT_SELF, oTarget, GetSpellId(), GetEpicSpellSaveDC()); - } -} - - diff --git a/_removed files/x0_s0_missstorm1.nss b/_removed files/x0_s0_missstorm1.nss deleted file mode 100644 index 21c2fdd0..00000000 --- a/_removed files/x0_s0_missstorm1.nss +++ /dev/null @@ -1,65 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Isaacs Lesser Missile Storm -//:: x0_s0_MissStorm1 -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Up to 10 missiles, each doing 1d6 damage to all - targets in area. -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent -//:: Created On: July 31, 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - -//Epic Adjustment By Genisys -//I added a level adjustment to the spell -int nInt; -int nDD; -object oCaster = OBJECT_SELF; -int nCL = GetCasterLevel(oCaster); - -//If caster level is 9 or higher.. -if(nCL >8) -{ -int nEL = nCL - 6; -int nDiv = nEL / 3; -nInt = nDiv + 6; //6 missles + 1 missle every 3 levels over level 6 caster -//(16 Max total Missles) - -//end if Level Check -} -//If not level 9+, then 6 is the max # of missles / level -else -{ -nInt = 6; -} - - //SpawnScriptDebugger(); - DoMissileStorm(1, nInt, SPELL_ISAACS_LESSER_MISSILE_STORM); -} - - diff --git a/_removed files/x0_s0_missstorm2.nss b/_removed files/x0_s0_missstorm2.nss deleted file mode 100644 index c30470db..00000000 --- a/_removed files/x0_s0_missstorm2.nss +++ /dev/null @@ -1,62 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Isaacs Greater Missile Storm -//:: x0_s0_MissStorm2 -//:: Copyright (c) 2002 Bioware Corp. -//::////////////////////////////////////////////// -/* - Up to 20 missiles, each doing 3d6 damage to each - target in area. -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent -//:: Created On: July 31, 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: - -#include "X0_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - -//Epic Adjustment Added By Genisys -int nInt; -int nDD; -object oCaster = OBJECT_SELF; -int nCL = GetCasterLevel(oCaster); - -//If caster level is 22 or higher.. -if(nCL >21) -{ -int nEL = nCL - 20; -int nDiv = nEL / 2; -nInt = nDiv + 10; //10 + 1 / 2 levels over level 10 -//(25 Max Total Missles) - -//end if Level Check -} -//If not greater than level 21, then 10 is the max level cap -else -{ -nInt = 10; -} - - DoMissileStorm(2, nInt, SPELL_ISAACS_GREATER_MISSILE_STORM); -} - diff --git a/_removed files/x0_s0_truestrike.nss b/_removed files/x0_s0_truestrike.nss deleted file mode 100644 index 61bea73c..00000000 --- a/_removed files/x0_s0_truestrike.nss +++ /dev/null @@ -1,62 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Truestrike -//:: x0_s0_truestrike.nss -//:: Copyright (c) 2002 Bioware Corp. -//::////////////////////////////////////////////// -/* -+20 attack bonus for 9 seconds. -CHANGE: Miss chance still applies, unlike rules. -*/ -//::////////////////////////////////////////////// -//:: Created By: Brent Knowles -//:: Created On: July 15, 2002 -//::////////////////////////////////////////////// -//:: VFX Pass By: -#include "NW_I0_SPELLS" - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oTarget; - effect eVis = EffectVisualEffect(VFX_IMP_HEAD_ODD); - - - // * determine the damage bonus to apply - effect eAttack = EffectAttackIncrease(20); - - - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - effect eLink = eAttack; - eLink = EffectLinkEffects(eLink, eDur); - - - oTarget = OBJECT_SELF; - - //Fire spell cast at event for target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, 415, FALSE)); - //Apply VFX impact and bonus effects - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 18.0); - -} - diff --git a/_removed files/x0_s0_woundwhis.nss b/_removed files/x0_s0_woundwhis.nss deleted file mode 100644 index 4389a182..00000000 --- a/_removed files/x0_s0_woundwhis.nss +++ /dev/null @@ -1,69 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Wounding Whispers -//:: x0_s0_WoundWhis.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Magical whispers cause 1d8 sonic damage to attackers who hit you. - Made the damage slightly more than the book says because we cannot - do the +1 per level. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: Jan 7, 2002 -//::////////////////////////////////////////////// -//:: Modified for wounding whispers, July 30 2002, Brent -//::////////////////////////////////////////////// -//:: Last Update By: Andrew Nobbs May 01, 2003 - -#include "x2_inc_spellhook" -#include "x0_i0_spells" -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_POSITIVE); - int nDuration = GetCasterLevel(OBJECT_SELF); - int nBonus = nDuration; - int nMetaMagic = GetMetaMagicFeat(); - object oTarget = OBJECT_SELF; - effect eShield = EffectDamageShield(d6(3) + nBonus, 0, DAMAGE_TYPE_SONIC); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - - //Link effects - effect eLink = EffectLinkEffects(eShield, eDur); - eLink = EffectLinkEffects(eLink, eVis); - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, 441, FALSE)); - - if (GetHasSpellEffect(GetSpellId())) - { - RemoveSpellEffects(GetSpellId(),OBJECT_SELF,OBJECT_SELF); - } - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); -} diff --git a/_removed files/x2_m1_mindblast.nss b/_removed files/x2_m1_mindblast.nss deleted file mode 100644 index ff8332f4..00000000 --- a/_removed files/x2_m1_mindblast.nss +++ /dev/null @@ -1,118 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Cone: Mindflayer Mind Blast -//:: x2_m1_mindblast -//:: Copyright (c) 2002 Bioware Corp. -//::////////////////////////////////////////////// -/* - Anyone caught in the cone must make a - Will save (DC 17) or be stunned for 3d4 rounds -*/ -//::////////////////////////////////////////////// -//:: Created By: Keith Warner -//:: Created On: Dec 5/02 -//::////////////////////////////////////////////// - -#include "x2_i0_spells" - -void main() -{ - int nSaveDC = 14 +(GetHitDice(OBJECT_SELF)/2) + GetAbilityModifier(ABILITY_WISDOM,OBJECT_SELF); - int nDC = (GetHitDice(OBJECT_SELF)-20)+ nSaveDC; - object oTarget = GetSpellTargetObject(); - object oCaster = OBJECT_SELF; - float fRange = 15.0f; - int nDuration = d4(1)+1; - //DoMindBlast(nSaveDC, d6(10), 15.0f); - - -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(oCaster)) -{ - -//Make them stop what they are doing instantly! -AssignCommand(oCaster, ClearAllActions()); - -//Though the player may show animation, nothing happens! :) -//SetModuleOverrideSpellScriptFinished(); - -FloatingTextStringOnCreature("All spells fizzle in town.", oCaster); - -return; -} - -/////////////////////////////////////////////////////////////////////////////// -//Handle Jail... -//NO ITEMS WORK IN JAIL!!! -if(GetLocalInt(GetArea(oCaster), "JAIL")==1) -{ - AssignCommand(oCaster, ClearAllActions()); - //Though the player may show animation, nothing happens! :) - //SetModuleOverrideSpellScriptFinished(); - - return; -} - -/////////////////////////////////////////////////////////////////////////////// - - { - int nStunTime; - float fDelay; - - location lTargetLocation = GetSpellTargetLocation(); - object oTarget; - effect eCone; - effect eVis = EffectVisualEffect(VFX_IMP_SONIC); - - oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, fRange, lTargetLocation, TRUE); - - while(GetIsObjectValid(oTarget)) - { - int nApp = GetAppearanceType(oTarget); - int bImmune = FALSE; - //---------------------------------------------------------------------- - // Hack to make mind flayers immune to their psionic attacks... - //---------------------------------------------------------------------- - if (nApp == 413 ||nApp== 414 || nApp == 415) - { - bImmune = TRUE; - } - - if(spellsIsTarget(oTarget,SPELL_TARGET_STANDARDHOSTILE,OBJECT_SELF) && oTarget != OBJECT_SELF && !bImmune ) - { - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20; - // already stunned - if (GetHasSpellEffect(GetSpellId(),oTarget)) - { - // only affects the targeted object - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_STUN), oTarget); - int nDamage; - if (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF)>0) - { - nDamage = d6(GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF)/2); - } - else - { - nDamage = d6(GetHitDice(OBJECT_SELF)/2); - } - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamage), oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_BIGBYS_FORCEFUL_HAND), oTarget); - } - else if (WillSave(oTarget, nDC) < 1) - { - //Calculate the length of the stun - nStunTime = nDuration; - //Set stunned effect - eCone = EffectStunned(); - eCone = SupernaturalEffect(eCone); //Hack to make it bypass immunities :) - //Apply the VFX impact and effects - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCone, oTarget, RoundsToSeconds(nStunTime))); - } - } - //Get next target in spell area - oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, fRange, lTargetLocation, TRUE); - } -} - -} - diff --git a/_removed files/x2_p_craftskills.dlg b/_removed files/x2_p_craftskills.dlg deleted file mode 100644 index 4066ed93081b18cb1c6161e7f43f49a527062068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12806 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 - { - nStat =20; - } - - if (nStat <1) - { - nStat = 0; - } - } - - object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED); - // Make the blade require concentration - SetLocalInt(oSummon,"X2_L_CREATURE_NEEDS_CONCENTRATION",TRUE); - SetPlotFlag (oSummon,TRUE); - object oWeapon; - //Create item on the creature, epuip it and add properties. - oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oSummon); - if (nStat > 0) - { - IPSetWeaponEnhancementBonus(oWeapon, nStat); - } - SetDroppableFlag(oWeapon, FALSE); -} - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nDuration = GetCasterLevel(OBJECT_SELF); - effect eSummon = EffectSummonCreature("blackblade01"); - effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3); - //Make metamagic check for extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2;//Duration is +100% - } - //Apply the VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), RoundsToSeconds(nDuration)); - DelayCommand(1.5, spellsCreateItemForSummoned()); -} diff --git a/_removed files/x2_s0_blckstff.nss b/_removed files/x2_s0_blckstff.nss deleted file mode 100644 index b3254728..00000000 --- a/_removed files/x2_s0_blckstff.nss +++ /dev/null @@ -1,89 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Blackstaff -//:: X2_S0_Blckstff -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Adds +4 enhancement bonus, On Hit: Dispel. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 29, 2002 -//::////////////////////////////////////////////// -//:: Updated by Andrew Nobbs May 07, 2003 -//:: 2003-07-07: Stacking Spell Pass, Georg Zoeller -//:: 2003-07-15: Complete Rewrite to make use of Item Property System - -#include "nw_i0_spells" -#include "x2_i0_spells" - -#include "x2_inc_spellhook" - - -void AddBlackStaffEffectOnWeapon (object oTarget, float fDuration) -{ - IPSafeAddItemProperty(oTarget, ItemPropertyEnhancementBonus(8), fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE, TRUE); - IPSafeAddItemProperty(oTarget, ItemPropertyOnHitProps(IP_CONST_ONHIT_DISPELMAGIC, IP_CONST_ONHIT_SAVEDC_16), fDuration,X2_IP_ADDPROP_POLICY_REPLACE_EXISTING ); - IPSafeAddItemProperty(oTarget, ItemPropertyVisualEffect(ITEM_VISUAL_EVIL), fDuration,X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE ); - return; -} - -void main() -{ - - /* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - - //Declare major variables - effect eVis = EffectVisualEffect(VFX_IMP_EVIL_HELP); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - int nDuration = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - - object oMyWeapon = IPGetTargetedOrEquippedMeleeWeapon(); - - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration * 2; //Duration is +100% - } - - if(GetIsObjectValid(oMyWeapon) ) - { - SignalEvent(GetItemPossessor(oMyWeapon), EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - - if (GetBaseItemType(oMyWeapon) == BASE_ITEM_QUARTERSTAFF) - { - if (nDuration>0) - { - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, GetItemPossessor(oMyWeapon)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDur, GetItemPossessor(oMyWeapon), RoundsToSeconds(nDuration)); - AddBlackStaffEffectOnWeapon(oMyWeapon, RoundsToSeconds(nDuration)); - } - return; - } - else - { - FloatingTextStrRefOnCreature(83620, OBJECT_SELF); // not a qstaff - return; - } - } - else - { - FloatingTextStrRefOnCreature(83615, OBJECT_SELF); - return; - } -} diff --git a/_removed files/x2_s0_combust.nss b/_removed files/x2_s0_combust.nss deleted file mode 100644 index 12e304ed..00000000 --- a/_removed files/x2_s0_combust.nss +++ /dev/null @@ -1,214 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Combust -//:: X2_S0_Combust -//:: Copyright (c) 2000 Bioware Corp. -//::////////////////////////////////////////////// -/* - The initial eruption of flame causes 2d6 fire damage +1 - point per caster level(maximum +10) - with no saving throw. - - Further, the creature must make - a Reflex save or catch fire taking a further 1d6 points - of damage. This will continue until the Reflex save is - made. - - There is an undocumented artificial limit of - 10 + casterlevel rounds on this spell to prevent - it from running indefinitly when used against - fire resistant creatures with bad saving throws - -*/ -//::////////////////////////////////////////////// -// Created: 2003/09/05 Georg Zoeller -//::////////////////////////////////////////////// - -#include "x2_I0_SPELLS" -#include "x2_inc_toollib" -#include "x2_inc_spellhook" - -void RunCombustImpact(object oTarget, object oCaster, int nLevel, int nMetaMagic); - -void main() -{ - - object oTarget = GetSpellTargetObject(); - object oCaster = OBJECT_SELF; - - //-------------------------------------------------------------------------- - // Spellcast Hook Code - // Added 2003-06-20 by Georg - // If you want to make changes to all spells, check x2_inc_spellhook.nss to - // find out more - //-------------------------------------------------------------------------- - if (!X2PreSpellCastCode()) - { - return; - } - // End of Spell Cast Hook - - //-------------------------------------------------------------------------- - // Calculate the save DC - //-------------------------------------------------------------------------- - //Epic DC Bonus Added - int nDB; - int nAdjs; - nAdjs = GetCasterLevel(OBJECT_SELF) - 20; - if(GetCasterLevel(OBJECT_SELF)>=23) - { - nDB = nAdjs/3; - SendMessageToPC(OBJECT_SELF, "Your Epic DC Bonus = + " + IntToString(nDB) + " DC"); - } - else if(GetCasterLevel(OBJECT_SELF) <=22) - { - nDB = 0; - } - int nDC = GetSpellSaveDC() + nDB; - int nLevel = GetCasterLevel(OBJECT_SELF); - - - //-------------------------------------------------------------------------- - // Calculate the damage, 2d6 + casterlevel, capped at +10 - //-------------------------------------------------------------------------- - int nDamage = GetCasterLevel(OBJECT_SELF); - if (nDamage > 20) - { - nDamage = 20; - } - int nMetaMagic = GetMetaMagicFeat(); - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage += 12;//Damage is at max - } - else - { - nDamage += d6(2); - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2);//Damage/Healing is +50% - } - } - - //-------------------------------------------------------------------------- - // Calculate the duration (we need a duration or bad things would happen - // if someone is immune to fire but fails his safe all the time) - //-------------------------------------------------------------------------- - int nDuration = 10 + GetCasterLevel(OBJECT_SELF); - if (nDuration < 1) - { - nDuration = 10; - } - - //-------------------------------------------------------------------------- - // Setup Effects - //-------------------------------------------------------------------------- - effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); - effect eDur = EffectVisualEffect(498); - - if(!GetIsReactionTypeFriendly(oTarget)) - { - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - - //----------------------------------------------------------------------- - // Check SR - //----------------------------------------------------------------------- - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - - //------------------------------------------------------------------- - // Apply VFX - //------------------------------------------------------------------- - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - TLVFXPillar(VFX_IMP_FLAME_M, GetLocation(oTarget), 5, 0.1f,0.0f, 2.0f); - - //------------------------------------------------------------------ - // This spell no longer stacks. If there is one of that type, - // that's enough - //------------------------------------------------------------------ - if (GetHasSpellEffect(GetSpellId(),oTarget) || GetHasSpellEffect(SPELL_INFERNO,oTarget) ) - { - FloatingTextStrRefOnCreature(100775,OBJECT_SELF,FALSE); - return; - } - - //------------------------------------------------------------------ - // Apply the VFX that is used to track the spells duration - //------------------------------------------------------------------ - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDur, oTarget, RoundsToSeconds(nDuration)); - - //------------------------------------------------------------------ - // Save the spell save DC as a variable for later retrieval - //------------------------------------------------------------------ - SetLocalInt(oTarget,"XP2_L_SPELL_SAVE_DC_" + IntToString (SPELL_COMBUST), nDC); - - //------------------------------------------------------------------ - // Tick damage after 6 seconds again - //------------------------------------------------------------------ - DelayCommand(6.0, RunCombustImpact(oTarget,oCaster,nLevel, nMetaMagic)); - } - } -} - -void RunCombustImpact(object oTarget, object oCaster, int nLevel, int nMetaMagic) -{ - //-------------------------------------------------------------------------- - // Check if the spell has expired (check also removes effects) - //-------------------------------------------------------------------------- - if (GZGetDelayedSpellEffectsExpired(SPELL_COMBUST,oTarget,oCaster)) - { - return; - } - - if (GetIsDead(oTarget) == FALSE) - { - - int nDC = GetLocalInt(oTarget,"XP2_L_SPELL_SAVE_DC_" + IntToString (SPELL_COMBUST)); - - if(!MySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_FIRE)) - { - //------------------------------------------------------------------ - // Calculate the damage, 1d6 + casterlevel, capped at +10 - //------------------------------------------------------------------ - int nDamage = nLevel; - if (nDamage > 20) - { - nDamage = 20; - } - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage += 6; - } - else - { - nDamage += d6(); - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2); - } - } - - effect eDmg = EffectDamage(nDamage,DAMAGE_TYPE_FIRE); - effect eVFX = EffectVisualEffect(VFX_IMP_FLAME_S); - - ApplyEffectToObject(DURATION_TYPE_INSTANT,eDmg,oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,oTarget); - - //------------------------------------------------------------------ - // After six seconds (1 round), check damage again - //------------------------------------------------------------------ - DelayCommand(6.0f,RunCombustImpact(oTarget,oCaster, nLevel,nMetaMagic)); - } - else - { - DeleteLocalInt(oTarget,"XP2_L_SPELL_SAVE_DC_" + IntToString (SPELL_COMBUST)); - GZRemoveSpellEffects(SPELL_COMBUST, oTarget); - } - - } - -} - - - - - diff --git a/_removed files/x2_s0_crshadow.nss b/_removed files/x2_s0_crshadow.nss deleted file mode 100644 index 3b4e8e73..00000000 --- a/_removed files/x2_s0_crshadow.nss +++ /dev/null @@ -1,63 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Create Undead -//:: x2_s0_CrShadow.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - This spell will summon a shadow - 20% of the time, - the shadow will be hostile to the summoner. -*/ -//::////////////////////////////////////////////// -//:: Created By: Keith Warner -//:: Created On: Jan 2/03 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" - -void main() -{ - - /* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - - //Declare major variables - int nMetaMagic = GetMetaMagicFeat(); - int nCasterLevel = GetCasterLevel(OBJECT_SELF); - int nDuration = nCasterLevel; - nDuration = 24; - effect eSummon; - - //Check for metamagic extend - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - //Set the summoned undead to the appropriate template based on the caster level - if (d100() > 20) - { - eSummon = EffectSummonCreature("shadfiend01",VFX_FNF_SUMMON_UNDEAD); - } - else - { - eSummon = EffectSummonCreature("x2shfiendfoe",VFX_FNF_SUMMON_UNDEAD); - } - - - //Apply VFX impact and summon effect - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); -} - diff --git a/_removed files/x2_s0_dtharm.nss b/_removed files/x2_s0_dtharm.nss deleted file mode 100644 index dc978748..00000000 --- a/_removed files/x2_s0_dtharm.nss +++ /dev/null @@ -1,70 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Death Armor -//:: X2_S0_DthArm -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - You are surrounded with a magical aura that injures - creatures that contact it. Any creature striking - you with its body or handheld weapon takes 1d4 points - of damage +1 point per 2 caster levels (maximum +5). -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Jan 6, 2003 -//::////////////////////////////////////////////// -//:: Last Updated By: Andrew Nobbs, 02/06/2003 -//:: 2003-07-07: Stacking Spell Pass, Georg Zoeller - -#include "x2_inc_spellhook" -#include "x0_i0_spells" - -void main() -{ - - /* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - object oTarget = GetSpellTargetObject(); - - int nDuration = GetCasterLevel(oTarget); - int nCasterLvl = GetCasterLevel(oTarget)/2; - if(nCasterLvl > 10) - { - nCasterLvl = 10; - } - int nMetaMagic = GetMetaMagicFeat(); - - effect eShield = EffectDamageShield(nCasterLvl, DAMAGE_BONUS_1d8, DAMAGE_TYPE_MAGICAL); - effect eDur = EffectVisualEffect(463); - - //Link effects - effect eLink = EffectLinkEffects(eShield, eDur); - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration *2; //Duration is +100% - } - - //Stacking Spellpass, 2003-07-07, Georg - RemoveEffectsFromSpell(oTarget, GetSpellId()); - - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); -} - diff --git a/_removed files/x2_s0_elecloop.nss b/_removed files/x2_s0_elecloop.nss deleted file mode 100644 index 72006fae..00000000 --- a/_removed files/x2_s0_elecloop.nss +++ /dev/null @@ -1,157 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Gedlee's Electric Loop -//:: X2_S0_ElecLoop -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - You create a small stroke of lightning that - cycles through all creatures in the area of effect. - The spell deals 1d6 points of damage per 2 caster - levels (maximum 5d6). Those who fail their Reflex - saves must succeed at a Will save or be stunned - for 1 round. - - Spell is standard hostile, so if you use it - in hardcore mode, it will zap yourself! - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: Oct 19 2003 -//::////////////////////////////////////////////// - - -#include "x2_I0_SPELLS" -#include "x2_inc_spellhook" - -void main() -{ - - //-------------------------------------------------------------------------- - // Spellcast Hook Code - // Added 2003-06-20 by Georg - // If you want to make changes to all spells, check x2_inc_spellhook.nss to - // find out more - //-------------------------------------------------------------------------- - if (!X2PreSpellCastCode()) - { - return; - } - // End of Spell Cast Hook - - - location lTarget = GetSpellTargetLocation(); - effect eStrike = EffectVisualEffect(VFX_IMP_LIGHTNING_S); - int nMetaMagic = GetMetaMagicFeat(); - float fDelay; - effect eBeam; - int nDamage; - int nPotential; - effect eDam; - object oLastValid; - effect eStun = EffectLinkEffects(EffectVisualEffect(VFX_IMP_STUN),EffectStunned()); - - //Epic DC Bonus Added - int nDC; - int nAdjs; - nAdjs = GetCasterLevel(OBJECT_SELF) - 20; - if(GetCasterLevel(OBJECT_SELF)>=23) - { - nDC = nAdjs/3; - SendMessageToPC(OBJECT_SELF, "Your Epic DC Bonus = +" + IntToString(nDC) + " DC"); - } - else if(GetCasterLevel(OBJECT_SELF) <=22) - { - nDC = 0; - } - - //-------------------------------------------------------------------------- - // Calculate Damage Dice. 1d per 2 caster levels, max 5d - //-------------------------------------------------------------------------- - int nNumDice = GetCasterLevel(OBJECT_SELF)/2; - if (nNumDice<1) - { - nNumDice = 1; - } - else if (nNumDice >10) - { - nNumDice = 10; - } - - //-------------------------------------------------------------------------- - // Loop through all targets - //-------------------------------------------------------------------------- - - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE); - while (GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - - //------------------------------------------------------------------ - // Calculate delay until spell hits current target. If we are the - // first target, the delay is the time until the spell hits us - //------------------------------------------------------------------ - if (GetIsObjectValid(oLastValid)) - { - fDelay += 0.2f; - fDelay += GetDistanceBetweenLocations(GetLocation(oLastValid), GetLocation(oTarget))/20; - } - else - { - fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; - } - - //------------------------------------------------------------------ - // If there was a previous target, draw a lightning beam between us - // and iterate delay so it appears that the beam is jumping from - // target to target - //------------------------------------------------------------------ - if (GetIsObjectValid(oLastValid)) - { - eBeam = EffectBeam(VFX_BEAM_LIGHTNING, oLastValid, BODY_NODE_CHEST); - DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam,oTarget,1.5f)); - } - - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - - nPotential = MaximizeOrEmpower(6, nNumDice, nMetaMagic); - nDamage = GetReflexAdjustedDamage(nPotential, oTarget, GetSpellSaveDC() + nDC, SAVING_THROW_TYPE_ELECTRICITY); - - //-------------------------------------------------------------- - // If we failed the reflex save, we save vs will or are stunned - // for one round - //-------------------------------------------------------------- - if (nPotential == nDamage || (GetHasFeat(FEAT_IMPROVED_EVASION,oTarget) && nDamage == (nPotential/2))) - { - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_MIND_SPELLS, OBJECT_SELF, fDelay)) - { - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eStun,oTarget, RoundsToSeconds(1))); - } - - } - - - if (nDamage >0) - { - eDam = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eStrike, oTarget)); - } - } - - //------------------------------------------------------------------ - // Store Target to make it appear that the lightning bolt is jumping - // from target to target - //------------------------------------------------------------------ - oLastValid = oTarget; - - } - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE ); - } - -} - - diff --git a/_removed files/x2_s0_glphwardx.nss b/_removed files/x2_s0_glphwardx.nss deleted file mode 100644 index 8a29670d..00000000 --- a/_removed files/x2_s0_glphwardx.nss +++ /dev/null @@ -1,117 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Glyph of Warding Heartbet -//:: x2_o0_glyphhb -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - Default Glyph of warding damage script - - This spellscript is fired when someone triggers - a player cast Glyph of Warding - - - Check x2_o0_hhb.nss and the Glyph of Warding - placeable object for details - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: 2003-09-02 -//::////////////////////////////////////////////// - -#include "x0_i0_spells" -#include "epicdc_inc" - -void DoDamage(int nDamage, object oTarget) -{ - effect eVis = EffectVisualEffect(VFX_IMP_SONIC); - effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_SONIC); - if(nDamage > 0) - { - //Apply VFX impact and damage effect - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - DelayCommand(0.01, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - } -} - -void main() -{ - - //Declare major variables - object oTarget = GetLocalObject(OBJECT_SELF,"X2_GLYPH_LAST_ENTER"); - location lTarget = GetLocation(OBJECT_SELF); - effect eDur = EffectVisualEffect(445); - int nDamage; - int nCasterLevel = GetLocalInt(OBJECT_SELF,"X2_PLC_GLYPH_CASTER_LEVEL"); - int nMetaMagic = GetLocalInt(OBJECT_SELF,"X2_PLC_GLYPH_CASTER_METAMAGIC"); - object oCreator = GetLocalObject(OBJECT_SELF,"X2_PLC_GLYPH_CASTER") ; - - if ( GetLocalInt (OBJECT_SELF,"X2_PLC_GLYPH_PLAYERCREATED") == 0 ) - { - oCreator = OBJECT_SELF; - } - - if (!GetIsObjectValid(oCreator)) - { - DestroyObject(OBJECT_SELF); - return; - } - - int nDice = nCasterLevel /2; - - if (nDice > 10) - nDice = 10; - else if (nDice <1 ) - nDice = 1; - - effect eDam; - effect eExplode = EffectVisualEffect(459); - - //Check the faction of the entering object to make sure the entering object is not in the casters faction - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Cycle through the targets in the explosion area - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - while(GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget,SPELL_TARGET_STANDARDHOSTILE,oCreator)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(oCreator, GetSpellId())); - //Make SR check - if (!MyResistSpell(oCreator, oTarget)) - { - nDamage = d8(nDice); - //Enter Metamagic conditions - - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 8 * 10;//Damage is at max - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + (nDamage/2);//Damage/Healing is +50% - } - - //Change damage according to Reflex, Evasion and Improved Evasion +5 DC Added - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC() + 5, SAVING_THROW_TYPE_SONIC, oCreator); - - - //---------------------------------------------------------- - // Have the creator do the damage so he gets feedback strings - //---------------------------------------------------------- - if (oCreator != OBJECT_SELF) - { - AssignCommand(oCreator, DoDamage(nDamage,oTarget)); - } - else - { - DoDamage(nDamage,oTarget); - } - - } - } - //Get next target in the sequence - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} diff --git a/_removed files/x2_s0_grmagweap.nss b/_removed files/x2_s0_grmagweap.nss deleted file mode 100644 index 0086922b..00000000 --- a/_removed files/x2_s0_grmagweap.nss +++ /dev/null @@ -1,89 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Greater Magic Weapon -//:: X2_S0_GrMagWeap -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Grants a +1 enhancement bonus per 3 caster levels - (maximum of +5). - lasts 1 hour per level -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 28, 2002 -//::////////////////////////////////////////////// -//:: Updated by Andrew Nobbs May 08, 2003 -//:: 2003-07-07: Stacking Spell Pass, Georg Zoeller -//:: 2003-07-17: Complete Rewrite to make use of Item Property System - - -#include "nw_i0_spells" -#include "x2_i0_spells" - -#include "x2_inc_spellhook" - -void AddGreaterEnhancementEffectToWeapon(object oMyWeapon, float fDuration, int nBonus) -{ - IPSafeAddItemProperty(oMyWeapon,ItemPropertyEnhancementBonus(nBonus), fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,FALSE,TRUE); - return; -} - -void main() -{ - - /* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - - //Declare major variables - effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - int nDuration = GetCasterLevel(OBJECT_SELF); - int nCasterLvl = nDuration / 3; - int nMetaMagic = GetMetaMagicFeat(); - - //Limit nCasterLvl to 5, so it max out at +5 enhancement to the weapon. - if(nCasterLvl > 8) - { - nCasterLvl = 8; - } - - object oMyWeapon = IPGetTargetedOrEquippedMeleeWeapon(); - - if (nMetaMagic == METAMAGIC_EXTEND) - { - nDuration = nDuration * 2; //Duration is +100% - } - - if(GetIsObjectValid(oMyWeapon) ) - { - SignalEvent(GetItemPossessor(oMyWeapon), EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - - if (nDuration>0) - { - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, GetItemPossessor(oMyWeapon)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDur, GetItemPossessor(oMyWeapon), HoursToSeconds(nDuration)); - AddGreaterEnhancementEffectToWeapon(oMyWeapon, (HoursToSeconds(nDuration)), nCasterLvl); - - } - return; - } - else - { - FloatingTextStrRefOnCreature(83615, OBJECT_SELF); - return; - } -} diff --git a/_removed files/x2_s0_horiboom.nss b/_removed files/x2_s0_horiboom.nss deleted file mode 100644 index 66be8d8f..00000000 --- a/_removed files/x2_s0_horiboom.nss +++ /dev/null @@ -1,90 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Horizikaul's Boom -//:: X2_S0_HoriBoom -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// You blast the target with loud and high-pitched -// sounds. The target takes 1d4 points of sonic -// damage per two caster levels (maximum 5d4) and -// must make a Will save or be deafened for 1d4 -// rounds. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 22, 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: Andrew Nobbs, 02/06/2003 - -#include "NW_I0_SPELLS" -#include "x0_i0_spells" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables ( fDist / (3.0f * log( fDist ) + 2.0f) ) - object oTarget = GetSpellTargetObject(); - int nCasterLvl = GetCasterLevel(OBJECT_SELF)/2; - int nRounds = d4(1); - int nMetaMagic = GetMetaMagicFeat(); - effect eVis = EffectVisualEffect(VFX_IMP_SONIC); - effect eDeaf = EffectDeaf(); - - //Minimum caster level of 1, maximum of 15. - if(nCasterLvl == 0) - { - nCasterLvl = 1; - } - else if (nCasterLvl > 5) - { - nCasterLvl = 5; - } - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - if(!MyResistSpell(OBJECT_SELF, oTarget)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - //Roll damage - int nDam = d4(nCasterLvl); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDam = 4 * nCasterLvl; //Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDam = nDam + nDam/2; //Damage/Healing is +50% - } - //Set damage effect - effect eDam = EffectDamage(nDam, DAMAGE_TYPE_SONIC); - //Apply the MIRV and damage effect - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_MIND_SPELLS)) - { - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDeaf, oTarget, RoundsToSeconds(nRounds)); - } - } - } -} diff --git a/_removed files/x2_s0_monregen.nss b/_removed files/x2_s0_monregen.nss deleted file mode 100644 index 55f82a65..00000000 --- a/_removed files/x2_s0_monregen.nss +++ /dev/null @@ -1,64 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Monstrous Regeneration -//:: X2_S0_MonRegen -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Grants the selected target 3 HP of regeneration - every round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 25, 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: Andrew Nobbs May 09, 2003 -//:: 2003-07-07: Stacking Spell Pass, Georg Zoeller - -#include "x2_inc_spellhook" -#include "x0_i0_spells" - -void main() -{ - - - //-------------------------------------------------------------------------- - // Spellcast Hook Code - // Added 2003-06-20 by Georg - // If you want to make changes to all spells, check x2_inc_spellhook.nss to - // find out more - //-------------------------------------------------------------------------- - if (!X2PreSpellCastCode()) - { - return; - } - // End of Spell Cast Hook - - - object oTarget = GetSpellTargetObject(); - - /* Bug fix 21/07/03: Andrew. Lowered regen to 3 HP per round, instead of 10. */ - effect eRegen = EffectRegenerate(6, 6.0); - - effect eVis = EffectVisualEffect(VFX_IMP_HEAD_NATURE); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - - effect eLink = EffectLinkEffects(eRegen, eDur); - - int nMeta = GetMetaMagicFeat(); - int nLevel = (GetCasterLevel(OBJECT_SELF)/2)+1; - - if (nMeta == METAMAGIC_EXTEND) - { - nLevel *= 2; - } - - // Stacking Spellpass, 2003-07-07, Georg ... just in case - RemoveEffectsFromSpell(oTarget, GetSpellId()); - - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - - //Apply effects and VFX - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nLevel)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - -} diff --git a/_removed files/x2_s0_scntsphere.nss b/_removed files/x2_s0_scntsphere.nss deleted file mode 100644 index a3593b37..00000000 --- a/_removed files/x2_s0_scntsphere.nss +++ /dev/null @@ -1,105 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Scintillating Sphere -//:: X2_S0_ScntSphere -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* -// A scintillating sphere is a burst of electricity -// that detonates with a low roar and inflicts 1d6 -// points of damage per caster level (maximum of 10d6) -// to all creatures within the area. Unattended objects -// also take damage. The explosion creates almost no pressure. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 25 , 2002 -//::////////////////////////////////////////////// -//:: Last Updated By: Andrew Nobbs, 02/06/2003 - -#include "NW_I0_SPELLS" -#include "x0_i0_spells" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - - //Declare major variables - object oCaster = OBJECT_SELF; - int nCasterLvl = GetCasterLevel(oCaster); - int nMetaMagic = GetMetaMagicFeat(); - int nDamage; - float fDelay; - effect eExplode = EffectVisualEffect(459); - effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S); - effect eDam; - - //Get the spell target location as opposed to the spell target. - location lTarget = GetSpellTargetLocation(); - //Limit Caster level for the purposes of damage - if (nCasterLvl > 15) - { - nCasterLvl = 15; - } - //Apply the fireball explosion at the location captured above. - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - //Declare the spell shape, size and the location. Capture the first target object in the shape. - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - //Cycle through the targets within the spell shape until an invalid object is captured. - while (GetIsObjectValid(oTarget)) - { - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - //Get the distance between the explosion and the target to calculate delay - fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; - if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) - { - //Roll damage for each target - nDamage = d6(nCasterLvl); - //Resolve metamagic - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nDamage = 6 * nCasterLvl; - } - else if (nMetaMagic == METAMAGIC_EMPOWER) - { - nDamage = nDamage + nDamage / 2; - } - //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. - nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_ELECTRICITY); - //Set the damage effect - eDam = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); - if(nDamage > 0) - { - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the flame that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } -} - diff --git a/_removed files/x2_s0_stneholda.nss b/_removed files/x2_s0_stneholda.nss deleted file mode 100644 index 9394692a..00000000 --- a/_removed files/x2_s0_stneholda.nss +++ /dev/null @@ -1,55 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Stonehold -//:: X2_S0_StneholdA -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creates an area of effect that will cover the - creature with a stone shell holding them in - place. -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: August 2003 -//:: Updated : October 2003 -//::////////////////////////////////////////////// - - -#include "NW_I0_SPELLS" -#include "x0_i0_spells" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - //Declare major variables - int nRounds; - effect eHold = EffectParalyze(); - effect eDur = EffectVisualEffect(476 ); - effect eFind; - object oTarget; - object oCreator; - float fDelay; - int nMetaMagic = GetMetaMagicFeat(); - - effect eLink = EffectLinkEffects(eDur,eHold); - //Get the first object in the persistant area - oTarget = GetEnteringObject(); - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_STONEHOLD)); - //Make a SR check - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget)) - { - //Make a Will Save - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_SPELL)) - { - nRounds = MaximizeOrEmpower(6, 1, nMetaMagic); - fDelay = GetRandomDelay(0.45, 1.85); - //Apply the VFX impact and linked effects - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nRounds))); - } - } - } -} diff --git a/_removed files/x2_s0_stneholdc.nss b/_removed files/x2_s0_stneholdc.nss deleted file mode 100644 index b7669662..00000000 --- a/_removed files/x2_s0_stneholdc.nss +++ /dev/null @@ -1,67 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Stonehold -//:: X2_S0_StneholdC -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creates an area of effect that will cover the - creature with a stone shell holding them in - place. -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: May 04, 2002 -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -#include "x0_i0_spells" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void main() -{ - - //Declare major variables - int nRounds; - int nMetaMagic = GetMetaMagicFeat(); - effect eHold = EffectParalyze(); - effect eDur = EffectVisualEffect(476 ); - eHold = EffectLinkEffects(eDur, eHold); - effect eFind; - object oTarget; - object oCreator; - float fDelay; - - //-------------------------------------------------------------------------- - // GZ 2003-Oct-15 - // When the caster is no longer there, all functions calling - // GetAreaOfEffectCreator will fail. - //-------------------------------------------------------------------------- - if (!GetIsObjectValid(GetAreaOfEffectCreator())) - { - DestroyObject(OBJECT_SELF); - return; - } - - oTarget = GetFirstInPersistentObject(); - while(GetIsObjectValid(oTarget)) - { - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) - { - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_STONEHOLD)); - if (!GetHasSpellEffect(SPELL_STONEHOLD,oTarget)) - { - if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget)) - { - if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetEpicSpellSaveDC(), SAVING_THROW_TYPE_SPELL)) - { - nRounds = MaximizeOrEmpower(6, 1, nMetaMagic); - fDelay = GetRandomDelay(0.75, 1.75); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHold, oTarget, RoundsToSeconds(nRounds))); - } - } - } - } - oTarget = GetNextInPersistentObject(); - } -} diff --git a/_removed files/x2_s0_undeath.nss b/_removed files/x2_s0_undeath.nss deleted file mode 100644 index 706e3715..00000000 --- a/_removed files/x2_s0_undeath.nss +++ /dev/null @@ -1,155 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Undeath to Death -//:: X2_S0_Undeath -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - - This spell slays 1d4 HD worth of undead creatures - per caster level (maximum 20d4). Creatures with - the fewest HD are affected first; - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: August 13,2003 -//::////////////////////////////////////////////// - - -#include "NW_I0_SPELLS" -#include "x0_i0_spells" -#include "x2_inc_toollib" -#include "x2_inc_spellhook" -#include "epicdc_inc" - -void DoUndeadToDeath(object oCreature) -{ - SignalEvent(oCreature, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - SetLocalInt(oCreature,"X2_EBLIGHT_I_AM_DEAD", TRUE); - - if (!MySavingThrow(SAVING_THROW_WILL,oCreature, GetEpicSpellSaveDC(),SAVING_THROW_TYPE_NONE,OBJECT_SELF)) - { - float fDelay = GetRandomDelay(0.2f,0.4f); - if (!MyResistSpell(OBJECT_SELF, oCreature, fDelay)) - { - effect eDeath = EffectDamage(GetCurrentHitPoints(oCreature),DAMAGE_TYPE_DIVINE,DAMAGE_POWER_ENERGY); - effect eVis = EffectVisualEffect(VFX_IMP_DEATH); - DelayCommand(fDelay+0.5f,ApplyEffectToObject(DURATION_TYPE_INSTANT,eDeath,oCreature)); - DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oCreature)); - } - else - { - DelayCommand(1.0f,DeleteLocalInt(oCreature,"X2_EBLIGHT_I_AM_DEAD")); - } - } - else - { - DelayCommand(1.0f,DeleteLocalInt(oCreature,"X2_EBLIGHT_I_AM_DEAD")); - } -} - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-07-07 by Georg Zoeller - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - int nMetaMagic = GetMetaMagicFeat(); - - -// End of Spell Cast Hook - - // Impact VFX - location lLoc = GetSpellTargetLocation(); - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_STRIKE_HOLY),lLoc); - TLVFXPillar(VFX_FNF_LOS_HOLY_20, lLoc,3,0.0f); - - - // build list with affected creatures - - // calculation - int nLevel = GetCasterLevel(OBJECT_SELF); - if (nLevel>30) - { - nLevel = 30; - } - - // calculate number of hitdice affected - int nLow = 9999; - object oLow; - int nHDLeft = nLevel *d4(); - //Enter Metamagic conditions - if (nMetaMagic == METAMAGIC_MAXIMIZE) - { - nHDLeft = 4 * GetCasterLevel(OBJECT_SELF);//Damage is at max - } - if (nMetaMagic == METAMAGIC_EMPOWER) - { - nHDLeft += (nHDLeft/2); //Damage/Healing is +50% - } - - int nCurHD; - object oFirst = GetFirstObjectInShape(SHAPE_SPHERE, 20.0f,lLoc ); - - // Only start loop if there is a creature in the area of effect - if (GetIsObjectValid(oFirst)) - { - - object oTarget = oFirst; - while (GetIsObjectValid(oTarget) && nHDLeft >0) - { - - if (GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) - { - nCurHD = GetHitDice(oTarget); - if (nCurHD <= nHDLeft ) - { - if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - // ignore creatures already affected - if (GetLocalInt(oTarget,"X2_EBLIGHT_I_AM_DEAD") == 0 && !GetPlotFlag(oTarget) && !GetIsDead(oTarget)) - { - // store the creature with the lowest HD - if (GetHitDice(oTarget) <= nLow) - { - nLow = GetHitDice(oTarget); - oLow = oTarget; - } - } - } - } - } - - // Get next target - oTarget = GetNextObjectInShape(SHAPE_SPHERE, 20.0f ,lLoc); - - // End of cycle, time to kill the lowest creature - if (!GetIsObjectValid(oTarget)) - { - // we have a valid lowest creature we can affect with the remaining HD - if (GetIsObjectValid(oLow) && nHDLeft >= nLow) - { - DoUndeadToDeath(oLow); - // decrement remaining HD - nHDLeft -= nLow; - // restart the loop - oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 20.0f, GetSpellTargetLocation()); - } - // reset counters - oLow = OBJECT_INVALID; - nLow = 9999; - } - } - } - } diff --git a/_removed files/x2_s1_chaosspit.nss b/_removed files/x2_s1_chaosspit.nss deleted file mode 100644 index 0b5c097b..00000000 --- a/_removed files/x2_s1_chaosspit.nss +++ /dev/null @@ -1,90 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Slaad Chaos Spittle -//:: x2_s1_chaosspit -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Creature must make a ranged touch attack to hit - the intended target. - - Damage is 20d4 for black slaad, 10d4 for white - slaad and hd/2 d4 for any other creature this - spell is assigned to - - A shifter will do his shifter level /3 d6 - points of damage - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: Sept 08 , 2003 -//::////////////////////////////////////////////// -#include "x0_i0_spells" -#include "NW_I0_SPELLS" -void main() -{ - //Declare major variables - object oTarget = GetSpellTargetObject(); - int nHD = GetHitDice(OBJECT_SELF); - effect eVis = EffectVisualEffect(VFX_IMP_ACID_L); - effect eVis2 = EffectVisualEffect(VFX_IMP_ACID_S); - effect eBolt; - int nCount; - -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - - if (GetIsPC(OBJECT_SELF)) - { - nCount = (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF)/3) + 2 ; - } - else if (GetAppearanceType(OBJECT_SELF) == 426) // black slaad = 20d6 - { - nCount = 20 ; - } - else if (GetAppearanceType(OBJECT_SELF) == 427) // white slaad = 10d6 - { - nCount = 10 ; - } - else - { - nCount = nHD /2; - } - - if (nCount == 0) - { - nCount = 1; - } - - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - int nDamage = d4(nCount); - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. - - //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_MAGICAL); - if(nDamage > 0) - { - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); - } - } - } -} diff --git a/_removed files/x2_s1_petrgaze.nss b/_removed files/x2_s1_petrgaze.nss deleted file mode 100644 index 994ccd23..00000000 --- a/_removed files/x2_s1_petrgaze.nss +++ /dev/null @@ -1,92 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Gaze attack for shifter forms -//:: x2_s1_petrgaze -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - - Petrification gaze for polymorph type - basilisk and medusa - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: July, 09, 2003 -//::////////////////////////////////////////////// - -#include "x0_i0_spells" -#include "x2_inc_shifter" - -void main() -{ -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - //-------------------------------------------------------------------------- - // Enforce artifical use limit on that ability - //-------------------------------------------------------------------------- - //Comment out to make unlimited! - if (ShifterDecrementGWildShapeSpellUsesLeft() <1 ) - { - FloatingTextStrRefOnCreature(83576, OBJECT_SELF); - return; - } - - //-------------------------------------------------------------------------- - // Make sure we are not blind - //-------------------------------------------------------------------------- - if( GZCanNotUseGazeAttackCheck(OBJECT_SELF)) - { - return; - } - - //-------------------------------------------------------------------------- - // Calculate Save DC - //-------------------------------------------------------------------------- - //Here we can adjust how hard the DC is on the Gaze Press the Constant buttn - int nDC = ShifterGetSaveDC(OBJECT_SELF,SHIFTER_DC_HARD); - - float fDelay; - object oTarget = GetSpellTargetObject(); - int nHitDice = GetCasterLevel(OBJECT_SELF); - int nSpellID = GetSpellId(); - object oSelf = OBJECT_SELF; - - //-------------------------------------------------------------------------- - // Loop through all available targets in spellcone - //-------------------------------------------------------------------------- - location lFinalTarget = GetSpellTargetLocation(); - vector vFinalPosition; - if ( lFinalTarget == GetLocation(OBJECT_SELF) ) - { - // Since the target and origin are the same, we have to determine the - // direction of the spell from the facing of OBJECT_SELF (which is more - // intuitive than defaulting to East everytime). - - // In order to use the direction that OBJECT_SELF is facing, we have to - // instead we pick a point slightly in front of OBJECT_SELF as the target. - vector lTargetPosition = GetPositionFromLocation(lFinalTarget); - vFinalPosition.x = lTargetPosition.x + cos(GetFacing(OBJECT_SELF)); - vFinalPosition.y = lTargetPosition.y + sin(GetFacing(OBJECT_SELF)); - lFinalTarget = Location(GetAreaFromLocation(lFinalTarget),vFinalPosition,GetFacingFromLocation(lFinalTarget)); - } - oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lFinalTarget, TRUE); - while(GetIsObjectValid(oTarget)) - { - fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20; - - if (spellsIsTarget(oTarget,SPELL_TARGET_STANDARDHOSTILE,OBJECT_SELF) && oTarget != OBJECT_SELF) - { - DelayCommand(fDelay, DoPetrification(nHitDice, oSelf, oTarget, nSpellID, nDC)); - //Get next target in spell area - } - oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lFinalTarget, TRUE); - } - -} - - diff --git a/_removed files/x2_s1_wyrmbreath.nss b/_removed files/x2_s1_wyrmbreath.nss deleted file mode 100644 index db31b9c1..00000000 --- a/_removed files/x2_s1_wyrmbreath.nss +++ /dev/null @@ -1,153 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Dragon Breath for Wyrmling Shape -//:: x2_s1_wyrmbreath -//:: Copyright (c) 2003Bioware Corp. -//::////////////////////////////////////////////// -/* - Calculates the power of the dragon breath - used by a player polymorphed into wyrmling - shape - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: June, 17, 2003 -//::////////////////////////////////////////////// -/* --- Modified by Iznoghoud January 13 2004 -Made a fix for the way the damage is calculated. - -- Before, it would determine a number of dice and die type (d4, d6, d8, d10), throw -that die one time, and then multiply that number with the number of dice. -Also, every target got the same amount of damage. - -- Now, it determines a number of dice N and die type (d4, d6, d8, d10), throws that -die N times, and adds up the results. -This results in the damage being averaged out like all other spells, instead of -going into the low or high extremes so often. Also, every target can get a -different amount of damage, just like with other spells. -*/ -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -#include "x2_inc_shifter" - -void main() -{ - -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - - //-------------------------------------------------------------------------- - // Set up variables - //-------------------------------------------------------------------------- - int nType = GetSpellId(); - int nDamageType; - int nDamageDie; - int nVfx; - int nSave; - int nSpell; - int nDice; - - - //-------------------------------------------------------------------------- - // Decide on breath weapon type, vfx based on spell id - //-------------------------------------------------------------------------- - switch (nType) - { - case 663: //white - nDamageDie = 4; - nDamageType = DAMAGE_TYPE_COLD; - nVfx = VFX_IMP_FROST_S; - nSave = SAVING_THROW_TYPE_COLD; - nSpell = SPELLABILITY_DRAGON_BREATH_COLD; - nDice = (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF) /2)+1; - break; - - case 664: //black - nDamageDie = 4; - nDamageType = DAMAGE_TYPE_ACID; - nVfx = VFX_IMP_ACID_S; - nSave = SAVING_THROW_TYPE_ACID; - nSpell = SPELLABILITY_DRAGON_BREATH_ACID; - nDice = (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF) /2)+1; - break; - - case 665: //red - nDamageDie = 10; - nDamageType = DAMAGE_TYPE_FIRE; - nVfx = VFX_IMP_FLAME_M; - nSave = SAVING_THROW_TYPE_FIRE; - nSpell = SPELLABILITY_DRAGON_BREATH_FIRE; - nDice = (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF) /3)+1; - break; - - case 666: //green - nDamageDie = 6; - nDamageType = DAMAGE_TYPE_ACID; - nVfx = VFX_IMP_ACID_S; - nSave = SAVING_THROW_TYPE_ACID; - nSpell = SPELLABILITY_DRAGON_BREATH_GAS; - nDice = (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF) /2)+1; - break; - - case 667: //blue - nDamageDie = 8; - nDamageType = DAMAGE_TYPE_ELECTRICAL; - nVfx = VFX_IMP_LIGHTNING_S; - nSave = SAVING_THROW_TYPE_ELECTRICITY; - nSpell = SPELLABILITY_DRAGON_BREATH_LIGHTNING; - nDice = (GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF) /3)+1; - break; - - } - - //-------------------------------------------------------------------------- - // Calculate Save DC based on shifter level - //-------------------------------------------------------------------------- - int nDC = ShifterGetSaveDC(OBJECT_SELF,SHIFTER_DC_NORMAL); - - //-------------------------------------------------------------------------- - // Calculate Damage - //-------------------------------------------------------------------------- - - - int nDamage = 0; - int i; - int nDamStrike; - float fDelay; - object oTarget; - effect eVis, eBreath; - - //-------------------------------------------------------------------------- - //Loop through all targets and do damage - //-------------------------------------------------------------------------- - oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); - while(GetIsObjectValid(oTarget)) - { - if(oTarget != OBJECT_SELF && !GetIsReactionTypeFriendly(oTarget)) - { - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, nSpell)); - fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20; - // Calculate damage for this target - nDamage = 0; - for (i = 0; i < nDice; i++) // Roll the damage die nDice times and add up the damage. - nDamage += (Random(nDamageDie)+1); - - nDamStrike = GetReflexAdjustedDamage(nDamage, oTarget, nDC); - if (nDamStrike > 0) - { - eBreath = EffectDamage(nDamStrike, nDamageType); - eVis = EffectVisualEffect(nVfx); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eBreath, oTarget)); - } - } - oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); - } -} diff --git a/_removed files/x2_s2_blindspd.nss b/_removed files/x2_s2_blindspd.nss deleted file mode 100644 index 237a274c..00000000 --- a/_removed files/x2_s2_blindspd.nss +++ /dev/null @@ -1,107 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Haste -//:: NW_S0_Haste.nss -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Gives the targeted creature one extra partial - action per round. -*/ -//::////////////////////////////////////////////// -//:: Created By: Preston Watamaniuk -//:: Created On: May 29, 2001 -//::////////////////////////////////////////////// -// Modified March 2003: Remove Expeditious Retreat effects - -#include "x0_i0_spells" - -#include "x2_inc_spellhook" - -void main() -{ - -/* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - -*/ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - -// End of Spell Cast Hook - - //Declare major variables - object oTarget = GetSpellTargetObject(); - - if (GetHasSpellEffect(SPELL_EXPEDITIOUS_RETREAT, oTarget) == TRUE) - { - RemoveSpellEffects(SPELL_EXPEDITIOUS_RETREAT, OBJECT_SELF, oTarget); - } - - if (GetHasSpellEffect(SPELL_HASTE, oTarget) == TRUE) - { - RemoveSpellEffects(SPELL_HASTE, OBJECT_SELF, oTarget); - } - - if (GetHasSpellEffect(SPELL_MASS_HASTE, oTarget) == TRUE) - { - RemoveSpellEffects(SPELL_MASS_HASTE, OBJECT_SELF, oTarget); - } - - if (GetHasSpellEffect(GetSpellId(), oTarget) == TRUE) - { - RemoveSpellEffects(GetSpellId(), OBJECT_SELF, oTarget); - } - - effect eHaste = EffectHaste(); - effect eVis = EffectVisualEffect(460); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - effect eLink = EffectLinkEffects(eHaste, eDur); - - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - //Check for metamagic extension - - // Apply effects to the currently selected target. - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(10)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - -effect eEffect; -eEffect = EffectModifyAttacks(2); - -eEffect = SupernaturalEffect(eEffect); - -ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 60.0f); - -eEffect = EffectACIncrease(4, AC_DODGE_BONUS); - -eEffect = SupernaturalEffect(eEffect); - -ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 60.0f); - -eEffect = EffectSavingThrowIncrease(SAVING_THROW_ALL, 4, SAVING_THROW_TYPE_ALL); - -eEffect = SupernaturalEffect(eEffect); - -ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 60.0f); - -eEffect = EffectAttackIncrease(2); - -eEffect = SupernaturalEffect(eEffect); - -ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 60.0f); - -eEffect = EffectDamageIncrease(DAMAGE_BONUS_1d8, DAMAGE_TYPE_BLUDGEONING); - -eEffect = SupernaturalEffect(eEffect); - -ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 60.0f); -} - - diff --git a/_removed files/x2_s2_cursesong.nss b/_removed files/x2_s2_cursesong.nss deleted file mode 100644 index bc7f8cab..00000000 --- a/_removed files/x2_s2_cursesong.nss +++ /dev/null @@ -1,417 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Curse Song -//:: X2_S2_CurseSong -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - This spells applies penalties to all of the - bard's enemies within 30ft for a set duration of - 10 rounds. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: May 16, 2003 -//::////////////////////////////////////////////// -//:: Last Updated By: Andrew Nobbs May 20, 2003 - -#include "x2_i0_spells" - -void main() -{ - -//Override in town, no casting! -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - - if (!GetHasFeat(FEAT_BARD_SONGS, OBJECT_SELF)) - { - FloatingTextStrRefOnCreature(85587,OBJECT_SELF); // no more bardsong uses left - return; - } - - if (GetHasEffect(EFFECT_TYPE_SILENCE,OBJECT_SELF)) - { - FloatingTextStrRefOnCreature(85764,OBJECT_SELF); // not useable when silenced - return; - } - - - //Declare major variables - int nLevel = GetLevelByClass(CLASS_TYPE_BARD); - int nRanks = GetSkillRank(SKILL_PERFORM); - int nPerform = nRanks; - int nDuration = 10; //+ nChr; - - effect eAttack; - effect eDamage; - effect eWill; - effect eFort; - effect eReflex; - effect eHP; - effect eAC; - effect eSkill; - - int nAttack; - int nDamage; - int nWill; - int nFort; - int nReflex; - int nHP; - int nAC; - int nSkill; - //Check to see if the caster has Lasting Impression and increase duration. - if(GetHasFeat(870)) - { - nDuration *= 10; - } - - if(GetHasFeat(424)) // lingering song - { - nDuration += 5; - } - - if(nPerform >= 90 && nLevel >= 30) - { - nAttack = 4; - nDamage = 6; - nWill = 4; - nFort = 4; - nReflex = 4; - nHP = 70; - nAC = 5; - nSkill = 20; - } - else if(nPerform >= 85 && nLevel >= 29) - { - nAttack = 4; - nDamage = 6; - nWill = 4; - nFort = 4; - nReflex = 4; - nHP = 65; - nAC = 5; - nSkill = 18; - } - else if(nPerform >= 82 && nLevel >= 28) - { - nAttack = 3; - nDamage = 5; - nWill = 3; - nFort = 3; - nReflex = 3; - nHP = 60; - nAC = 5; - nSkill = 16; - } - else if(nPerform >= 78 && nLevel >= 27) - { - nAttack = 3; - nDamage = 5; - nWill = 3; - nFort = 3; - nReflex = 3; - nHP = 55; - nAC = 4; - nSkill = 14; - } - else if(nPerform >= 75 && nLevel >= 26) - { - nAttack = 3; - nDamage = 4; - nWill = 3; - nFort = 3; - nReflex = 3; - nHP = 50; - nAC = 4; - nSkill = 14; - } - else if(nPerform >= 75 && nLevel >= 25) - { - nAttack = 2; - nDamage = 4; - nWill = 3; - nFort = 3; - nReflex = 3; - nHP = 45; - nAC = 4; - nSkill = 13; - } - else if(nPerform >= 70 && nLevel >= 24) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 40; - nAC = 4; - nSkill = 12; - } - else if(nPerform >= 65 && nLevel >= 23) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 36; - nAC = 4; - nSkill = 11; - } - else if(nPerform >= 60 && nLevel >= 22) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 34; - nAC = 4; - nSkill = 10; - } - else if(nPerform >= 55 && nLevel >= 21) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 32; - nAC = 4; - nSkill = 9; - } - else if(nPerform >= 50 && nLevel >= 20) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 28; - nAC = 3; - nSkill = 8; - } - else if(nPerform >= 45 && nLevel >= 19) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 26; - nAC = 3; - nSkill = 7; - } - else if(nPerform >= 40 && nLevel >= 18) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 24; - nAC = 3; - nSkill = 6; - } - else if(nPerform >= 35 && nLevel >= 17) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 22; - nAC = 3; - nSkill = 5; - } - else if(nPerform >= 30 && nLevel >= 16) - { - nAttack = 2; - nDamage = 3; - nWill = 3; - nFort = 2; - nReflex = 2; - nHP = 20; - nAC = 3; - nSkill = 4; - } - else if(nPerform >= 24 && nLevel >= 15) - { - nAttack = 2; - nDamage = 3; - nWill = 2; - nFort = 2; - nReflex = 2; - nHP = 16; - nAC = 3; - nSkill = 3; - } - else if(nPerform >= 21 && nLevel >= 14) - { - nAttack = 2; - nDamage = 3; - nWill = 1; - nFort = 1; - nReflex = 1; - nHP = 16; - nAC = 3; - nSkill = 2; - } - else if(nPerform >= 18 && nLevel >= 12) - { - nAttack = 2; - nDamage = 2; - nWill = 1; - nFort = 1; - nReflex = 1; - nHP = 8; - nAC = 2; - nSkill = 2; - } - else if(nPerform >= 15 && nLevel >= 8) - { - nAttack = 2; - nDamage = 2; - nWill = 1; - nFort = 1; - nReflex = 1; - nHP = 8; - nAC = 0; - nSkill = 1; - } - else if(nPerform >= 12 && nLevel >= 6) - { - nAttack = 1; - nDamage = 2; - nWill = 1; - nFort = 1; - nReflex = 1; - nHP = 0; - nAC = 0; - nSkill = 1; - } - else if(nPerform >= 9 && nLevel >= 3) - { - nAttack = 1; - nDamage = 2; - nWill = 1; - nFort = 1; - nReflex = 0; - nHP = 0; - nAC = 0; - nSkill = 0; - } - else if(nPerform >= 6 && nLevel >= 2) - { - nAttack = 1; - nDamage = 1; - nWill = 1; - nFort = 0; - nReflex = 0; - nHP = 0; - nAC = 0; - nSkill = 0; - } - else if(nPerform >= 3 && nLevel >= 1) - { - nAttack = 1; - nDamage = 1; - nWill = 0; - nFort = 0; - nReflex = 0; - nHP = 0; - nAC = 0; - nSkill = 0; - } - effect eVis = EffectVisualEffect(VFX_IMP_DOOM); - - eAttack = EffectAttackDecrease(nAttack); - eDamage = EffectDamageDecrease(nDamage, DAMAGE_TYPE_SLASHING); - effect eLink = EffectLinkEffects(eAttack, eDamage); - - if(nWill > 0) - { - eWill = EffectSavingThrowDecrease(SAVING_THROW_WILL, nWill); - eLink = EffectLinkEffects(eLink, eWill); - } - if(nFort > 0) - { - eFort = EffectSavingThrowDecrease(SAVING_THROW_FORT, nFort); - eLink = EffectLinkEffects(eLink, eFort); - } - if(nReflex > 0) - { - eReflex = EffectSavingThrowDecrease(SAVING_THROW_REFLEX, nReflex); - eLink = EffectLinkEffects(eLink, eReflex); - } - if(nHP > 0) - { - //SpeakString("HP Bonus " + IntToString(nHP)); - eHP = EffectDamage(nHP, DAMAGE_TYPE_SONIC, DAMAGE_POWER_NORMAL); -// eLink = EffectLinkEffects(eLink, eHP); - } - if(nAC > 0) - { - eAC = EffectACDecrease(nAC, AC_DODGE_BONUS); - eLink = EffectLinkEffects(eLink, eAC); - } - if(nSkill > 0) - { - eSkill = EffectSkillDecrease(SKILL_ALL_SKILLS, nSkill); - eLink = EffectLinkEffects(eLink, eSkill); - } - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); - effect eDur2 = EffectVisualEffect(507); - eLink = EffectLinkEffects(eLink, eDur); - - effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_SONIC); - effect eFNF = EffectVisualEffect(VFX_FNF_LOS_EVIL_30); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eFNF, GetLocation(OBJECT_SELF)); - - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); - - eHP = ExtraordinaryEffect(eHP); - eLink = ExtraordinaryEffect(eLink); - - if(!GetHasFeatEffect(871, oTarget)&& !GetHasSpellEffect(GetSpellId(),oTarget)) - { - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDur2, OBJECT_SELF, RoundsToSeconds(nDuration)); - } - float fDelay; - while(GetIsObjectValid(oTarget)) - { - if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) - { - // * GZ Oct 2003: If we are deaf, we do not have negative effects from curse song - if (!GetHasEffect(EFFECT_TYPE_DEAF,oTarget)) - { - if(!GetHasFeatEffect(871, oTarget)&& !GetHasSpellEffect(GetSpellId(),oTarget)) - { - if (nHP > 0) - { - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SONIC), oTarget); - DelayCommand(0.01, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHP, oTarget)); - } - - if (!GetIsDead(oTarget)) - { - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); - DelayCommand(GetRandomDelay(0.1,0.5),ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - } - } - } - else - { - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_MAGIC_RESISTANCE_USE), oTarget); - } - } - - oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF)); - } - DecrementRemainingFeatUses(OBJECT_SELF, FEAT_BARD_SONGS); -} diff --git a/_removed files/x2_s2_dragknght.nss b/_removed files/x2_s2_dragknght.nss deleted file mode 100644 index bb1757ba..00000000 --- a/_removed files/x2_s2_dragknght.nss +++ /dev/null @@ -1,46 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Dragon Knight -//:: X2_S2_DragKnght -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons an adult red dragon for you to - command. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Feb 07, 2003 -//::////////////////////////////////////////////// -#include "x2_inc_toollib" - -#include "x2_inc_spellhook" -void main() -{ - - /* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - */ - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - - //Declare major variables - int nDuration = 20; - effect eSummon; - effect eVis = EffectVisualEffect(460); - eSummon = EffectSummonCreature("epicdragon1",481,0.0f,TRUE); - - // * make it so dragon cannot be dispelled - eSummon = ExtraordinaryEffect(eSummon); - //Apply the summon visual and summon the dragon. - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon,GetSpellTargetLocation(), RoundsToSeconds(nDuration)); - DelayCommand(1.0f,ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis,GetSpellTargetLocation())); -} - - diff --git a/_removed files/x2_s2_dthmsttch.nss b/_removed files/x2_s2_dthmsttch.nss deleted file mode 100644 index 77c97dd3..00000000 --- a/_removed files/x2_s2_dthmsttch.nss +++ /dev/null @@ -1,85 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Deathless Master Touch -//:: X2_S2_dthmsttch -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - Pale Master may use their undead arm to - kill their foes. - - -Requires melee Touch attack - -Save vs DC 17 to resist - - Epic: - -SaveDC raised by +1 for each 2 levels past 10th -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: July, 24, 2003 -//::////////////////////////////////////////////// - - -#include "NW_I0_SPELLS" -#include "X2_inc_switches" - -void main() -{ - -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - - //Declare major variables - object oTarget = GetSpellTargetObject(); - //object oCaster = GetCurrentHitPoints(OBJECT_SELF); - int nCasterLvl = GetCasterLevel(OBJECT_SELF); - int nMetaMagic = GetMetaMagicFeat(); - - //Declare effects - effect eSlay = EffectDeath(); - effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - effect eVis2 = EffectVisualEffect(VFX_IMP_DEATH); - int nSave = 24; - -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - - //* GZ: Handle Epic Save Progression - int nEpicMod = GetLevelByClass(CLASS_TYPE_PALEMASTER,OBJECT_SELF) - 10 ; - if (nEpicMod>0) - { - nSave += (nEpicMod/2); - } - - //Link effects - - if(TouchAttackMelee(oTarget,TRUE)>0) - { - //Signal spell cast at event - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, 624)); - //Saving Throw - - if ((GetCreatureSize(oTarget)>CREATURE_SIZE_LARGE )&& (GetModuleSwitchValue(MODULE_SWITCH_SPELL_CORERULES_DMASTERTOUCH) == TRUE)) - { - return; // creature too large to be affected. - } - - if(!MySavingThrow(SAVING_THROW_FORT, oTarget, nSave, SAVING_THROW_TYPE_NEGATIVE)) - { - //Apply effects to target and caster - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eSlay, oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); - } - } - -} diff --git a/_removed files/x2_s2_gwburn.nss b/_removed files/x2_s2_gwburn.nss deleted file mode 100644 index 8b2387f7..00000000 --- a/_removed files/x2_s2_gwburn.nss +++ /dev/null @@ -1,66 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Outsider Shape - Azer - Fire stream -//:: x2_s2_gwburn -//:: Copyright (c) 2003Bioware Corp. -//::////////////////////////////////////////////// -/* - - Azer shoot fire ability. The fire they breathe - is natural, so there is no SR check against it - -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: July, 07, 2003 -//::////////////////////////////////////////////// - -#include "x2_inc_shifter" -void main() -{ - //-------------------------------------------------------------------------- - // Enforce artifical use limit on that ability - //-------------------------------------------------------------------------- - /* if (ShifterDecrementGWildShapeSpellUsesLeft() <1 ) - { - FloatingTextStrRefOnCreature(83576, OBJECT_SELF); - return; - } - */ - - //-------------------------------------------------------------------------- - // Create VFX - //-------------------------------------------------------------------------- - object oTarget = GetSpellTargetObject(); - int nTouch = TouchAttackRanged(oTarget); - effect eRay = EffectBeam(444,OBJECT_SELF,BODY_NODE_CHEST,(nTouch == 0)); - effect eDur = EffectVisualEffect(498); - - - float fDelay = GetDistanceBetween(oTarget, OBJECT_SELF)/14; - - ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eRay,oTarget,1.7f); - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - - - if (nTouch > 0) - { - int nDamage = d4( GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF)/3 ) + GetAbilityModifier(ABILITY_WISDOM,OBJECT_SELF); - if (nTouch ==2) - { - nDamage += d4( GetLevelByClass(CLASS_TYPE_SHIFTER,OBJECT_SELF)/3 ) + GetAbilityModifier(ABILITY_WISDOM,OBJECT_SELF); - } - int nDC = ShifterGetSaveDC(OBJECT_SELF,SHIFTER_DC_NORMAL); - nDamage = GetReflexAdjustedDamage(nDamage,oTarget,nDC,SAVING_THROW_TYPE_FIRE,OBJECT_SELF); - effect eDamage = EffectDamage(nDamage,DAMAGE_TYPE_FIRE); - effect eHit = EffectVisualEffect(VFX_IMP_FLAME_S); - - eHit = EffectLinkEffects(eDamage,eHit); - DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eDur,oTarget,3.0f)); - DelayCommand(fDelay+0.3f,ApplyEffectToObject(DURATION_TYPE_INSTANT,eHit,oTarget,3.0f)); - } - - -} - - - diff --git a/_removed files/x2_s2_gwildshp.nss b/_removed files/x2_s2_gwildshp.nss deleted file mode 100644 index 0f668ba8..00000000 --- a/_removed files/x2_s2_gwildshp.nss +++ /dev/null @@ -1,458 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Greater Wild Shape, Humanoid Shape -//:: x2_s2_gwildshp -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - Allows the character to shift into one of these - forms, gaining special abilities - Credits must be given to mr_bumpkin from the NWN - community who had the idea of merging item properties - from weapon and armor to the creatures new forms. -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: 2003-07-02 -//::////////////////////////////////////////////// -//:: Modified By: Iznoghoud -/* -What this script changes: -- Tower shields now carry over their properties just like Small and Large -shields. (Which has been a bug I believe since the original script had 2 checks -for SMALLSHIELD in it, one probably should have been TOWERSHIELD) -- Melee Weapon properties now carry over to the unarmed forms' claws and bite -attacks. -- My last (and most complicated) changes: -1) Now, items with an AC bonus (or penalty) carry over to the shifted form as -the correct type. This means if you wear an amulet of natural armor +4, and a -cloak of protection +5, and you shift to a form that gets all item properties -carried over, you will have the +4 natural armor bonus from the ammy, as well as -the +5 deflection bonus from the cloak. No longer will the highest one override -all the other AC bonuses even if they are a different type. Note that some -forms, such as the dragon, get an inherent natural AC bonus, which may still -override your amulet of natural armor, if the inherent bonus is better. -2) Other "stackable" item properties, like ability bonuses, skill bonuses and -saving throw bonuses, now correctly add up in shifted form. This means if you -have a ring that gives +2 strength, and a ring with +3 strength, and you shift -into a drow warrior, you get +5 strength in shifted form, where you used to get -only +3. (the highest) - --- Modified by StoneDK 2003.12.21 -Added saving of old equip to allow items to be applied without going -through normal shape, should now get item effects even when changing -directly from wyrm to kobold shape. -Added message to player about which items are merged. - --- Modified by Iznoghoud 2003-12-26 -Added storing of Polymorph ID on the player for letting exportallchars() scripts -reapply polymorphing effects when saving - --- Modified by Iznoghoud 2003-12-27 -Added regeneration as a stacking property, bracers now stored correctly for re-shifting, -Added constants for easy configuration. - --- Modified by Iznoghoud January 13 2004 -The bulk of the handling of stacking item properties, as well as the constants -for configuration, are now in ws_inc_shifter, which is included -by this file, and the two druid polymorphing scripts, nw_s2_elemshape and nw_s2_wildshape. -Made the message about which items are merged more explicit. -*/ -//::////////////////////////////////////////////// - -#include "ws_inc_shifter" - -// Main function of the script -void main() -{ - -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF)) -{ - - FloatingTextStringOnCreature("All spells fizzle in town.", OBJECT_SELF); - - return; -} - //-------------------------------------------------------------------------- - // Declare major variables - //-------------------------------------------------------------------------- - object oPC = OBJECT_SELF; - int nSpell = GetSpellId(); - object oTarget = GetSpellTargetObject(); - effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH); - int nShifter = GetLevelByClass(CLASS_TYPE_SHIFTER); - effect ePoly; - int nPoly; - //-------------------------------------------------------------------------- - // Determine which form to use based on spell id, gender and level - //-------------------------------------------------------------------------- - switch (nSpell) - { - //----------------------------------------------------------------------- - // Greater Wildshape I - Wyrmling Shape - //----------------------------------------------------------------------- - case 658: nPoly = POLYMORPH_TYPE_WYRMLING_RED; break; - case 659: nPoly = POLYMORPH_TYPE_WYRMLING_BLUE; break; - case 660: nPoly = POLYMORPH_TYPE_WYRMLING_BLACK; break; - case 661: nPoly = POLYMORPH_TYPE_WYRMLING_WHITE; break; - case 662: nPoly = POLYMORPH_TYPE_WYRMLING_GREEN; break; - //----------------------------------------------------------------------- - // Greater Wildshape II - Minotaur, Gargoyle, Harpy - //----------------------------------------------------------------------- - case 672: if (nShifter < X2_GW2_EPIC_THRESHOLD) - nPoly = POLYMORPH_TYPE_HARPY; - else - nPoly = 97; - break; - case 678: if (nShifter < X2_GW2_EPIC_THRESHOLD) - nPoly = POLYMORPH_TYPE_GARGOYLE; - else - nPoly = 98; - break; - case 680: if (nShifter < X2_GW2_EPIC_THRESHOLD) - nPoly = POLYMORPH_TYPE_MINOTAUR; - else - nPoly = 96; - break; - //----------------------------------------------------------------------- - // Greater Wildshape III - Drider, Basilisk, Manticore - //----------------------------------------------------------------------- - case 670: if (nShifter < X2_GW3_EPIC_THRESHOLD) - nPoly = POLYMORPH_TYPE_BASILISK; - else - nPoly = 99; - break; - case 673: if (nShifter < X2_GW3_EPIC_THRESHOLD) - nPoly = POLYMORPH_TYPE_DRIDER; - else - nPoly = 100; - break; - case 674: if (nShifter < X2_GW3_EPIC_THRESHOLD) - nPoly = POLYMORPH_TYPE_MANTICORE; - else - nPoly = 101; - break; - //----------------------------------------------------------------------- - // Greater Wildshape IV - Dire Tiger, Medusa, MindFlayer - //----------------------------------------------------------------------- - case 679: nPoly = POLYMORPH_TYPE_MEDUSA; break; - case 691: nPoly = 68; break; // Mindflayer - case 694: nPoly = 69; break; // DireTiger - //----------------------------------------------------------------------- - // Humanoid Shape - Kobold Commando, Drow, Lizard Crossbow Specialist - //----------------------------------------------------------------------- - case 682: - if(nShifter< 17) - { - if (GetGender(OBJECT_SELF) == GENDER_MALE) //drow - nPoly = 59; - else - nPoly = 70; - } - else - { - if (GetGender(OBJECT_SELF) == GENDER_MALE) //drow - nPoly = 105; - else - nPoly = 106; - } - break; - case 683: - if(nShifter< 17) - { - nPoly = 82; break; // Lizard - } - else - { - nPoly =104; break; // Epic Lizard - } - case 684: if(nShifter< 17) - { - nPoly = 83; break; // Kobold Commando - } - else - { - nPoly = 103; break; // Kobold Commando - } - //----------------------------------------------------------------------- - // Undead Shape - Spectre, Risen Lord, Vampire - //----------------------------------------------------------------------- - case 704: nPoly = 75; break; // Risen lord - case 705: if (GetGender(OBJECT_SELF) == GENDER_MALE) // vampire - nPoly = 74; - else - nPoly = 77; - break; - case 706: nPoly = 76; break; /// spectre - //----------------------------------------------------------------------- - // Dragon Shape - Red Blue and Green Dragons - //----------------------------------------------------------------------- - case 707: nPoly = 72; break; // Ancient Red Dragon - case 708: nPoly = 71; break; // Ancient Blue Dragon - case 709: nPoly = 73; break; // Ancient Green Dragon - //----------------------------------------------------------------------- - // Outsider Shape - Rakshasa, Azer Chieftain, Black Slaad - //----------------------------------------------------------------------- - case 733: if (GetGender(OBJECT_SELF) == GENDER_MALE) //azer - nPoly = 85; - else // anything else is female - nPoly = 86; - break; - case 734: if (GetGender(OBJECT_SELF) == GENDER_MALE) //rakshasa - nPoly = 88; - else // anything else is female - nPoly = 89; - break; - case 735: nPoly =87; break; // slaad - //----------------------------------------------------------------------- - // Construct Shape - Stone Golem, Iron Golem, Demonflesh Golem - //----------------------------------------------------------------------- - case 738: nPoly =91; break; // stone golem - case 739: nPoly =92; break; // demonflesh golem - case 740: nPoly =90; break; // iron golem - } - //-------------------------------------------------------------------------- - // Determine which items get their item properties merged onto the shifters - // new form. - //-------------------------------------------------------------------------- - int bWeapon; - int bArmor; - int bItems; - int bCopyGlovesToClaws = FALSE; - - bWeapon = ShifterMergeWeapon(nPoly); - - if ( GW_ALWAYS_COPY_ARMOR_PROPS ) - bArmor = TRUE; - else - bArmor = ShifterMergeArmor(nPoly); - - if ( GW_ALWAYS_COPY_ITEM_PROPS ) - bItems = TRUE; - else - bItems = ShifterMergeItems(nPoly); - - // Send message to PC about which items get merged to this form - string sMerge; - sMerge = "Merged: "; // : This is a color code that makes the text behind it sort of light blue. - if(bArmor) sMerge += "Armor, Helmet, Shield"; - if(bItems) sMerge += ", Rings, Amulet, Cloak, Boots, Belt, Bracers"; - if( bWeapon || GW_COPY_WEAPON_PROPS_TO_UNARMED == 1 ) - sMerge += ", Weapon"; - else if ( GW_COPY_WEAPON_PROPS_TO_UNARMED == 2 ) - sMerge += ", Gloves to unarmed attacks"; - else if (GW_COPY_WEAPON_PROPS_TO_UNARMED == 3 ) - sMerge += ", Weapon (if you had one equipped) or gloves to unarmed attacks"; - else - sMerge += ", No weapon or gloves to unarmed attacks"; - SendMessageToPC(oTarget,sMerge + "."); - - // Store which items should transfer to this polymorph type. (For exportallchar scripts) - SetLocalInt(oTarget, "GW_PolyID", nPoly); - SetLocalInt(oTarget, "GW_bWeapon", bWeapon ); - SetLocalInt(oTarget, "GW_bArmor", bArmor ); - SetLocalInt(oTarget, "GW_bItems", bItems ); - - //-------------------------------------------------------------------------- - // Store the old objects so we can access them after the character has - // changed into his new form - //-------------------------------------------------------------------------- - object oWeaponOld; - object oArmorOld; - object oRing1Old ; - object oRing2Old; - object oAmuletOld; - object oCloakOld ; - object oBootsOld ; - object oBeltOld ; - object oHelmetOld; - object oShield ; - object oBracerOld; - object oHideOld; - //Assume the normal shape doesn't have a creature skin object. - //If using a subracesystem or something else that places a skin on the normal shape - //another condition is needed to decide whether or not to store current items. - //One way could be to scan all effects to see whether one is a polymorph effect. - int nPolyed = GetIsObjectValid(GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF)); - // If there is a creature armor see if it is a creature hide put - // on the unpolymorphed player by scanning for a polymorph effect. - if ( nPolyed ) - nPolyed = ( ScanForPolymorphEffect(OBJECT_SELF) != -2 ); - if(! nPolyed) - { - //if not polymorphed get items worn and store on player. - oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF); - oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,OBJECT_SELF); - oRing1Old = GetItemInSlot(INVENTORY_SLOT_LEFTRING,OBJECT_SELF); - oRing2Old = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,OBJECT_SELF); - oAmuletOld = GetItemInSlot(INVENTORY_SLOT_NECK,OBJECT_SELF); - oCloakOld = GetItemInSlot(INVENTORY_SLOT_CLOAK,OBJECT_SELF); - oBootsOld = GetItemInSlot(INVENTORY_SLOT_BOOTS,OBJECT_SELF); - oBeltOld = GetItemInSlot(INVENTORY_SLOT_BELT,OBJECT_SELF); - oHelmetOld = GetItemInSlot(INVENTORY_SLOT_HEAD,OBJECT_SELF); - oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF); - oBracerOld = GetItemInSlot(INVENTORY_SLOT_ARMS,OBJECT_SELF); - oHideOld = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF); - SetLocalObject(OBJECT_SELF,"GW_OldWeapon",oWeaponOld); - SetLocalObject(OBJECT_SELF,"GW_OldArmor",oArmorOld); - SetLocalObject(OBJECT_SELF,"GW_OldRing1",oRing1Old); - SetLocalObject(OBJECT_SELF,"GW_OldRing2",oRing2Old); - SetLocalObject(OBJECT_SELF,"GW_OldAmulet",oAmuletOld); - SetLocalObject(OBJECT_SELF,"GW_OldCloak",oCloakOld); - SetLocalObject(OBJECT_SELF,"GW_OldBoots",oBootsOld); - SetLocalObject(OBJECT_SELF,"GW_OldBelt",oBeltOld); - SetLocalObject(OBJECT_SELF,"GW_OldHelmet",oHelmetOld); - SetLocalObject(OBJECT_SELF,"GW_OldBracer",oBracerOld); - SetLocalObject(OBJECT_SELF,"GW_OldHide",oHideOld); - if (GetIsObjectValid(oShield)) - { - if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD && - GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD && - GetBaseItemType(oShield) !=BASE_ITEM_TOWERSHIELD) - { - oShield = OBJECT_INVALID; - } - } - SetLocalObject(OBJECT_SELF,"GW_OldShield",oShield); - - } - else - { - //if already polymorphed use items stored earlier. - oWeaponOld = GetLocalObject(OBJECT_SELF,"GW_OldWeapon"); - oArmorOld = GetLocalObject(OBJECT_SELF,"GW_OldArmor"); - oRing1Old = GetLocalObject(OBJECT_SELF,"GW_OldRing1"); - oRing2Old = GetLocalObject(OBJECT_SELF,"GW_OldRing2"); - oAmuletOld = GetLocalObject(OBJECT_SELF,"GW_OldAmulet"); - oCloakOld = GetLocalObject(OBJECT_SELF,"GW_OldCloak"); - oBootsOld = GetLocalObject(OBJECT_SELF,"GW_OldBoots"); - oBeltOld = GetLocalObject(OBJECT_SELF,"GW_OldBelt"); - oHelmetOld = GetLocalObject(OBJECT_SELF,"GW_OldHelmet"); - oShield = GetLocalObject(OBJECT_SELF,"GW_OldShield"); - oBracerOld = GetLocalObject(OBJECT_SELF,"GW_OldBracer"); - oHideOld = GetLocalObject(OBJECT_SELF,"GW_OldHide"); - } - - //-------------------------------------------------------------------------- - // Here the actual polymorphing is done - //-------------------------------------------------------------------------- - ePoly = EffectPolymorph(nPoly); - //-------------------------------------------------------------------------- - // Iznoghoud: Link the stackable properties as permanent bonuses to the - // Polymorph effect, instead of putting them on the creature hide. They will - // properly disappear as soon as the polymorph is ended. - //-------------------------------------------------------------------------- - ePoly = AddStackablePropertiesToPoly ( oPC, ePoly, bWeapon, bItems, bArmor, oArmorOld, oRing1Old, oRing2Old, oAmuletOld, oCloakOld, oBracerOld, oBootsOld, oBeltOld, oHelmetOld, oShield, oWeaponOld, oHideOld); - ePoly = ExtraordinaryEffect(ePoly); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF); - ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoly, OBJECT_SELF); - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - //-------------------------------------------------------------------------- - // This code handles the merging of item properties - //-------------------------------------------------------------------------- - object oWeaponNew = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF); - object oArmorNew = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF); - object oClawLeft = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L,OBJECT_SELF); - object oClawRight = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R,OBJECT_SELF); - object oBite = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B,OBJECT_SELF); - //-------------------------------------------------------------------------- - // ...Weapons - //-------------------------------------------------------------------------- - if (bWeapon) - { - //---------------------------------------------------------------------- - // GZ: 2003-10-20 - // Sorry, but I was forced to take that out, it was confusing people - // and there were problems with updating the stats sheet. - //---------------------------------------------------------------------- - /* if (!GetIsObjectValid(oWeaponOld)) - { - //------------------------------------------------------------------ - // If we had no weapon equipped before, remove the old weapon - // to allow monks to change into unarmed forms by not equipping any - // weapon before polymorphing - //------------------------------------------------------------------ - DestroyObject(oWeaponNew); - } - else*/ - { - //------------------------------------------------------------------ - // Merge item properties... - //------------------------------------------------------------------ - WildshapeCopyWeaponProperties(oTarget, oWeaponOld,oWeaponNew); - } - } - else { - switch ( GW_COPY_WEAPON_PROPS_TO_UNARMED ) - { - case 1: // Copy over weapon properties to claws/bite - WildshapeCopyNonStackProperties(oWeaponOld,oClawLeft, TRUE); - WildshapeCopyNonStackProperties(oWeaponOld,oClawRight, TRUE); - WildshapeCopyNonStackProperties(oWeaponOld,oBite, TRUE); - break; - case 2: // Copy over glove properties to claws/bite - WildshapeCopyNonStackProperties(oBracerOld,oClawLeft, FALSE); - WildshapeCopyNonStackProperties(oBracerOld,oClawRight, FALSE); - WildshapeCopyNonStackProperties(oBracerOld,oBite, FALSE); - bCopyGlovesToClaws = TRUE; - break; - case 3: // Copy over weapon properties to claws/bite if wearing a weapon, otherwise copy gloves - if ( GetIsObjectValid(oWeaponOld) ) - { - WildshapeCopyNonStackProperties(oWeaponOld,oClawLeft, TRUE); - WildshapeCopyNonStackProperties(oWeaponOld,oClawRight, TRUE); - WildshapeCopyNonStackProperties(oWeaponOld,oBite, TRUE); - } - else - { - WildshapeCopyNonStackProperties(oBracerOld,oClawLeft, FALSE); - WildshapeCopyNonStackProperties(oBracerOld,oClawRight, FALSE); - WildshapeCopyNonStackProperties(oBracerOld,oBite, FALSE); - bCopyGlovesToClaws = TRUE; - } - break; - default: // Do not copy over anything - break; - }; - } - //-------------------------------------------------------------------------- - // ...Armor - //-------------------------------------------------------------------------- - if (bArmor) - { - //---------------------------------------------------------------------- - // Merge item properties from armor and helmet... - //---------------------------------------------------------------------- - WildshapeCopyNonStackProperties(oArmorOld,oArmorNew); - WildshapeCopyNonStackProperties(oHelmetOld,oArmorNew); - WildshapeCopyNonStackProperties(oShield,oArmorNew); - WildshapeCopyNonStackProperties(oHideOld,oArmorNew); - } - //-------------------------------------------------------------------------- - // ...Magic Items - //-------------------------------------------------------------------------- - if (bItems) - { - //---------------------------------------------------------------------- - // Merge item properties from from rings, amulets, cloak, boots, belt - // Iz: And bracers, in case oBracerOld gets set to a valid object. - //---------------------------------------------------------------------- - WildshapeCopyNonStackProperties(oRing1Old,oArmorNew); - WildshapeCopyNonStackProperties(oRing2Old,oArmorNew); - WildshapeCopyNonStackProperties(oAmuletOld,oArmorNew); - WildshapeCopyNonStackProperties(oCloakOld,oArmorNew); - WildshapeCopyNonStackProperties(oBootsOld,oArmorNew); - WildshapeCopyNonStackProperties(oBeltOld,oArmorNew); - // Because Bracers can have On Hit Cast Spell type properties we should - // avoid copying the bracers twice. Otherwise the player can get that On - // Hit effect both when hitting, and getting hit. - if ( bCopyGlovesToClaws == FALSE ) - WildshapeCopyNonStackProperties(oBracerOld,oArmorNew); - } - //-------------------------------------------------------------------------- - // Set artificial usage limits for special ability spells to work around - // the engine limitation of not being able to set a number of uses for - // spells in the polymorph radial - //-------------------------------------------------------------------------- - ShifterSetGWildshapeSpellLimits(nSpell); -} - diff --git a/_removed files/x2_s2_hellball.nss b/_removed files/x2_s2_hellball.nss deleted file mode 100644 index 660a0a01..00000000 --- a/_removed files/x2_s2_hellball.nss +++ /dev/null @@ -1,144 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Hellball -//:: X2_S2_HELLBALL -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - Long range area of effect spell - 10d6 sonic, acid, fire and lightning damage to all - objects in the area - - 10d6 points of negative energy damage to caster - if MODULE_SWITCH_EPIC_SPELLS_HURT_CASTER switch - was enabled on the module. - - This spell is supposed to hurt the caster if he - is stupid enough to stand in the area of effect - when all hell breaks loose. It will hurt other - players allied with the caster as well. These - effects are dependent on your difficulty setting - - Save is 20 + relevant ability score, or, when cast - by a placeable, equal to the placeables WILL Save - - There is no benefit from the evasion feats here - as the are of the spell is too large to avoid it - - -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Noobs, Georg Zoeller -//:: Created On: 2003-08-20 -//::////////////////////////////////////////////// - - -#include "X0_I0_SPELLS" -#include "x2_i0_spells" -#include "x2_inc_spellhook" - - -void main() -{ - - /* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - //Declare major variables - int nDamage1, nDamage2, nDamage3, nDamage4; - float fDelay; - effect eExplode = EffectVisualEffect(464); - effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); - effect eVis2 = EffectVisualEffect(VFX_IMP_ACID_L); - effect eVis3 = EffectVisualEffect(VFX_IMP_SONIC); - - int nSpellDC = GetEpicSpellSaveDC(OBJECT_SELF); - - // if this option has been enabled, the caster will take damage for casting - // epic spells, as descripbed in the ELHB - if (GetModuleSwitchValue( MODULE_SWITCH_EPIC_SPELLS_HURT_CASTER) == TRUE) - { - effect eCast = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); - int nDamage5 = d8(10); - effect eDam5 = EffectDamage(nDamage5, DAMAGE_TYPE_NEGATIVE); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, OBJECT_SELF); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam5, OBJECT_SELF); - } - - - - effect eDam1, eDam2, eDam3, eDam4, eDam5, eKnock; - eKnock= EffectKnockdown(); - - location lTarget = GetSpellTargetLocation(); - - ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); - - object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 20.0f, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - - int nTotalDamage; - while (GetIsObjectValid(oTarget)) - { - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - - fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20 + 0.5f; - //Roll damage for each target - nDamage1 = d10(10) + 20; - nDamage2 = d10(10) + 20; - nDamage3 = d10(10) + 20; - nDamage4 = d10(10) + 20; - // no we don't care about evasion. there is no evasion to hellball - if (MySavingThrow(SAVING_THROW_REFLEX,oTarget,nSpellDC,SAVING_THROW_TYPE_SPELL,OBJECT_SELF,fDelay) >0) - { - nDamage1 /=2; - nDamage2 /=2; - nDamage3 /=2; - nDamage4 /=2; - } - nTotalDamage = nDamage1+nDamage2+nDamage3+nDamage4; - //Set the damage effect - eDam1 = EffectDamage(nDamage1, DAMAGE_TYPE_NEGATIVE); - eDam2 = EffectDamage(nDamage2, DAMAGE_TYPE_POSITIVE); - eDam3 = EffectDamage(nDamage3, DAMAGE_TYPE_FIRE); - eDam4 = EffectDamage(nDamage4, DAMAGE_TYPE_SONIC); - - if(nTotalDamage > 0) - { - if (nTotalDamage > 50) - { - DelayCommand(fDelay+0.3f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eKnock, oTarget,3.0f)); - } - - // Apply effects to the currently selected target. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam1, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam2, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam3, oTarget)); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam4, oTarget)); - //This visual effect is applied to the target object not the location as above. This visual effect - //represents the flame that erupts on the target not on the ground. - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); - DelayCommand(fDelay+0.2f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget)); - DelayCommand(fDelay+0.5f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis3, oTarget)); - } - } - //Select the next target within the spell shape. - oTarget = GetNextObjectInShape(SHAPE_SPHERE, 20.0f, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); - } - - -} - diff --git a/_removed files/x2_s2_mghtyrage.nss b/_removed files/x2_s2_mghtyrage.nss deleted file mode 100644 index 350ec4d2..00000000 --- a/_removed files/x2_s2_mghtyrage.nss +++ /dev/null @@ -1,62 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Mighty Rage -//:: X2_S2_MghtyRage -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The Str and Con of the Barbarian increases, - Will Save are +2, AC -2. - Greater Rage starts at level 15. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: May 16, 2003 -//::////////////////////////////////////////////// -#include "x2_i0_spells" -void main() -{ - if(!GetHasFeatEffect(FEAT_BARBARIAN_RAGE)) - { - //Declare major variables - int nLevel = GetLevelByClass(CLASS_TYPE_BARBARIAN); - PlayVoiceChat(VOICE_CHAT_BATTLECRY1); - //Determine the duration by getting the con modifier after being modified - int nCon = 3 + GetAbilityModifier(ABILITY_CONSTITUTION) + 8; - effect eStr = EffectAbilityIncrease(ABILITY_CONSTITUTION, 8); - effect eCon = EffectAbilityIncrease(ABILITY_STRENGTH, 8); - effect eSave = EffectSavingThrowIncrease(SAVING_THROW_WILL, 4); - effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); - //Added by Guile(This offsets the +12 Cap Some. - effect eAtk; - eAtk = EffectAttackIncrease(6); - eAtk = SupernaturalEffect(eAtk); - effect eDmg; - eDmg = EffectDamageIncrease(DAMAGE_BONUS_8, DAMAGE_TYPE_BLUDGEONING); - eDmg = SupernaturalEffect(eDmg); - effect eHP; - eHP = EffectTemporaryHitpoints(nLevel * 6); - eHP = SupernaturalEffect(eHP); - - effect eLink = EffectLinkEffects(eCon, eStr); - eLink = EffectLinkEffects(eLink, eSave); - eLink = EffectLinkEffects(eLink, eDur); - SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); - //Make effect extraordinary - eLink = ExtraordinaryEffect(eLink); - effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE); //Change to the Rage VFX - - if (nCon > 0) - { - //Apply the VFX impact and effects - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, RoundsToSeconds(nCon)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF) ; - //This part was added by Guile to offset +12 Cap. - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAtk, OBJECT_SELF, RoundsToSeconds(nCon)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDmg, OBJECT_SELF, RoundsToSeconds(nCon)); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, OBJECT_SELF, RoundsToSeconds(nCon)); - - // 2003-07-08, Georg: Rage Epic Feat Handling - CheckAndApplyEpicRageFeats(nCon); - } - } -} diff --git a/_removed files/x2_s2_mumdust.nss b/_removed files/x2_s2_mumdust.nss deleted file mode 100644 index c596cc4d..00000000 --- a/_removed files/x2_s2_mumdust.nss +++ /dev/null @@ -1,46 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Mummy Dust -//:: X2_S2_MumDust -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - Summons a strong warrior mummy for you to - command. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Feb 07, 2003 -//::////////////////////////////////////////////// - -#include "x2_inc_spellhook" -void main() -{ - /* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - - //Declare major variables - int nDuration = 24; - //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - effect eSummon; - //Summon the appropriate creature based on the summoner level - //Warrior Mummy - eSummon = EffectSummonCreature("epicmummy1",496,1.0f); - eSummon = ExtraordinaryEffect(eSummon); - //Apply the summon visual and summon the undead. - //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); -} - - diff --git a/_removed files/x2_s2_ruin.nss b/_removed files/x2_s2_ruin.nss deleted file mode 100644 index 46c168f3..00000000 --- a/_removed files/x2_s2_ruin.nss +++ /dev/null @@ -1,66 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Greater Ruin -//:: X2_S2_Ruin -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* -// The caster deals 35d6 damage to a single target - fort save for half damage -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Nov 18, 2002 -//::////////////////////////////////////////////// - -#include "x2_I0_SPELLS" -#include "x2_inc_spellhook" -#include "x0_I0_SPELLS" -void main() -{ - - /* - Spellcast Hook Code - Added 2003-06-20 by Georg - If you want to make changes to all spells, - check x2_inc_spellhook.nss to find out more - - */ - - if (!X2PreSpellCastCode()) - { - // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell - return; - } - - // End of Spell Cast Hook - - //Declare major variables - object oTarget = GetSpellTargetObject(); - - - float fDist = GetDistanceBetween(OBJECT_SELF, oTarget); - float fDelay = fDist/(3.0 * log(fDist) + 2.0); - - int nSpellDC = GetEpicSpellSaveDC(OBJECT_SELF); - - if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) - { - //Fire cast spell at event for the specified target - SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - //Roll damage - int nDam = d10(15) + 150; - //Set damage effect - - if (MySavingThrow(SAVING_THROW_FORT,oTarget,nSpellDC,SAVING_THROW_TYPE_SPELL,OBJECT_SELF) != 0 ) - { - nDam /=2; - } - - effect eDam = EffectDamage(nDam, DAMAGE_TYPE_POSITIVE, DAMAGE_POWER_PLUS_TWENTY); - ApplyEffectAtLocation (DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), GetLocation(oTarget)); - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(487), oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_COM_BLOOD_CRT_RED), oTarget); - ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_COM_CHUNK_BONE_MEDIUM), oTarget); - DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); - } -} diff --git a/_removed files/x2_s2_sumundead.nss b/_removed files/x2_s2_sumundead.nss deleted file mode 100644 index 111d3036..00000000 --- a/_removed files/x2_s2_sumundead.nss +++ /dev/null @@ -1,72 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Summon Undead -//:: X2_S2_SumUndead -//:: Copyright (c) 2001 Bioware Corp. -//::////////////////////////////////////////////// -/* - The level of the Pale Master determines the - type of undead that is summoned. -*/ -//::////////////////////////////////////////////// -//:: Created By: Andrew Nobbs -//:: Created On: Feb 05, 2003 -//:: Updated By: Georg Zoeller, Oct 2003 -//::////////////////////////////////////////////// - -void PMUpgradeSummon(object oSelf, string sScript) -{ - object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oSelf); - ExecuteScript ( sScript, oSummon); -} - -void main() -{ - //Declare major variables - int nCasterLevel = GetLevelByClass(CLASS_TYPE_PALEMASTER,OBJECT_SELF); - int nDuration = 14 + nCasterLevel; - - - //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); - effect eSummon; - //Summon the appropriate creature based on the summoner level - if (nCasterLevel <= 6) - { - //Ghoul - eSummon = EffectSummonCreature("shadow01",VFX_IMP_HARM,0.0f,0); - } - else if (nCasterLevel <= 8) - { - //Shadow - eSummon = EffectSummonCreature("doomknight01",VFX_IMP_HARM,0.0f,0); - } - else if (nCasterLevel <= 10) - { - //Ghast - eSummon = EffectSummonCreature("shadfiend01",VFX_IMP_HARM,0.0f,1); - } - else if (nCasterLevel <= 14) - { - //Wight - eSummon = EffectSummonCreature("vampire01",VFX_FNF_SUMMON_UNDEAD,0.0f,1); - } - else if (nCasterLevel >= 15) - { - //Wraith - eSummon = EffectSummonCreature("lichlord01",VFX_FNF_SUMMON_UNDEAD,0.0f,1); - } - // * Apply the summon visual and summon the two undead. - // * ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_LOS_EVIL_10),GetSpellTargetLocation()); - ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration)); - - // * If the character has a special pale master item equipped (variable set via OnEquip) - // * run a script on the summoned monster. - string sScript = GetLocalString(OBJECT_SELF,"X2_S_PM_SPECIAL_ITEM"); - if (sScript != "") - { - object oSelf = OBJECT_SELF; - DelayCommand(1.0,PMUpgradeSummon(oSelf,sScript)); - } -} - - diff --git a/_removed files/x2_s3_demitouch.nss b/_removed files/x2_s3_demitouch.nss deleted file mode 100644 index f2464576..00000000 --- a/_removed files/x2_s3_demitouch.nss +++ /dev/null @@ -1,96 +0,0 @@ -//:://///////////////////////////////////////////// -//:: Demilich paralzying touch -//:: x2_s3_demitouch -//:: Copyright (c) 2003 Bioware Corp. -//::////////////////////////////////////////////// -/* - On touch a demilich can paralyze an opponent. - Fort vs DC 38 - - Duration varies by game difficulty between - 1 and 5 rounds - (Sorry, no permanent paralyze, its just not fun) -*/ -//::////////////////////////////////////////////// -//:: Created By: Georg Zoeller -//:: Created On: 2003-08-27 -//::////////////////////////////////////////////// - -#include "NW_I0_SPELLS" -void main() -{ - - object oItem; // The item casting triggering this spellscript - object oSpellTarget; // On a weapon: The one being hit. On an armor: The one hitting the armor - object oSpellOrigin; // On a weapon: The one wielding the weapon. On an armor: The one wearing an armor - - // fill the variables - oSpellOrigin = OBJECT_SELF; - oSpellTarget = GetSpellTargetObject(); - oItem = GetSpellCastItem(); - -object oCaster = OBJECT_SELF; -if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(oCaster)) -{ - -//Make them stop what they are doing instantly! -AssignCommand(oCaster, ClearAllActions()); - -//Though the player may show animation, nothing happens! :) -//SetModuleOverrideSpellScriptFinished(); - -FloatingTextStringOnCreature("All spells fizzle in town.", oCaster); - -return; -} - -/////////////////////////////////////////////////////////////////////////////// -//Handle Jail... -//NO ITEMS WORK IN JAIL!!! -if(GetLocalInt(GetArea(oCaster), "JAIL")==1) -{ - AssignCommand(oCaster, ClearAllActions()); - //Though the player may show animation, nothing happens! :) - //SetModuleOverrideSpellScriptFinished(); - - return; -} - -/////////////////////////////////////////////////////////////////////////////// - - - int nDuration = 3; - int nDiff = GetGameDifficulty(); - - if (nDiff == GAME_DIFFICULTY_CORE_RULES) - { - nDuration = 4; - } - else if (nDiff == GAME_DIFFICULTY_DIFFICULT) - { - nDuration = 6; - } - else if (nDiff == GAME_DIFFICULTY_VERY_EASY) - { - nDuration =2; - } - - if (GetIsObjectValid(oItem)) - { - SignalEvent(oSpellTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); - if(!GetHasSpellEffect(GetSpellId(),oSpellTarget)) - { - if(!MySavingThrow(SAVING_THROW_FORT, oSpellTarget,36 , SAVING_THROW_TYPE_ALL)) - { - effect eVis = EffectVisualEffect(VFX_IMP_STUN); - effect eDur = EffectVisualEffect(VFX_DUR_PARALYZED); - effect ePara = EffectParalyze(); - ePara = SupernaturalEffect(ePara); - ePara = EffectLinkEffects(eDur,ePara); - ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oSpellTarget); - ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePara,oSpellTarget,RoundsToSeconds(nDuration)); - } - } - } - -}

yKIiQ}%5h|$$SU*|Okf7Zuibmw)aPI@dRbPd|O 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 literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltknckd.nss b/_haks/poa_dev/nw_s1_bltknckd.nss new file mode 100644 index 00000000..68169647 --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltknckd.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_bltlightn.ncs b/_haks/poa_dev/nw_s1_bltlightn.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9315527065d9fb66e25610c97340f5ef7f3aa439 GIT binary patch literal 44504 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 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); + } + } +} diff --git a/_haks/poa_dev/nw_s1_bltlvldr.ncs b/_haks/poa_dev/nw_s1_bltlvldr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..7f6d6ea1c440f11ac9600d79d8e7a729adda5f88 GIT binary patch literal 43715 zcmeHw3z!_$b!K(VCKpKgeK?022v}RhGmU_BH zPme%+pA!rlKh~^+v4i7ah-3U9u@g4CUb0zZ8-fjFm$lgh2ka;gyEq9BI3_GH*b&zL z=bU@0>Q+}jByjvm-@^Azsq5bJKKI;nZ=G8;&^zSrUVXtuTO8*P9$)0(zbUR0Pc$?- zQ+EyaruvdwuDOD5&spK{b<_FIeCNc86USXA5u>YvzRqh7{;ZA1=+5g-gY;NP=$f>5 zLlgasH_4T7#hzpgZ!(52#P|n*8xm-1Y;tLmNXc&s6!!>g)O?!YQM<`T&+@{{D&RL@{<&p7ly>er zm>DUpcgG8(levsrIFczAv!fZe#I5c|SG<4)hKj-CTk-BCxOT5}3&re#Y(AayJEMi2 z2Hh?sOHp5PjJATMUm#)wy-6dm?W%eNWq3FNkQ$S{c9LLkTSX)3iBhKc%TiJ6_R1=1 zUB(KH%ix0cNT;ozf&!)wrt_nP@xILd9L!h{#|)||R)`21WFrXxGBkh4di^eol-!g8Al%_`|R2}F=L zCEV4)ri7+wHs9YA9=Sk$b-am53EL340(+33G&;>?9It2u=4mEUo|gomJuAG6GY3c= zG}>+T;yr6@9(MtLzQT@eizOO1znkwMY?87&#-`hFa}+hTZo04C6{y&w@kXzu(P`S6 zNtgQjAY{`74e$w)Y5M2Lh;2)lzC<}_gXM$}%=oJ`3a5O_!Zl@2_SV!;p*Rx4wwtiE zE>Uh7>ly<|AsV!MbD3f`47W(&nryi)vLG9_q>H0Az4pJ4gj;RFHTD%JvthtLj09Y3 z0XFYS=hCCue28W-5;PZPRvP|zBYBi>J z#FTKMa#J?_+(-#SgP}%d)#h~CM`6YdG#+BZtrX4Y(&V(OaC4@Z8qAE277kBjQ#~W4 z?2!yJ3OWE-8@KF!acwvWENkP76Cun04r3yZA^G3ykCUbN>4?xE%B{;=-DXcI5$(M- z+HbAie(5S|FXOOFEkrE=dt&sm${`w$o>yq}G=31e=nPEo*9;Ey4_r}Mcc-EJ@sC-9 zr>Q@mPnR-~I}mMJ*TGF*l1YWk*XYbCQ%Y)ka(8n3kgAvcsgacvlco$CXvelXDJ#J5s3Z8=;VNfjsanbc~3l3YsevYfj@UD~ys zx=tLL%;ieyTy~;$NhroG^8uU(3HLMtNS8{$ejqbW{Y_l@k(KQCn`EEjs(7db;kRfA zEpo@w6D}pPZrbG}!JVAQ<`3W(aV^QZ^JnT+ka!{1j1Zf}z0D$Ybu~igy4eZ0G=>Gm z&3Ve1_wx^4cMx?VnJs0;4Z*7|f@~8jygHsTBHG&67hV;Q;1yrfhLNuv{M}8A6vpA@ zO2dW=M>cgYf%eZqf*U&`Rwdt|m2IqTF-y1_I;sNgn?w=76M*uf7*l_fsdsx3ufNY* z+bJ(lraz0C5Oo%AzA2+shYT-_od0g=`>@e>qq7_obQRY>y58Min9Ps*>k_eRb`*;@ zpJC^Q80(=Uux#Tlq!Wq3 zF*$Ih@#e^&f?_$Q#SHbW77Qps@3B<3WTF_rhJRd}&AQsOp)1dY z&dh?gqrct4myMZ-q>D3olB+bU~~Yq^~USin#KuV^TAMVncr z!zsjZc&=T>e;2QEWC*bS>>jd<_j;YiW7gmcOUd8tMHwP=dvv-9f@;iWnP+)X!_4Rm zBC5NJ@zc~85FOw~bZy1YOJv)|1`oPpy%KTs3c91JM>sm560-!2-Q3em59rCQxUwmG zl|Q{gh^c1N(9(RlpCAA#5MQBUz5+E9{&}|>TG@*7b+Ew$r|YbChhhpUQGA2~m9~Pp zR*B^yefwR3AQTgL8jiII9GDF5LoB4tW62JceVE4#;Qo~z@EF<=?Piy}K*i&$ieYIK z@${cDFYqoZEZ!U!zvjOhY(NN28$-LGiqmfb-vX`Dhp(86o{+czl)%}r0{@u-*+Ddz z>vjf1j|krlIUiu=dGlFs&(LuHaB@e~thUZmCa9Qv;ct}=4_l{I=Gb|GK@5$FK-Nt6 z5pSkj7ntdKkvH@sXQ(jWaZ*D$MU_3vuHfV+UHu))*uyjl%8uoU6K{M?nP(*-a51Ce z^Iw72Jsg?|EeUS&B-k1$LB8Nk*DKv(rZid1Q%bZiTevx0%$UrqrbIMZzcI54pFv|D zr^hDT7w*iE*O}ii0uB5{zb9M%{fqrxj^qA5k6cW{N{2(uBJ+4atZqWb*-x5`RKknI zwr7pzUMJUEbO~dDHVJG0mC$1-W$%kboLAyYfy7bb5?oju$2t2-FCnf-e&NGG@>gcc z$*+aOx9&=hl&+pcR$e+vY*If?ju;r^@H1jdLpCiC!dPJqft3cO05Y~MWi0fvT82op z*($yObY}J!3;7+{{Ah~)?8N5$mcr;!iw~pn&4R;n*5lPNz-mx{S>GVEL~?Np6Em&r z{$sn%qqR|U*&GVq+#j)pEp-|HGUk5wPa~ntYSbf0;gA-v+}A@dU~0 zvI1gE--^A;%+CGTe9m1nks0L<6-~8+n+;o-Kx8_ftE52W7z**@6rr#uZqEu$E`B3^HKR!T8jbK5}?4GDvH_VDG9yhZ2WIXEx0s z!#lU6`uclz>>TLBQ`@b{fuW?L=kdgRcv*feC^fCw55dpC#HeHNaTwBUtHw=I{GWh$ z39-{VSuAGqr5)*fW)j0H)t}FnvT0hF_U6(P-ct)^jg=Fd>3JRhe#MW7?CLTU5KFoB z?q!QbGg1_xVaxb+gU0N|5TznLgM$Zos$+POy%%;QgZC*>0FV#g^tTm@Pup zG-eDEJ+?4Nru*YQnbk^0uZ+GC9j=OpDJTy3?;+XxT4$o1t(uB5`hdxhqYHl$Mhxz) zW!_Gc*EDSRWJb3Z3*)=eSqVOn)gMubX*vc%JcX@I>T0?Vds>+^Fu+=esw$sx#;@LDJi(?mP%lW+M{W+KPUpBSapt! z!h}BC;AN^-G5pbX)VR>RCA9bUiW*!d1Tt_UAF@odfjFVa*ppwWBwU%-1i`u{eK2_> zjd9KcE0Fv+Uyz7`YNqb8&=$nj`6VA)or)k@-FMdwMhc1V4Jo9}DCDUiFI`7`q;Frc z?k9X~Cm~t$^t!=Fve+FV$)*^|K4nQZ;Un$ghLg1!$BoMkE#t#oH~Uy?NXX#NhgfYi ztX^M<)l)M9)5?WtH5pn`*QElKd;w047IRMfD3r^q>OX`DtbHq<+UzJ4@~PosIxo4R z%!j5lsfNOWDsf29nxsyXl+XsRI$%TK$}-0!dzlOdX_epo7m<;vjEJ=ihe`>y^B)xd zQv3=n!wvq<$4y>)t=Uc3&oG$y2}8$wSefb^7jqjRt-eSysqgGX;V>+{rpTH{d6Eao zni5AOCrEsZ$dNIXSuj4+`H=53H9PNp!SB2WtV#K(Y_U8qBAm6K1UdU=Hpf~OR<8*9 zCX%93G%PFJtaH!K?Wt|)@$pP?Pqs8NmI->=qBy|KKHH{f>Wf|?>PtS))N6|4&}PgY zNmD8z{3IhBu8a^|&+N}nWDks$_D|;AzU&dy2bL{88UCQEp*oCaj1l^&MM<|djB#5~ zn-Jb@GD9ThEu%@m&WGw7B4B*(wQEw_Q`@mGDwUl>z1w!eXuEp`S-KZYy30Q_lIVPW z4Xg$uZ|fOK4J3O9cMkVsReGH%PBmlT+^1Pr5)gEupbK&I@za9%{U#_X850y^R?fKh zb>C-gq#6J`q~LA(&{%r3aPu(Axeih3Ba3m&$W#wwsstMJ{i|60;yY1mUha%o5bi8N z0>aDi?_Z@@$yQxIGmhc$t!OHxRH2nN&$IhNy3?hYY=FRu#8c}O)*a*5aI?hh^U@3< z84{a3)|K$8hOXy`hX*0(f-xKW25;PSG>2~gSpp0{8JGPXrU8lgsylP^ApTfzn*+M? zg?!!2fwomO;q4I81CJz5x^ zAgi(wvSk+C9w%|ac%Oipy}CdNA>l+(*ICLMJH%p-Ti z!qtip+C|q5p0*7c%myq#9amy!m3Wd4WURbYd{&(lraeOyPKFDYxsv^rr;VUome%xy zLQ1JYgRBvZLwg&apMY0P+fu*=^ZxCHqv>2pc9?2aPP)zhRtpTuGLdm++n; z3?YiILJ8rTv%Alk!KhrC!RXux*tXs@3fBu;PzIBe%0!FF?5Qz%{#|8ERv@HP3T(63 zd(OsISqJVG(#E0`Q4VEBpwHg1bbcfgETrV{0G)<*>NWwIwv7KGS?)D%Rd9dmg zhiCuiPEG6;p9+c1QS9V73G8EE#1`CeGC0_P(5s6m>+Nm(Zma)dB`*cyw(B$LTw!uz zXcEU4EPa^KaEeZ_{39W4M3GWvm8*~wFn?Q6R6O20nWrau?;wB6q--QOlG@5hmGeh> zi%nrZG^CoX9OuJ)*95PYE}q?3&8Illm-UA<$o6C+GD<&y*g@>@M8=*{2(9G)$q%v} zX0vMhsX6y~kJ!uvWp!3F8NLO53R9sdD|_qUTOvNKA-KQJ{PuSLRBuL*rKZL%iR74O z@L=YTr64s}oQbJj!eSk)VDeB#jiW!wP|D(8`>LB7dd_yfQ6c#73~+Cp!t?n*;v0?L z!>ozG$tr|+ZWXId@j&;H0e70?VQfoT`(Uzs}|k!g432UTn~)l)_p zFR^FHqw7~#JwL>w>qhMhRW=Qcj1>ww`WM%_;h@8b6F>MW_kewHKh|T49?liwOaSWu zM#s$AWT5!BwpV3*j`k`|a$W7yQrVO{*f z2HS0cHI`Fze#~G`+F<<_m>id}s5uWa*j+Z*fCbhZLG9NW>^d6^#|k)>hykWVfNf(i zD(a%3AlZw}4`8YOFakDI*x>m_uwHSou8PS!{wl{0|Rp~GC|5>h9>t- z$ROiw4M*s7s9~ipO9R8Rw*bXx!(*lvex0 z{rgWd(Z#j~*`>S_y)3p2QJh&~cXR{J1|rPLafW(YT2xh#c%zqxtUbFV%OV(X_*}KyFMn*IHL2XOIJOfj8 zfk%u4@8OGONKW;QD!npjb?=$2wuV$b;%uh6_fC~YuLywE`hVfXt?q*t#|0r+}q zzTXlMsm%GG`workx0c$bjc|TQ*AR?}DJZ(K!fbTRJP?>Fbsg@wL&Q&9WA_H)x#{A_ z*f>sprpEcC?9o&vml?+n!$gEpI4^Cn6h$MIrh<-EcPRxFiL-jwHFw7phWp-T?#lQx zePcLR&lnB|`%cljC05jj7+!V{5Scj=h>zXREiz@kOt+JTm%s;^>4@dl+K3qW6WpaF9VKhsQ5$JA) zEAU$zS!(@Qr%WF}CiH==BZN(codlDUMQ6pWyG`zswt=KJ)eoRmWN8Ns&x5k^(|--!#rWfpm-p zRhI=3N<4T#jD{fEEC@+zZ5nGr5KRU`mN=36{wU>E3FsHqwC*r_0PtfC-$5V@Ojt{FmEVu2%n96Su;671<4AwsjELZe(^D9n8;J zOa&%hf9oA);!fWXEu^!$n7E}LCX5zYdk8MiTbON4{E5$mzs!y_97Py@*PYQhde#L_sLy zzf>_R=|D%5)Ollq$K8Te4*N)mC0|2~$YdO`*D4EP#jqQ^7`6a0Y)ASQ4P(9O!|4%J zHm`T{+xoNGWb>OmEbLzu24%2P8OTVb&s?N7h@FZajNQkvjp z55?%Re{)$8ncdz~qkT(__DaXZm3|+=i+07JETiWlmUg#z+Fi&?uz}1-u`rS@<|oH_ za?pu@#rM@qk>W`&t+6K5@`?U9uZQYcr8b&X>c58>JCe5?CO00XAux`Kidpc@$UkM; zs&la_(OeQGh+-!#?76|EYR=Nr22W43X(kP^<}Cnx_DDldY*DYVysXlCl~0({(Ujz1 zFP_8>MV(IZ7XxhIFI!CB?lE~8))L@zJJMIwF6MG{7au?6SN!OJ`j)&0LURJ>fz>NJRF`4X@HI&(JuifXrw$BlN%=*};$22S^kd(} znN8NAP8d|I`mi}Y*NS(JSdAU3ZnLi_yA#TjXL3ttw|Y8TTUlrR!Img>`9_CO(_Bv~ zs53Hu`lcLcgox}Gnjx159}FCokCpLtUm1b0qpCWqLfFvuH)^zFH$8N6Tf&yYqb9U! z`~R-dUMVap{`+dc57lV@VvY8n)@WZ_qaAe!Rpm!HMAi21)M)>k8tp%-(SD>x`-&Rv z*Hvq$?MrI6LcQ!a$u5iBfwMP5i8tpICX#a7IcGRqg?02KaUbg;R-}*dHc}D?|o|#hntID24&F4@o z`PNjYtun?_x9zfgU+^pBRX*Pw=Yj; zZM`96RH1_>fhgP&f2$|P!H>Tu?-E%P+EGQC!8@u~MWDG*2Z>&R#w4$rF;$4EOmA^Q zop33wI%e@N(4$2Uy+(yyQ+84$+p>{wh*3GPN8e z=52*C2p)*r4r9;KvRU#ii?IV?5ZS)6WQpBvfsBPgqN;yV7DzS>5>@%L(gHac25B!B z-}#vZawrTERk|aEzUpIzFi2Yjm5*CgZVH1;j{vb&D_swSLFPt)NVPr~L$Y-!!U|Ri zi0<5YsaEj4S+F|2)LLyQ8J|9aQiu~K(8;EyT{?7}Cl7rKib7yb&4G+w7~59%mJQu0 z=7Zy_S03L1OBGEdKK*MwD-czvOR*BV2zh<}bT>8F`LL*bq*9jr-rk zU?NEFAkT`JDFl)fL`Jm@_K@E_J}UKcfmLvPM3%<~lyk(*{nATgu*6T$<1Rpsg;zXg zo|@WYj~nBe&|@jCl9PEISXebsIZIZq8l7#(TWDcF!>5V^Ts*4UD6F?10Uw?8c$l8= z;Z^&Y{6wZV>5CDlHDf3lx!{n|B087{D}oIV@9BQO?)r`}PTTom;8Kk<(7dcN?=+{oB~t{J=N{38iviR>Sj`a_Buyz><4 z9USba=Dzi8QFu%be#_vn$Bhmy2yLDk|IiDL@)oLxnARK&`CGjTq*?N!9<|o9#yvMF zv*>(-8Or=m^Hx29=XesY2HX0H2r(Q7vvZ$y7x9SiK5E@XF2{FYwC*DK(A`**br&xJ;JeF-@7N8(ffcrobAOup z;Q>R#gWXHG8K&_K8#^MyqcUJ$^4dtijSOh-&RP_EcMe1Xin3(A=S8X@tJrLe0(AZd zQ?#chi{hUCp-8~H8Bj|7A}RK6>xl%s4w}30n*5f8YL(>pvl7+K3K9q-_(xbV0ddR= zh!^unJx3@o6QHM8V)0_f#SQ!;94^6Om7sK|@4HTNmE+NqoVcpGNQ_(*DK1j|dwUSK&eK`z25U|#$*>&$^uhZlv#m92G07~Hnu*=9XGzC#iV@4md(_5eia-_A zNEW6~?x)i6iPY9y`atk4Bql|Sx8VCJoUq>C(6DvE2FYwh2iBp_w@GFSS>ojQ6uaO( z=O+s&+#3O7K>^7~tYPjF@0SQbGe15|_x8xV4FP$q{Ln1#z!{D9zss-(2OjschqeFi zP>FB@1Kz^;>|3nhMrDn>0U2m#}D0F z!1w1+3Aiskkx9wNQOsK-Wm;JzX`9_j(VfIU31Y=!2$U}>?ZSC$)XW^bE`2>%KfLI8h zuu~^mO5=JK|HAkp)wP8`o+GVDowSwwBQ~TMNFgnTVb8?e=n-Rwl1vQd;WoH-Bn<8g z8ATspFvNoMOav8Au*z)F(82nrrzDv1FWKTJc-=?(<3S6unz0OiRD*8G<4qXVV_&DnCx$b6QSFaaU!78cf_*FcBTJg=EB7Xsi^zMIKg}W>>3oaVG z@vYc|qsLxQF>?|Ko-8ms_P=l!{O0YCSAv7g`86*Vb#OG0Z(>Q11O%ja<0hcU=x@SH zsAz_?t<4l5L^X2=y7dX76Vvab3DWOLw1popMWZ?SK?8@hi`P$>XB)q-WWbir3UCYA zG%zZB^C!$1hz0zNp9aR}vV=Iu7Ls{}Xaq>7#zL}&de)&G)ivX6F;6JF^)7SJCT;kf zs*Cp+$}wH&LHG?(lo$hP6oX#b7oPEBJ-9cITvqZdR((|9>m~v9RQ-&M(gue!UC|Wt zfZy`VuU;sUy(4W{J`$ z`>cA`EK!;w7evhmExcwyH065hu2~RGz0$giM``4QE$gkj?~=Rz7Ay0+UhcNZp0;xK zZn-;6mH~RV%iMj{!aHB?w*S3#7nRV&!}Pzh?rxB~9Zy(yk(g88PP>w6wcPFUo^~+5 zD5s^qGj6vqER?(5Me8mq^QrI5eb!yn;Z>5F(YGQYbf{N&6^*8fyy zNA#a>FuHv>BbGsK>n>Tn-Yw9VY=VPLaGRWLiaUYfG&!L;78-flnCfQfm0|}n+JFcO zj)*~AsdcirJDt;33~ax(#m(Y%8kEFq^Rr$v33S)fstmpY)_f&ujVYZc$(;-o|yPM;g~p6 z-^8dhfnG7)Q*Jf;?@klxPbMbb8}@+it<}fDtiL@2weab%7G`X&u7#Q3I|H?FUswxW z>#J*_`!7!uE%epO5;*UY-0o>wHN=l{krlnr9BDRXOq~~0*Tsw{>(WI_o%v!*g?v#? zd3fu)Q^*%jCOVYm%pLk>9*vE9H8Ha5vAVQ?4Kd!MthMB7te^#{68X2%!tLR4F`eE; zR&nLf`L)wT2ldR7_lIZ6_H(Pr-f_CvzaH6(VcDmxs2&5RKVFyRfAwp|lZgSJ2z!5< zz9~`1zFtiXXs^%zPcJQeJgkLQ6ru9kQl;0c(ZaMpsmm8muleAPuohb8REq{}|G6$5 z{OUcSo@kH{M}w&gs(V1|e>qL0KbdGy2z$VkS=BtC<&V!m9UKnppt-BMCrtg)8K{Mu z!dhr*tL6z)zIdAGpq^N8S2z|lc2twS`E;>=J+l8+SoVhQYO*&ybOzb|^I_Q&nE$F} z0gY#3{JS$e^5Zq)U&HC*|0gpO{)ey@P?1p87ZRVZYb5;YA4i^y7VZgaK}+KF`BV6c z2ezgbRNkwP0xItECLZH8I?bu%E!l}u$}f!zR^g%cRO)wQE3GG=yS- zq$hgLw?x_UH7wtqs8kyxdq-_9dnE`9Dcb8YHVnLy2{^rSCH~?`LLLg)V0SR^`{;BQ zGo#PYaV5Q;_%+`25%?cPknLsoji~;iQW}vrfP)2-rU+pBeS>NSTmhyv%b~ZoRD7vc zmD9c6dpNK&xL;U=QT?hK7V&ZwADw<6o$x@~@3fSZEERaTFI!1;{@oNVZf0L!C~pd8F2g#&WE8%wLS1$bNo);f&AYB z^6Dsn7I+}D5&#;mPV$t)Rd~i*?$>%(j4wxyB-^d35r?LCh&!JnfKzaESFBstX4J>$g;G8=Rs#Y`W(9c_p>lG@Ka?!LM^BdaOt&_K(uP5}+82y8$E{-1 zCR0EfNI=+h=Cr|FK$y2v1DEZQBvz|TxUkq#isn*oEmUc$toho-%|Oyh$3RMBsL>jg z^M(YH_$YvYkx=9z4(jUx9_w#*N17@EbO1mMmJ{XP}dE`N5c1 z;mi@7vD2WTTz%?9N?ONpn>>CCoRN)tg|Fw(gRS6qu*7dFss&G;272Rn&0A)x-F>}qrS$b+^>CDC)#f30 z5dklekc}UzR&X@M1QkEu=SFm*VEeE4ip)m;hdr0+4!Dd?FN)Z}{-Pz?`pRROUjhyc ZT})?A;9m&uwKN%Pt*@J@y!R5t{|6Z&NH+ig literal 0 HcmV?d00001 diff --git a/_haks/poa_dev/nw_s1_bltlvldr.nss b/_haks/poa_dev/nw_s1_bltlvldr.nss new file mode 100644 index 00000000..e3f14cab --- /dev/null +++ b/_haks/poa_dev/nw_s1_bltlvldr.nss @@ -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); + } +} diff --git a/_haks/poa_dev/nw_s1_bltparal.ncs b/_haks/poa_dev/nw_s1_bltparal.ncs new file mode 100644 index 0000000000000000000000000000000000000000..352beb7ccd9e9695ccf4799d2d19d14458416cce GIT binary patch literal 44090 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

yKIiQ}%5h|$$SU*|Okf7Zuibmw)aPI@dRbPd|O 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 literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltknckd.nss b/35expandedabilities/nw_s1_bltknckd.nss new file mode 100644 index 00000000..68169647 --- /dev/null +++ b/35expandedabilities/nw_s1_bltknckd.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_bltlightn.ncs b/35expandedabilities/nw_s1_bltlightn.ncs new file mode 100644 index 0000000000000000000000000000000000000000..9315527065d9fb66e25610c97340f5ef7f3aa439 GIT binary patch literal 44504 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 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); + } + } +} diff --git a/35expandedabilities/nw_s1_bltlvldr.ncs b/35expandedabilities/nw_s1_bltlvldr.ncs new file mode 100644 index 0000000000000000000000000000000000000000..7f6d6ea1c440f11ac9600d79d8e7a729adda5f88 GIT binary patch literal 43715 zcmeHw3z!_$b!K(VCKpKgeK?022v}RhGmU_BH zPme%+pA!rlKh~^+v4i7ah-3U9u@g4CUb0zZ8-fjFm$lgh2ka;gyEq9BI3_GH*b&zL z=bU@0>Q+}jByjvm-@^Azsq5bJKKI;nZ=G8;&^zSrUVXtuTO8*P9$)0(zbUR0Pc$?- zQ+EyaruvdwuDOD5&spK{b<_FIeCNc86USXA5u>YvzRqh7{;ZA1=+5g-gY;NP=$f>5 zLlgasH_4T7#hzpgZ!(52#P|n*8xm-1Y;tLmNXc&s6!!>g)O?!YQM<`T&+@{{D&RL@{<&p7ly>er zm>DUpcgG8(levsrIFczAv!fZe#I5c|SG<4)hKj-CTk-BCxOT5}3&re#Y(AayJEMi2 z2Hh?sOHp5PjJATMUm#)wy-6dm?W%eNWq3FNkQ$S{c9LLkTSX)3iBhKc%TiJ6_R1=1 zUB(KH%ix0cNT;ozf&!)wrt_nP@xILd9L!h{#|)||R)`21WFrXxGBkh4di^eol-!g8Al%_`|R2}F=L zCEV4)ri7+wHs9YA9=Sk$b-am53EL340(+33G&;>?9It2u=4mEUo|gomJuAG6GY3c= zG}>+T;yr6@9(MtLzQT@eizOO1znkwMY?87&#-`hFa}+hTZo04C6{y&w@kXzu(P`S6 zNtgQjAY{`74e$w)Y5M2Lh;2)lzC<}_gXM$}%=oJ`3a5O_!Zl@2_SV!;p*Rx4wwtiE zE>Uh7>ly<|AsV!MbD3f`47W(&nryi)vLG9_q>H0Az4pJ4gj;RFHTD%JvthtLj09Y3 z0XFYS=hCCue28W-5;PZPRvP|zBYBi>J z#FTKMa#J?_+(-#SgP}%d)#h~CM`6YdG#+BZtrX4Y(&V(OaC4@Z8qAE277kBjQ#~W4 z?2!yJ3OWE-8@KF!acwvWENkP76Cun04r3yZA^G3ykCUbN>4?xE%B{;=-DXcI5$(M- z+HbAie(5S|FXOOFEkrE=dt&sm${`w$o>yq}G=31e=nPEo*9;Ey4_r}Mcc-EJ@sC-9 zr>Q@mPnR-~I}mMJ*TGF*l1YWk*XYbCQ%Y)ka(8n3kgAvcsgacvlco$CXvelXDJ#J5s3Z8=;VNfjsanbc~3l3YsevYfj@UD~ys zx=tLL%;ieyTy~;$NhroG^8uU(3HLMtNS8{$ejqbW{Y_l@k(KQCn`EEjs(7db;kRfA zEpo@w6D}pPZrbG}!JVAQ<`3W(aV^QZ^JnT+ka!{1j1Zf}z0D$Ybu~igy4eZ0G=>Gm z&3Ve1_wx^4cMx?VnJs0;4Z*7|f@~8jygHsTBHG&67hV;Q;1yrfhLNuv{M}8A6vpA@ zO2dW=M>cgYf%eZqf*U&`Rwdt|m2IqTF-y1_I;sNgn?w=76M*uf7*l_fsdsx3ufNY* z+bJ(lraz0C5Oo%AzA2+shYT-_od0g=`>@e>qq7_obQRY>y58Min9Ps*>k_eRb`*;@ zpJC^Q80(=Uux#Tlq!Wq3 zF*$Ih@#e^&f?_$Q#SHbW77Qps@3B<3WTF_rhJRd}&AQsOp)1dY z&dh?gqrct4myMZ-q>D3olB+bU~~Yq^~USin#KuV^TAMVncr z!zsjZc&=T>e;2QEWC*bS>>jd<_j;YiW7gmcOUd8tMHwP=dvv-9f@;iWnP+)X!_4Rm zBC5NJ@zc~85FOw~bZy1YOJv)|1`oPpy%KTs3c91JM>sm560-!2-Q3em59rCQxUwmG zl|Q{gh^c1N(9(RlpCAA#5MQBUz5+E9{&}|>TG@*7b+Ew$r|YbChhhpUQGA2~m9~Pp zR*B^yefwR3AQTgL8jiII9GDF5LoB4tW62JceVE4#;Qo~z@EF<=?Piy}K*i&$ieYIK z@${cDFYqoZEZ!U!zvjOhY(NN28$-LGiqmfb-vX`Dhp(86o{+czl)%}r0{@u-*+Ddz z>vjf1j|krlIUiu=dGlFs&(LuHaB@e~thUZmCa9Qv;ct}=4_l{I=Gb|GK@5$FK-Nt6 z5pSkj7ntdKkvH@sXQ(jWaZ*D$MU_3vuHfV+UHu))*uyjl%8uoU6K{M?nP(*-a51Ce z^Iw72Jsg?|EeUS&B-k1$LB8Nk*DKv(rZid1Q%bZiTevx0%$UrqrbIMZzcI54pFv|D zr^hDT7w*iE*O}ii0uB5{zb9M%{fqrxj^qA5k6cW{N{2(uBJ+4atZqWb*-x5`RKknI zwr7pzUMJUEbO~dDHVJG0mC$1-W$%kboLAyYfy7bb5?oju$2t2-FCnf-e&NGG@>gcc z$*+aOx9&=hl&+pcR$e+vY*If?ju;r^@H1jdLpCiC!dPJqft3cO05Y~MWi0fvT82op z*($yObY}J!3;7+{{Ah~)?8N5$mcr;!iw~pn&4R;n*5lPNz-mx{S>GVEL~?Np6Em&r z{$sn%qqR|U*&GVq+#j)pEp-|HGUk5wPa~ntYSbf0;gA-v+}A@dU~0 zvI1gE--^A;%+CGTe9m1nks0L<6-~8+n+;o-Kx8_ftE52W7z**@6rr#uZqEu$E`B3^HKR!T8jbK5}?4GDvH_VDG9yhZ2WIXEx0s z!#lU6`uclz>>TLBQ`@b{fuW?L=kdgRcv*feC^fCw55dpC#HeHNaTwBUtHw=I{GWh$ z39-{VSuAGqr5)*fW)j0H)t}FnvT0hF_U6(P-ct)^jg=Fd>3JRhe#MW7?CLTU5KFoB z?q!QbGg1_xVaxb+gU0N|5TznLgM$Zos$+POy%%;QgZC*>0FV#g^tTm@Pup zG-eDEJ+?4Nru*YQnbk^0uZ+GC9j=OpDJTy3?;+XxT4$o1t(uB5`hdxhqYHl$Mhxz) zW!_Gc*EDSRWJb3Z3*)=eSqVOn)gMubX*vc%JcX@I>T0?Vds>+^Fu+=esw$sx#;@LDJi(?mP%lW+M{W+KPUpBSapt! z!h}BC;AN^-G5pbX)VR>RCA9bUiW*!d1Tt_UAF@odfjFVa*ppwWBwU%-1i`u{eK2_> zjd9KcE0Fv+Uyz7`YNqb8&=$nj`6VA)or)k@-FMdwMhc1V4Jo9}DCDUiFI`7`q;Frc z?k9X~Cm~t$^t!=Fve+FV$)*^|K4nQZ;Un$ghLg1!$BoMkE#t#oH~Uy?NXX#NhgfYi ztX^M<)l)M9)5?WtH5pn`*QElKd;w047IRMfD3r^q>OX`DtbHq<+UzJ4@~PosIxo4R z%!j5lsfNOWDsf29nxsyXl+XsRI$%TK$}-0!dzlOdX_epo7m<;vjEJ=ihe`>y^B)xd zQv3=n!wvq<$4y>)t=Uc3&oG$y2}8$wSefb^7jqjRt-eSysqgGX;V>+{rpTH{d6Eao zni5AOCrEsZ$dNIXSuj4+`H=53H9PNp!SB2WtV#K(Y_U8qBAm6K1UdU=Hpf~OR<8*9 zCX%93G%PFJtaH!K?Wt|)@$pP?Pqs8NmI->=qBy|KKHH{f>Wf|?>PtS))N6|4&}PgY zNmD8z{3IhBu8a^|&+N}nWDks$_D|;AzU&dy2bL{88UCQEp*oCaj1l^&MM<|djB#5~ zn-Jb@GD9ThEu%@m&WGw7B4B*(wQEw_Q`@mGDwUl>z1w!eXuEp`S-KZYy30Q_lIVPW z4Xg$uZ|fOK4J3O9cMkVsReGH%PBmlT+^1Pr5)gEupbK&I@za9%{U#_X850y^R?fKh zb>C-gq#6J`q~LA(&{%r3aPu(Axeih3Ba3m&$W#wwsstMJ{i|60;yY1mUha%o5bi8N z0>aDi?_Z@@$yQxIGmhc$t!OHxRH2nN&$IhNy3?hYY=FRu#8c}O)*a*5aI?hh^U@3< z84{a3)|K$8hOXy`hX*0(f-xKW25;PSG>2~gSpp0{8JGPXrU8lgsylP^ApTfzn*+M? zg?!!2fwomO;q4I81CJz5x^ zAgi(wvSk+C9w%|ac%Oipy}CdNA>l+(*ICLMJH%p-Ti z!qtip+C|q5p0*7c%myq#9amy!m3Wd4WURbYd{&(lraeOyPKFDYxsv^rr;VUome%xy zLQ1JYgRBvZLwg&apMY0P+fu*=^ZxCHqv>2pc9?2aPP)zhRtpTuGLdm++n; z3?YiILJ8rTv%Alk!KhrC!RXux*tXs@3fBu;PzIBe%0!FF?5Qz%{#|8ERv@HP3T(63 zd(OsISqJVG(#E0`Q4VEBpwHg1bbcfgETrV{0G)<*>NWwIwv7KGS?)D%Rd9dmg zhiCuiPEG6;p9+c1QS9V73G8EE#1`CeGC0_P(5s6m>+Nm(Zma)dB`*cyw(B$LTw!uz zXcEU4EPa^KaEeZ_{39W4M3GWvm8*~wFn?Q6R6O20nWrau?;wB6q--QOlG@5hmGeh> zi%nrZG^CoX9OuJ)*95PYE}q?3&8Illm-UA<$o6C+GD<&y*g@>@M8=*{2(9G)$q%v} zX0vMhsX6y~kJ!uvWp!3F8NLO53R9sdD|_qUTOvNKA-KQJ{PuSLRBuL*rKZL%iR74O z@L=YTr64s}oQbJj!eSk)VDeB#jiW!wP|D(8`>LB7dd_yfQ6c#73~+Cp!t?n*;v0?L z!>ozG$tr|+ZWXId@j&;H0e70?VQfoT`(Uzs}|k!g432UTn~)l)_p zFR^FHqw7~#JwL>w>qhMhRW=Qcj1>ww`WM%_;h@8b6F>MW_kewHKh|T49?liwOaSWu zM#s$AWT5!BwpV3*j`k`|a$W7yQrVO{*f z2HS0cHI`Fze#~G`+F<<_m>id}s5uWa*j+Z*fCbhZLG9NW>^d6^#|k)>hykWVfNf(i zD(a%3AlZw}4`8YOFakDI*x>m_uwHSou8PS!{wl{0|Rp~GC|5>h9>t- z$ROiw4M*s7s9~ipO9R8Rw*bXx!(*lvex0 z{rgWd(Z#j~*`>S_y)3p2QJh&~cXR{J1|rPLafW(YT2xh#c%zqxtUbFV%OV(X_*}KyFMn*IHL2XOIJOfj8 zfk%u4@8OGONKW;QD!npjb?=$2wuV$b;%uh6_fC~YuLywE`hVfXt?q*t#|0r+}q zzTXlMsm%GG`workx0c$bjc|TQ*AR?}DJZ(K!fbTRJP?>Fbsg@wL&Q&9WA_H)x#{A_ z*f>sprpEcC?9o&vml?+n!$gEpI4^Cn6h$MIrh<-EcPRxFiL-jwHFw7phWp-T?#lQx zePcLR&lnB|`%cljC05jj7+!V{5Scj=h>zXREiz@kOt+JTm%s;^>4@dl+K3qW6WpaF9VKhsQ5$JA) zEAU$zS!(@Qr%WF}CiH==BZN(codlDUMQ6pWyG`zswt=KJ)eoRmWN8Ns&x5k^(|--!#rWfpm-p zRhI=3N<4T#jD{fEEC@+zZ5nGr5KRU`mN=36{wU>E3FsHqwC*r_0PtfC-$5V@Ojt{FmEVu2%n96Su;671<4AwsjELZe(^D9n8;J zOa&%hf9oA);!fWXEu^!$n7E}LCX5zYdk8MiTbON4{E5$mzs!y_97Py@*PYQhde#L_sLy zzf>_R=|D%5)Ollq$K8Te4*N)mC0|2~$YdO`*D4EP#jqQ^7`6a0Y)ASQ4P(9O!|4%J zHm`T{+xoNGWb>OmEbLzu24%2P8OTVb&s?N7h@FZajNQkvjp z55?%Re{)$8ncdz~qkT(__DaXZm3|+=i+07JETiWlmUg#z+Fi&?uz}1-u`rS@<|oH_ za?pu@#rM@qk>W`&t+6K5@`?U9uZQYcr8b&X>c58>JCe5?CO00XAux`Kidpc@$UkM; zs&la_(OeQGh+-!#?76|EYR=Nr22W43X(kP^<}Cnx_DDldY*DYVysXlCl~0({(Ujz1 zFP_8>MV(IZ7XxhIFI!CB?lE~8))L@zJJMIwF6MG{7au?6SN!OJ`j)&0LURJ>fz>NJRF`4X@HI&(JuifXrw$BlN%=*};$22S^kd(} znN8NAP8d|I`mi}Y*NS(JSdAU3ZnLi_yA#TjXL3ttw|Y8TTUlrR!Img>`9_CO(_Bv~ zs53Hu`lcLcgox}Gnjx159}FCokCpLtUm1b0qpCWqLfFvuH)^zFH$8N6Tf&yYqb9U! z`~R-dUMVap{`+dc57lV@VvY8n)@WZ_qaAe!Rpm!HMAi21)M)>k8tp%-(SD>x`-&Rv z*Hvq$?MrI6LcQ!a$u5iBfwMP5i8tpICX#a7IcGRqg?02KaUbg;R-}*dHc}D?|o|#hntID24&F4@o z`PNjYtun?_x9zfgU+^pBRX*Pw=Yj; zZM`96RH1_>fhgP&f2$|P!H>Tu?-E%P+EGQC!8@u~MWDG*2Z>&R#w4$rF;$4EOmA^Q zop33wI%e@N(4$2Uy+(yyQ+84$+p>{wh*3GPN8e z=52*C2p)*r4r9;KvRU#ii?IV?5ZS)6WQpBvfsBPgqN;yV7DzS>5>@%L(gHac25B!B z-}#vZawrTERk|aEzUpIzFi2Yjm5*CgZVH1;j{vb&D_swSLFPt)NVPr~L$Y-!!U|Ri zi0<5YsaEj4S+F|2)LLyQ8J|9aQiu~K(8;EyT{?7}Cl7rKib7yb&4G+w7~59%mJQu0 z=7Zy_S03L1OBGEdKK*MwD-czvOR*BV2zh<}bT>8F`LL*bq*9jr-rk zU?NEFAkT`JDFl)fL`Jm@_K@E_J}UKcfmLvPM3%<~lyk(*{nATgu*6T$<1Rpsg;zXg zo|@WYj~nBe&|@jCl9PEISXebsIZIZq8l7#(TWDcF!>5V^Ts*4UD6F?10Uw?8c$l8= z;Z^&Y{6wZV>5CDlHDf3lx!{n|B087{D}oIV@9BQO?)r`}PTTom;8Kk<(7dcN?=+{oB~t{J=N{38iviR>Sj`a_Buyz><4 z9USba=Dzi8QFu%be#_vn$Bhmy2yLDk|IiDL@)oLxnARK&`CGjTq*?N!9<|o9#yvMF zv*>(-8Or=m^Hx29=XesY2HX0H2r(Q7vvZ$y7x9SiK5E@XF2{FYwC*DK(A`**br&xJ;JeF-@7N8(ffcrobAOup z;Q>R#gWXHG8K&_K8#^MyqcUJ$^4dtijSOh-&RP_EcMe1Xin3(A=S8X@tJrLe0(AZd zQ?#chi{hUCp-8~H8Bj|7A}RK6>xl%s4w}30n*5f8YL(>pvl7+K3K9q-_(xbV0ddR= zh!^unJx3@o6QHM8V)0_f#SQ!;94^6Om7sK|@4HTNmE+NqoVcpGNQ_(*DK1j|dwUSK&eK`z25U|#$*>&$^uhZlv#m92G07~Hnu*=9XGzC#iV@4md(_5eia-_A zNEW6~?x)i6iPY9y`atk4Bql|Sx8VCJoUq>C(6DvE2FYwh2iBp_w@GFSS>ojQ6uaO( z=O+s&+#3O7K>^7~tYPjF@0SQbGe15|_x8xV4FP$q{Ln1#z!{D9zss-(2OjschqeFi zP>FB@1Kz^;>|3nhMrDn>0U2m#}D0F z!1w1+3Aiskkx9wNQOsK-Wm;JzX`9_j(VfIU31Y=!2$U}>?ZSC$)XW^bE`2>%KfLI8h zuu~^mO5=JK|HAkp)wP8`o+GVDowSwwBQ~TMNFgnTVb8?e=n-Rwl1vQd;WoH-Bn<8g z8ATspFvNoMOav8Au*z)F(82nrrzDv1FWKTJc-=?(<3S6unz0OiRD*8G<4qXVV_&DnCx$b6QSFaaU!78cf_*FcBTJg=EB7Xsi^zMIKg}W>>3oaVG z@vYc|qsLxQF>?|Ko-8ms_P=l!{O0YCSAv7g`86*Vb#OG0Z(>Q11O%ja<0hcU=x@SH zsAz_?t<4l5L^X2=y7dX76Vvab3DWOLw1popMWZ?SK?8@hi`P$>XB)q-WWbir3UCYA zG%zZB^C!$1hz0zNp9aR}vV=Iu7Ls{}Xaq>7#zL}&de)&G)ivX6F;6JF^)7SJCT;kf zs*Cp+$}wH&LHG?(lo$hP6oX#b7oPEBJ-9cITvqZdR((|9>m~v9RQ-&M(gue!UC|Wt zfZy`VuU;sUy(4W{J`$ z`>cA`EK!;w7evhmExcwyH065hu2~RGz0$giM``4QE$gkj?~=Rz7Ay0+UhcNZp0;xK zZn-;6mH~RV%iMj{!aHB?w*S3#7nRV&!}Pzh?rxB~9Zy(yk(g88PP>w6wcPFUo^~+5 zD5s^qGj6vqER?(5Me8mq^QrI5eb!yn;Z>5F(YGQYbf{N&6^*8fyy zNA#a>FuHv>BbGsK>n>Tn-Yw9VY=VPLaGRWLiaUYfG&!L;78-flnCfQfm0|}n+JFcO zj)*~AsdcirJDt;33~ax(#m(Y%8kEFq^Rr$v33S)fstmpY)_f&ujVYZc$(;-o|yPM;g~p6 z-^8dhfnG7)Q*Jf;?@klxPbMbb8}@+it<}fDtiL@2weab%7G`X&u7#Q3I|H?FUswxW z>#J*_`!7!uE%epO5;*UY-0o>wHN=l{krlnr9BDRXOq~~0*Tsw{>(WI_o%v!*g?v#? zd3fu)Q^*%jCOVYm%pLk>9*vE9H8Ha5vAVQ?4Kd!MthMB7te^#{68X2%!tLR4F`eE; zR&nLf`L)wT2ldR7_lIZ6_H(Pr-f_CvzaH6(VcDmxs2&5RKVFyRfAwp|lZgSJ2z!5< zz9~`1zFtiXXs^%zPcJQeJgkLQ6ru9kQl;0c(ZaMpsmm8muleAPuohb8REq{}|G6$5 z{OUcSo@kH{M}w&gs(V1|e>qL0KbdGy2z$VkS=BtC<&V!m9UKnppt-BMCrtg)8K{Mu z!dhr*tL6z)zIdAGpq^N8S2z|lc2twS`E;>=J+l8+SoVhQYO*&ybOzb|^I_Q&nE$F} z0gY#3{JS$e^5Zq)U&HC*|0gpO{)ey@P?1p87ZRVZYb5;YA4i^y7VZgaK}+KF`BV6c z2ezgbRNkwP0xItECLZH8I?bu%E!l}u$}f!zR^g%cRO)wQE3GG=yS- zq$hgLw?x_UH7wtqs8kyxdq-_9dnE`9Dcb8YHVnLy2{^rSCH~?`LLLg)V0SR^`{;BQ zGo#PYaV5Q;_%+`25%?cPknLsoji~;iQW}vrfP)2-rU+pBeS>NSTmhyv%b~ZoRD7vc zmD9c6dpNK&xL;U=QT?hK7V&ZwADw<6o$x@~@3fSZEERaTFI!1;{@oNVZf0L!C~pd8F2g#&WE8%wLS1$bNo);f&AYB z^6Dsn7I+}D5&#;mPV$t)Rd~i*?$>%(j4wxyB-^d35r?LCh&!JnfKzaESFBstX4J>$g;G8=Rs#Y`W(9c_p>lG@Ka?!LM^BdaOt&_K(uP5}+82y8$E{-1 zCR0EfNI=+h=Cr|FK$y2v1DEZQBvz|TxUkq#isn*oEmUc$toho-%|Oyh$3RMBsL>jg z^M(YH_$YvYkx=9z4(jUx9_w#*N17@EbO1mMmJ{XP}dE`N5c1 z;mi@7vD2WTTz%?9N?ONpn>>CCoRN)tg|Fw(gRS6qu*7dFss&G;272Rn&0A)x-F>}qrS$b+^>CDC)#f30 z5dklekc}UzR&X@M1QkEu=SFm*VEeE4ip)m;hdr0+4!Dd?FN)Z}{-Pz?`pRROUjhyc ZT})?A;9m&uwKN%Pt*@J@y!R5t{|6Z&NH+ig literal 0 HcmV?d00001 diff --git a/35expandedabilities/nw_s1_bltlvldr.nss b/35expandedabilities/nw_s1_bltlvldr.nss new file mode 100644 index 00000000..e3f14cab --- /dev/null +++ b/35expandedabilities/nw_s1_bltlvldr.nss @@ -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); + } +} diff --git a/35expandedabilities/nw_s1_bltparal.ncs b/35expandedabilities/nw_s1_bltparal.ncs new file mode 100644 index 0000000000000000000000000000000000000000..352beb7ccd9e9695ccf4799d2d19d14458416cce GIT binary patch literal 44090 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