diff --git a/_content/BuildHaks.cmd b/_content/BuildHaks.cmd index cc40b21..6536a1f 100644 --- a/_content/BuildHaks.cmd +++ b/_content/BuildHaks.cmd @@ -1,3 +1,8 @@ +:loop +"C:\NWN Work\nwnsc.exe" -s -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\EN4_PRC8\_content\hak\en4_prc8_cep3_top";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\EN4_PRC8\_content\hak\en4_prc8_cep3_top\*.nss" +if %errorLevel% == -1 goto :loop + + cd _tools\ NWN.CLI.exe -k cd .. \ No newline at end of file diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_aurablnda.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_aurablnda.ncs index bf9309b..432db91 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_aurablnda.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_aurablnda.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_auracoldc.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_auracoldc.ncs index b9442d6..ec76ed2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_auracoldc.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_auracoldc.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_auraelecc.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_auraelecc.ncs index 37cc6e4..9946158 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_auraelecc.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_auraelecc.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_aurafirec.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_aurafirec.ncs index de93fa1..04e5de6 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_aurafirec.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_aurafirec.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_auramenca.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_auramenca.ncs index c821d8b..bb6a07e 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_auramenca.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_auramenca.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_auraprota.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_auraprota.ncs index 468539b..cea1eec 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_auraprota.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_auraprota.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_aurastuna.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_aurastuna.ncs index 38c9db3..2ed4901 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_aurastuna.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_aurastuna.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_auraunata.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_auraunata.ncs index adac269..8ebd947 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_auraunata.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_auraunata.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_aurauneaa.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_aurauneaa.ncs index dab354c..15c0a96 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_aurauneaa.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_aurauneaa.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltacid.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltacid.ncs index be087ac..a006de7 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltacid.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltacid.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltcharm.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltcharm.ncs index d0ee812..ee3fc53 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltcharm.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltcharm.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltchrdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltchrdr.ncs index 68c2848..097200d 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltchrdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltchrdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltcold.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltcold.ncs index ea508f5..6cc3bd2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltcold.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltcold.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltcondr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltcondr.ncs index ef215ae..213436a 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltcondr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltcondr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltconf.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltconf.ncs index 48278b4..86e52ca 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltconf.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltconf.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdaze.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdaze.ncs index 2984fa1..568fd65 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdaze.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdaze.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdeath.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdeath.ncs index 890709e..0f9ee5c 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdeath.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdeath.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdexdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdexdr.ncs index 005e10f..26c1006 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdexdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdexdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdisese.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdisese.ncs index 8580d05..c81e0cc 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdisese.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdisese.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdomn.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdomn.ncs index c4c72ea..3f629e6 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltdomn.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltdomn.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltfire.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltfire.ncs index 026e977..8ad6012 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltfire.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltfire.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltintdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltintdr.ncs index c5bd688..89a4fa2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltintdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltintdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltknckd.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltknckd.ncs index 47f7841..c54ca6c 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltknckd.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltknckd.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltlightn.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltlightn.ncs index 7178527..f698181 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltlightn.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltlightn.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltlvldr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltlvldr.ncs index 87f18cc..35d17c6 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltlvldr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltlvldr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltparal.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltparal.ncs index b405a32..87b8348 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltparal.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltparal.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltpoison.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltpoison.ncs index d7368cb..e4066f7 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltpoison.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltpoison.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltshards.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltshards.ncs index 773c454..e0e9c93 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltshards.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltshards.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltslow.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltslow.ncs index fb260e7..3013dbd 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltslow.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltslow.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltstrdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltstrdr.ncs index 89e934a..6c5f13c 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltstrdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltstrdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltstun.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltstun.ncs index 2e56934..d17a3b7 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltstun.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltstun.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltweb.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltweb.ncs index 1ffeb07..a180256 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltweb.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltweb.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_bltwisdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_bltwisdr.ncs index 33ec99e..0c27cfd 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_bltwisdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_bltwisdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_coneacid.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_coneacid.ncs index 53405d2..60b5b7f 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_coneacid.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_coneacid.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_conecold.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_conecold.ncs index 87ea220..7d26629 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_conecold.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_conecold.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_conedisea.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_conedisea.ncs index 3bac3eb..7ddb012 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_conedisea.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_conedisea.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_coneelec.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_coneelec.ncs index 703775a..83ba10d 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_coneelec.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_coneelec.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_conesonic.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_conesonic.ncs index 2769739..f638132 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_conesonic.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_conesonic.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_dragfear.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_dragfear.ncs index 718a0a5..29a8131 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_dragfear.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_dragfear.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_dragfeara.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_dragfeara.ncs index 2c330bb..449bea2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_dragfeara.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_dragfeara.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_feroc3.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_feroc3.ncs index 25681cd..dfb32e0 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_feroc3.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_feroc3.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazechaos.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazechaos.ncs index 1895f14..f421c51 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazechaos.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazechaos.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazecharm.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazecharm.ncs index 2a5a21f..610a51e 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazecharm.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazecharm.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazeconfu.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazeconfu.ncs index 541ed76..4514c9c 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazeconfu.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazeconfu.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedaze.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedaze.ncs index 7ab2791..7d808b2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedaze.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedaze.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedeath.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedeath.ncs index d7a2ae5..4033bb4 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedeath.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedeath.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedomn.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedomn.ncs index 71b62c1..2429a17 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedomn.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedomn.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedoom.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedoom.ncs index 43625f0..09426e7 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazedoom.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazedoom.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazeevil.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazeevil.ncs index a691fd0..02563e2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazeevil.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazeevil.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazefear.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazefear.ncs index 58d41e1..e22008d 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazefear.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazefear.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazegood.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazegood.ncs index 0d4a666..0e89634 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazegood.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazegood.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazelaw.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazelaw.ncs index 66b5c26..e5a3658 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazelaw.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazelaw.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_gazestun.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_gazestun.ncs index b4d086e..04da4b5 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_gazestun.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_gazestun.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_golemgas.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_golemgas.ncs index 5d6dbb8..efb74ee 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_golemgas.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_golemgas.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_hndbreath.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_hndbreath.ncs index b65b433..5a451a3 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_hndbreath.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_hndbreath.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howlconf.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howlconf.ncs index 449e6af..f05f586 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howlconf.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howlconf.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howldaze.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howldaze.ncs index f035f3b..ef0f30e 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howldaze.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howldaze.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howldeath.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howldeath.ncs index 9ebbf49..c654340 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howldeath.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howldeath.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howlfear.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howlfear.ncs index 1fd746d..97f12af 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howlfear.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howlfear.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howlparal.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howlparal.ncs index 023c157..530f020 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howlparal.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howlparal.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howlsonic.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howlsonic.ncs index ffe2ebe..876e11f 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howlsonic.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howlsonic.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_howlstun.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_howlstun.ncs index 069669c..ac9952b 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_howlstun.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_howlstun.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_krenscare.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_krenscare.ncs index 3b311a6..4a8c0eb 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_krenscare.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_krenscare.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_mephsalt.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_mephsalt.ncs index 687beb2..724cd1f 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_mephsalt.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_mephsalt.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_mephsteam.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_mephsteam.ncs index 7d3b0fb..f163c72 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_mephsteam.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_mephsteam.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_mumundead.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_mumundead.ncs index 6897b90..2205868 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_mumundead.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_mumundead.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulschrdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulschrdr.ncs index 79090d4..7448a22 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulschrdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulschrdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulscold.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulscold.ncs index f6a23ea..6fdad18 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulscold.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulscold.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulscondr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulscondr.ncs index d44caaf..faef4a5 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulscondr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulscondr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdeath.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdeath.ncs index 8515306..c7f20c9 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdeath.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdeath.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdexdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdexdr.ncs index b9c212c..764a28e 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdexdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdexdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdis.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdis.ncs index 80e023b..39c19ba 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdis.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsdis.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulselec.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulselec.ncs index fe87adb..8be0b10 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulselec.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulselec.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsfire.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsfire.ncs index 48a086b..8563577 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsfire.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsfire.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsholy.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsholy.ncs index 9893e11..8eb4b95 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsholy.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsholy.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsintdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsintdr.ncs index 42308d3..b04960d 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsintdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsintdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulslvldr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulslvldr.ncs index a9e40ad..690cfce 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulslvldr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulslvldr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsneg.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsneg.ncs index 0884cc4..8123c99 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsneg.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsneg.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulspois.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulspois.ncs index cafb629..a381a67 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulspois.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulspois.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsspore.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsspore.ncs index 723d855..4f7e590 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsspore.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsspore.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsstrdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsstrdr.ncs index a470f85..8953f54 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulsstrdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulsstrdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulswind.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulswind.ncs index dec7caa..88e74ba 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulswind.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulswind.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_pulswisdr.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_pulswisdr.ncs index 63eabf4..7f7cd8a 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_pulswisdr.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_pulswisdr.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_smokeclaw.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_smokeclaw.ncs index 25a13fa..93a5c8e 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_smokeclaw.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_smokeclaw.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_stink_a.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_stink_a.ncs index 7e7a88e..af2a1d2 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_stink_a.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_stink_a.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfga.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfga.ncs index d293ff6..f9187b7 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfga.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfga.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfog.ncs b/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfog.ncs index 609cad3..8ba90b5 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfog.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s1_tyrantfog.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s2_divprot.ncs b/_content/hak/en4_prc8_cep3_top/nw_s2_divprot.ncs index 0eb101f..5005808 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s2_divprot.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s2_divprot.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/nw_s3_balordeth.ncs b/_content/hak/en4_prc8_cep3_top/nw_s3_balordeth.ncs index 9167519..12069ff 100644 Binary files a/_content/hak/en4_prc8_cep3_top/nw_s3_balordeth.ncs and b/_content/hak/en4_prc8_cep3_top/nw_s3_balordeth.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/z_c2_default1.ncs b/_content/hak/en4_prc8_cep3_top/z_c2_default1.ncs index 5a3b536..06cd1e7 100644 Binary files a/_content/hak/en4_prc8_cep3_top/z_c2_default1.ncs and b/_content/hak/en4_prc8_cep3_top/z_c2_default1.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/z_c2_default2.ncs b/_content/hak/en4_prc8_cep3_top/z_c2_default2.ncs index 3b59dbc..1b83595 100644 Binary files a/_content/hak/en4_prc8_cep3_top/z_c2_default2.ncs and b/_content/hak/en4_prc8_cep3_top/z_c2_default2.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/z_c2_default4.ncs b/_content/hak/en4_prc8_cep3_top/z_c2_default4.ncs index 4cb43b8..ffbf198 100644 Binary files a/_content/hak/en4_prc8_cep3_top/z_c2_default4.ncs and b/_content/hak/en4_prc8_cep3_top/z_c2_default4.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/z_c2_default7.ncs b/_content/hak/en4_prc8_cep3_top/z_c2_default7.ncs index 1996bd2..0fc8a9d 100644 Binary files a/_content/hak/en4_prc8_cep3_top/z_c2_default7.ncs and b/_content/hak/en4_prc8_cep3_top/z_c2_default7.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/z_c2_default9.ncs b/_content/hak/en4_prc8_cep3_top/z_c2_default9.ncs index 1ca23a7..6d26aac 100644 Binary files a/_content/hak/en4_prc8_cep3_top/z_c2_default9.ncs and b/_content/hak/en4_prc8_cep3_top/z_c2_default9.ncs differ diff --git a/_content/hak/en4_prc8_cep3_top/z_c2_defaulte.ncs b/_content/hak/en4_prc8_cep3_top/z_c2_defaulte.ncs index 13fac5b..81e18bb 100644 Binary files a/_content/hak/en4_prc8_cep3_top/z_c2_defaulte.ncs and b/_content/hak/en4_prc8_cep3_top/z_c2_defaulte.ncs differ diff --git a/_module/ifo/module.ifo.json b/_module/ifo/module.ifo.json index 3c50b71..720bfa6 100644 --- a/_module/ifo/module.ifo.json +++ b/_module/ifo/module.ifo.json @@ -1238,7 +1238,7 @@ }, "Mod_OnNuiEvent": { "type": "resref", - "value": "prc_onplayernui" + "value": "hif_onplayernui" }, "Mod_OnPlrChat": { "type": "resref", @@ -1258,7 +1258,7 @@ }, "Mod_OnPlrGuiEvt": { "type": "resref", - "value": "" + "value": "mod_gui" }, "Mod_OnPlrLvlUp": { "type": "resref", @@ -1270,7 +1270,7 @@ }, "Mod_OnPlrTarget": { "type": "resref", - "value": "prc_onplaytarget" + "value": "hif_onplaytarget" }, "Mod_OnPlrTileAct": { "type": "resref", @@ -2579,6 +2579,21 @@ "type": "int", "value": 1 } + }, + { + "__struct_id": 0, + "Name": { + "type": "cexostring", + "value": "PRC_CREATE_INFUSION_CASTER_LEVEL" + }, + "Type": { + "type": "dword", + "value": 1 + }, + "Value": { + "type": "int", + "value": 1 + } } ] } diff --git a/_module/itp/placeablepalcus.itp.json b/_module/itp/placeablepalcus.itp.json index 8444240..c7158e2 100644 --- a/_module/itp/placeablepalcus.itp.json +++ b/_module/itp/placeablepalcus.itp.json @@ -20306,22 +20306,22 @@ "__struct_id": 0, "RESREF": { "type": "resref", - "value": "zep_tree034" + "value": "zep_tree028" }, "STRREF": { "type": "dword", - "value": 16813282 + "value": 16813284 } }, { "__struct_id": 0, "RESREF": { "type": "resref", - "value": "zep_tree028" + "value": "zep_tree034" }, "STRREF": { "type": "dword", - "value": 16813284 + "value": 16813282 } }, { @@ -20368,17 +20368,6 @@ "value": 16813296 } }, - { - "__struct_id": 0, - "RESREF": { - "type": "resref", - "value": "zep_tree035" - }, - "STRREF": { - "type": "dword", - "value": 16813298 - } - }, { "__struct_id": 0, "RESREF": { @@ -20394,11 +20383,11 @@ "__struct_id": 0, "RESREF": { "type": "resref", - "value": "zep_tree038" + "value": "zep_tree035" }, "STRREF": { "type": "dword", - "value": 16813306 + "value": 16813298 } }, { @@ -20412,6 +20401,17 @@ "value": 16813308 } }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "zep_tree038" + }, + "STRREF": { + "type": "dword", + "value": 16813306 + } + }, { "__struct_id": 0, "RESREF": { @@ -20777,17 +20777,6 @@ "value": 16813264 } }, - { - "__struct_id": 0, - "RESREF": { - "type": "resref", - "value": "zep_tree036" - }, - "STRREF": { - "type": "dword", - "value": 16813286 - } - }, { "__struct_id": 0, "RESREF": { @@ -20803,11 +20792,11 @@ "__struct_id": 0, "RESREF": { "type": "resref", - "value": "zep_tree093" + "value": "zep_tree036" }, "STRREF": { "type": "dword", - "value": 16813302 + "value": 16813286 } }, { @@ -20821,6 +20810,17 @@ "value": 16813304 } }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "zep_tree093" + }, + "STRREF": { + "type": "dword", + "value": 16813302 + } + }, { "__struct_id": 0, "RESREF": { diff --git a/_module/ncs/hif_onplayernui.ncs b/_module/ncs/hif_onplayernui.ncs new file mode 100644 index 0000000..6029e18 Binary files /dev/null and b/_module/ncs/hif_onplayernui.ncs differ diff --git a/_module/ncs/hif_onplaytarget.ncs b/_module/ncs/hif_onplaytarget.ncs new file mode 100644 index 0000000..48a7f99 Binary files /dev/null and b/_module/ncs/hif_onplaytarget.ncs differ diff --git a/_module/ncs/mod_enter.ncs b/_module/ncs/mod_enter.ncs index 1d0d784..d6abc1d 100644 Binary files a/_module/ncs/mod_enter.ncs and b/_module/ncs/mod_enter.ncs differ diff --git a/_module/ncs/mod_gui.ncs b/_module/ncs/mod_gui.ncs index da11223..410d992 100644 Binary files a/_module/ncs/mod_gui.ncs and b/_module/ncs/mod_gui.ncs differ diff --git a/_module/ncs/mod_levelup.ncs b/_module/ncs/mod_levelup.ncs index 6f80c96..ec3b1c8 100644 Binary files a/_module/ncs/mod_levelup.ncs and b/_module/ncs/mod_levelup.ncs differ diff --git a/_module/ncs/mod_nui.ncs b/_module/ncs/mod_nui.ncs index f867a09..da318c5 100644 Binary files a/_module/ncs/mod_nui.ncs and b/_module/ncs/mod_nui.ncs differ diff --git a/_module/ncs/mod_rest.ncs b/_module/ncs/mod_rest.ncs index 388331a..aeab582 100644 Binary files a/_module/ncs/mod_rest.ncs and b/_module/ncs/mod_rest.ncs differ diff --git a/_module/ncs/obj_us_chest.ncs b/_module/ncs/obj_us_chest.ncs index af4b661..50f63f1 100644 Binary files a/_module/ncs/obj_us_chest.ncs and b/_module/ncs/obj_us_chest.ncs differ diff --git a/_module/ncs/qst_hasitem.ncs b/_module/ncs/qst_hasitem.ncs index 8fca229..c7c9598 100644 Binary files a/_module/ncs/qst_hasitem.ncs and b/_module/ncs/qst_hasitem.ncs differ diff --git a/_module/ncs/rd_respawn.ncs b/_module/ncs/rd_respawn.ncs index ff3791a..b032596 100644 Binary files a/_module/ncs/rd_respawn.ncs and b/_module/ncs/rd_respawn.ncs differ diff --git a/_module/ncs/x2_mod_def_load.ncs b/_module/ncs/x2_mod_def_load.ncs index 1757f7f..36894a1 100644 Binary files a/_module/ncs/x2_mod_def_load.ncs and b/_module/ncs/x2_mod_def_load.ncs differ diff --git a/_module/nss/hif_onplayernui.nss b/_module/nss/hif_onplayernui.nss new file mode 100644 index 0000000..d796449 --- /dev/null +++ b/_module/nss/hif_onplayernui.nss @@ -0,0 +1,5 @@ +void main() +{ + ExecuteScript("mod_nui"); + ExecuteScript("prc_onplayernui"); +} \ No newline at end of file diff --git a/_module/nss/hif_onplaytarget.nss b/_module/nss/hif_onplaytarget.nss new file mode 100644 index 0000000..bca4664 --- /dev/null +++ b/_module/nss/hif_onplaytarget.nss @@ -0,0 +1,5 @@ +void main() +{ + ExecuteScript("mod_target"); + ExecuteScript("prc_onplaytarget"); +} \ No newline at end of file diff --git a/_module/nss/ms_name_inc.nss b/_module/nss/ms_name_inc.nss index cd92a20..2b5e011 100644 --- a/_module/nss/ms_name_inc.nss +++ b/_module/nss/ms_name_inc.nss @@ -27,7 +27,7 @@ // the NPC then is given a random name generated by RACE and GENDER using // the RandomName function. // -// eg. Male Dwarven Villager in the creator becomes Gloigan on spawn +// eg. Male Dwarven Villager in the Aurora Toolset becomes Gloigan on spawn // this time and perhaps Rufus on the next spawned Villager. // // "NAME_TYPE": Setting this int variable to "1" will cause a Full Name @@ -60,12 +60,11 @@ #include "prc_inc_racial" -//void main (){} ///// FUNCTION DECLARATIONS //////////////////////////////////////////////////// -string GetClassLevelTitle(int nClassType); +string GetClassLevelTitle(int nClassType, object oNPC = OBJECT_SELF); int GetHighestClassLevel(object oCreature = OBJECT_SELF); @@ -96,969 +95,869 @@ void ms_Nomenclature(object oNPC = OBJECT_SELF) string sTitle = GetLocalString(oNPC, "TITLE"); string sPostfix = GetLocalString(oNPC, "POSTFIX"); string sBaseRace = GetLocalString(oNPC, "BASE_RACE"); + string sClassTitle; - int nGender = GetGender(oNPC); int bClassTitle = GetLocalInt(oNPC,"CLASS_TITLE"); - int nHighClass = GetHighestClassLevel(oNPC); - int nLevel = GetLevelByClass(nHighClass, oNPC); + //:: Handles class level based NPC titles if (bClassTitle) { - string sTitle; - - switch (nHighClass) - { - case CLASS_TYPE_BARBARIAN: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Brute" ; - break; - - case 4: case 5: - sTitle = "Vandal"; break; - - case 6: - if (nGender == 1) - {sTitle = "Plunderess"; break;} - else - {sTitle = "Plunderer"; break;} - - case 7: - sTitle = "Pillager"; break; - - case 8: - sTitle = "Marauder"; break; - - case 9: - sTitle = "Reaver"; break; - - case 10: - sTitle = "Barbarian"; break; - - case 11: - sTitle = "Mauler"; break; - - case 12: - sTitle = "Ravager"; break; - - case 13: - sTitle = "Slaughterer"; break; - - case 14: - sTitle = "Destroyer"; break; - - case 15: - if (nGender == 1) - {sTitle = "Chieftainess"; break;} - else - {sTitle = "Chieftain"; break;} - - case 16: - sTitle = "Bloodletter"; break; - - case 17: - sTitle = "Rampager"; break; - - case 18: - sTitle = "Slayer"; break; - - case 19: - sTitle = "Warmonger"; break; - - case 20: - if (nGender == 1) - {sTitle = "High Chieftainess"; break;} - else - {sTitle = "High Chieftain"; break;} - - default: - if (nGender == 1) - {sTitle = "Conqueress"; break;} - else - {sTitle = "Conqueror"; break;} - - } - - case CLASS_TYPE_ROGUE: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Lookout" ; - break; - - case 4: case 5: - sTitle = "Outlaw"; break; - - case 6: - sTitle = "Scalawag"; break; - - case 7: - sTitle = "Creeper"; break; - - case 8: - sTitle = "Larker"; break; - - case 9: - sTitle = "Footpad"; break; - - case 10: - sTitle = "Rogue"; break; - - case 11: - sTitle = "Cutpurse"; break; - - case 12: - sTitle = "Thief"; break; - - case 13: - sTitle = "Pilferer"; break; - - case 14: - sTitle = "Robber"; break; - - case 15: - sTitle = "Sharper"; break; - - case 16: - sTitle = "Burglar"; break; - - case 17: - sTitle = "Filcher"; break; - - case 18: - sTitle = "Scoundrel"; break; - - case 19: - sTitle = "Knave"; break; - - case 20: - sTitle = "Prowler"; break; - - default: - sTitle = "Master Rogue"; break; - - } - - case CLASS_TYPE_BARD: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Crier" ; - break; - - case 4: case 5: - if (nGender == 1) - {sTitle = "Chantress"; break;} - else - {sTitle = "Chanter"; break;} - - case 6: - sTitle = "Skop"; break; - - case 7: - sTitle = "Accompanist"; break; - - case 8: - sTitle = "Rhymer"; break; - - case 9: - sTitle = "Singer"; break; - - case 10: - sTitle = "Balladeer"; break; - - case 11: - if (nGender == 1) - {sTitle = "Cantoress"; break;} - else - {sTitle = "Cantor"; break;} - - case 12: - sTitle = "Lutenist"; break; - - case 13: - sTitle = "Melodist"; break; - - case 14: - sTitle = "Lyrist"; break; - - case 15: - sTitle = "Jongleur"; break; - - case 16: - sTitle = "Loreweaver"; break; - - case 17: - sTitle = "Chronicler"; break; - - case 18: - sTitle = "Muse"; break; - - case 19: - if (nGender == 1) - {sTitle = "Rhapsode"; break;} - else - {sTitle = "Rhapsodist"; break;} - - case 20: - sTitle = "Bard"; break; - - case 21: - sTitle = "Raconteur"; break; - - case 22: - sTitle = "Siren"; break; - - case 23: - sTitle = "Songsmith"; break; - - case 24: - sTitle = "Versifer"; break; - - case 25: - sTitle = "Minstrel"; break; - - case 26: - sTitle = "Sonneteer"; break; - - case 27: - if (nGender == 1) - {sTitle = "Trobairitz"; break;} - else - {sTitle = "Troubadour"; break;} - - case 28: - sTitle = "Citharist"; break; - - case 29: - sTitle = "High Minstrel"; break; - - default: - sTitle = "Master Bard"; break; - - } - - case CLASS_TYPE_SORCERER: - case CLASS_TYPE_WIZARD: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Apprentice" ; - break; - - case 4: case 5: - sTitle = "Adept"; break; - - case 6: - sTitle = "Journeymage"; break; - - case 7: - sTitle = "Hedge Mage"; break; - - case 8: - sTitle = "Magician"; break; - - case 9: - sTitle = "Prestidigitator"; break; - - case 10: - sTitle = "Wizard"; break; - - case 11: - sTitle = "Sage"; break; - - case 12: - sTitle = "Visionary"; break; - - case 13: - sTitle = "Loremaster"; break; - - case 14: - sTitle = "Mage"; break; - - case 15: - sTitle = "Fatespinner"; break; - - case 16: - sTitle = "Cabalist"; break; - - case 17: - sTitle = "Thaumaturge"; break; - - case 18: - sTitle = "Theurgist"; break; - - case 19: - sTitle = "Augur"; break; - - case 20: - sTitle = "Spellbinder"; break; - - default: - sTitle = "Archmage"; break; - - } - - case CLASS_TYPE_CLERIC: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Candidate" ; - break; - - case 4: case 5: - sTitle = "Aspirant"; break; - - case 6: - sTitle = "Novice"; break; - - case 7: - sTitle = "Acolyte"; break; - - case 8: - sTitle = "Initiate"; break; - - case 9: - if (nGender == 1) - {sTitle = "Priestess"; break;} - else - {sTitle = "Priest"; break;} - - case 10: - sTitle = "Cleric"; break; - - case 11: - sTitle = "Curate"; break; - - case 12: - sTitle = "Apostle"; break; - - case 13: - sTitle = "Ovate"; break; - - case 14: - sTitle = "Missionary"; break; - - case 15: - if (nGender == 1) - {sTitle = "Canoness"; break;} - else - {sTitle = "Canon"; break;} - - case 16: - if (nGender == 1) - {sTitle = "Abbotess"; break;} - else - {sTitle = "Abbot"; break;} - - case 17: - sTitle = "Bishop"; break; - - case 18: - if (nGender == 1) - {sTitle = "Matriarch"; break;} - else - {sTitle = "Patriarch"; break;} - - case 19: - sTitle = "Preacher"; break; - - default: - if (nGender == 1) - {sTitle = "High Priestess"; break;} - else - {sTitle = "High Priest"; break;} - - } - - case CLASS_TYPE_DRUID: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Initiate" ; - break; - - case 4: case 5: - sTitle = "Devotee"; break; - - case 6: - sTitle = "Beastling"; break; - - case 7: - sTitle = "Grovelurker"; break; - - case 8: - sTitle = "Shaper"; break; - - case 9: - sTitle = "Springwalker"; break; - - case 10: - sTitle = "Druid"; break; - - case 11: - sTitle = "Naturekin"; break; - - case 12: - sTitle = "Treewarden"; break; - - case 13: - sTitle = "Auspex"; break; - - case 14: - sTitle = "Haruspex"; break; - - case 15: - sTitle = "Student of Stones"; break; - - case 16: - sTitle = "Student of Waters"; break; - - case 17: - sTitle = "Student of Forests"; break; - - case 18: - sTitle = "Student of Winds"; break; - - case 19: - sTitle = "Student of Changes"; break; - - case 20: - sTitle = "Pathwarden"; break; - - default: - sTitle = "Archdruid"; break; - - } - - case CLASS_TYPE_FIGHTER: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Guard"; - break; - - case 4: - sTitle = "Elite Guard"; break; - - case 5: case 6: - sTitle = "Warrior"; break; - - case 7: - sTitle = "Elite Warrior"; break; - - case 8: - sTitle = "Soldier"; break; - - case 9: - sTitle = "Enforcer"; break; - - case 10: - sTitle = "Fighter"; break; - - case 11: - sTitle = "Skirmisher"; break; - - case 12: - sTitle = "Veteran"; break; - - case 13: - sTitle = "Armiger"; break; - - case 14: - sTitle = "Myrmidon"; break; - - case 15: - sTitle = "Hero"; break; - - case 16: - sTitle = "Vanguard"; break; - - case 17: - sTitle = "Sentinel"; break; - - case 18: - sTitle = "Dominator"; break; - - case 19: - sTitle = "Warmonger"; break; - - case 20: - sTitle = "Champion"; break; - - default: - sTitle = "Grandmaster"; break; - - } - - case CLASS_TYPE_MONK: - switch(nLevel) - { - case 1: - sTitle = "Trainee"; break; - - case 2: - sTitle = "Initiate"; break; - - case 3: - sTitle = "Novice"; break; - - case 4: - sTitle = "Neophyte"; break; - - case 5: - sTitle = "Aspirant"; break; - - case 6: - sTitle = "Acolyte"; break; - - case 7: - sTitle = "Devotee"; break; - - case 8: - sTitle = "Disciple"; break; - - case 9: - sTitle = "Adept"; break; - - case 10: - sTitle = "Ascetic"; break; - - case 11: - sTitle = "Pilgrim"; break; - - case 12: - sTitle = "Master"; break; - - case 13: - sTitle = "Anchorite"; break; - - case 14: - sTitle = "Mystic"; break; - - case 15: - sTitle = "Meditator"; break; - - case 16: - sTitle = "Seeker"; break; - - case 17: - sTitle = "Guru"; break; - - case 18: - sTitle = "Sensei"; break; - - case 19: - sTitle = "Sannyasi"; break; - - case 20: - sTitle = "Exemplar"; break; - - case 21: - sTitle = "Transcendent"; break; - - default: - sTitle = "High Master"; break; - - } - - case CLASS_TYPE_PALADIN: - switch(nLevel) - { - case 1: - sTitle = "Advocate"; break; - - case 2: - sTitle = "Initiate"; break; - - case 3: - sTitle = "Squire"; break; - - case 4: - sTitle = "Gallant"; break; - - case 5: - sTitle = "Emissary"; break; - - case 6: - sTitle = "Guardian"; break; - - case 7: - sTitle = "Devotee"; break; - - case 8: - sTitle = "Disciple"; break; - - case 9: - sTitle = "Adept"; break; - - case 10: - sTitle = "Ascetic"; break; - - case 11: - sTitle = "Pilgrim"; break; - - case 12: - sTitle = "Master"; break; - - case 13: - sTitle = "Anchorite"; break; - - case 14: - sTitle = "Mystic"; break; - - case 15: - sTitle = "Meditator"; break; - - case 16: - sTitle = "Seeker"; break; - - case 17: - sTitle = "Guru"; break; - - case 18: - sTitle = "Sensei"; break; - - case 19: - sTitle = "Sannyasi"; break; - - case 20: - sTitle = "Exemplar"; break; - - case 21: - sTitle = "Transcendent"; break; - - default: - sTitle = "High Master"; break; - - } - - case CLASS_TYPE_RANGER: - switch(nLevel) - { - case 1: case 2: case 3: - sTitle = "Greenhorn" ; - break; - - case 4: case 5: - sTitle = "Tenderfoot"; break; - - case 6: - sTitle = "Vagrant"; break; - - case 7: - sTitle = "Tramp"; break; - - case 8: - sTitle = "Nomad"; break; - - case 9: - sTitle = "Wanderer"; break; - - case 10: - sTitle = "Ranger"; break; - - case 11: - sTitle = "Rambler"; break; - - case 12: - sTitle = "Traveler"; break; - - case 13: - sTitle = "Sojourner"; break; - - case 14: - sTitle = "Outrider"; break; - - case 15: - sTitle = "Wayfarer"; break; - - case 16: - sTitle = "Excursionist"; break; - - case 17: - sTitle = "Trekker"; break; - - case 18: - sTitle = "Trailblazer"; break; - - case 19: - sTitle = "Woodsman"; break; - - case 20: - sTitle = "High Ranger"; break; - - case 21: - sTitle = "Ranger"; break; - - case 22: - sTitle = "Rambler"; break; - - case 23: - sTitle = "Traveler"; break; - - case 24: - sTitle = "Sojourner"; break; - - case 25: - sTitle = "Outrider"; break; - - case 26: - sTitle = "Wayfarer"; break; - - case 27: - sTitle = "Excursionist"; break; - - case 28: - sTitle = "Trekker"; break; - - case 29: - sTitle = "Trailblazer"; break; - - default: - sTitle = "Ranger Lord"; break; - - } - - } - - //return sTitle; + sClassTitle = GetClassLevelTitle(GetHighestClassLevel(oNPC), oNPC); } //:: Handles class based Henchman titles - int nRndRogue = GetLocalInt(OBJECT_SELF,"RND_ROGUE"); - if (nRndRogue == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Quick"; - } - else if(nResult == 2) - { - sPostfix = "the Quiet"; - } - else if(nResult == 3) - { - sPostfix = "the Sharp"; - } - else if(nResult ==4) - { - sPostfix = "the Sneak"; - } - else if(nResult == 5) - { - sPostfix = "the Rogue"; - } - else - sPostfix = "the Footpad"; + int nRndPaladin = GetLocalInt(OBJECT_SELF, "RND_PALADIN"); + if (nRndPaladin == 1) + { + int nResult = Random(30) + 1; // Generate a random number between 1 and 30 + switch (nResult) + { + case 1: sPostfix = "the Righteous"; break; + case 2: sPostfix = "the Just"; break; + case 3: sPostfix = "the Defender"; break; + case 4: sPostfix = "the Virtuous"; break; + case 5: sPostfix = "the Crusader"; break; + case 6: sPostfix = "the Lightbringer"; break; + case 7: sPostfix = "the Faithful"; break; + case 8: sPostfix = "the Zealous"; break; + case 9: sPostfix = "the Beacon"; break; + case 10: sPostfix = "the Redeemer"; break; + case 11: sPostfix = "the Shield of Faith"; break; + case 12: sPostfix = "of the Sacred Flame"; break; + case 13: sPostfix = "the Lawful"; break; + case 14: sPostfix = "the Blessed"; break; + case 15: sPostfix = "the Chosen"; break; + case 16: sPostfix = "of the Holy Vow"; break; + case 17: sPostfix = "the Avenger"; break; + case 18: sPostfix = "the Purifier"; break; + case 19: sPostfix = "the Divine Hand"; break; + case 20: sPostfix = "the Sacred Blade"; break; + case 21: sPostfix = "the Lightforged"; break; + case 22: sPostfix = "the Protector"; break; + case 23: sPostfix = "the Illuminated"; break; + case 24: sPostfix = "of the Silver Oath"; break; + case 25: sPostfix = "the Guardian"; break; + case 26: sPostfix = "the Oathbound"; break; + case 27: sPostfix = "the Valiant"; break; + case 28: sPostfix = "the Seraphic"; break; + case 29: sPostfix = "the Golden Knight"; break; + case 30: sPostfix = "the True"; break; + } + } - } + int nRndMonk = GetLocalInt(OBJECT_SELF, "RND_MONK"); + if (nRndMonk == 1) + { + int nResult = Random(30) + 1; + switch (nResult) + { + case 1: sPostfix = "the Disciplined"; break; + case 2: sPostfix = "the Enlightened"; break; + case 3: sPostfix = "of the Open Palm"; break; + case 4: sPostfix = "of the Empty Hand"; break; + case 5: sPostfix = "the Ascetic"; break; + case 6: sPostfix = "the Calm"; break; + case 7: sPostfix = "the Wayfarer"; break; + case 8: sPostfix = "the Iron Fist"; break; + case 9: sPostfix = "the Centered"; break; + case 10: sPostfix = "of the Quiet Mind"; break; + case 11: sPostfix = "the Humble"; break; + case 12: sPostfix = "the Swift Palm"; break; + case 13: sPostfix = "the Inner Flame"; break; + case 14: sPostfix = "the Master"; break; + case 15: sPostfix = "of the Lotus Path"; break; + case 16: sPostfix = "the Patient"; break; + case 17: sPostfix = "the Balanced"; break; + case 18: sPostfix = "the Serene"; break; + case 19: sPostfix = "the Watchful"; break; + case 20: sPostfix = "the Disciple"; break; + case 21: sPostfix = "the Harmonious"; break; + case 22: sPostfix = "the Seeker"; break; + case 23: sPostfix = "the Breathless"; break; + case 24: sPostfix = "the Stilled Hand"; break; + case 25: sPostfix = "of Perfect Form"; break; + case 26: sPostfix = "the Tranquil"; break; + case 27: sPostfix = "the Unbound"; break; + case 28: sPostfix = "the Silent Step"; break; + case 29: sPostfix = "the Mindful"; break; + case 30: sPostfix = "the Flowing One"; break; + } + } + + int nRndRogue = GetLocalInt(OBJECT_SELF,"RND_ROGUE"); + if (nRndRogue == 1) + { + int nResult = Random(30) + 1; // Generate a random number between 1 and 30 + switch (nResult) + { + case 1: + sPostfix = "the Quick"; + break; + case 2: + sPostfix = "the Quiet"; + break; + case 3: + sPostfix = "the Sharp"; + break; + case 4: + sPostfix = "the Sneak"; + break; + case 5: + sPostfix = "the Rogue"; + break; + case 6: + sPostfix = "the Footpad"; + break; + case 7: + sPostfix = "the Shadow"; + break; + case 8: + sPostfix = "the Nimble"; + break; + case 9: + sPostfix = "the Swift"; + break; + case 10: + sPostfix = "the Silent"; + break; + case 11: + sPostfix = "the Sly"; + break; + case 12: + sPostfix = "the Crafty"; + break; + case 13: + sPostfix = "the Cunning"; + break; + case 14: + sPostfix = "the Elusive"; + break; + case 15: + sPostfix = "the Deft"; + break; + case 16: + sPostfix = "the Guileful"; + break; + case 17: + sPostfix = "the Lurker"; + break; + case 18: + sPostfix = "the Trickster"; + break; + case 19: + sPostfix = "the Prowler"; + break; + case 20: + sPostfix = "the Skulker"; + break; + case 21: + sPostfix = "the Phantom"; + break; + case 22: + sPostfix = "the Wily"; + break; + case 23: + sPostfix = "the Mysterious"; + break; + case 24: + sPostfix = "the Furtive"; + break; + case 25: + sPostfix = "the Discreet"; + break; + case 26: + sPostfix = "the Spy"; + break; + case 27: + sPostfix = "the Veiled"; + break; + case 28: + sPostfix = "the Artful"; + break; + case 29: + sPostfix = "the Sleuth"; + break; + case 30: + sPostfix = "the Masked"; + break; + } + } - int nRndBarb = GetLocalInt(OBJECT_SELF,"RND_BARBARIAN"); - if (nRndBarb == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Barbarian"; - } - else if(nResult == 2) - { - sPostfix = "the Destroyer"; - } - else if(nResult == 3) - { - sPostfix = "of the Plains"; - } - else if(nResult ==4) - { - sPostfix = "of Klar Clan"; - } - else if(nResult == 5) - { - sPostfix = "the Rampager"; - } - else - sPostfix = "the Reaver"; + int nRndBarb = GetLocalInt(OBJECT_SELF,"RND_BARBARIAN"); + if (nRndBarb == 1) + { + int nResult = Random(30) + 1; // Generate a random number between 1 and 30 + switch (nResult) + { + case 1: + sPostfix = "the Barbarian"; + break; + case 2: + sPostfix = "the Destroyer"; + break; + case 3: + sPostfix = "of the Plains"; + break; + case 4: + sPostfix = "of Bear Clan"; + break; + case 5: + sPostfix = "the Rampager"; + break; + case 6: + sPostfix = "the Reaver"; + break; + case 7: + sPostfix = "the Savage"; + break; + case 8: + sPostfix = "the Berserker"; + break; + case 9: + sPostfix = "the Untamed"; + break; + case 10: + sPostfix = "the Fierce"; + break; + case 11: + sPostfix = "the Warbringer"; + break; + case 12: + sPostfix = "the Wild"; + break; + case 13: + sPostfix = "the Raider"; + break; + case 14: + sPostfix = "the Vicious"; + break; + case 15: + sPostfix = "the Ruthless"; + break; + case 16: + sPostfix = "the Savage"; + break; + case 17: + sPostfix = "the Bloodthirsty"; + break; + case 18: + sPostfix = "the Warlord"; + break; + case 19: + sPostfix = "the Brute"; + break; + case 20: + sPostfix = "the Fierce"; + break; + case 21: + sPostfix = "the Marauder"; + break; + case 22: + sPostfix = "the Howler"; + break; + case 23: + sPostfix = "the Ravager"; + break; + case 24: + sPostfix = "the Crusher"; + break; + case 25: + sPostfix = "the Frenzied"; + break; + case 26: + sPostfix = "the Beast"; + break; + case 27: + sPostfix = "the Juggernaut"; + break; + case 28: + sPostfix = "the Slayer"; + break; + case 29: + sPostfix = "the Rager"; + break; + case 30: + sPostfix = "the Conqueror"; + break; + } + } - } + int nRndFight = GetLocalInt(OBJECT_SELF,"RND_FIGHTER"); + if (nRndFight == 1) + { + int nResult = Random(30) + 1; // Generate a random number between 1 and 30 + switch (nResult) + { + case 1: + sPostfix = "the Strong"; + break; + case 2: + sPostfix = "the Stout"; + break; + case 3: + sPostfix = "of Harrowdale"; + break; + case 4: + sPostfix = "of Tyr"; + break; + case 5: + sPostfix = "of Neverwinter"; + break; + case 6: + sPostfix = "the Swordhand"; + break; + case 7: + sPostfix = "the Valiant"; + break; + case 8: + sPostfix = "the Brave"; + break; + case 9: + sPostfix = "the Defender"; + break; + case 10: + sPostfix = "the Just"; + break; + case 11: + sPostfix = "the Noble"; + break; + case 12: + sPostfix = "the Gallant"; + break; + case 13: + sPostfix = "the Protector"; + break; + case 14: + sPostfix = "the Shield"; + break; + case 15: + sPostfix = "the Champion"; + break; + case 16: + sPostfix = "the Guardian"; + break; + case 17: + sPostfix = "the Sentinel"; + break; + case 18: + sPostfix = "the Warrior"; + break; + case 19: + sPostfix = "the Stalwart"; + break; + case 20: + sPostfix = "the Ironclad"; + break; + case 21: + sPostfix = "the Blade"; + break; + case 22: + sPostfix = "the Swordsman"; + break; + case 23: + sPostfix = "the Vanguard"; + break; + case 24: + sPostfix = "the Lancer"; + break; + case 25: + sPostfix = "the Spearhead"; + break; + case 26: + sPostfix = "the Battlemaster"; + break; + case 27: + sPostfix = "the Blademaster"; + break; + case 28: + sPostfix = "the Warlord"; + break; + case 29: + sPostfix = "the Vanquisher"; + break; + case 30: + sPostfix = "the Swordmaster"; + break; + } + } - int nRndFight = GetLocalInt(OBJECT_SELF,"RND_FIGHTER"); - if (nRndFight == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Strong"; - } - else if(nResult == 2) - { - sPostfix = "the Stout"; - } - else if(nResult == 3) - { - sPostfix = "of the Blade"; - } - else if(nResult ==4) - { - sPostfix = "of Tyr"; - } - else if(nResult == 5) - { - sPostfix = "of Urik"; - } - else - sPostfix = "the Swordhand"; + int nRndCleric = GetLocalInt(OBJECT_SELF,"RND_CLERIC"); + if (nRndCleric == 1) + { + int nResult = Random(30) + 1; // Generate a random number between 1 and 30 + if (nResult == 1) + { + sPostfix = "the Pious"; + } + else if (nResult == 2) + { + sPostfix = "the Holy"; + } + else if (nResult == 3) + { + sPostfix = "the Priest"; + } + else if (nResult == 4) + { + sPostfix = "the Zealous"; + } + else if (nResult == 5) + { + sPostfix = "of Phlan"; + } + else if (nResult == 6) + { + sPostfix = "the Wise"; + } + else if (nResult == 7) + { + sPostfix = "the Devout"; + } + else if (nResult == 8) + { + sPostfix = "the Faithful"; + } + else if (nResult == 9) + { + sPostfix = "the Righteous"; + } + else if (nResult == 10) + { + sPostfix = "the Blessed"; + } + else if (nResult == 11) + { + sPostfix = "the Pure"; + } + else if (nResult == 12) + { + sPostfix = "the Sacred"; + } + else if (nResult == 13) + { + sPostfix = "the Benevolent"; + } + else if (nResult == 14) + { + sPostfix = "the Virtuous"; + } + else if (nResult == 15) + { + sPostfix = "the Saintly"; + } + else if (nResult == 16) + { + sPostfix = "the Healer"; + } + else if (nResult == 17) + { + sPostfix = "the Anointed"; + } + else if (nResult == 18) + { + sPostfix = "the Protector"; + } + else if (nResult == 19) + { + sPostfix = "the Merciful"; + } + else if (nResult == 20) + { + sPostfix = "the Revered"; + } + else if (nResult == 21) + { + sPostfix = "the Graceful"; + } + else if (nResult == 22) + { + sPostfix = "the Watchful"; + } + else if (nResult == 23) + { + sPostfix = "the Forgiving"; + } + else if (nResult == 24) + { + sPostfix = "the Humble"; + } + else if (nResult == 25) + { + sPostfix = "the Divine"; + } + else if (nResult == 26) + { + sPostfix = "the Preacher"; + } + else if (nResult == 27) + { + sPostfix = "the Illuminated"; + } + else if (nResult == 28) + { + sPostfix = "the Mystic"; + } + else if (nResult == 29) + { + sPostfix = "the Herald"; + } + else // nResult == 30 + { + sPostfix = "the Exalted"; + } + } - } + int nRndMage = GetLocalInt(OBJECT_SELF,"RND_MAGE"); + if (nRndMage == 1) + { + int nResult = Random(30) + 1; // Generate a random number between 1 and 30 + switch (nResult) + { + case 1: + sPostfix = "the Mad"; + break; + case 2: + sPostfix = "the Arcane"; + break; + case 3: + sPostfix = "the Black"; + break; + case 4: + sPostfix = "the Wizard"; + break; + case 5: + sPostfix = "of Waterdeep"; + break; + case 6: + sPostfix = "the Mage"; + break; + case 7: + sPostfix = "the Enigmatic"; + break; + case 8: + sPostfix = "the Mystical"; + break; + case 9: + sPostfix = "the Eldritch"; + break; + case 10: + sPostfix = "the Runeweaver"; + break; + case 11: + sPostfix = "the Sorcerous"; + break; + case 12: + sPostfix = "the Seer"; + break; + case 13: + sPostfix = "the Arcanist"; + break; + case 14: + sPostfix = "the Illustrious"; + break; + case 15: + sPostfix = "the Sage"; + break; + case 16: + sPostfix = "the Sorcerous"; + break; + case 17: + sPostfix = "the Occult"; + break; + case 18: + sPostfix = "the Arcane Adept"; + break; + case 19: + sPostfix = "the Spellbinder"; + break; + case 20: + sPostfix = "the Occultist"; + break; + case 21: + sPostfix = "the Conjurer"; + break; + case 22: + sPostfix = "the Seer"; + break; + case 23: + sPostfix = "the Invoker"; + break; + case 24: + sPostfix = "the Mysterious"; + break; + case 25: + sPostfix = "the Shrouded"; + break; + case 26: + sPostfix = "the Visionary"; + break; + case 27: + sPostfix = "the Spellweaver"; + break; + case 28: + sPostfix = "the Willbreaker"; + break; + case 29: + sPostfix = "the Charmer"; + break; + case 30: + sPostfix = "the Elementalist"; + break; + } + } - int nRndCleric = GetLocalInt(OBJECT_SELF,"RND_CLERIC"); - if (nRndCleric == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Pious"; - } - else if(nResult == 2) - { - sPostfix = "the Holy"; - } - else if(nResult == 3) - { - sPostfix = "the Priest"; - } - else if(nResult ==4) - { - sPostfix = "the Zealous"; - } - else if(nResult == 5) - { - sPostfix = "of Phlan"; - } - else - sPostfix = "the Wise"; + int nRndBard = GetLocalInt(OBJECT_SELF,"RND_BARD"); + if (nRndBard == 1) + { + int nResult = Random(25) + 1; // Generate a random number between 1 and 25 + switch (nResult) + { + case 1: + sPostfix = "the Subtle"; + break; + case 2: + sPostfix = "the Veiled"; + break; + case 3: + sPostfix = "the Shadowed"; + break; + case 4: + sPostfix = "the Intriguer"; + break; + case 5: + sPostfix = "of Altaruk"; + break; + case 6: + sPostfix = "the Elusive"; + break; + case 7: + sPostfix = "the Mysterious"; + break; + case 8: + sPostfix = "the Cryptic"; + break; + case 9: + sPostfix = "the Insidious"; + break; + case 10: + sPostfix = "the Quiet"; + break; + case 11: + sPostfix = "the Sly"; + break; + case 12: + sPostfix = "the Covert"; + break; + case 13: + sPostfix = "the Furtive"; + break; + case 14: + sPostfix = "the Discreet"; + break; + case 15: + sPostfix = "the Subversive"; + break; + case 16: + sPostfix = "the Shrouded"; + break; + case 17: + sPostfix = "the Obscured"; + break; + case 18: + sPostfix = "the Clever"; + break; + case 19: + sPostfix = "the Enigmatic"; + break; + case 20: + sPostfix = "of Elventree"; + break; + case 21: + sPostfix = "of Melvaunt"; + break; + case 22: + sPostfix = "of Deepingdale"; + break; + case 23: + sPostfix = "of Skullport"; + break; + case 24: + sPostfix = "the Crafty"; + break; + case 25: + sPostfix = "of Amn"; + break; + } + } - } + int nRndDruid = GetLocalInt(OBJECT_SELF,"RND_DRUID"); + if (nRndDruid == 1) + { + int nResult = Random(25) + 1; // Generate a random number between 1 and 25 + switch (nResult) + { + case 1: + sPostfix = "the Druid"; + break; + case 2: + sPostfix = "of the Forest"; + break; + case 3: + sPostfix = "of the Wild"; + break; + case 4: + sPostfix = "the Wolflord"; + break; + case 5: + sPostfix = "the Treelord"; + break; + case 6: + sPostfix = "the Verdant"; + break; + case 7: + sPostfix = "the Earthshaker"; + break; + case 8: + sPostfix = "the Feral"; + break; + case 9: + sPostfix = "of the Glade"; + break; + case 10: + sPostfix = "of the Crystal Forest"; + break; + case 11: + sPostfix = "the Thorned"; + break; + case 12: + sPostfix = "the Greenwarden"; + break; + case 13: + sPostfix = "the Naturebound"; + break; + case 14: + sPostfix = "the Forestborn"; + break; + case 15: + sPostfix = "the Spiritcaller"; + break; + case 16: + sPostfix = "the Leafblade"; + break; + case 17: + sPostfix = "the Mossy"; + break; + case 18: + sPostfix = "the Grovekeeper"; + break; + case 19: + sPostfix = "the Stormbringer"; + break; + case 20: + sPostfix = "the Earthshaper"; + break; + case 21: + sPostfix = "the Bramble"; + break; + case 22: + sPostfix = "of the Black Sands"; + break; + case 23: + sPostfix = "of the Silt Sea"; + break; + case 24: + sPostfix = "the Spiritbinder"; + break; + case 25: + sPostfix = "the Wildheart"; + break; + } + } - int nRndMage = GetLocalInt(OBJECT_SELF,"RND_MAGE"); - if (nRndMage == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Mad"; - } - else if(nResult == 2) - { - sPostfix = "the Arcane"; - } - else if(nResult == 3) - { - sPostfix = "the Black"; - } - else if(nResult ==4) - { - sPostfix = "the Wizard"; - } - else if(nResult == 5) - { - sPostfix = "of Waterdeep"; - } - else - sPostfix = "the Mage"; - - } - - int nRndBard = GetLocalInt(OBJECT_SELF,"RND_BARD"); - if (nRndMage == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Dancer"; - } - else if(nResult == 2) - { - sPostfix = "the Troubador"; - } - else if(nResult == 3) - { - sPostfix = "of the Song"; - } - else if(nResult ==4) - { - sPostfix = "the Bard"; - } - else if(nResult == 5) - { - sPostfix = "the Raconteur"; - } - else - sPostfix = "the Minstrel"; - - } - - int nRndDruid = GetLocalInt(OBJECT_SELF,"RND_DRUID"); - if (nRndDruid == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Druid"; - } - else if(nResult == 2) - { - sPostfix = "of the Forest"; - } - else if(nResult == 3) - { - sPostfix = "of the Wild"; - } - else if(nResult ==4) - { - sPostfix = "the Wolflord"; - } - else if(nResult == 5) - { - sPostfix = "the Treelord"; - } - else - sPostfix = "the Warden"; - - } - - int nRndRanger = GetLocalInt(OBJECT_SELF,"RND_RANGER"); - if (nRndRanger == 1) - { - int nResult = d6(1); - if (nResult == 1) - { - sPostfix = "the Ranger"; - } - else if(nResult == 2) - { - sPostfix = "of the Forest"; - } - else if(nResult == 3) - { - sPostfix = "of the Wild"; - } - else if(nResult ==4) - { - sPostfix = "the Strider"; - } - else if(nResult == 5) - { - sPostfix = "the Venger"; - } - else - sPostfix = "the Warden"; - - } + int nRndRanger = GetLocalInt(OBJECT_SELF,"RND_RANGER"); + if (nRndRanger == 1) + { + int nResult = Random(25) + 1; // Generate a random number between 1 and 25 + switch (nResult) + { + case 1: + sPostfix = "the Ranger"; + break; + case 2: + sPostfix = "of the Forest"; + break; + case 3: + sPostfix = "of the Wild"; + break; + case 4: + sPostfix = "the Strider"; + break; + case 5: + sPostfix = "the Venger"; + break; + case 6: + sPostfix = "the Pathfinder"; + break; + case 7: + sPostfix = "the Woodsman"; + break; + case 8: + sPostfix = "the Trailblazer"; + break; + case 9: + sPostfix = "the Hunter"; + break; + case 10: + sPostfix = "the Scout"; + break; + case 11: + sPostfix = "the Wayfarer"; + break; + case 12: + sPostfix = "the Outrider"; + break; + case 13: + sPostfix = "the Seeker"; + break; + case 14: + sPostfix = "the Sentinel"; + break; + case 15: + sPostfix = "the Forestborn"; + break; + case 16: + sPostfix = "the Survivalist"; + break; + case 17: + sPostfix = "the Tracker"; + break; + case 18: + sPostfix = "the Forager"; + break; + case 19: + sPostfix = "the Warder"; + break; + case 20: + sPostfix = "the Greenblade"; + break; + case 21: + sPostfix = "the Beastmaster"; + break; + case 22: + sPostfix = "the Thornhunter"; + break; + case 23: + sPostfix = "of the Deepwood"; + break; + case 24: + sPostfix = "of the Roughlands"; + break; + case 25: + sPostfix = "the Wilderness Guide"; + break; + } + } if (sRandomName != "") { @@ -1149,20 +1048,64 @@ string ms_RandomLastName(object oNPC = OBJECT_SELF) return Name; } - -// Function to get the class-based level title based on the class type -string GetClassLevelTitle(int nClassType) +//:: Function to get the highest class level of an object, excluding racialtype classes +int GetHighestClassLevel(object oCreature) { - object oCreature = OBJECT_SELF; // Assuming this function is called on a creature object - - int nLevel = GetLevelByClass(nClassType, oCreature); - int nGender = GetGender(oCreature); - - string sTitle; + int nHighestLevel = -1; + int nClassTypes = 254; // Maximum number of class types + int i; - switch (nClassType) + for (i = 0; i <= nClassTypes; i++) { - case CLASS_TYPE_BARBARIAN: + // Check if the class type is excluded + if (i == CLASS_TYPE_ABERRATION || + i == CLASS_TYPE_ANIMAL || + i == CLASS_TYPE_BEAST || + i == CLASS_TYPE_CONSTRUCT || + i == CLASS_TYPE_DRAGON || + i == CLASS_TYPE_ELEMENTAL || + i == CLASS_TYPE_FEY || + i == CLASS_TYPE_GIANT || + i == CLASS_TYPE_HUMANOID || + i == CLASS_TYPE_MAGICAL_BEAST || + i == CLASS_TYPE_MONSTROUS || + i == CLASS_TYPE_OOZE || + i == CLASS_TYPE_OUTSIDER || + i == CLASS_TYPE_PLANT || + i == CLASS_TYPE_SHAPECHANGER || + i == CLASS_TYPE_UNDEAD || + i == CLASS_TYPE_VERMIN) + continue; + + int nLevel = GetLevelByClass(i, oCreature); + if (nLevel > 0) + { + if (nLevel > nHighestLevel) + { + nHighestLevel = nLevel; + } + } + else + { + break; // Reached an invalid class level, exit the loop + } + } + + return nHighestLevel; +} + + +//:: Handles class level based NPC titles +string GetClassLevelTitle(int nClassType, object oNPC = OBJECT_SELF) +{ + string sTitle; + int nHighClass = GetHighestClassLevel(oNPC); + int nLevel = GetLevelByClass(nHighClass, oNPC); + int nGender = GetGender(oNPC); + + switch (nHighClass) + { + case CLASS_TYPE_BARBARIAN: switch(nLevel) { case 1: case 2: case 3: @@ -1234,7 +1177,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_ROGUE: + case CLASS_TYPE_ROGUE: switch(nLevel) { case 1: case 2: case 3: @@ -1294,7 +1237,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_BARD: + case CLASS_TYPE_BARD: switch(nLevel) { case 1: case 2: case 3: @@ -1393,7 +1336,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_SORCERER: + case CLASS_TYPE_SORCERER: case CLASS_TYPE_WIZARD: switch(nLevel) { @@ -1454,7 +1397,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_CLERIC: + case CLASS_TYPE_CLERIC: switch(nLevel) { case 1: case 2: case 3: @@ -1526,7 +1469,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_DRUID: + case CLASS_TYPE_DRUID: switch(nLevel) { case 1: case 2: case 3: @@ -1586,7 +1529,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_FIGHTER: + case CLASS_TYPE_FIGHTER: switch(nLevel) { case 1: case 2: case 3: @@ -1646,7 +1589,7 @@ string GetClassLevelTitle(int nClassType) } - case CLASS_TYPE_MONK: + case CLASS_TYPE_MONK: switch(nLevel) { case 1: @@ -1875,55 +1818,9 @@ string GetClassLevelTitle(int nClassType) } - } + } - return sTitle; + return sTitle; } -//:: Function to get the highest class level of an object, excluding racial classes types -int GetHighestClassLevel(object oCreature) -{ - int nHighestLevel = -1; - int nClassTypes = 254; // Maximum number of class types - int i; - - for (i = 0; i <= nClassTypes; i++) - { - // Check if the class type is excluded - if (i == CLASS_TYPE_ABERRATION || - i == CLASS_TYPE_ANIMAL || - i == CLASS_TYPE_BEAST || - i == CLASS_TYPE_CONSTRUCT || - i == CLASS_TYPE_DRAGON || - i == CLASS_TYPE_ELEMENTAL || - i == CLASS_TYPE_FEY || - i == CLASS_TYPE_GIANT || - i == CLASS_TYPE_HUMANOID || - i == CLASS_TYPE_MAGICAL_BEAST || - i == CLASS_TYPE_MONSTROUS || - i == CLASS_TYPE_OOZE || - i == CLASS_TYPE_OUTSIDER || - i == CLASS_TYPE_PLANT || - i == CLASS_TYPE_SHAPECHANGER || - i == CLASS_TYPE_UNDEAD || - i == CLASS_TYPE_VERMIN) - continue; - - int nLevel = GetLevelByClass(i, oCreature); - if (nLevel > 0) - { - if (nLevel > nHighestLevel) - { - nHighestLevel = nLevel; - } - } - else - { - break; // Reached an invalid class level, exit the loop - } - } - - return nHighestLevel; -} - - +//::void main (){} diff --git a/_module/nss/x2_mod_def_load.nss b/_module/nss/x2_mod_def_load.nss index 3bf8082..8eb1c21 100644 --- a/_module/nss/x2_mod_def_load.nss +++ b/_module/nss/x2_mod_def_load.nss @@ -40,9 +40,9 @@ void main() { string sCampaign = "Endless Nights IV"; - SetEventScript(GetModule(), EVENT_SCRIPT_MODULE_ON_NUI_EVENT, "mod_nui"); - SetEventScript(GetModule(), EVENT_SCRIPT_MODULE_ON_PLAYER_TARGET, "mod_target"); - SetEventScript(GetModule(), EVENT_SCRIPT_MODULE_ON_PLAYER_GUIEVENT, "mod_gui"); + //SetEventScript(GetModule(), EVENT_SCRIPT_MODULE_ON_NUI_EVENT, "mod_nui"); + //SetEventScript(GetModule(), EVENT_SCRIPT_MODULE_ON_PLAYER_TARGET, "mod_target"); + //SetEventScript(GetModule(), EVENT_SCRIPT_MODULE_ON_PLAYER_GUIEVENT, "mod_gui"); SetCampaignInt(sCampaign,"MP",1); SetCampaignInt(sCampaign,"E4DMModOnly",1); @@ -88,7 +88,7 @@ void main() // * 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); + SetModuleSwitch (MODULE_VAR_AI_STOP_EXPERTISE_ABUSE, TRUE); // * Item Event Scripts: The game's default event scripts allow routing of all item related events