2025/07/31 Update
Reverted Luminous Armor. Updated NUI spellcast menu (@Alhooness). Fixed Inlindl School. Tweaked prc_2da_cache creature. Fixed Celebrant of Sharess spellcasting. Found a few more functions to remove Assassin from. Added GetTotalShieldACBonus(). Made magic staves medium weapons again, so that small creatures can use them. Added feat constants for Charge & Grapple. Devil's Eye should be Extendable. Setup talents for Combat maneuvers. Updated PRC8 manual.
This commit is contained in:
parent
2181120567
commit
98e0b02799
1
.gitignore
vendored
1
.gitignore
vendored
@ -163,3 +163,4 @@ nwn/nwnprc/trunk/makefile.temp
|
||||
nwn/nwnprc/trunk/makefile.temp
|
||||
/Release
|
||||
/old_backup
|
||||
nwn/nwnprc/trunk/2das/prepeps_feat.2da
|
||||
|
@ -11,7 +11,7 @@
|
||||
<center> <img src="../../images/manual_prclogo.jpg"> </center>
|
||||
<br>
|
||||
<br>
|
||||
<div><h1>:: PRC8 v4.1.11 ::</h1></div>
|
||||
<div><h1>:: PRC8 v4.56 ::</h1></div>
|
||||
<br>
|
||||
<div class="div_paddedcontent">
|
||||
<center><b>Welcome to the Player Resource Consortium 8 manual!</b>
|
||||
|
@ -17,7 +17,7 @@ For questions concerning scripting check out the
|
||||
<a href="http://www.nwnlexicon.com/" target="_blank">NWN Lexicon</a>.
|
||||
<br><br>
|
||||
If you can not find what you are looking for there,
|
||||
feel free to ask questions on <a href="http://www.nwnprc.com/" target="_blank">our forums</a>.
|
||||
feel free to ask questions on <a href="https://discord.gg/FW9V9RKy5U" target="_blank">our Discord</a>.
|
||||
<br><br>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -49,14 +49,14 @@
|
||||
|
||||
<div class="div_menu_line_padding"> <hr> </div>
|
||||
<div class="div_menu_padding"> <a href="#" onclick="openContent('languages');return false;" onfocus="this.blur();" onmouseover="setStatus('Languages');return true;" onmouseout="unsetStatus();"><div class="div_menuitem">Languages</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="http://nwnprc.com/" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC Website</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="https://discord.gg/FW9V9RKy5U" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC8 Discord</div></a> </div>
|
||||
|
||||
<script language="javascript1.2">
|
||||
<!--
|
||||
if(!IsOnlineManual)
|
||||
{
|
||||
var sMes1 = "Online Manual";
|
||||
document.writeln("<div class='div_menu_padding'> <a href='http://www.nwnprc.com/nwn/index.html' target='_top' onmouseover='setStatus(sMes1);return true' onmouseout='unsetStatus();'><div class='div_menuitem'>Online Manual</div></a> </div>");
|
||||
document.writeln("<div class='div_menu_padding'> <a href='https://discord.gg/FW9V9RKy5U' target='_top' onmouseover='setStatus(sMes1);return true' onmouseout='unsetStatus();'><div class='div_menuitem'>Online Manual</div></a> </div>");
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
|
@ -458,7 +458,7 @@ The reason this is important is because you will want to make sure you are using
|
||||
If you are not, then either another PRC member or yourself will need to move a lot of data around to add your PrC.
|
||||
<br><br>
|
||||
|
||||
For the most current list of open 2da / tlk slots <a href="http://www.nwnprc.com/cgi-bin/tlk_2da_info.cgi" target="_blank">click here</a>.
|
||||
For the most current list of open 2da / tlk slots <a href="https://nwn.wiki/display/NWN1/Community+Reserved+Ranges" target="_blank">click here</a>.
|
||||
[Note: Link requires active internet connection to work]
|
||||
<br><br>
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
<div class="div_menu_line_padding"> <hr> </div>
|
||||
<div class="div_menu_padding"> <a href="#" onclick="openContent('languages');return false;" onfocus="this.blur();" onmouseover="setStatus('Languages');return true;" onmouseout="unsetStatus();"><div class="div_menuitem">Languages</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="http://www.nwnprc.com/index.html" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC Website</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="https://discord.gg/FW9V9RKy5U" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC8 Discord</div></a> </div>
|
||||
|
||||
<script language="javascript1.2">
|
||||
<!--
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
<div class="div_menu_line_padding"> <hr> </div>
|
||||
<div class="div_menu_padding"> <a href="#" onclick="openContent('languages');return false;" onfocus="this.blur();" onmouseover="setStatus('Languages');return true;" onmouseout="unsetStatus();"><div class="div_menuitem">Languages</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="http://www.nwnprc.com/index.html" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC Website</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="https://discord.gg/FW9V9RKy5U" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC8 Discord</div></a> </div>
|
||||
|
||||
<script language="javascript1.2">
|
||||
<!--
|
||||
|
@ -458,7 +458,7 @@ The reason this is important is because you will want to make sure you are using
|
||||
If you are not, then either another PRC member or yourself will need to move a lot of data around to add your PrC.
|
||||
<br><br>
|
||||
|
||||
For the most current list of open 2da / tlk slots <a href="http://www.nwnprc.com/cgi-bin/tlk_2da_info.cgi" target="_blank">click here</a>.
|
||||
For the most current list of open 2da / tlk slots <a href="https://nwn.wiki/display/NWN1/Community+Reserved+Ranges" target="_blank">click here</a>.
|
||||
[Note: Link requires active internet connection to work]
|
||||
<br><br>
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
<div class="div_menu_line_padding"> <hr> </div>
|
||||
<div class="div_menu_padding"> <a href="#" onclick="openContent('languages');return false;" onfocus="this.blur();" onmouseover="setStatus('Languages');return true;" onmouseout="unsetStatus();"><div class="div_menuitem">Languages</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="http://www.nwnprc.com/index.html" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC Website</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="https://discord.gg/FW9V9RKy5U" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC8 Discord</div></a> </div>
|
||||
|
||||
<script language="javascript1.2">
|
||||
<!--
|
||||
|
@ -42,14 +42,14 @@
|
||||
|
||||
<div class="div_menu_line_padding"> <hr> </div>
|
||||
<div class="div_menu_padding"> <a href="#" onclick="openContent('languages');return false;" onfocus="this.blur();" onmouseover="setStatus('Languages');return true;" onmouseout="unsetStatus();"><div class="div_menuitem">Languages</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="http://www.nwnprc.com/index.html" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC Website</div></a> </div>
|
||||
<div class="div_menu_padding"> <a href="https://discord.gg/FW9V9RKy5U" target="_top" onmouseover="setStatus('PRC Website');return true" onmouseout="unsetStatus();"><div class="div_menuitem">PRC8 Discord</div></a> </div>
|
||||
|
||||
<script language="javascript1.2">
|
||||
<!--
|
||||
if(!IsOnlineManual)
|
||||
{
|
||||
var sMes1 = "Online Manual";
|
||||
document.writeln("<div class='div_menu_padding'> <a href='http://www.nwnprc.com/manual/index.html' target='_top' onmouseover='setStatus(sMes1);return true' onmouseout='unsetStatus();'><div class='div_menuitem'>Online Manual</div></a> </div>");
|
||||
document.writeln("<div class='div_menu_padding'> <a href='https://discord.gg/FW9V9RKy5U' target='_top' onmouseover='setStatus(sMes1);return true' onmouseout='unsetStatus();'><div class='div_menuitem'>Online Manual</div></a> </div>");
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
|
33
nwn/nwnprc/DocGen/trunk/base_nwn_files/cachedmodels.2da
Normal file
33
nwn/nwnprc/DocGen/trunk/base_nwn_files/cachedmodels.2da
Normal file
@ -0,0 +1,33 @@
|
||||
2DA V2.0
|
||||
|
||||
Model
|
||||
0 grn_m_bone
|
||||
1 grn_m_giblet
|
||||
2 grn_m_rib
|
||||
3 grn_m_thigh
|
||||
4 grn_s_giblet
|
||||
5 red_l_bone
|
||||
6 red_l_giblet
|
||||
7 red_l_rib
|
||||
8 red_l_thigh
|
||||
9 red_m_bone
|
||||
10 red_m_giblet
|
||||
11 red_m_rib
|
||||
12 red_m_thigh
|
||||
13 red_m_torso
|
||||
14 red_s_bone
|
||||
15 red_s_giblet
|
||||
16 red_s_rib
|
||||
17 red_s_thigh
|
||||
18 wht_m_bone
|
||||
19 wht_m_head
|
||||
20 wht_m_pelves
|
||||
21 wht_s_bone
|
||||
22 vwp_m_chunk_grn
|
||||
23 vwp_m_chunk_red
|
||||
24 vwp_m_chunk_wht
|
||||
25 vwp_m_chunk_yel
|
||||
26 vwp_s_chunk_red
|
||||
27 vwp_s_chunk_grn
|
||||
28 vwp_s_chunk_yel
|
||||
29 vwp_l_chunk_red
|
@ -1,9 +1,9 @@
|
||||
2DA V2.0
|
||||
|
||||
Label FeedbackStrref ColorR ColorG ColorB
|
||||
0 Physical 5594 **** **** ****
|
||||
0 Physical 5594 255 102 0
|
||||
1 Magical 5593 204 119 255
|
||||
2 Acid 10458 0 102 0
|
||||
2 Acid 10458 0 255 0
|
||||
3 Cold 10459 153 255 255
|
||||
4 Divine 10460 255 255 0
|
||||
5 Electrical 10461 0 102 255
|
||||
|
@ -1,16 +1,16 @@
|
||||
2DA V2.0
|
||||
|
||||
Label CharsheetStrref DamageTypeGroup
|
||||
0 Bludgeoning 58345 0
|
||||
1 Piercing 58341 0
|
||||
2 Slashing 58344 0
|
||||
3 Magical 58302 1
|
||||
4 Acid 58303 2
|
||||
5 Cold 58304 3
|
||||
6 Divine 58305 4
|
||||
7 Electrical 58306 5
|
||||
8 Fire 58308 6
|
||||
9 Negative 58309 7
|
||||
10 Positive 58310 8
|
||||
11 Sonic 58311 9
|
||||
12 Base 58301 0
|
||||
Label CharsheetStrref DamageTypeGroup DamageRangedProjectile
|
||||
0 Bludgeoning 58345 0 0
|
||||
1 Piercing 58341 0 0
|
||||
2 Slashing 58344 0 0
|
||||
3 Magical 58302 1 0
|
||||
4 Acid 58303 2 1
|
||||
5 Cold 58304 3 2
|
||||
6 Divine 58305 4 0
|
||||
7 Electrical 58306 5 3
|
||||
8 Fire 58308 6 4
|
||||
9 Negative 58309 7 0
|
||||
10 Positive 58310 8 0
|
||||
11 Sonic 58311 9 5
|
||||
12 Base 58301 0 0
|
||||
|
@ -703,4 +703,3 @@
|
||||
699 ACTIVATE_ITEM_ONHITSPELLCAST **** 1 1 1 **** 0
|
||||
700 Summon_Baatezu **** 1 1 1 **** 0
|
||||
701 OnHitPlanarRift **** 1 1 1 **** 0
|
||||
702
|
@ -1090,13 +1090,13 @@
|
||||
1086 FEAT_PDK_INSPIRE_2 111724 111725 ife_x3_pdkinsp **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 811 **** 1 2 **** 1 **** **** **** **** **** **** **** **** **** FEAT_PDK_INSPIRE_2 4 **** **** **** **** **** 0 1
|
||||
1087 FEAT_MOUNTED_COMBAT 111728 111729 ife_x3_mcombat **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** 27 1 **** **** FEAT_MOUNTED_COMBAT 4 **** **** **** **** **** 0 1
|
||||
1088 FEAT_MOUNTED_ARCHERY 111730 111731 ife_x3_marchery **** **** **** **** **** **** **** **** 1087 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** 27 1 **** **** FEAT_MOUNTED_ARCHERY 4 **** **** **** **** **** 0 1
|
||||
1089 HORSE_MENU 111875 111876 ife_x3_horse **** **** **** **** **** **** **** **** **** **** 0 0 0 10 **** 812 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HORSE_MENU 6 **** 99 **** **** **** 0 0
|
||||
1090 HORSE_MOUNT 111877 111878 ife_x3_mount **** **** **** **** **** **** **** **** **** **** 0 0 0 10 **** 813 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HORSE_MOUNT 6 **** 99 **** **** **** 0 0
|
||||
1091 HORSE_DISMOUNT 111879 111880 ife_x3_dismount **** **** **** **** **** **** **** **** **** **** 0 0 0 10 **** 814 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HORSE_DISMOUNT 6 **** 99 **** **** **** 0 0
|
||||
1092 HORSE_PARTY_MOUNT 111883 111884 ife_x3_pmount **** **** **** **** **** **** **** **** **** **** 0 0 0 10 **** 815 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HORSE_PARTY_MOUNT 6 **** 99 **** **** **** 0 0
|
||||
1093 HORSE_PARTY_DISMOUNT 111885 111886 ife_x3_pdmount **** **** **** **** **** **** **** **** **** **** 0 0 0 10 **** 816 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HORSE_GATHER_MOUNTS 6 **** 99 **** **** **** 0 0
|
||||
1094 HORSE_ASSIGN_MOUNT 111887 111888 ife_x3_amount **** **** **** **** **** **** **** **** **** **** 0 0 0 10 **** 817 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HORSE_ASSIGN_MOUNT 6 **** 99 **** **** **** 0 0
|
||||
1095 PALADIN_SUMMON_MOUNT 111881 111882 ife_x3_whsummon **** **** **** **** **** **** **** **** **** **** 0 0 0 2 **** 818 **** 1 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_PALADIN_SUMMON_MOUNT 6 **** **** **** **** **** 0 1
|
||||
1089 HORSE_MENU 111875 111876 ife_x3_horse **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 812 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HORSE_MENU 6 **** 99 **** **** **** 0 0
|
||||
1090 HORSE_MOUNT 111877 111878 ife_x3_mount **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 813 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HORSE_MOUNT 6 **** 99 **** **** **** 0 0
|
||||
1091 HORSE_DISMOUNT 111879 111880 ife_x3_dismount **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 814 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HORSE_DISMOUNT 6 **** 99 **** **** **** 0 0
|
||||
1092 HORSE_PARTY_MOUNT 111883 111884 ife_x3_pmount **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 815 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HORSE_PARTY_MOUNT 6 **** 99 **** **** **** 0 0
|
||||
1093 HORSE_PARTY_DISMOUNT 111885 111886 ife_x3_pdmount **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 816 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HORSE_GATHER_MOUNTS 6 **** 99 **** **** **** 0 0
|
||||
1094 HORSE_ASSIGN_MOUNT 111887 111888 ife_x3_amount **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 817 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HORSE_ASSIGN_MOUNT 6 **** 99 **** **** **** 0 0
|
||||
1095 PALADIN_SUMMON_MOUNT 111881 111882 ife_x3_whsummon **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 818 **** 1 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_PALADIN_SUMMON_MOUNT 6 **** **** **** **** **** 0 1
|
||||
1096 DM_TOOL_01 111674 111935 ife_x3_dmtool01 **** **** **** **** **** **** **** **** **** **** 0 0 1 10 **** 820 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DM_TOOL_01 6 **** 99 **** **** **** 0 0
|
||||
1097 DM_TOOL_02 111675 111936 ife_x3_dmtool02 **** **** **** **** **** **** **** **** **** **** 0 0 1 10 **** 821 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DM_TOOL_02 6 **** 99 **** **** **** 0 0
|
||||
1098 DM_TOOL_03 111676 111937 ife_x3_dmtool03 **** **** **** **** **** **** **** **** **** **** 0 0 1 10 **** 822 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DM_TOOL_03 6 **** 99 **** **** **** 0 0
|
||||
|
@ -2724,7 +2724,7 @@
|
||||
2720 Gather_Shaman **** 1 1 1 1 0
|
||||
2721 BLOOD_OF_THE_WARLORD **** 1 1 1 4 0
|
||||
2722 Dirge_Sorrow **** 1 1 1 1 0
|
||||
2723 InlindlSchool **** 1 1 1 2 0
|
||||
2723 InlindlSchool **** 1 1 1 **** 0
|
||||
2724 SpinningHalberd **** 1 1 1 **** 0
|
||||
2725 Shou_Flurry_Light **** 1 1 1 0 0
|
||||
2726 Shou_Flurry_All **** 1 1 1 0 0
|
||||
|
@ -2811,8 +2811,8 @@
|
||||
2807 ImprovedTrip 16834580 16834581 ife_X1ImpExp **** **** **** 13 **** **** **** **** 389 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ALERTNESS 5 **** **** **** **** **** 0 1
|
||||
2808 FEAT_ACROBATIC_CHARGE 16822731 16822735 ife_x2epicdodge **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1750 **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ACROBATIC_CHARGE 4 **** **** **** **** **** 0 1
|
||||
2809 CurlingWaveStrike 16834582 16834583 ife_X2ImKiStrk5 **** **** 13 **** **** **** **** **** 2807 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ALERTNESS 5 **** **** **** **** **** 0 1
|
||||
2810 Bullrush 16834586 16834587 ife_X1Bull **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3476 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2811 Overrun 16834588 16834589 ife_X1DivMig **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3477 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2810 Bullrush 16834586 16834587 ife_X1Bull **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 3476 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2811 Overrun 16834588 16834589 ife_X1DivMig **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 3477 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2812 FEAT_ELABORATE_PARRY 16822736 16822737 ife_impparry **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ELABORATE_PARRY 4 **** **** **** **** **** 0 1
|
||||
2813 FEAT_EPIC_DUELIST 16822738 16822739 ife_epduel **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_DUELIST 4 **** **** **** **** **** 0 1
|
||||
2814 FEAT_BLAST_INFIDEL 16822748 16822749 ife_x2grsmt1 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLAST_INFIDEL 4 **** **** **** **** **** 0 1
|
||||
@ -2823,8 +2823,8 @@
|
||||
2819 FEAT_SPELLPOWER_6 16822756 16822759 ife_X1GFSPen **** **** **** **** **** **** **** **** 2818 **** 0 0 0 **** **** **** 2820 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SPELL_POWER_6 4 **** **** **** **** **** 0 1
|
||||
2820 FEAT_SPELLPOWER_8 16822757 16822759 ife_X1GFSPen **** **** **** **** **** **** **** **** 2819 **** 0 0 0 **** **** **** 2821 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SPELL_POWER_8 4 **** **** **** **** **** 0 1
|
||||
2821 FEAT_SPELLPOWER_10 16822758 16822759 ife_X1GFSPen **** **** **** **** **** **** **** **** 2820 **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SPELL_POWER_10 4 **** **** **** **** **** 0 1
|
||||
2822 Trip 16834590 16834591 ife_X1ImpExp **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3478 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2823 Charge 16834592 16834593 ife_X2ImKiStrk5 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3479 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2822 Trip 16834590 16834591 ife_X1ImpExp **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 3478 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2823 Charge 16834592 16834593 ife_X2ImKiStrk5 **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 3479 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
2824 UnsettlingEnchantment 16827143 16827144 ife_X2EpicRepu **** **** **** **** **** **** **** **** 168 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ALERTNESS 5 **** **** **** **** **** 0 1
|
||||
2825 SLA_I 16822760 16822761 ife_heiro_sla1 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2036 **** 1 5 **** **** **** **** **** **** **** **** **** **** **** FEAT_SLA_I 4 **** **** **** **** **** 0 0
|
||||
2826 SLA_II 16822760 16822761 ife_heiro_sla2 **** **** **** **** **** **** **** **** 2825 **** 0 0 0 **** **** 2037 **** 1 5 **** **** **** **** **** **** **** **** **** **** **** FEAT_SLA_II 4 **** **** **** **** **** 0 0
|
||||
@ -3414,9 +3414,9 @@
|
||||
3410 OcAdept_FlSto 16789515 16789525 ife_petray **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1545 **** 1 2 **** 0 **** **** **** **** **** **** **** **** **** FEAT_PETRAY 6 **** **** **** **** **** 0 1
|
||||
3411 OcAdept_Dis 16789516 16789526 ife_disray **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1546 **** 1 2 **** 0 **** **** **** **** **** **** **** **** **** FEAT_DISRAY 6 **** **** **** **** **** 0 1
|
||||
3412 OcAdept_Death 16789517 16789527 ife_deathray **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1547 **** 1 2 **** 0 **** **** **** **** **** **** **** **** **** FEAT_DEATHRAY 6 **** **** **** **** **** 0 1
|
||||
3413 ChargeBullrush 16834594 16834595 ife_X2Epfighter **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3480 **** 0.5 -1 **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
3414 GrappleBegin 16834584 16834585 ife_X2ImKiStrk4 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3475 **** 0.5 -1 **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
3415 CombatMove_RadialMaster3 16833148 16832298 ife_X2Epmonk **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3496 **** 0.5 -1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 **** **** **** **** **** 0 0
|
||||
3413 ChargeBullrush 16834594 16834595 ife_X2Epfighter **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3480 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
3414 GrappleBegin 16834584 16834585 ife_X2ImKiStrk4 **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 3475 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
3415 CombatMove_RadialMaster3 16833148 16832298 ife_X2Epmonk **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3496 **** 0.5 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 **** **** **** **** **** 0 0
|
||||
3416 FEAT_EPIC_SAMURAI 16789545 16789546 ife_X2Epfighter **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_SAMURAI 6 **** **** **** **** **** 1 1
|
||||
3417 Samur_AncestralDaisho 16789547 16789548 ife_wepspec_Kat **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1548 **** 0 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_ANCESTRAL_DAISHO 6 **** **** **** **** **** 0 1
|
||||
3418 Warpr_Rally 16789555 16789556 is_fear **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1549 **** 0 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_RALLY 6 **** **** **** **** **** 0 1
|
||||
@ -5285,7 +5285,7 @@
|
||||
5281 SpiderfriendMagic 16834999 16835000 ife_web **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
|
||||
5282 ProfaneAgony 16834997 16834998 ife_prfnlflch **** **** **** **** **** **** **** **** 294 **** 0 0 1 **** **** 3792 **** 0.5 -1 **** **** 310 313 **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5283 DivineIntercession 16834995 16834996 ife_telep_manag **** **** **** **** **** **** **** **** 294 **** 0 0 1 **** **** 3791 **** 0.5 -1 **** **** 324 323 **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5284 InlindlSchool 16834993 16834994 ife_X2DCrtWhip **** **** **** 13 **** **** **** **** 389 42 **** **** 1 **** **** 2723 **** **** -1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_INLINDL_SCHOOL 2 **** **** **** **** **** 0 0
|
||||
5284 InlindlSchool 16834993 16834994 ife_X2DCrtWhip **** **** **** 13 **** **** **** **** 389 42 **** **** 1 22 1 2723 **** 0.5 **** **** 0 **** **** **** **** **** **** **** **** **** FEAT_INLINDL_SCHOOL 2 1 **** **** **** **** 0 1
|
||||
5285 VaeSchool 16834991 16834992 ife_X2WpCh 7 **** **** **** **** **** **** **** 993 **** **** **** 1 **** **** **** **** **** **** **** **** 2807 4079 **** **** **** **** **** **** **** FEAT_SNAP_KICK **** **** **** **** **** **** **** 0
|
||||
5286 ThreeMountains 16834989 16834990 ife_X2DiviWrth **** 13 **** **** **** **** **** **** 2806 6 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SNAP_KICK **** **** **** **** **** **** **** 0
|
||||
5287 SpinningHalberd 16834987 16834988 ife_X2CritDHalb **** **** **** **** **** **** **** **** 112 **** 0 0 1 **** **** 2724 **** 0.5 -1 **** **** 41 374 **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
@ -5371,7 +5371,7 @@
|
||||
5367 VremyonniTraining 16789650 16789651 ife_sk_mast **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 **** **** **** **** **** 0 1
|
||||
5368 CultistShatteredPeak_SmiteMage 16789658 16789659 ife_X1ADAbj **** **** **** **** **** **** **** **** **** **** 0 0 **** **** **** 2339 **** 0.5 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5369 Forsaker_FastHealing 16824830 16847615 ife_divineheal **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3913 **** 1 1 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
|
||||
5370 AwesomeBlow 16833142 16833143 ife_wepspec_Bax **** 25 **** **** **** **** **** **** 2806 28 0 0 1 **** **** 2340 **** 0.5 -1 **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5370 AwesomeBlow 16833142 16833143 ife_wepspec_Bax **** 25 **** **** **** **** **** **** 2806 28 0 0 1 22 1 2340 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5371 OversizedTWF 16790149 16790150 ife_twoweap **** 13 **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 0.5 **** **** **** 41 374 **** **** **** **** **** **** **** FEAT_OTWF 6 1 **** **** **** **** 0 1
|
||||
5372 FrostFolk_IceBlast 16790167 16790168 is_ConeCold **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3802 **** 1 -1 **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
|
||||
5373 Uldra_RayFrost 894 6238 is_RayFrost **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3804 **** 1 3 **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
|
||||
@ -24002,7 +24002,7 @@
|
||||
23998 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
23999 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
24000 SkillFocusAlchemy 16847243 424 ife_X2BrewPotion **** **** **** **** **** **** **** **** **** **** **** 1 1 4 **** **** **** **** **** 4 **** **** **** **** **** **** **** **** **** **** FEAT_SKILL_FOCUS_ALCHEMY **** 0 **** **** **** **** **** 1
|
||||
24001 EpicSkillFocusAlchemy 16847245 4063 ife_X2BrewPotion **** **** **** **** **** **** **** **** **** **** **** 1 1 15 **** **** **** **** **** 16 **** **** **** **** **** **** 34 20 **** **** FEAT_EPIC_SKILL_FOCUS_ALCHEMY **** 0 **** **** **** **** 1 1
|
||||
24001 EpicSkillFocusAlchemy 16847245 4063 ife_X2BrewPotion **** **** **** **** **** **** **** **** **** **** **** 1 1 15 **** **** **** **** **** 15 **** **** **** **** **** **** 34 20 **** **** FEAT_EPIC_SKILL_FOCUS_ALCHEMY **** 0 **** **** **** **** 1 1
|
||||
24002 MagicalArtisanMagicArmsAndArmor 16847247 16847257 ife_crftarmarmor **** **** **** **** **** **** **** **** 2926 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MAGICAL_ARTISAN_CRAFT_MAGIC_ARMS **** 0 **** **** **** **** **** 1
|
||||
24003 MagicalArtisanCraftRod 16847248 16847257 ife_craft_rod **** **** **** **** **** **** **** **** 2927 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MAGICAL_ARTISAN_CRAFT_ROD **** 0 **** **** **** **** **** 1
|
||||
24004 MagicalArtisanCraftStaff 16847249 16847257 ife_craft_staff **** **** **** **** **** **** **** **** 2928 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MAGICAL_ARTISAN_CRAFT_STAFF **** 0 **** **** **** **** **** 1
|
||||
|
@ -31,7 +31,7 @@
|
||||
27 Shadowdancer 2944 **** **** 0
|
||||
28 Harper 2956 S Arc 0
|
||||
29 Arcane_Archer 9003 **** **** 0
|
||||
30 Assassin 9007 S Arc 0
|
||||
30 Assassin 9007 P Arc 0
|
||||
31 Blackguard 9011 P Div 0
|
||||
32 Champion_Torm 9015 **** **** 0
|
||||
33 WeaponMaster 9019 **** **** 0
|
||||
|
@ -2542,7 +2542,7 @@
|
||||
2538 DEMONFLESH 16829512 is_demonflesh T P vs 0x3a 0x09 sp_demonflesh **** **** **** **** **** **** 1 1500 head VCO_MEHEDEVIL01 **** **** SCO_LGSPREVIL01 VS_CHANT_CONJ_LM VS_CHANT_CONJ_LF self 1000 **** **** VCA_UPHEXEVIL01 SDR_PARALYZED 0 **** **** **** **** **** **** 1 **** **** **** **** **** 10 **** 1 16829513 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** ****
|
||||
2539 DESPOIL 16829514 is_despoil T P vs 0x38 0x09 sp_despoil **** 9 **** **** **** **** 9 1500 head VCO_MEHEDNATR01 **** VCO_GRNDLEAF SCO_LGSPREVIL01 VS_CHANT_ENCH_HM VS_CHANT_ENCH_HF Area 1000 **** **** VCA_UPHEXEVIL01 SAR_CONEDISEA 0 **** **** **** **** **** **** 1 **** **** **** **** **** 11 **** 1 16829515 1 0 **** 1 **** **** **** **** Sphere 518.16 **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2540 DEVILS_EGO 16829516 is_devils_ego T P vs 0x3b 0x09 sp_devils_ego **** **** **** **** **** **** 3 1500 head VCO_MEHEDEVIL01 **** **** SCO_MEHEDEVIL01 VS_CHANT_ENCH_HM VS_CHANT_ENCH_HF self 1000 **** **** **** c_devil_hit2 0 **** **** **** **** **** **** **** **** **** **** **** **** 10 **** 1 16829517 1 0 **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2541 DEVILS_EYE 16829518 is_devils_eye D P vs 0x38 0x09 sp_devils_eye **** 3 **** **** **** 3 3 1500 head VCO_MEHEDEVIL01 **** **** SCO_MEGRDEVIL01 VS_CHANT_EVOC_HM VS_CHANT_EVOC_HF self 1000 **** **** **** c_devil_hit1 0 **** **** **** **** **** **** **** **** **** **** **** **** 10 **** 1 16829519 1 0 **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2 **** **** **** **** **** **** ****
|
||||
2541 DEVILS_EYE 16829518 is_devils_eye D P vs 0x3a 0x09 sp_devils_eye **** 3 **** **** **** 3 3 1500 head VCO_MEHEDEVIL01 **** **** SCO_MEGRDEVIL01 VS_CHANT_EVOC_HM VS_CHANT_EVOC_HF self 1000 **** **** **** c_devil_hit1 0 **** **** **** **** **** **** **** **** **** **** **** **** 10 **** 1 16829519 1 0 **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2 **** **** **** **** **** **** ****
|
||||
2542 DEVILS_TAIL 16829520 **** T **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 16829521 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2543 DREAD_WORD 16829522 is_dread_word V S v 0x1d 0x0a sp_dread_word **** **** **** **** **** 3 3 1500 hand **** VCO_MEHANEVIL02 **** SCO_MEHANEVIL02 VS_CHANT_EVOC_LM VS_CHANT_EVOC_LF out 1000 **** VCA_OUTNEG **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** 2 **** 1 16829523 1 0 **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2544 DRUG_RESISTANCE 16829524 is_drug_resist E T v 0x18 0x0b sp_drug_resist **** 1 **** **** **** 1 1 1500 hand **** VCO_MEHANHEAL02 **** SCO_MEHANMIND01 VS_CHANT_ENCH_LM VS_CHANT_ENCH_LF touch 1000 **** VCA_OUTHOLY01 **** SDR_SANCTUARY 0 **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 1 16829525 1 0 **** 0 **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
@ -2724,8 +2724,8 @@
|
||||
2720 Gather_Shaman 16824333 ife_x2wfspr V P **** 0x00 0x04 ow_sum_sham **** **** **** **** **** **** 1 0 head **** **** **** **** **** **** self 0 **** **** **** **** 0 **** **** **** **** **** **** 1 **** **** **** **** **** **** 2715 3 **** 0 0 **** 0 365564420 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2721 BLOOD_OF_THE_WARLORD 16824316 ife_x2mightrage V P 0 0x00 0x09 ft_bloodwarlord **** **** **** **** **** **** 4 1 head **** **** **** **** **** **** out 500 **** **** **** **** 0 **** **** **** **** **** **** 1 **** **** **** **** **** 16 **** 3 **** 0 0 53219 0 4608 **** **** 0 sphere 10 **** 20 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2722 Dirge_Sorrow 16835023 IR_USE V P v **** 0x01 prc_ft_hntmldy **** **** **** **** **** **** 1 500 head **** **** **** **** **** **** out 500 **** **** **** **** 0 **** **** **** **** **** Cold 1 **** **** **** **** **** 8 **** 3 6075 0 0 53224 0 257 **** **** 0 Sphere 9.14 **** 18 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2723 InlindlSchool 16834993 is_Invisib I P s 0x00 0x01 prc_ft_inlindl **** **** **** **** **** **** 2 0 **** **** **** **** **** **** **** self 1000 **** **** **** sdr_invisible 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 **** 3 **** 0 0 **** 0 5284 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2724 SpinningHalberd 16834987 is_SlayLive N T 0 **** 0x02 prc_ft_spnhlbrd **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** attack 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 1 **** 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2723 InlindlSchool 16834993 is_Invisib I T s 0x00 0x32 prc_ft_inlindl **** **** **** **** **** **** **** **** hand **** **** **** **** **** **** attack 1000 **** **** **** sdr_invisible 0 **** **** **** **** **** **** 0 **** **** **** **** **** 22 **** 3 16834994 0 0 16824540 1 5284 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2724 SpinningHalberd 16834987 is_SlayLive N T s 0x00 0x32 prc_ft_spnhlbrd **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** attack 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 22 **** 3 **** 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2725 Shou_Flurry_Light **** **** V L **** 0x00 0x04 prc_shou_flrylgt **** **** **** **** **** **** 0 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** 3 **** 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2726 Shou_Flurry_All **** **** V L **** 0x00 0x04 prc_shou_flryall **** **** **** **** **** **** 0 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** 3 **** 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
2727 FEAT_JUMP 16826011 ife_jump V L **** 0x00 0x04 skill_jump **** **** **** **** **** **** 0 0 **** **** **** **** **** **** **** **** 0 **** **** **** **** 0 **** **** **** **** **** **** 1 **** **** **** **** **** **** **** 3 **** 0 0 **** 0 2884 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
|
@ -242,7 +242,7 @@ void SetupLookupStage(object oMod, int n)
|
||||
case 11: SetLkupStage(n, oMod, CLASS_TYPE_DRAGON_SHAMAN, "cls_inv_drgshm"); break;
|
||||
case 12: SetLkupStage(n, oMod, CLASS_TYPE_WARLOCK, "cls_inv_warlok"); break;
|
||||
case 13: SetLkupStage(n, oMod, CLASS_TYPE_ARCHIVIST, "cls_spell_archv"); break;
|
||||
case 14: SetLkupStage(n, oMod, CLASS_TYPE_ASSASSIN, "cls_spell_asasin"); break;
|
||||
//case 14: SetLkupStage(n, oMod, CLASS_TYPE_ASSASSIN, "cls_spell_asasin"); break;
|
||||
case 15: SetLkupStage(n, oMod, CLASS_TYPE_BARD, "cls_spell_bard"); break;
|
||||
case 16: SetLkupStage(n, oMod, CLASS_TYPE_BEGUILER, "cls_spell_beguil"); break;
|
||||
case 17: SetLkupStage(n, oMod, CLASS_TYPE_DREAD_NECROMANCER, "cls_spell_dnecro"); break;
|
||||
@ -528,7 +528,7 @@ int SpellToSpellbookID(int nSpell)
|
||||
int nOutSpellID = GetLocalInt(oWP, /*"PRC_GetRowFromSpellID_" + */IntToString(nSpell));
|
||||
if(nOutSpellID == 0)
|
||||
nOutSpellID = -1;
|
||||
//if(DEBUG) DoDebug("SpellToSpellbookID(" + IntToString(nSpell) + ", " + sFile + ") = " + IntToString(nOutSpellID));
|
||||
if(DEBUG) DoDebug("inc_lookup >> SpellToSpellbookID: (nSpell: " + IntToString(nSpell) + ") = nOutSpellID: " + IntToString(nOutSpellID));
|
||||
return nOutSpellID;
|
||||
}
|
||||
|
||||
|
@ -559,7 +559,7 @@ int bKnowsAllClassSpells(int nClass)
|
||||
{
|
||||
//case CLASS_TYPE_WIZARD:
|
||||
case CLASS_TYPE_ARCHIVIST:
|
||||
case CLASS_TYPE_ASSASSIN:
|
||||
//case CLASS_TYPE_ASSASSIN:
|
||||
case CLASS_TYPE_BARD:
|
||||
case CLASS_TYPE_CELEBRANT_SHARESS:
|
||||
case CLASS_TYPE_CULTIST_SHATTERED_PEAK:
|
||||
@ -850,7 +850,7 @@ void SetupSpells(object oPC, int nClass)
|
||||
int nAbility = GetAbilityScoreForClass(nClass, oPC);
|
||||
int nSpellbookType = GetSpellbookTypeForClass(nClass);
|
||||
|
||||
if(DEBUG) DoDebug("SetupSpells\n"
|
||||
if(DEBUG) DoDebug("SetupSpells()\n"
|
||||
+ "nClass = " + IntToString(nClass) + "\n"
|
||||
+ "nSpellslotLevel = " + IntToString(nLevel) + "\n"
|
||||
+ "nAbility = " + IntToString(nAbility) + "\n"
|
||||
@ -1178,7 +1178,7 @@ void CastSpontaneousSpell(int nClass, int bInstantSpell = FALSE)
|
||||
else if(GetLocalInt(OBJECT_SELF, "PRC_metamagic_state") == 1)
|
||||
SetLocalInt(OBJECT_SELF, "MetamagicFeatAdjust", 0);
|
||||
}
|
||||
|
||||
if (DEBUG) DoDebug("CastSpontaneousSpell(): nSpellLevel is: "+IntToString(nSpellLevel)+".");
|
||||
CheckSpontSlots(nClass, nSpellID, nSpellLevel);
|
||||
if(GetLocalInt(OBJECT_SELF, "NSB_Cast"))
|
||||
ActionDoCommand(CheckSpontSlots(nClass, nSpellID, nSpellLevel, TRUE));
|
||||
@ -1331,6 +1331,8 @@ void NewSpellbookSpell(int nClass, int nSpellbookType, int nMetamagic = METAMAGI
|
||||
string sFile = GetFileForClass(nClass);
|
||||
int nSpellLevel = StringToInt(Get2DACache(sFile, "Level", nSpellbookID));
|
||||
|
||||
if (DEBUG) DoDebug("inc_newspellbook >> NewSpellbookSpell(): nSpellbookType is: "+IntToString(nSpellbookType)+".");
|
||||
|
||||
// Make sure the caster has uses of this spell remaining
|
||||
// 2009-9-20: Add metamagic feat abilities. -N-S
|
||||
if(nSpellbookType == SPELLBOOK_TYPE_PREPARED)
|
||||
@ -1371,13 +1373,14 @@ void NewSpellbookSpell(int nClass, int nSpellbookType, int nMetamagic = METAMAGI
|
||||
else if(nSpellLevel > 9)//now test the spell level
|
||||
{
|
||||
nMetamagic = METAMAGIC_NONE;
|
||||
ActionDoCommand(SendMessageToPC(oPC, "Modified spell level is to high! Casting spell without metamagic"));
|
||||
ActionDoCommand(SendMessageToPC(oPC, "Modified spell level is too high! Casting spell without metamagic"));
|
||||
nSpellLevel = nSpellSlotLevel;
|
||||
}
|
||||
else if(GetLocalInt(oPC, "PRC_metamagic_state") == 1)
|
||||
SetLocalInt(oPC, "MetamagicFeatAdjust", 0);
|
||||
}
|
||||
|
||||
if (DEBUG) DoDebug("inc_newspellbook >> NewSpellbookSpell(): nSpellLevel is: "+IntToString(nSpellLevel)+".");
|
||||
CheckSpontSlots(nClass, nSpellID, nSpellLevel);
|
||||
if(GetLocalInt(oPC, "NSB_Cast"))
|
||||
ActionDoCommand(CheckSpontSlots(nClass, nSpellID, nSpellLevel, TRUE));
|
||||
@ -1460,7 +1463,7 @@ void CheckPrepSlots(int nClass, int nSpellID, int nSpellbookID, int bIsAction =
|
||||
{
|
||||
DeleteLocalInt(OBJECT_SELF, "NSB_Cast");
|
||||
int nCount = persistant_array_get_int(OBJECT_SELF, "NewSpellbookMem_" + IntToString(nClass), nSpellbookID);
|
||||
if(DEBUG) DoDebug("NewSpellbookSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(nSpellbookID) + "] = " + IntToString(nCount));
|
||||
if(DEBUG) DoDebug("NewSpellbookSpell >> CheckPrepSlots: NewSpellbookMem_" + IntToString(nClass) + "[SpellbookID: " + IntToString(nSpellbookID) + "] = " + IntToString(nCount));
|
||||
if(nCount < 1)
|
||||
{
|
||||
string sSpellName = GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSpellID)));
|
||||
@ -1486,7 +1489,7 @@ void CheckSpontSlots(int nClass, int nSpellID, int nSpellSlotLevel, int bIsActio
|
||||
{
|
||||
DeleteLocalInt(OBJECT_SELF, "NSB_Cast");
|
||||
int nCount = persistant_array_get_int(OBJECT_SELF, "NewSpellbookMem_" + IntToString(nClass), nSpellSlotLevel);
|
||||
if(DEBUG) DoDebug("NewSpellbookSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(nSpellSlotLevel) + "] = " + IntToString(nCount));
|
||||
if(DEBUG) DoDebug("NewSpellbookSpell >> CheckSpontSlots: NewSpellbookMem_" + IntToString(nClass) + "[SpellSlotLevel: " + IntToString(nSpellSlotLevel) + "] = " + IntToString(nCount));
|
||||
if(nCount < 1)
|
||||
{
|
||||
// "You have no castings of spells of level " + IntToString(nSpellLevel) + " remaining"
|
||||
|
@ -513,6 +513,8 @@ int PRCGetSpellSaveDC(int nSpellID = -1, int nSchool = -1, object oCaster = OBJE
|
||||
|
||||
if(nClass == CLASS_TYPE_BARD)
|
||||
nDC += StringToInt(Get2DACache("Spells", "Bard", nSpellID));
|
||||
else if(nClass == CLASS_TYPE_ASSASSIN)
|
||||
nDC += StringToInt(Get2DACache("Spells", "Assassin", nSpellID));
|
||||
else if(nClass == CLASS_TYPE_CLERIC || nClass == CLASS_TYPE_UR_PRIEST || nClass == CLASS_TYPE_OCULAR)
|
||||
nDC += StringToInt(Get2DACache("Spells", "Cleric", nSpellID));
|
||||
else if(nClass == CLASS_TYPE_DRUID)
|
||||
|
@ -3933,6 +3933,8 @@ const int FEAT_OPPORTUNISTIC_PIETY_HEAL = 5358;
|
||||
const int FEAT_OPPORTUNISTIC_PIETY_TURN = 5359;
|
||||
|
||||
// Combat Maneuver Feats
|
||||
const int FEAT_CM_CHARGE = 2823;
|
||||
const int FEAT_CM_GRAPPLE = 3414;
|
||||
const int FEAT_CURLING_WAVE_STRIKE = 2809;
|
||||
const int FEAT_SIDESTEP_CHARGE = 3505;
|
||||
const int FEAT_POWERFUL_CHARGE = 3506;
|
||||
|
@ -1148,8 +1148,8 @@ int GetArcanePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID)
|
||||
if(GetHasFeat(FEAT_DIABOLIST_SPELLCASTING_ASSASSIN, oCaster))
|
||||
nArcane += GetLevelByClass(CLASS_TYPE_DIABOLIST, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_DHEART_SPELLCASTING_ASSASSIN, oCaster))
|
||||
nArcane += GetLevelByClass(CLASS_TYPE_DRAGONHEART_MAGE, oCaster);
|
||||
//if(GetHasFeat(FEAT_DHEART_SPELLCASTING_ASSASSIN, oCaster))
|
||||
//nArcane += GetLevelByClass(CLASS_TYPE_DRAGONHEART_MAGE, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_EKNIGHT_SPELLCASTING_ASSASSIN, oCaster))
|
||||
nArcane += GetLevelByClass(CLASS_TYPE_ELDRITCH_KNIGHT, oCaster);
|
||||
|
@ -605,7 +605,7 @@ int PRCGetHasSpell(int nRealSpellID, object oCreature = OBJECT_SELF)
|
||||
if(nSpellbookType == SPELLBOOK_TYPE_PREPARED)
|
||||
{
|
||||
nCount = persistant_array_get_int(oCreature, "NewSpellbookMem_" + IntToString(nClass), j);
|
||||
if(DEBUG) DoDebug("PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount));
|
||||
if(DEBUG) DoDebug("prc_inc_core >> PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount));
|
||||
if(nCount > 0)
|
||||
{
|
||||
nUses += nCount;
|
||||
@ -615,7 +615,7 @@ int PRCGetHasSpell(int nRealSpellID, object oCreature = OBJECT_SELF)
|
||||
{
|
||||
nSpellLevel = StringToInt(Get2DACache(sFile, "Level", j));
|
||||
nCount = persistant_array_get_int(oCreature, "NewSpellbookMem_" + IntToString(nClass), nSpellLevel);
|
||||
if(DEBUG) DoDebug("PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount));
|
||||
if(DEBUG) DoDebug("prc_inc_core >> PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount));
|
||||
if(nCount > 0)
|
||||
{
|
||||
nUses += nCount;
|
||||
|
@ -795,7 +795,7 @@ int GetWeaponSize(object oWeapon)
|
||||
case BASE_ITEM_GREATAXE:
|
||||
case BASE_ITEM_HEAVYFLAIL:
|
||||
case BASE_ITEM_QUARTERSTAFF:
|
||||
case BASE_ITEM_MAGICSTAFF:
|
||||
//case BASE_ITEM_MAGICSTAFF:
|
||||
case BASE_ITEM_SCYTHE:
|
||||
case BASE_ITEM_SHORTSPEAR:
|
||||
case BASE_ITEM_ELVEN_COURTBLADE:
|
||||
@ -832,7 +832,7 @@ int PRCLargeWeaponCheck(int iBaseType, int nSize)
|
||||
case BASE_ITEM_GREATAXE:
|
||||
case BASE_ITEM_HEAVYFLAIL:
|
||||
case BASE_ITEM_QUARTERSTAFF:
|
||||
case BASE_ITEM_MAGICSTAFF:
|
||||
//case BASE_ITEM_MAGICSTAFF:
|
||||
case BASE_ITEM_SCYTHE:
|
||||
case BASE_ITEM_SHORTSPEAR:
|
||||
case BASE_ITEM_ELVEN_COURTBLADE:
|
||||
|
@ -108,7 +108,7 @@ void SetupCharacterData(object oPC)
|
||||
case CLASS_TYPE_ALIENIST: sScript = "prc_alienist"; break;
|
||||
case CLASS_TYPE_ARCANE_DUELIST: sScript = "prc_arcduel"; break;
|
||||
case CLASS_TYPE_ARCHIVIST: sScript = "prc_archivist"; iData |= 0x01; break;
|
||||
case CLASS_TYPE_ASSASSIN: iData |= 0x03; break;
|
||||
case CLASS_TYPE_ASSASSIN: break;
|
||||
case CLASS_TYPE_BAELNORN: sScript = "prc_baelnorn"; break;
|
||||
case CLASS_TYPE_BARD: iData |= 0x07; break;
|
||||
case CLASS_TYPE_BATTLESMITH: sScript = "prc_battlesmith"; break;
|
||||
@ -121,7 +121,7 @@ void SetupCharacterData(object oPC)
|
||||
case CLASS_TYPE_BLIGHTLORD: sScript = "prc_blightlord"; break;
|
||||
case CLASS_TYPE_BLOODCLAW_MASTER: sScript = "tob_bloodclaw"; break;
|
||||
case CLASS_TYPE_BONDED_SUMMONNER: sScript = "prc_bondedsumm"; break;
|
||||
case CLASS_TYPE_CELEBRANT_SHARESS: iData |= 0x03; break;
|
||||
case CLASS_TYPE_CELEBRANT_SHARESS: iData |= 0x07; break;
|
||||
case CLASS_TYPE_CHILD_OF_NIGHT: sScript = "shd_childnight"; break;
|
||||
case CLASS_TYPE_COC: sScript = "prc_coc"; break;
|
||||
case CLASS_TYPE_COMBAT_MEDIC: sScript = "prc_cbtmed"; break;
|
||||
|
@ -20,6 +20,9 @@
|
||||
/* Function prototypes */
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
//:: Calculates total Shield AC bonuses from all sources
|
||||
int GetTotalShieldACBonus(object oCreature);
|
||||
|
||||
//:: Handles psuedo-Foritifcation
|
||||
void DoFortification(object oPC = OBJECT_SELF, int nFortification = 25);
|
||||
|
||||
@ -2223,6 +2226,78 @@ int GetControlledCelestialTotalHD(object oPC = OBJECT_SELF)
|
||||
return nTotalHD;
|
||||
}
|
||||
|
||||
//:: Calculates total Shield AC bonuses from all sources
|
||||
int GetTotalShieldACBonus(object oCreature)
|
||||
{
|
||||
int nShieldBonus = 0;
|
||||
object oItem;
|
||||
|
||||
// Check left hand for shield
|
||||
oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oCreature);
|
||||
if (GetIsObjectValid(oItem))
|
||||
{
|
||||
int nBaseItem = GetBaseItemType(oItem);
|
||||
if (nBaseItem == BASE_ITEM_SMALLSHIELD ||
|
||||
nBaseItem == BASE_ITEM_LARGESHIELD ||
|
||||
nBaseItem == BASE_ITEM_TOWERSHIELD)
|
||||
{
|
||||
nShieldBonus += GetItemACValue(oItem);
|
||||
if(DEBUG) DoDebug("prc_inc_spells >> GetTotalShieldACBonus: Found Shield AC, bonus = " + IntToString(nShieldBonus)+".");
|
||||
}
|
||||
}
|
||||
|
||||
// Check creature weapon slots for shield AC bonus
|
||||
oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oCreature);
|
||||
if (GetIsObjectValid(oItem))
|
||||
nShieldBonus += GetItemACValue(oItem);
|
||||
|
||||
oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oCreature);
|
||||
if (GetIsObjectValid(oItem))
|
||||
nShieldBonus += GetItemACValue(oItem);
|
||||
|
||||
oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oCreature);
|
||||
if (GetIsObjectValid(oItem))
|
||||
nShieldBonus += GetItemACValue(oItem);
|
||||
|
||||
// Add shield AC bonuses from magical effects
|
||||
effect eEffect = GetFirstEffect(oCreature);
|
||||
while (GetIsEffectValid(eEffect))
|
||||
{
|
||||
int nACType = GetEffectInteger(eEffect, 0);
|
||||
int nACAmount = GetEffectInteger(eEffect, 1);
|
||||
|
||||
if(GetEffectType(eEffect) == EFFECT_TYPE_AC_INCREASE && nACType == AC_SHIELD_ENCHANTMENT_BONUS)
|
||||
{
|
||||
if(DEBUG) DoDebug("prc_inc_spells >> GetTotalShieldACBonus: Found Shield AC effect, bonus = " + IntToString(nACAmount)+".");
|
||||
nShieldBonus += nACAmount;
|
||||
}
|
||||
|
||||
eEffect = GetNextEffect(oCreature);
|
||||
}
|
||||
return nShieldBonus;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Add shield AC bonuses from magical effects
|
||||
/* effect eEffect = GetFirstEffect(oCreature);
|
||||
while (GetIsEffectValid(eEffect))
|
||||
{
|
||||
if (GetEffectType(eEffect) == EFFECT_TYPE_AC_INCREASE &&
|
||||
GetEffectInteger(eEffect, 1) == AC_SHIELD_ENCHANTMENT_BONUS)
|
||||
{
|
||||
int nMod = GetEffectInteger(eEffect, 0);
|
||||
int nType = GetEffectInteger(eEffect, 1);
|
||||
nShieldBonus += GetEffectInteger(eEffect, 0);
|
||||
string s = "Found AC effect: bonus = " + IntToString(nMod) + ", type = " + IntToString(nType);
|
||||
SendMessageToPC(GetFirstPC(), s);
|
||||
}
|
||||
eEffect = GetNextEffect(oCreature);
|
||||
}
|
||||
|
||||
return nShieldBonus;
|
||||
}*/
|
||||
//
|
||||
//:: Handles psuedo-Foritifcation
|
||||
void DoFortification(object oPC = OBJECT_SELF, int nFortification = 25)
|
||||
{
|
||||
@ -2275,7 +2350,7 @@ void DoFortification(object oPC = OBJECT_SELF, int nFortification = 25)
|
||||
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_BACKSTAB));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
// wrapper for DecrementRemainingSpellUses, works for newspellbook 'fake' spells too
|
||||
// should also find and decrement metamagics for newspellbooks
|
||||
|
@ -387,8 +387,7 @@ int IsClassAllowedToUseNUISpellbook(object oPlayer, int nClass)
|
||||
return TRUE;
|
||||
|
||||
// Arcane Spont
|
||||
if (nClass == CLASS_TYPE_ASSASSIN
|
||||
|| nClass == CLASS_TYPE_BEGUILER
|
||||
if (nClass == CLASS_TYPE_BEGUILER
|
||||
|| nClass == CLASS_TYPE_CELEBRANT_SHARESS
|
||||
|| nClass == CLASS_TYPE_DREAD_NECROMANCER
|
||||
|| nClass == CLASS_TYPE_DUSKBLADE
|
||||
@ -506,8 +505,7 @@ int CanClassUseMetamagicFeats(int nClass)
|
||||
// I don't want to spend the time looping through each class's
|
||||
// feat 2da so this is the list of all classes that are allowed to use the
|
||||
// Spellbook NUI and can use Metamagic
|
||||
return (nClass == CLASS_TYPE_ASSASSIN
|
||||
|| nClass == CLASS_TYPE_BARD
|
||||
return (nClass == CLASS_TYPE_BARD
|
||||
|| nClass == CLASS_TYPE_SORCERER
|
||||
|| nClass == CLASS_TYPE_BEGUILER
|
||||
|| nClass == CLASS_TYPE_DREAD_NECROMANCER
|
||||
@ -527,7 +525,6 @@ int CanClassUseSuddenMetamagicFeats(int nClass)
|
||||
// Spellbook NUI and can use Sudden Metamagic
|
||||
return (nClass == CLASS_TYPE_SHADOWLORD
|
||||
|| nClass == CLASS_TYPE_ARCHIVIST
|
||||
|| nClass == CLASS_TYPE_ASSASSIN
|
||||
|| nClass == CLASS_TYPE_BARD
|
||||
|| nClass == CLASS_TYPE_BEGUILER
|
||||
|| nClass == CLASS_TYPE_DREAD_NECROMANCER
|
||||
|
@ -125,8 +125,8 @@ void CheckSpellbooks(object oPC)
|
||||
CheckMissingSpells(oPC, CLASS_TYPE_ARCHIVIST, 0, 9);
|
||||
CheckMissingSpells(oPC, CLASS_TYPE_BEGUILER, 0, 9);
|
||||
CheckMissingSpells(oPC, CLASS_TYPE_HARPER, 1, 3);
|
||||
CheckMissingSpells(oPC, CLASS_TYPE_ASSASSIN, 1, 4);
|
||||
CheckMissingSpells(oPC, CLASS_TYPE_CELEBRANT_SHARESS, 1, 4);
|
||||
//CheckMissingSpells(oPC, CLASS_TYPE_ASSASSIN, 1, 4);
|
||||
|
||||
// Check psionics
|
||||
DelayCommand(0.0f, CheckPsionics(oPC));
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
NewSpellbookSpell(CLASS_TYPE_CELEBRANT_SHARESS, SPELLBOOK_TYPE_PREPARED);
|
||||
NewSpellbookSpell(CLASS_TYPE_CELEBRANT_SHARESS, SPELLBOOK_TYPE_SPONTANEOUS);
|
||||
}
|
Binary file not shown.
@ -2,20 +2,72 @@
|
||||
//:: Name Inlindl School
|
||||
//:: FileName prc_ft_inlindl.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/** You can choose to sacrifice your shield bonus
|
||||
to AC in exchange for a bonus on melee attack rolls
|
||||
equal to one-half that bonus. This bonus applies
|
||||
only on attacks made with light weapons.
|
||||
/**
|
||||
You can choose to sacrifice your shield bonus
|
||||
to AC in exchange for a bonus on melee attack rolls
|
||||
equal to one-half that bonus. This bonus applies
|
||||
only on attacks made with light weapons.
|
||||
|
||||
Author: Stratovarius
|
||||
Created: 12.11.2018
|
||||
Author: Stratovarius
|
||||
Created: 12.11.2018
|
||||
|
||||
Fixed by: Jaysyn
|
||||
Fixed on: 2025-07-24 16:18:03
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_inc_combat"
|
||||
#include "prc_inc_combmove"
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oInitiator = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND);
|
||||
|
||||
int nWeaponType = GetBaseItemType(oWeapon);
|
||||
int nWeaponSize = GetWeaponSize(oWeapon);
|
||||
int nCreatureSize = GetCreatureSize(oInitiator);
|
||||
|
||||
|
||||
if(DEBUG) DoDebug("prc_ft_inlindl >> Base item type: " + IntToString(nWeaponType));
|
||||
|
||||
if(DEBUG) DoDebug("prc_ft_inlindl >> Base item size: " + IntToString(nWeaponSize));
|
||||
|
||||
if(DEBUG) DoDebug("prc_ft_inlindl >> Creature size: " + IntToString(nCreatureSize));
|
||||
|
||||
effect eBlank;
|
||||
|
||||
if (nWeaponType != BASE_ITEM_RAPIER && nWeaponType != BASE_ITEM_ELVEN_THINBLADE && nWeaponType != BASE_ITEM_ELVEN_COURTBLADE &&
|
||||
(nWeaponSize > 3 || nWeaponSize >= nCreatureSize))
|
||||
{
|
||||
SendMessageToPC(oInitiator, "Inlindl School strike requires a light weapon.");
|
||||
PerformAttack(oTarget, oInitiator, eBlank);
|
||||
return;
|
||||
}
|
||||
|
||||
PRCRemoveEffectsFromSpell(oInitiator, GetSpellId());
|
||||
|
||||
int nShieldAC = GetTotalShieldACBonus(oInitiator);
|
||||
|
||||
effect eShieldMalus = EffectACDecrease(nShieldAC, AC_SHIELD_ENCHANTMENT_BONUS);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_ARMOR_OF_DARKNESS);
|
||||
effect eLink = EffectLinkEffects(eShieldMalus, eVis);
|
||||
|
||||
//DelayCommand(0.0f, ClearAllActions());
|
||||
//DelayCommand(0.1f, AssignCommand(oInitiator,
|
||||
PerformAttackRound(oTarget, oInitiator, eBlank, 0.0, nShieldAC/2, 0, 0, TRUE, "Inlindl School Strike (+"+IntToString(nShieldAC/2)+") : Hit!", "Inlindl School Strike (+"+IntToString(nShieldAC/2)+") : Miss!");
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(eLink), oInitiator, 5.9);
|
||||
|
||||
ActionAttack(oTarget);
|
||||
|
||||
}
|
||||
|
||||
// Almost every part of this is wrong. - Jaysyn
|
||||
/* void main()
|
||||
{
|
||||
object oInitiator = OBJECT_SELF;
|
||||
int nSwitch = GetLocalInt(oInitiator, "InlindlSchool");
|
||||
@ -35,5 +87,5 @@ void main()
|
||||
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_ARMOR_OF_DARKNESS));
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(eLink), oInitiator, 6.0);
|
||||
}
|
||||
}
|
||||
} */
|
||||
|
||||
|
@ -3,9 +3,13 @@
|
||||
//:: prc_ft_spnhlbrd.nss
|
||||
//::///////////////////////////////////////////////
|
||||
/*
|
||||
If you hit the same creature with both your
|
||||
sword and your axe in the same round, you may
|
||||
make a free trip attempt against that foe.
|
||||
Type of Feat: General
|
||||
Prerequisite: Two-Weapon Fighting, Weapon Focus (halberd)
|
||||
Benefit: When you make a full attack with your halberd, you gain
|
||||
a +1 dodge bonus to your Armor Class as well as an additional
|
||||
attack with the weapon at a -5 penalty. This attack deals points
|
||||
of bludgeoning damage equal to 1d6 + 1/2 your Strength modifier.
|
||||
Use: Selected
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Modified By: Stratovarius
|
||||
|
@ -133,7 +133,7 @@ void main()
|
||||
title = title + ": " + GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", selectedClassId)));
|
||||
|
||||
// This is the main window with jRoot as the main pane. It includes titles and parameters (more on those later)
|
||||
json nui = NuiWindow(jRoot, JsonString(title), NuiBind("geometry"), NuiBind("resizable"), NuiBind("collapsed"), NuiBind("closable"), NuiBind("transparent"), NuiBind("border"));
|
||||
json nui = NuiWindow(jRoot, JsonString(title), NuiBind("geometry"), NuiBind("resizable"), NuiBind("collapsed"), NuiBind("closable"), NuiBind("transparent"), NuiBind("border"),JSON_NULL,JSON_NULL, NuiBind("edgeConstraint"));
|
||||
|
||||
// finally create it and it'll return us a non-zero token.
|
||||
int nToken = NuiCreate(OBJECT_SELF, nui, PRC_SPELLBOOK_NUI_WINDOW_ID);
|
||||
@ -151,9 +151,27 @@ void main()
|
||||
{
|
||||
float x = JsonGetFloat(JsonObjectGet(geometry, "x"));
|
||||
float y = JsonGetFloat(JsonObjectGet(geometry, "y"));
|
||||
geometry = NuiRect(x, y, 489.0f, 351.0f);
|
||||
|
||||
float WINDOW_WIDTH = 489.0f;
|
||||
float WINDOW_HEIGHT = 351.0f;
|
||||
|
||||
geometry = NuiRect(x, y, WINDOW_WIDTH, WINDOW_HEIGHT);
|
||||
}
|
||||
|
||||
float QUICKBAR_HEIGHT_ESTIMATE = 40.0f;
|
||||
float CHAT_BAR_ESTIMATE = 20.0f;
|
||||
float MIN_BOTTOM_PADDING = 10.0f;
|
||||
|
||||
int uiScale = GetPlayerDeviceProperty(OBJECT_SELF, PLAYER_DEVICE_PROPERTY_GUI_SCALE);
|
||||
float scale = IntToFloat(uiScale) / 100.0f;
|
||||
|
||||
float bottomSize = QUICKBAR_HEIGHT_ESTIMATE * scale + CHAT_BAR_ESTIMATE * scale + MIN_BOTTOM_PADDING;
|
||||
float screenW = IntToFloat(GetPlayerDeviceProperty(OBJECT_SELF, PLAYER_DEVICE_PROPERTY_GUI_WIDTH));
|
||||
float screenH = IntToFloat(GetPlayerDeviceProperty(OBJECT_SELF, PLAYER_DEVICE_PROPERTY_GUI_HEIGHT));
|
||||
|
||||
json edgeConstraint = NuiRect(0.0f,0.0f, 0.0f, bottomSize);
|
||||
|
||||
//json edgeConstraint = NuiRect(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
// Set the binds to their default values
|
||||
NuiSetBind(OBJECT_SELF, nToken, "geometry", geometry);
|
||||
NuiSetBind(OBJECT_SELF, nToken, "collapsed", JsonBool(FALSE));
|
||||
@ -161,6 +179,7 @@ void main()
|
||||
NuiSetBind(OBJECT_SELF, nToken, "closable", JsonBool(TRUE));
|
||||
NuiSetBind(OBJECT_SELF, nToken, "transparent", JsonBool(TRUE));
|
||||
NuiSetBind(OBJECT_SELF, nToken, "border", JsonBool(FALSE));
|
||||
NuiSetBind(OBJECT_SELF, nToken, "edgeConstraint", edgeConstraint);
|
||||
|
||||
NuiSetBindWatch(OBJECT_SELF, nToken, "geometry", TRUE);
|
||||
}
|
||||
|
@ -61,22 +61,9 @@ void main()
|
||||
{
|
||||
if(!X2PreSpellCastCode()) return;
|
||||
|
||||
//Declare main variables.
|
||||
int nEvent = GetRunningEvent();
|
||||
object oPC;
|
||||
switch(nEvent)
|
||||
{
|
||||
case EVENT_ONHEARTBEAT: oPC = OBJECT_SELF; break;
|
||||
|
||||
default:
|
||||
oPC = OBJECT_SELF;
|
||||
}
|
||||
|
||||
PRCSetSchool(SPELL_SCHOOL_ABJURATION);
|
||||
|
||||
if(nEvent == FALSE)
|
||||
{
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nSpell = GetSpellId();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
@ -119,7 +106,6 @@ void main()
|
||||
|
||||
PRCRemoveEffectsFromSpell(oTarget, SPELL_LUMINOUS_ARMOR);
|
||||
PRCRemoveEffectsFromSpell(oTarget, SPELL_GREATER_LUMINOUS_ARMOR);
|
||||
RemoveEventScript(oPC, EVENT_ONHEARTBEAT, "sp_lumins_armr", TRUE, FALSE);
|
||||
|
||||
effect eArmor = EffectACIncrease(nArmor, AC_ARMOUR_ENCHANTMENT_BONUS, AC_VS_DAMAGE_TYPE_ALL);
|
||||
eArmor = EffectLinkEffects(eArmor, eLight);
|
||||
@ -134,26 +120,6 @@ void main()
|
||||
}
|
||||
PRCSetSchool();
|
||||
|
||||
AddEventScript(oPC, EVENT_ONHEARTBEAT, "sp_lumins_armr", TRUE, FALSE);
|
||||
DelayCommand(fDur, RemoveEventScript(oPC, EVENT_ONHEARTBEAT, "sp_lumins_armr", TRUE, FALSE));
|
||||
//Sanctified spells get mandatory 10 pt good adjustment, regardless of switch
|
||||
AdjustAlignment(oPC, ALIGNMENT_GOOD, 10, FALSE);
|
||||
}
|
||||
else if(nEvent == EVENT_ONHEARTBEAT)
|
||||
{
|
||||
if(GetHasSpellEffect(SPELL_LUMINOUS_ARMOR, oPC) || GetHasSpellEffect(SPELL_GREATER_LUMINOUS_ARMOR, oPC))
|
||||
{
|
||||
object oArmour = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
|
||||
if (GetBaseAC(oArmour) > 0)
|
||||
{
|
||||
ForceUnequip(oPC, oArmour, INVENTORY_SLOT_CHEST);
|
||||
SendMessageToPC(oPC, "You cannot wear armor while under the effects of Luminous Armour");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_LUMINOUS_ARMOR);
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_GREATER_LUMINOUS_ARMOR);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
@ -15156,7 +15156,7 @@ Prerequisite: Healer level 4
|
||||
A Healer deals with certain kinds of maladies so often, that eventually she can cure them without resorting to a spell. At 4th level, a healer gains the ability to cleanse disease once per day, as if casting a Remove Disease spell.
|
||||
At epic levels a Healer gains +1 use per day every 4 levels, starting at 21st level.</entry>
|
||||
<entry id="47323" lang="en" sex="m">****</entry>
|
||||
<entry id="47324" lang="en" sex="m">****</entry>
|
||||
<entry id="47324" lang="en" sex="m"><CUSTOM0> performs an Inlindl School strike!</entry>
|
||||
<entry id="47325" lang="en" sex="m">****</entry>
|
||||
<entry id="47326" lang="en" sex="m">****</entry>
|
||||
<entry id="47327" lang="en" sex="m">****</entry>
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user