diff --git a/_module/are/cityofbaleas.are.json b/_module/are/cityofbaleas.are.json index f0f487ba..9254ccc1 100644 --- a/_module/are/cityofbaleas.are.json +++ b/_module/are/cityofbaleas.are.json @@ -11169,7 +11169,7 @@ }, "Version": { "type": "dword", - "value": 86 + "value": 87 }, "Width": { "type": "int", diff --git a/_module/are/zigguratoffaith.are.json b/_module/are/zigguratoffaith.are.json index e5224d4d..d21a2c61 100644 --- a/_module/are/zigguratoffaith.are.json +++ b/_module/are/zigguratoffaith.are.json @@ -2913,7 +2913,7 @@ }, "Version": { "type": "dword", - "value": 8 + "value": 9 }, "Width": { "type": "int", diff --git a/_module/dlg/wistestfinal.dlg.json b/_module/dlg/wistestfinal.dlg.json index 28f749b1..93055f5f 100644 --- a/_module/dlg/wistestfinal.dlg.json +++ b/_module/dlg/wistestfinal.dlg.json @@ -555,7 +555,7 @@ "Text": { "type": "cexolocstring", "value": { - "0": "You turn to flee and hear the undead being behind you laughing riotously. Suddenly, you feel a supernatural force hurly you down to the bottom of the pyramid, and you know that you have failed these tests." + "0": "You turn to flee and hear the undead being behind you laughing riotously. Suddenly, you feel a supernatural force hurl you down to the bottom of the pyramid, and you know that you have failed these tests." } } }, diff --git a/_module/ifo/module.ifo.json b/_module/ifo/module.ifo.json index bc6738f6..cc7ea562 100644 --- a/_module/ifo/module.ifo.json +++ b/_module/ifo/module.ifo.json @@ -3462,6 +3462,21 @@ "type": "int", "value": 1 } + }, + { + "__struct_id": 0, + "Name": { + "type": "cexostring", + "value": "PRC_PNP_SHIFTER_BONUS" + }, + "Type": { + "type": "dword", + "value": 1 + }, + "Value": { + "type": "int", + "value": 255 + } } ] } diff --git a/_module/ncs/69_hen_spawnin.ncs b/_module/ncs/69_hen_spawnin.ncs index b454ebf9..e0612d5e 100644 Binary files a/_module/ncs/69_hen_spawnin.ncs and b/_module/ncs/69_hen_spawnin.ncs differ diff --git a/_module/ncs/69_hench_heall.ncs b/_module/ncs/69_hench_heall.ncs index 0d8039b3..0e87f4f5 100644 Binary files a/_module/ncs/69_hench_heall.ncs and b/_module/ncs/69_hench_heall.ncs differ diff --git a/_module/ncs/_inc_battlecry_.ncs b/_module/ncs/_inc_battlecry_.ncs new file mode 100644 index 00000000..5bf4aef3 Binary files /dev/null and b/_module/ncs/_inc_battlecry_.ncs differ diff --git a/_module/ncs/_inc_livingdead_.ncs b/_module/ncs/_inc_livingdead_.ncs new file mode 100644 index 00000000..ecb1c72d Binary files /dev/null and b/_module/ncs/_inc_livingdead_.ncs differ diff --git a/_module/ncs/commoner_spawn.ncs b/_module/ncs/commoner_spawn.ncs index b0387eb2..39fd3caf 100644 Binary files a/_module/ncs/commoner_spawn.ncs and b/_module/ncs/commoner_spawn.ncs differ diff --git a/_module/ncs/dmfi_dmw_inc.ncs b/_module/ncs/dmfi_dmw_inc.ncs new file mode 100644 index 00000000..26936d9c Binary files /dev/null and b/_module/ncs/dmfi_dmw_inc.ncs differ diff --git a/_module/ncs/dmfi_execute.ncs b/_module/ncs/dmfi_execute.ncs index e4f67cea..3efadc22 100644 Binary files a/_module/ncs/dmfi_execute.ncs and b/_module/ncs/dmfi_execute.ncs differ diff --git a/_module/ncs/dmfi_plychat_exe.ncs b/_module/ncs/dmfi_plychat_exe.ncs index a67bd100..ca674930 100644 Binary files a/_module/ncs/dmfi_plychat_exe.ncs and b/_module/ncs/dmfi_plychat_exe.ncs differ diff --git a/_module/ncs/dmfi_x_emote.ncs b/_module/ncs/dmfi_x_emote.ncs index cc2e1134..5407e55a 100644 Binary files a/_module/ncs/dmfi_x_emote.ncs and b/_module/ncs/dmfi_x_emote.ncs differ diff --git a/_module/ncs/ed3_troll_spawn.ncs b/_module/ncs/ed3_troll_spawn.ncs index 69b26991..114d2100 100644 Binary files a/_module/ncs/ed3_troll_spawn.ncs and b/_module/ncs/ed3_troll_spawn.ncs differ diff --git a/_module/ncs/henchlvl_arcanta.ncs b/_module/ncs/henchlvl_arcanta.ncs index 51c95813..ec4f7967 100644 Binary files a/_module/ncs/henchlvl_arcanta.ncs and b/_module/ncs/henchlvl_arcanta.ncs differ diff --git a/_module/ncs/henchlvl_dwrfdta.ncs b/_module/ncs/henchlvl_dwrfdta.ncs index 7ac583db..490ca60f 100644 Binary files a/_module/ncs/henchlvl_dwrfdta.ncs and b/_module/ncs/henchlvl_dwrfdta.ncs differ diff --git a/_module/ncs/j_ai_detercombat.ncs b/_module/ncs/j_ai_detercombat.ncs index 9a30007f..3d124bfe 100644 Binary files a/_module/ncs/j_ai_detercombat.ncs and b/_module/ncs/j_ai_detercombat.ncs differ diff --git a/_module/ncs/j_ai_onspawn.ncs b/_module/ncs/j_ai_onspawn.ncs index 0a0eb759..643524c6 100644 Binary files a/_module/ncs/j_ai_onspawn.ncs and b/_module/ncs/j_ai_onspawn.ncs differ diff --git a/_module/ncs/j_inc_generic_ai.ncs b/_module/ncs/j_inc_generic_ai.ncs new file mode 100644 index 00000000..853fde06 Binary files /dev/null and b/_module/ncs/j_inc_generic_ai.ncs differ diff --git a/_module/ncs/j_inc_seteffects.ncs b/_module/ncs/j_inc_seteffects.ncs new file mode 100644 index 00000000..5bf4aef3 Binary files /dev/null and b/_module/ncs/j_inc_seteffects.ncs differ diff --git a/_module/ncs/j_sp_archer.ncs b/_module/ncs/j_sp_archer.ncs index 67c4260a..b96e623e 100644 Binary files a/_module/ncs/j_sp_archer.ncs and b/_module/ncs/j_sp_archer.ncs differ diff --git a/_module/ncs/j_sp_dragon.ncs b/_module/ncs/j_sp_dragon.ncs index d6b6bfb1..9ac0808e 100644 Binary files a/_module/ncs/j_sp_dragon.ncs and b/_module/ncs/j_sp_dragon.ncs differ diff --git a/_module/ncs/j_sp_highmage.ncs b/_module/ncs/j_sp_highmage.ncs index f0851857..fdedf221 100644 Binary files a/_module/ncs/j_sp_highmage.ncs and b/_module/ncs/j_sp_highmage.ncs differ diff --git a/_module/ncs/j_sp_humleader.ncs b/_module/ncs/j_sp_humleader.ncs index 4da5ede9..d2c2903c 100644 Binary files a/_module/ncs/j_sp_humleader.ncs and b/_module/ncs/j_sp_humleader.ncs differ diff --git a/_module/ncs/j_sp_lichboss.ncs b/_module/ncs/j_sp_lichboss.ncs index 1cb54425..2825d626 100644 Binary files a/_module/ncs/j_sp_lichboss.ncs and b/_module/ncs/j_sp_lichboss.ncs differ diff --git a/_module/ncs/j_sp_lowintel.ncs b/_module/ncs/j_sp_lowintel.ncs index 1b95b1e3..aaffb7ef 100644 Binary files a/_module/ncs/j_sp_lowintel.ncs and b/_module/ncs/j_sp_lowintel.ncs differ diff --git a/_module/ncs/ms_name_inc.ncs b/_module/ncs/ms_name_inc.ncs new file mode 100644 index 00000000..ecb1c72d Binary files /dev/null and b/_module/ncs/ms_name_inc.ncs differ diff --git a/_module/ncs/nw_ai_onspawn.ncs b/_module/ncs/nw_ai_onspawn.ncs index f4bbbd67..b97fb41f 100644 Binary files a/_module/ncs/nw_ai_onspawn.ncs and b/_module/ncs/nw_ai_onspawn.ncs differ diff --git a/_module/ncs/nw_c2_default9.ncs b/_module/ncs/nw_c2_default9.ncs index 1156682e..3f69204a 100644 Binary files a/_module/ncs/nw_c2_default9.ncs and b/_module/ncs/nw_c2_default9.ncs differ diff --git a/_module/ncs/nw_c2_herbivore.ncs b/_module/ncs/nw_c2_herbivore.ncs index 75f0174c..a03ff053 100644 Binary files a/_module/ncs/nw_c2_herbivore.ncs and b/_module/ncs/nw_c2_herbivore.ncs differ diff --git a/_module/ncs/nw_c2_lycan_9.ncs b/_module/ncs/nw_c2_lycan_9.ncs index 63ff3b9d..eb0db952 100644 Binary files a/_module/ncs/nw_c2_lycan_9.ncs and b/_module/ncs/nw_c2_lycan_9.ncs differ diff --git a/_module/ncs/nw_c2_omnivore.ncs b/_module/ncs/nw_c2_omnivore.ncs index 41d82bbd..ae352b1b 100644 Binary files a/_module/ncs/nw_c2_omnivore.ncs and b/_module/ncs/nw_c2_omnivore.ncs differ diff --git a/_module/ncs/nw_s2_layonhand.ncs b/_module/ncs/nw_s2_layonhand.ncs index 7a75fdd3..cfac1607 100644 Binary files a/_module/ncs/nw_s2_layonhand.ncs and b/_module/ncs/nw_s2_layonhand.ncs differ diff --git a/_module/ncs/onspawn_troll.ncs b/_module/ncs/onspawn_troll.ncs index c11ac5e8..cfb070fd 100644 Binary files a/_module/ncs/onspawn_troll.ncs and b/_module/ncs/onspawn_troll.ncs differ diff --git a/_module/ncs/poolofmind.ncs b/_module/ncs/poolofmind.ncs index 3a7e648a..5c6f0bf8 100644 Binary files a/_module/ncs/poolofmind.ncs and b/_module/ncs/poolofmind.ncs differ diff --git a/_module/ncs/qn_onhit.ncs b/_module/ncs/qn_onhit.ncs index f3813cbb..04a300dd 100644 Binary files a/_module/ncs/qn_onhit.ncs and b/_module/ncs/qn_onhit.ncs differ diff --git a/_module/ncs/ra_bal_grd_onspw.ncs b/_module/ncs/ra_bal_grd_onspw.ncs index 9d4b88c5..8a8d1d73 100644 Binary files a/_module/ncs/ra_bal_grd_onspw.ncs and b/_module/ncs/ra_bal_grd_onspw.ncs differ diff --git a/_module/ncs/ra_bandit_spawn.ncs b/_module/ncs/ra_bandit_spawn.ncs index bbedcdc7..cc3179d8 100644 Binary files a/_module/ncs/ra_bandit_spawn.ncs and b/_module/ncs/ra_bandit_spawn.ncs differ diff --git a/_module/ncs/ra_drag_default9.ncs b/_module/ncs/ra_drag_default9.ncs index e3d9bbae..acff8b2f 100644 Binary files a/_module/ncs/ra_drag_default9.ncs and b/_module/ncs/ra_drag_default9.ncs differ diff --git a/_module/ncs/ra_drag_onspawn.ncs b/_module/ncs/ra_drag_onspawn.ncs index 777ac9e5..c462f3b2 100644 Binary files a/_module/ncs/ra_drag_onspawn.ncs and b/_module/ncs/ra_drag_onspawn.ncs differ diff --git a/_module/ncs/ra_drag_onspawn2.ncs b/_module/ncs/ra_drag_onspawn2.ncs index 80f92980..d02f11ad 100644 Binary files a/_module/ncs/ra_drag_onspawn2.ncs and b/_module/ncs/ra_drag_onspawn2.ncs differ diff --git a/_module/ncs/ra_hen_spw_fight.ncs b/_module/ncs/ra_hen_spw_fight.ncs index 04d74f95..3cea8fe0 100644 Binary files a/_module/ncs/ra_hen_spw_fight.ncs and b/_module/ncs/ra_hen_spw_fight.ncs differ diff --git a/_module/ncs/ra_hen_spw_rogue.ncs b/_module/ncs/ra_hen_spw_rogue.ncs index 456882c0..b635c6f1 100644 Binary files a/_module/ncs/ra_hen_spw_rogue.ncs and b/_module/ncs/ra_hen_spw_rogue.ncs differ diff --git a/_module/ncs/ra_orcus_onspawn.ncs b/_module/ncs/ra_orcus_onspawn.ncs index 3af0232d..4d90e59d 100644 Binary files a/_module/ncs/ra_orcus_onspawn.ncs and b/_module/ncs/ra_orcus_onspawn.ncs differ diff --git a/_module/ncs/re_beggar_spawn.ncs b/_module/ncs/re_beggar_spawn.ncs index a54731fd..7778ca64 100644 Binary files a/_module/ncs/re_beggar_spawn.ncs and b/_module/ncs/re_beggar_spawn.ncs differ diff --git a/_module/ncs/re_c2_commoner9.ncs b/_module/ncs/re_c2_commoner9.ncs index c1fc8ffa..1d190b44 100644 Binary files a/_module/ncs/re_c2_commoner9.ncs and b/_module/ncs/re_c2_commoner9.ncs differ diff --git a/_module/ncs/re_common_spawn.ncs b/_module/ncs/re_common_spawn.ncs index 05b2c9ee..761afb8e 100644 Binary files a/_module/ncs/re_common_spawn.ncs and b/_module/ncs/re_common_spawn.ncs differ diff --git a/_module/ncs/re_noble_spawn.ncs b/_module/ncs/re_noble_spawn.ncs index 6abf5d49..6b26db05 100644 Binary files a/_module/ncs/re_noble_spawn.ncs and b/_module/ncs/re_noble_spawn.ncs differ diff --git a/_module/ncs/re_treasure0.ncs b/_module/ncs/re_treasure0.ncs index 8ed8ea0d..5367f866 100644 Binary files a/_module/ncs/re_treasure0.ncs and b/_module/ncs/re_treasure0.ncs differ diff --git a/_module/ncs/re_treasure1.ncs b/_module/ncs/re_treasure1.ncs index d94411bc..501a3294 100644 Binary files a/_module/ncs/re_treasure1.ncs and b/_module/ncs/re_treasure1.ncs differ diff --git a/_module/ncs/re_trsr_table.ncs b/_module/ncs/re_trsr_table.ncs new file mode 100644 index 00000000..a9ee9401 Binary files /dev/null and b/_module/ncs/re_trsr_table.ncs differ diff --git a/_module/ncs/wererat_onspawn.ncs b/_module/ncs/wererat_onspawn.ncs index c6271dc9..09d3c116 100644 Binary files a/_module/ncs/wererat_onspawn.ncs and b/_module/ncs/wererat_onspawn.ncs differ diff --git a/_module/ncs/x0_s0_inflict.ncs b/_module/ncs/x0_s0_inflict.ncs index fe687512..6f505263 100644 Binary files a/_module/ncs/x0_s0_inflict.ncs and b/_module/ncs/x0_s0_inflict.ncs differ diff --git a/_module/ncs/x2_def_spawn.ncs b/_module/ncs/x2_def_spawn.ncs index abf30f7f..42c6696f 100644 Binary files a/_module/ncs/x2_def_spawn.ncs and b/_module/ncs/x2_def_spawn.ncs differ diff --git a/_module/ncs/x2_s1_beholdray.ncs b/_module/ncs/x2_s1_beholdray.ncs index 20278a1b..c33f83b8 100644 Binary files a/_module/ncs/x2_s1_beholdray.ncs and b/_module/ncs/x2_s1_beholdray.ncs differ diff --git a/_module/nss/69_hench_heall.nss b/_module/nss/69_hench_heall.nss index 11125d17..bb0d4331 100644 --- a/_module/nss/69_hench_heall.nss +++ b/_module/nss/69_hench_heall.nss @@ -3,6 +3,7 @@ //Created by: 69MEH69 #include "nw_i0_generic" +#include "prc_inc_racial" void main() { @@ -16,7 +17,7 @@ void main() int nCurrent = GetCurrentHitPoints(oTarget); int nBase = GetMaxHitPoints(oTarget); - if(GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { if(nCurrent < nBase && !GetIsDead(oTarget)) { @@ -28,7 +29,7 @@ void main() } } } - else if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) + else if(MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) { if(nCurrent < nBase && !GetIsDead(oTarget)) { diff --git a/_module/nss/_inc_battlecry_.nss b/_module/nss/_inc_battlecry_.nss index ba6375d0..62c6edb8 100644 --- a/_module/nss/_inc_battlecry_.nss +++ b/_module/nss/_inc_battlecry_.nss @@ -4,6 +4,7 @@ /////////////////////////////////// #include "NW_I0_GENERIC" +#include "prc_inc_racial" const int BattleCryChance = 15; const int CombatCryChance = 20; @@ -83,7 +84,7 @@ void DoBattleCry() if (d100()<=BattleCryChance) { if (HasSpoken()) return; - if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) + if ((MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) { DoUndeadChatter(); } @@ -111,7 +112,7 @@ void DoCombatCry() if (d100()<=CombatCryChance) { if (HasSpoken()) return; - if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) + if ((MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) switch (d6()) //Turned undead :) { case 1 : ActionSpeakString(COLOR_YELLOW+"It Burns! It Burns!",TALKVOLUME_TALK); break; @@ -137,7 +138,7 @@ void DoCombatCry() if (d100()<=CombatCryChance) { if (HasSpoken()) return; - if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) + if ((MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) switch (d6()) { DoUndeadChatter(); @@ -161,7 +162,7 @@ void DoDeathCry() if (d100()<=DeathCryChance) { if (HasSpoken()) return; - if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) + if ((MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) switch (d6()) { case 1 : ActionSpeakString(COLOR_RED+"Dead by dawn! Dead by dawn!",TALKVOLUME_TALK); break; diff --git a/_module/nss/_inc_livingdead_.nss b/_module/nss/_inc_livingdead_.nss index f254d976..d6f5e697 100644 --- a/_module/nss/_inc_livingdead_.nss +++ b/_module/nss/_inc_livingdead_.nss @@ -1,3 +1,5 @@ +#include "prc_inc_racial" + const float fUnlifespan = 300.0; string SpawnOf(object oSpawnKiller = OBJECT_INVALID) @@ -126,8 +128,8 @@ int UndeadCheck(object oMyKiller) int iPassed = 0; int iSpawnVFX = VFX_FNF_SUMMON_UNDEAD; object oMyKiller = GetLastKiller(); - int iRace = GetRacialType(OBJECT_SELF); - int iKillerRace = GetRacialType(oMyKiller); + int iRace = MyPRCGetRacialType(OBJECT_SELF); + int iKillerRace = MyPRCGetRacialType(oMyKiller); int iKillerUndeadClass = GetLevelByClass(CLASS_TYPE_UNDEAD, oMyKiller); object oLeft = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oMyKiller); object oRight = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oMyKiller); diff --git a/_module/nss/dmfi_dmw_inc.nss b/_module/nss/dmfi_dmw_inc.nss index 4c117926..91f8f65b 100644 --- a/_module/nss/dmfi_dmw_inc.nss +++ b/_module/nss/dmfi_dmw_inc.nss @@ -1,3 +1,6 @@ +#include "prc_inc_racial" + +// void main (){} // VOICE CONFIGURATION - NEW IN 1.07 and UP // Set this to 0 if you want to DISABLE listening by NPCs for performance reasons. @@ -672,7 +675,7 @@ void SmokePipe(object oActivator) // Set height based on race and gender if (GetGender(oActivator) == GENDER_MALE) { - switch (GetRacialType(oActivator)) + switch (MyPRCGetRacialType(oActivator)) { case RACIAL_TYPE_HUMAN: case RACIAL_TYPE_HALFELF: fHeight = 1.7; fDistance = 0.12; break; @@ -686,7 +689,7 @@ void SmokePipe(object oActivator) else { // FEMALES - switch (GetRacialType(oActivator)) + switch (MyPRCGetRacialType(oActivator)) { case RACIAL_TYPE_HUMAN: case RACIAL_TYPE_HALFELF: fHeight = 1.6; fDistance = 0.12; break; @@ -712,7 +715,7 @@ void SmokePipe(object oActivator) // puff of smoke above and in front of head AssignCommand(oActivator, ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), lAboveHead))); // if female, turn head to left - if ((GetGender(oActivator) == GENDER_FEMALE) && (GetRacialType(oActivator) != RACIAL_TYPE_DWARF)) + if ((GetGender(oActivator) == GENDER_FEMALE) && (MyPRCGetRacialType(oActivator) != RACIAL_TYPE_DWARF)) AssignCommand(oActivator, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 5.0)); } @@ -1093,7 +1096,7 @@ string dmwand_Inventory(object oEntity) string dmwand_Race(object oEntity) { - switch (GetRacialType(oEntity)) + switch (MyPRCGetRacialType(oEntity)) { case RACIAL_TYPE_ABERRATION: return "Aberration"; break; case RACIAL_TYPE_ALL: return "All"; break; diff --git a/_module/nss/dmfi_plychat_exe.nss b/_module/nss/dmfi_plychat_exe.nss index 3377b6b9..3dd9a9dc 100644 --- a/_module/nss/dmfi_plychat_exe.nss +++ b/_module/nss/dmfi_plychat_exe.nss @@ -23,6 +23,7 @@ #include "dmfi_string_inc" #include "dmfi_plchlishk_i" #include "dmfi_db_inc" +#include "prc_inc_racial" const int DMFI_LOG_CONVERSATION = TRUE; // turn on or off logging of conversation text @@ -754,7 +755,7 @@ void SmokePipe(object oActivator) // Set height based on race and gender if (GetGender(oActivator) == GENDER_MALE) { - switch (GetRacialType(oActivator)) + switch (MyPRCGetRacialType(oActivator)) { case RACIAL_TYPE_HUMAN: case RACIAL_TYPE_HALFELF: fHeight = 1.7; fDistance = 0.12; break; @@ -768,7 +769,7 @@ void SmokePipe(object oActivator) else { // FEMALES - switch (GetRacialType(oActivator)) + switch (MyPRCGetRacialType(oActivator)) { case RACIAL_TYPE_HUMAN: case RACIAL_TYPE_HALFELF: fHeight = 1.6; fDistance = 0.12; break; @@ -794,7 +795,7 @@ void SmokePipe(object oActivator) // puff of smoke above and in front of head AssignCommand(oActivator, ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), lAboveHead))); // if female, turn head to left - if ((GetGender(oActivator) == GENDER_FEMALE) && (GetRacialType(oActivator) != RACIAL_TYPE_DWARF)) + if ((GetGender(oActivator) == GENDER_FEMALE) && (MyPRCGetRacialType(oActivator) != RACIAL_TYPE_DWARF)) AssignCommand(oActivator, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 5.0)); } @@ -2571,7 +2572,7 @@ string TranslateCommonToLanguage(int iLang, string sText) //////////////////////////////////////////////////////////////////////// int GetDefaultRacialLanguage(object oPC, int iRename) { - switch (GetRacialType(oPC)) + switch (MyPRCGetRacialType(oPC)) { case RACIAL_TYPE_DWARF: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Dwarven");return 4; break; case RACIAL_TYPE_ELF: diff --git a/_module/nss/dmfi_x_emote.nss b/_module/nss/dmfi_x_emote.nss index 3b0c69f6..9d32b30d 100644 --- a/_module/nss/dmfi_x_emote.nss +++ b/_module/nss/dmfi_x_emote.nss @@ -1,3 +1,4 @@ +#include "prc_inc_racial" //Smoking Function by Jason Robinson location GetLocationAboveAndInFrontOf(object oPC, float fDist, float fHeight) { @@ -31,7 +32,7 @@ void SmokePipe(object oActivator) // Set height based on race and gender if (GetGender(oActivator) == GENDER_MALE) { - switch (GetRacialType(oActivator)) + switch (MyPRCGetRacialType(oActivator)) { case RACIAL_TYPE_HUMAN: case RACIAL_TYPE_HALFELF: fHeight = 1.7; fDistance = 0.12; break; @@ -45,7 +46,7 @@ void SmokePipe(object oActivator) else { // FEMALES - switch (GetRacialType(oActivator)) + switch (MyPRCGetRacialType(oActivator)) { case RACIAL_TYPE_HUMAN: case RACIAL_TYPE_HALFELF: fHeight = 1.6; fDistance = 0.12; break; @@ -71,7 +72,7 @@ void SmokePipe(object oActivator) // puff of smoke above and in front of head AssignCommand(oActivator, ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), lAboveHead))); // if female, turn head to left - if ((GetGender(oActivator) == GENDER_FEMALE) && (GetRacialType(oActivator) != RACIAL_TYPE_DWARF)) + if ((GetGender(oActivator) == GENDER_FEMALE) && (MyPRCGetRacialType(oActivator) != RACIAL_TYPE_DWARF)) AssignCommand(oActivator, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 5.0)); } diff --git a/_module/nss/henchlvl_arcanta.nss b/_module/nss/henchlvl_arcanta.nss index ff98cb29..5a47c27a 100644 --- a/_module/nss/henchlvl_arcanta.nss +++ b/_module/nss/henchlvl_arcanta.nss @@ -1,7 +1,20 @@ +#include "prc_inc_racial" int StartingConditional() { int iResult; - iResult = (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_ARCANE_ARCHER || GetClassByPosition(2, OBJECT_SELF) == CLASS_TYPE_ARCANE_ARCHER || GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_ARCANE_ARCHER || GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_INVALID) && (GetRacialType(OBJECT_SELF) == RACIAL_TYPE_ELF || GetRacialType(OBJECT_SELF) == RACIAL_TYPE_HALFELF) && (GetBaseAttackBonus(OBJECT_SELF) >= 6) && (GetHasFeat(FEAT_WEAPON_FOCUS_LONGBOW, OBJECT_SELF) || GetHasFeat(FEAT_WEAPON_FOCUS_SHORTBOW, OBJECT_SELF)) && (GetHasFeat(FEAT_POINT_BLANK_SHOT, OBJECT_SELF)) && (GetLevelByClass(CLASS_TYPE_SORCERER, OBJECT_SELF) >= 1 || GetLevelByClass(CLASS_TYPE_WIZARD, OBJECT_SELF) >= 1) && (GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER, OBJECT_SELF) != 40); + iResult = (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_ARCANE_ARCHER || + GetClassByPosition(2, OBJECT_SELF) == CLASS_TYPE_ARCANE_ARCHER || + GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_ARCANE_ARCHER || + GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_INVALID) && + (MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_ELF || + MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_HALFELF) && + (GetBaseAttackBonus(OBJECT_SELF) >= 6) && + (GetHasFeat(FEAT_WEAPON_FOCUS_LONGBOW, OBJECT_SELF) || + GetHasFeat(FEAT_WEAPON_FOCUS_SHORTBOW, OBJECT_SELF)) && + (GetHasFeat(FEAT_POINT_BLANK_SHOT, OBJECT_SELF)) && + (GetLevelByClass(CLASS_TYPE_SORCERER, OBJECT_SELF) >= 1 || + GetLevelByClass(CLASS_TYPE_WIZARD, OBJECT_SELF) >= 1) && + (GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER, OBJECT_SELF) != 40); return iResult; } diff --git a/_module/nss/henchlvl_dwrfdta.nss b/_module/nss/henchlvl_dwrfdta.nss index e94ac339..e368b18f 100644 --- a/_module/nss/henchlvl_dwrfdta.nss +++ b/_module/nss/henchlvl_dwrfdta.nss @@ -1,7 +1,17 @@ +#include "prc_inc_racial" + int StartingConditional() { int iResult; - iResult = (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_DWARVENDEFENDER || GetClassByPosition(2, OBJECT_SELF) == CLASS_TYPE_DWARVENDEFENDER || GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_DWARVENDEFENDER || GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_INVALID) && (GetHasFeat(FEAT_DODGE, OBJECT_SELF)) && (GetHasFeat(FEAT_TOUGHNESS, OBJECT_SELF)) && (GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER, OBJECT_SELF) != 40) && (GetRacialType(OBJECT_SELF) == RACIAL_TYPE_DWARF) && (GetAlignmentLawChaos(OBJECT_SELF) == ALIGNMENT_LAWFUL); + iResult = (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_DWARVENDEFENDER || + GetClassByPosition(2, OBJECT_SELF) == CLASS_TYPE_DWARVENDEFENDER || + GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_DWARVENDEFENDER || + GetClassByPosition(3, OBJECT_SELF) == CLASS_TYPE_INVALID) && + (GetHasFeat(FEAT_DODGE, OBJECT_SELF)) && + (GetHasFeat(FEAT_TOUGHNESS, OBJECT_SELF)) && + (GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER, OBJECT_SELF) != 40) + && (MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_DWARF) + && (GetAlignmentLawChaos(OBJECT_SELF) == ALIGNMENT_LAWFUL); return iResult; } diff --git a/_module/nss/j_ai_onspawn.nss b/_module/nss/j_ai_onspawn.nss index 522036b5..56a2db06 100644 --- a/_module/nss/j_ai_onspawn.nss +++ b/_module/nss/j_ai_onspawn.nss @@ -314,7 +314,7 @@ void main() // Min. Amount of Rounds between each breath use. See readme for counter defaults. Def: 3 // Default checks for dragon flying automatic turning on of flying. - if(GetLevelByClass(CLASS_TYPE_DRAGON) || GetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) + if(GetLevelByClass(CLASS_TYPE_DRAGON) || MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) { SetSpawnInCondition(AI_FLAG_COMBAT_FLYING, AI_COMBAT_MASTER); // This turns ON combat flying. I think anything winged looks A-OK. See readme for info. diff --git a/_module/nss/j_inc_generic_ai.nss b/_module/nss/j_inc_generic_ai.nss index 331cc66b..b811d330 100644 --- a/_module/nss/j_inc_generic_ai.nss +++ b/_module/nss/j_inc_generic_ai.nss @@ -1729,7 +1729,7 @@ int AI_EquipAndAttack() // Monk levels nMonkLevels = GetLevelByClass(CLASS_TYPE_MONK); if(!nMonkLevels) nMonkLevels = 1; - nTargetCreatureRace = GetRacialType(GlobalMeleeTarget);//done later. + nTargetCreatureRace = MyPRCGetRacialType(GlobalMeleeTarget);//done later. nTargetAlignment = GetAlignmentGoodEvil(GlobalMeleeTarget); // Now, monk, can it be done... if((!GetIsObjectValid(oEquipped) || @@ -2637,7 +2637,7 @@ int AI_AttemptGrenadeThrowing(object oTarget) // We have a valid item grenade. We then throw it (or attempt to!) // - Check holy grenade not firing Versus non-undead if(ItemHostRanged == SPELL_GRENADE_HOLY && - GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) + MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) { // Stop as they are not undead return FALSE; @@ -4487,7 +4487,7 @@ int AI_AttemptHealingSelf() // Determine what we should heal at... int nPercent = GetBoundriedAIInteger(AI_HEALING_US_PERCENT, 50, 100, 1); - int nRace = GetRacialType(OBJECT_SELF); + int nRace = MyPRCGetRacialType(OBJECT_SELF); // What % are we at? It is GlobalOurPercentHP // Are we under the right %? @@ -4654,7 +4654,7 @@ int AI_AttemptCureCondition() while(GetIsObjectValid(oHeal) && GetDistanceToObject(oHeal) <= 20.0) { // Don't target undead - if(GetRacialType(oHeal) != RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(oHeal) != RACIAL_TYPE_UNDEAD) { // Go through possible effects in priority order. nEffectHex = GetLocalInt(oHeal, AI_EFFECT_HEX); @@ -4985,7 +4985,7 @@ int AI_AttemptHealingAlly() oLoopTarget = GetLocalObject(OBJECT_SELF, ARRAY_ALLIES_RANGE_SEEN + IntToString(nCnt)); while(GetIsObjectValid(oLoopTarget)) { - if(GetRacialType(oLoopTarget) != RACIAL_TYPE_CONSTRUCT && + if(MyPRCGetRacialType(oLoopTarget) != RACIAL_TYPE_CONSTRUCT && (GetAssociateType(oLoopTarget) == ASSOCIATE_TYPE_NONE || bSummonHeal == TRUE)) { // We do actually not ALWAYS use the nearest dead person, nor @@ -5013,7 +5013,7 @@ int AI_AttemptHealingAlly() // Did we find someone to heal? if(nChosenPercentHitPoints > 0) { - int nAllyHealRace = GetRacialType(oAllyToHeal); + int nAllyHealRace = MyPRCGetRacialType(oAllyToHeal); // Undead - negative energy heals! if(nAllyHealRace == RACIAL_TYPE_UNDEAD) { @@ -5817,7 +5817,7 @@ int AI_AttemptFeatTurning() if(!GetIsFriend(oTarget)) { nHD = GetHitDice(oTarget) + GetTurnResistanceHD(oTarget); - nRacial = GetRacialType(oTarget); + nRacial = MyPRCGetRacialType(oTarget); // Planar creatures add spell resistance (don't bother if can't turn them) if(nRacial == RACIAL_TYPE_OUTSIDER && bOutsider) { @@ -7386,7 +7386,7 @@ H [Crumble] - Constructs only. { // If we are undead, we make sure we leave at least 1 for our own healing. if(GlobalNormalSpellsNoEffectLevel < 6 && - (GetRacialType(OBJECT_SELF) != RACIAL_TYPE_UNDEAD || + (MyPRCGetRacialType(OBJECT_SELF) != RACIAL_TYPE_UNDEAD || GetHasSpell(SPELL_HARM) >= 2)) { // Harm @@ -10077,12 +10077,12 @@ H X [Aura of Glory] - +4 Char, and allies get +4 VS Fear effects. { // This is natural AC, and only for undead. Cast it on ourselves, or // our summoned undead monster. - if(GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD) { // Stone bones - cast if we do not have a natural armor AC spell. if(AI_ActionCastSpell(SPELL_STONE_BONES, OBJECT_SELF, 12, FALSE)) return TRUE; } - else if(GetRacialType(GlobalBuffAlly) == RACIAL_TYPE_UNDEAD) + else if(MyPRCGetRacialType(GlobalBuffAlly) == RACIAL_TYPE_UNDEAD) { // Stone bones - cast if we do not have a natural armor AC spell. if(AI_ActionCastSpell(SPELL_STONE_BONES, GlobalBuffAlly, 12, FALSE)) return TRUE; @@ -13712,7 +13712,7 @@ int AI_SetUpAllObjects(object oInputBackup) GlobalSpellTargetCurrentHitPoints = GetCurrentHitPoints(GlobalSpellTarget); // This is one of the most important. GlobalSeenSpell = GetObjectSeen(GlobalSpellTarget); - GlobalSpellTargetRace = GetRacialType(GlobalSpellTarget); + GlobalSpellTargetRace = MyPRCGetRacialType(GlobalSpellTarget); // Range GlobalSpellTargetRange = GetDistanceToObject(GlobalSpellTarget); @@ -13879,7 +13879,7 @@ int AI_AttemptHostileSkills() GetSpawnInCondition(AI_FLAG_OTHER_COMBAT_FORCE_EMPATHY, AI_OTHER_COMBAT_MASTER)) { iEmpathyDC = 20; - iRace = GetRacialType(GlobalMeleeTarget); + iRace = MyPRCGetRacialType(GlobalMeleeTarget); // we add 4 (to make DC 24 + HD) if a special animal. R_T_ANIMAL is DC 20 if(iRace == RACIAL_TYPE_BEAST || iRace == RACIAL_TYPE_MAGICAL_BEAST) { @@ -14034,7 +14034,7 @@ int AI_AttemptFeatCombatHostile() if(!GetItemHasItemProperty(oPrimaryWeapon, ITEM_PROPERTY_ON_HIT_PROPERTIES)) { // Bless weapon - if(GetRacialType(GlobalMeleeTarget) == RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(GlobalMeleeTarget) == RACIAL_TYPE_UNDEAD) { // Bless weapon. Level 1 (Paladin). +1 Attack Bonus, +2d6 Damage to melee weapon VS undead if(AI_ActionCastSpell(SPELL_BLESS_WEAPON, oPrimaryWeapon, 11, FALSE)) return TRUE; diff --git a/_module/nss/j_inc_seteffects.nss b/_module/nss/j_inc_seteffects.nss index 9c0f891f..0d741ce8 100644 --- a/_module/nss/j_inc_seteffects.nss +++ b/_module/nss/j_inc_seteffects.nss @@ -28,6 +28,9 @@ ///////////////////////// [Include - Set Effects] ////////////////////////////*/ #include "J_INC_CONSTANTS" +#include "prc_inc_racial" + +//void main (){} // List (use Global to not conflict with the nwscript.nss!) const int GlobalEffectUncommandable = 0x00000001;// Stun. Sleep. Fear. Turning. Paralsis. Petrify. @@ -458,7 +461,7 @@ void AI_SetEffectsOnTarget(object oTarget = OBJECT_SELF) eCheck = GetNextEffect(oTarget); } // If undead, set some immunities by default - if(GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { AI_SetWeHaveSpellsEffect(GlobalHasDeathWardSpell); } diff --git a/_module/nss/j_inc_spawnin.nss b/_module/nss/j_inc_spawnin.nss index 38c742c9..7aaaa9cf 100644 --- a/_module/nss/j_inc_spawnin.nss +++ b/_module/nss/j_inc_spawnin.nss @@ -27,6 +27,7 @@ // All constants. #include "J_INC_SETWEAPONS" +#include "prc_inc_racial" // Set weapons // - Constants file is in this @@ -654,7 +655,7 @@ void AI_SetTurningLevel() void AI_SetMaybeFearless() { // Cirtain races are immune to fear - switch(GetRacialType(OBJECT_SELF)) + switch(MyPRCGetRacialType(OBJECT_SELF)) { case RACIAL_TYPE_CONSTRUCT: case RACIAL_TYPE_DRAGON: diff --git a/_module/nss/ms_name_inc.nss b/_module/nss/ms_name_inc.nss index b5ff9f66..034a8583 100644 --- a/_module/nss/ms_name_inc.nss +++ b/_module/nss/ms_name_inc.nss @@ -55,6 +55,7 @@ // // //////////////////////////////////////////////////////////////////////////////*/ +#include "prc_inc_racial" //void main (){} @@ -339,7 +340,7 @@ void ms_Nomenclature(object oNPC = OBJECT_SELF) string ms_RandomFirstName(object oNPC = OBJECT_SELF) { int Gender = GetGender(oNPC); - int Race = GetRacialType(oNPC); + int Race = MyPRCGetRacialType(oNPC); string Name; @@ -385,7 +386,7 @@ string ms_RandomFirstName(object oNPC = OBJECT_SELF) string ms_RandomLastName(object oNPC = OBJECT_SELF) { - int Race = GetRacialType(oNPC); + int Race = MyPRCGetRacialType(oNPC); string Name; diff --git a/_module/nss/nw_c2_default9.nss b/_module/nss/nw_c2_default9.nss index b7982908..15baaf89 100644 --- a/_module/nss/nw_c2_default9.nss +++ b/_module/nss/nw_c2_default9.nss @@ -314,7 +314,7 @@ void main() // Min. Amount of Rounds between each breath use. See readme for counter defaults. Def: 3 // Default checks for dragon flying automatic turning on of flying. - if(GetLevelByClass(CLASS_TYPE_DRAGON) || GetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) + if(GetLevelByClass(CLASS_TYPE_DRAGON) || MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) { SetSpawnInCondition(AI_FLAG_COMBAT_FLYING, AI_COMBAT_MASTER); // This turns ON combat flying. I think anything winged looks A-OK. See readme for info. diff --git a/_module/nss/nw_s2_layonhand.nss b/_module/nss/nw_s2_layonhand.nss index ed99be44..921eb7da 100644 --- a/_module/nss/nw_s2_layonhand.nss +++ b/_module/nss/nw_s2_layonhand.nss @@ -14,6 +14,7 @@ //::////////////////////////////////////////////// #include "69_hench_lib" #include "NW_I0_SPELLS" +#include "prc_inc_racial" void main() { //Declare major variables @@ -39,7 +40,7 @@ void main() object oArea = GetArea(oTarget); int nCHP = GetLocalInt(oArea, "nCHP" +sTag); //Check if the target is an undead - if(GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_LAY_ON_HANDS)); diff --git a/_module/nss/qn_onhit.nss b/_module/nss/qn_onhit.nss index 375d15ce..4d38cb7a 100644 --- a/_module/nss/qn_onhit.nss +++ b/_module/nss/qn_onhit.nss @@ -32,6 +32,7 @@ Of course you don't have to use this method - its optional. //::////////////////////////////////////////////// #include "x2_inc_switches" #include "x2_inc_spellhook" +#include "prc_inc_racial" //Belker void SmokeClaw(object oTarget, int nDC, int nRounds); @@ -607,8 +608,8 @@ int GetIsLiving(object oTarget) int bAlive; //Constructs & Undead - if(GetRacialType(oTarget) == RACIAL_TYPE_CONSTRUCT || - GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_CONSTRUCT || + MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { return bAlive = FALSE; } diff --git a/_module/nss/ra_drag_default9.nss b/_module/nss/ra_drag_default9.nss index ca1a6c00..b4d77fa4 100644 --- a/_module/nss/ra_drag_default9.nss +++ b/_module/nss/ra_drag_default9.nss @@ -319,7 +319,7 @@ void main() // Min. Amount of Rounds between each breath use. See readme for counter defaults. Def: 3 // Default checks for dragon flying automatic turning on of flying. - if(GetLevelByClass(CLASS_TYPE_DRAGON) || GetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) + if(GetLevelByClass(CLASS_TYPE_DRAGON) || MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) { SetSpawnInCondition(AI_FLAG_COMBAT_FLYING, AI_COMBAT_MASTER); // This turns ON combat flying. I think anything winged looks A-OK. See readme for info. diff --git a/_module/nss/ra_mod_onenter.nss b/_module/nss/ra_mod_onenter.nss index c7bc7723..7c5913ed 100644 --- a/_module/nss/ra_mod_onenter.nss +++ b/_module/nss/ra_mod_onenter.nss @@ -1,6 +1,8 @@ +#include "prc_inc_racial" //#include "journal_include" #include "pqj_inc" + void GivePCWands(object oPC) { // items to be give to new players @@ -38,7 +40,7 @@ void GiveLangTokens(object oPC) // Give race based language tokens // TODO: Expand for PRC races. - if( GetRacialType(oPC) == RACIAL_TYPE_ELF ) + if( MyPRCGetRacialType(oPC) == RACIAL_TYPE_ELF ) { // DelayCommand(0.5, AdjustReputation(oPC, GetObjectByTag("FACTION_ATHAS_SILVERHAND"), 90)); // Adjust faction reputation @@ -49,7 +51,7 @@ void GiveLangTokens(object oPC) } } - if( GetRacialType(oPC) == RACIAL_TYPE_HALFELF ) + if( MyPRCGetRacialType(oPC) == RACIAL_TYPE_HALFELF ) { if ( GetItemPossessedBy(oPC, "hlslang_1") == OBJECT_INVALID ) { @@ -58,7 +60,7 @@ void GiveLangTokens(object oPC) } } - if( GetRacialType(oPC) == RACIAL_TYPE_DWARF ) + if( MyPRCGetRacialType(oPC) == RACIAL_TYPE_DWARF ) { // DelayCommand(0.5, AdjustReputation(oPC, GetObjectByTag("ATHAS_FACTION_KLED"), 90)); // Adjust faction reputation @@ -69,7 +71,7 @@ void GiveLangTokens(object oPC) } } - if( GetRacialType(oPC) == RACIAL_TYPE_HALFLING ) + if( MyPRCGetRacialType(oPC) == RACIAL_TYPE_HALFLING ) { if ( GetItemPossessedBy(oPC, "hlslang_3") == OBJECT_INVALID ) { @@ -78,7 +80,7 @@ void GiveLangTokens(object oPC) } } - if( GetRacialType(oPC) == 199 ) // Air Genasi + if( MyPRCGetRacialType(oPC) == 199 ) // Air Genasi { SetColor ( oPC, COLOR_CHANNEL_SKIN, 020); @@ -88,7 +90,7 @@ void GiveLangTokens(object oPC) CreateItemOnObject("hlslang_101", oPC); } } - if( GetRacialType(oPC) == 200 ) // Earth Genasi + if( MyPRCGetRacialType(oPC) == 200 ) // Earth Genasi { SetColor ( oPC, COLOR_CHANNEL_SKIN, 118); @@ -98,7 +100,7 @@ void GiveLangTokens(object oPC) CreateItemOnObject("hlslang_102", oPC); } } - if( GetRacialType(oPC) == 202 ) // Fire Genasi + if( MyPRCGetRacialType(oPC) == 202 ) // Fire Genasi { SetColor ( oPC, COLOR_CHANNEL_SKIN, 103); @@ -108,7 +110,7 @@ void GiveLangTokens(object oPC) CreateItemOnObject("hlslang_104", oPC); } } - if( GetRacialType(oPC) == 205 ) // Water Genasi + if( MyPRCGetRacialType(oPC) == 205 ) // Water Genasi { SetColor ( oPC, COLOR_CHANNEL_SKIN, 141); diff --git a/_module/nss/re_c2_commoner9.nss b/_module/nss/re_c2_commoner9.nss index 8f736012..914ee7b1 100644 --- a/_module/nss/re_c2_commoner9.nss +++ b/_module/nss/re_c2_commoner9.nss @@ -75,8 +75,10 @@ // - This will spawn treasure based on chests placed in the module. See "x0_i0_treasure" for more information. // This is required for all spawn in options! +#include "prc_inc_racial" #include "J_INC_SPAWNIN" + void main() { /************************ [Important Spawn Settings] **************************/ @@ -314,7 +316,7 @@ void main() // Min. Amount of Rounds between each breath use. See readme for counter defaults. Def: 3 // Default checks for dragon flying automatic turning on of flying. - if(GetLevelByClass(CLASS_TYPE_DRAGON) || GetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) + if(GetLevelByClass(CLASS_TYPE_DRAGON) || MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_DRAGON) { SetSpawnInCondition(AI_FLAG_COMBAT_FLYING, AI_COMBAT_MASTER); // This turns ON combat flying. I think anything winged looks A-OK. See readme for info. diff --git a/_module/nss/re_treasure0.nss b/_module/nss/re_treasure0.nss index 9c0130b4..712c1c64 100644 --- a/_module/nss/re_treasure0.nss +++ b/_module/nss/re_treasure0.nss @@ -28,17 +28,19 @@ or in a module is very subjective. Some will consider this amount far too gener and some too greedy. */ //////////////////////////////////////////////////////////////////////////////// +#include "prc_inc_racial" + void main() { if(d100()>66) return; object oCreature = OBJECT_SELF; object oMarker; - if(GetRacialType(oCreature) == RACIAL_TYPE_ANIMAL - || GetRacialType(oCreature) == RACIAL_TYPE_VERMIN) return; + if(MyPRCGetRacialType(oCreature) == RACIAL_TYPE_ANIMAL + || MyPRCGetRacialType(oCreature) == RACIAL_TYPE_VERMIN) return; float fChallengeFactor = GetChallengeRating(oCreature) * 30.0; float fFactor = IntToFloat(Random(5) + 2); int iTreasure = FloatToInt(fChallengeFactor / fFactor); - int iType = GetRacialType(oCreature); + int iType = MyPRCGetRacialType(oCreature); CreateItemOnObject("NW_IT_GOLD001", oCreature, iTreasure); if(iType == RACIAL_TYPE_UNDEAD || iType == RACIAL_TYPE_ABERRATION) oMarker = CreateItemOnObject("NW_IT_MSMLMISC21", oCreature, 1); diff --git a/_module/nss/re_treasure1.nss b/_module/nss/re_treasure1.nss index 96a30462..d929f1a2 100644 --- a/_module/nss/re_treasure1.nss +++ b/_module/nss/re_treasure1.nss @@ -4,11 +4,13 @@ Custom Treasure Table for use with the BESIE Random Encounter Package by Ray Miller */ //////////////////////////////////////////////////// +#include "prc_inc_racial" //////////////////////////////////////////////////// + void main() { //Note: This statement causes the script to exclude animals from this treasure table. - if(GetRacialType(OBJECT_SELF) == RACIAL_TYPE_ANIMAL) return; + if(MyPRCGetRacialType(OBJECT_SELF) == RACIAL_TYPE_ANIMAL) return; //////////////////////////////////////////////////////////// object oCreature = OBJECT_SELF; float fChance; diff --git a/_module/nss/re_trsr_table.nss b/_module/nss/re_trsr_table.nss index 20591503..a30839bd 100644 --- a/_module/nss/re_trsr_table.nss +++ b/_module/nss/re_trsr_table.nss @@ -9,6 +9,10 @@ and will not compile on its own. //////////////////////////////////////////////////// //////////////////////////////////////////////////// +#include "prc_inc_racial" + +//::void main(){} + float fCRFactor = GetChallengeRating(OBJECT_SELF) / 20.0; object GiveMoney(object oCreature = OBJECT_SELF) @@ -16,12 +20,12 @@ object GiveMoney(object oCreature = OBJECT_SELF) if(d100()>66) return OBJECT_INVALID; object oObject = OBJECT_INVALID; object oMarker; - if(GetRacialType(oCreature) == RACIAL_TYPE_ANIMAL - || GetRacialType(oCreature) == RACIAL_TYPE_VERMIN) return OBJECT_INVALID; + if(MyPRCGetRacialType(oCreature) == RACIAL_TYPE_ANIMAL + || MyPRCGetRacialType(oCreature) == RACIAL_TYPE_VERMIN) return OBJECT_INVALID; float fChallengeFactor = GetChallengeRating(oCreature) * 30.0; float fFactor = IntToFloat(Random(5) + 2); int iTreasure = FloatToInt(fChallengeFactor / fFactor); - int iType = GetRacialType(oCreature); + int iType = MyPRCGetRacialType(oCreature); oObject = CreateItemOnObject("NW_IT_GOLD001", oCreature, iTreasure); if(iType == RACIAL_TYPE_UNDEAD || iType == RACIAL_TYPE_ABERRATION) oMarker = CreateItemOnObject("NW_IT_MSMLMISC21", oCreature, 1); @@ -44,7 +48,7 @@ object GiveHealing(object oCreature = OBJECT_SELF) object oObject = OBJECT_INVALID; //Note: This statement causes the script to exclude animals from this treasure table. -if(GetRacialType(oCreature) != RACIAL_TYPE_ANIMAL){ +if(MyPRCGetRacialType(oCreature) != RACIAL_TYPE_ANIMAL){ ////////////////////////////////////////////////////////////// int END; float fChance; diff --git a/_module/nss/x0_s0_inflict.nss b/_module/nss/x0_s0_inflict.nss index e64c32c0..5217e3e0 100644 --- a/_module/nss/x0_s0_inflict.nss +++ b/_module/nss/x0_s0_inflict.nss @@ -12,6 +12,7 @@ //::////////////////////////////////////////////// //:: VFX Pass By: #include "X0_I0_SPELLS" // * this is the new spells include for expansion packs +#include "prc_inc_racial" void main() { @@ -25,35 +26,35 @@ void main() { /*Minor*/ case 431: spellsInflictTouchAttack(1, 0, 1, 246, VFX_IMP_HEALING_G, nSpellID); nCure = 1; - if(GetIsHenchmanDying(oTarget) && GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(GetIsHenchmanDying(oTarget) && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { SetLocalInt(oArea, "nCHP" +sTag, nCHP + nCure); } break; /*Light*/ case 432: case 609: spellsInflictTouchAttack(d8(), 5, 8, 246, VFX_IMP_HEALING_G, nSpellID); nCure = d8(1); - if(GetIsHenchmanDying(oTarget) && GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(GetIsHenchmanDying(oTarget) && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { SetLocalInt(oArea, "nCHP" +sTag, nCHP + nCure); } break; /*Moderate*/ case 433: case 610: spellsInflictTouchAttack(d8(2), 10, 16, 246, VFX_IMP_HEALING_G, nSpellID); nCure = d8(2); - if(GetIsHenchmanDying(oTarget) && GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(GetIsHenchmanDying(oTarget) && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { SetLocalInt(oArea, "nCHP" +sTag, nCHP + nCure); } break; /*Serious*/ case 434: case 611: spellsInflictTouchAttack(d8(3), 15, 24, 246, VFX_IMP_HEALING_G, nSpellID); nCure = d8(3); - if(GetIsHenchmanDying(oTarget) && GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(GetIsHenchmanDying(oTarget) && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { SetLocalInt(oArea, "nCHP" +sTag, nCHP + nCure); } break; /*Critical*/ case 435: case 612: spellsInflictTouchAttack(d8(4), 20, 32, 246, VFX_IMP_HEALING_G, nSpellID); nCure = d8(4); - if(GetIsHenchmanDying(oTarget) && GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) + if(GetIsHenchmanDying(oTarget) && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { SetLocalInt(oArea, "nCHP" +sTag, nCHP + nCure); } diff --git a/_module/nss/x2_s1_beholdray.nss b/_module/nss/x2_s1_beholdray.nss index efa409aa..a603f4ef 100644 --- a/_module/nss/x2_s1_beholdray.nss +++ b/_module/nss/x2_s1_beholdray.nss @@ -15,6 +15,7 @@ #include "x0_i0_spells" +#include "prc_inc_racial" void DoBeholderPetrify(int nDuration,object oSource, object oTarget, int nSpellID); @@ -75,7 +76,7 @@ void main() SignalEvent(oTarget,EventSpellCastAt(OBJECT_SELF,GetSpellId(),TRUE)); fDelay = 0.0f; //old -- GetSpellEffectDelay(GetLocation(oTarget),OBJECT_SELF); - int iTargetRace = GetRacialType(oTarget); + int iTargetRace = MyPRCGetRacialType(oTarget); if ((nSpell == 786) && ( ((!GetIsPlayableRacialType(oTarget)) diff --git a/_module/ra_tdog.mod b/_module/ra_tdog.mod index 0b7c5444..4f81cc64 100644 Binary files a/_module/ra_tdog.mod and b/_module/ra_tdog.mod differ diff --git a/_module/utc/npc_greeter.utc.json b/_module/utc/npc_greeter.utc.json index cad6c7ab..f1015603 100644 --- a/_module/utc/npc_greeter.utc.json +++ b/_module/utc/npc_greeter.utc.json @@ -2,7 +2,7 @@ "__data_type": "UTC ", "Appearance_Head": { "type": "byte", - "value": 22 + "value": 3 }, "Appearance_Type": { "type": "word", @@ -110,7 +110,7 @@ }, "Color_Hair": { "type": "byte", - "value": 11 + "value": 123 }, "Color_Skin": { "type": "byte", @@ -118,11 +118,11 @@ }, "Color_Tattoo1": { "type": "byte", - "value": 1 + "value": 152 }, "Color_Tattoo2": { "type": "byte", - "value": 1 + "value": 152 }, "Comment": { "type": "cexostring",