NWNX:EE  8193.37.17
nwnx_creature.nss
Go to the documentation of this file.
1 
6 const string NWNX_Creature = "NWNX_Creature";
7 
23 
35 
48 
62 
64 
68 {
69  int id;
70  int ready;
71  int level;
72 };
73 
78 void NWNX_Creature_AddFeat(object creature, int feat);
79 
85 void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level);
86 
90 void NWNX_Creature_RemoveFeat(object creature, int feat);
91 
98 void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level);
99 
105 int NWNX_Creature_GetKnowsFeat(object creature, int feat);
106 
111 int NWNX_Creature_GetFeatCountByLevel(object creature, int level);
112 
118 int NWNX_Creature_GetFeatByLevel(object creature, int level, int index);
119 
124 int NWNX_Creature_GetFeatGrantLevel(object creature, int feat);
125 
129 int NWNX_Creature_GetFeatCount(object creature);
130 
135 int NWNX_Creature_GetFeatByIndex(object creature, int index);
136 
141 int NWNX_Creature_GetMeetsFeatRequirements(object creature, int feat);
142 
146 int NWNX_Creature_GetSpecialAbilityCount(object creature);
147 
152 struct NWNX_Creature_SpecialAbility NWNX_Creature_GetSpecialAbility(object creature, int index);
153 
157 void NWNX_Creature_AddSpecialAbility(object creature, struct NWNX_Creature_SpecialAbility ability);
158 
162 void NWNX_Creature_RemoveSpecialAbility(object creature, int index);
163 
168 void NWNX_Creature_SetSpecialAbility(object creature, int index, struct NWNX_Creature_SpecialAbility ability);
169 
174 int NWNX_Creature_GetClassByLevel(object creature, int level);
175 
181 void NWNX_Creature_SetBaseAC(object creature, int ac);
182 
188 int NWNX_Creature_GetBaseAC(object creature);
189 
194 void NWNX_Creature_SetBaseACPolymorph(object creature, int ac);
195 
200 int NWNX_Creature_GetBaseACPolymorph(object creature);
201 
207 void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value);
208 
214 int NWNX_Creature_GetRawAbilityScore(object creature, int ability);
215 
221 void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier);
222 
228 int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability);
229 
235 int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level);
236 
242 void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots);
243 
249 int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level);
250 
256 void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId);
257 
263 void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId);
264 
269 int NWNX_Creature_GetMaxHitPointsByLevel(object creature, int level);
270 
275 void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value);
276 
280 void NWNX_Creature_SetMovementRate(object creature, int rate);
281 
286 float NWNX_Creature_GetMovementRateFactor(object creature);
287 
292 void NWNX_Creature_SetMovementRateFactor(object creature, float rate);
293 
298 float NWNX_Creature_GetMovementRateFactorCap(object creature);
299 
304 void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap);
305 
309 int NWNX_Creature_GetMovementType(object creature);
310 
316 void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate = 2000.0f);
317 
321 void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value);
322 
326 void NWNX_Creature_SetAlignmentLawChaos(object creature, int value);
327 
332 void NWNX_Creature_SetSkillRank(object creature, int skill, int rank);
333 
339 int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level);
340 
347 void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level);
348 
356 void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE);
357 
364 void NWNX_Creature_SetLevelByPosition(object creature, int position, int level);
365 
375 void NWNX_Creature_SetBaseAttackBonus(object creature, int bab);
376 
382 int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE);
383 
386 void NWNX_Creature_RestoreFeats(object creature);
387 
390 void NWNX_Creature_RestoreSpecialAbilities(object creature);
391 
394 void NWNX_Creature_RestoreItems(object creature);
395 
399 void NWNX_Creature_SetSize(object creature, int size);
400 
404 int NWNX_Creature_GetSkillPointsRemaining(object creature);
405 
409 void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints);
410 
415 int NWNX_Creature_GetSkillPointsRemainingByLevel(object creature, int level);
416 
421 void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value);
422 
426 void NWNX_Creature_SetRacialType(object creature, int racialtype);
427 
431 void NWNX_Creature_SetGold(object creature, int gold);
432 
436 void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime);
437 
443 int NWNX_Creature_GetBaseSavingThrow(object creature, int which);
444 
449 void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value);
450 
457 void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID);
458 
463 void NWNX_Creature_LevelDown(object creature, int count=1);
464 
468 void NWNX_Creature_SetChallengeRating(object creature, float fCR);
469 
482 int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchAttack = FALSE, int isOffhand = FALSE, int includeBaseAttackBonus = TRUE);
483 
489 int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat);
490 
495 int NWNX_Creature_GetFeatRemainingUses(object creature, int feat);
496 
501 int NWNX_Creature_GetFeatTotalUses(object creature, int feat);
502 
507 void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses);
508 
523 int NWNX_Creature_GetTotalEffectBonus(object creature, int bonusType=NWNX_CREATURE_BONUS_TYPE_ATTACK, object target=OBJECT_INVALID, int isElemental=0, int isForceMax=0, int savetype=-1, int saveSpecificType=-1, int skill=-1, int abilityScore=-1, int isOffhand=FALSE);
524 
530 void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName);
531 
536 string NWNX_Creature_GetOriginalName(object creature, int isLastName);
537 
542 void NWNX_Creature_SetSpellResistance(object creature, int sr);
543 
547 void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type);
548 
552 void NWNX_Creature_SetFamiliarCreatureType(object creature, int type);
553 
557 void NWNX_Creature_SetAnimalCompanionName(object creature, string name);
558 
562 void NWNX_Creature_SetFamiliarName(object creature, string name);
563 
567 int NWNX_Creature_GetDisarmable(object creature);
568 
572 void NWNX_Creature_SetDisarmable(object creature, int disarmable);
573 
579 void NWNX_Creature_SetDomain(object creature, int class, int index, int domain);
580 
585 void NWNX_Creature_SetSpecialization(object creature, int class, int school);
586 
590 void NWNX_Creature_SetFaction(object oCreature, int nFactionId);
591 
595 int NWNX_Creature_GetFaction(object oCreature);
596 
600 int NWNX_Creature_GetFlatFooted(object oCreature);
601 
605 string NWNX_Creature_SerializeQuickbar(object oCreature);
606 
611 int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar);
612 
618 void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist = FALSE);
619 
624 int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass);
625 
631 void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist = FALSE);
632 
637 int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass);
638 
641 void NWNX_Creature_JumpToLimbo(object oCreature);
642 
650 void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
651 
657 int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1);
658 
666 void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
667 
673 int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand = 0, int nBaseItem = -1);
674 
682 void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
683 
689 int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1);
690 
698 void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
699 
705 int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int nBaseItem = -1);
706 
712 void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType);
713 
718 void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel);
719 
723 void NWNX_Creature_SetEncounter(object oCreature, object oEncounter);
724 
728 object NWNX_Creature_GetEncounter(object oCreature);
729 
733 int NWNX_Creature_GetIsBartering(object oCreature);
734 
738 void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl);
739 
743 int NWNX_Creature_GetLastItemCasterLevel(object oCreature);
744 
750 int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE);
751 
755 int NWNX_Creature_GetWalkAnimation(object oCreature);
756 
760 void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation);
761 
766 void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier);
767 
772 void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry);
773 
777 int NWNX_Creature_GetNoPermanentDeath(object oCreature);
778 
782 void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath);
783 
790 vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius = 20.0f, int bWalkStraightLineRequired = TRUE);
791 
795 void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature);
796 
800 float NWNX_Creature_GetPersonalSpace(object oCreature);
801 
805 void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace);
806 
810 float NWNX_Creature_GetCreaturePersonalSpace(object oCreature);
811 
815 void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace);
816 
820 float NWNX_Creature_GetHeight(object oCreature);
821 
825 void NWNX_Creature_SetHeight(object oCreature, float fHeight);
826 
830 float NWNX_Creature_GetHitDistance(object oCreature);
831 
835 void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist);
836 
840 float NWNX_Creature_GetPreferredAttackDistance(object oCreature);
841 
845 void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist);
846 
849 int NWNX_Creature_GetArmorCheckPenalty(object oCreature);
850 
853 int NWNX_Creature_GetShieldCheckPenalty(object oCreature);
854 
862 void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE);
863 
868 int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType);
869 
873 void NWNX_Creature_SetLastKiller(object oCreature, object oKiller);
874 
888 void NWNX_Creature_DoItemCastSpell(object oCreature, object oTarget, location locTarget, int nSpellID, int nCasterLevel, float fProjectileTime, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int nProjectileSpellID = -1, object oItem = OBJECT_INVALID, string sImpactScript = "");
889 
895 int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot);
896 
901 int NWNX_Creature_RunUnequip(object oCreature, object oItem);
902 
908 void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE);
909 
916 void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE);
917 
921 int NWNX_Creature_GetInitiativeModifier(object oCreature);
922 
926 object NWNX_Creature_GetBodyBag(object oCreature);
927 
941 int NWNX_Creature_AddCastSpellActions(object oCreature, object oTarget, vector vTargetLocation, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE, int nDomainLevel = 0, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int bInstant = FALSE, int bClearActions = FALSE, int bAddToFront = FALSE);
942 
947 int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature);
948 
953 void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel);
954 
959 void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel);
960 
964 int NWNX_Creature_GetMaximumBonusAttacks(object oCreature);
965 
972 void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE);
973 
977 void NWNX_Creature_DoCleaveAttack(object oCreature);
978 
982 object NWNX_Creature_GetLockOrientationToObject(object oCreature);
983 
987 void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget);
988 
993 void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE);
994 
999 int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore);
1000 
1005 void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice);
1006 
1011 int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel);
1012 
1017 void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility);
1018 
1023 float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget);
1024 
1029 int NWNX_Creature_GetMulticlassLimit(object oCreature);
1030 
1040 void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE);
1041 
1046 int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel);
1047 
1053 void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta);
1054 
1056 
1057 void NWNX_Creature_AddFeat(object creature, int feat)
1058 {
1059  NWNXPushInt(feat);
1060  NWNXPushObject(creature);
1061  NWNXCall(NWNX_Creature, "AddFeat");
1062 }
1063 
1064 void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level)
1065 {
1066  NWNXPushInt(level);
1067  NWNXPushInt(feat);
1068  NWNXPushObject(creature);
1069  NWNXCall(NWNX_Creature, "AddFeatByLevel");
1070 }
1071 
1072 void NWNX_Creature_RemoveFeat(object creature, int feat)
1073 {
1074  NWNXPushInt(feat);
1075  NWNXPushObject(creature);
1076  NWNXCall(NWNX_Creature, "RemoveFeat");
1077 }
1078 
1079 void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level)
1080 {
1081  NWNXPushInt(level);
1082  NWNXPushInt(feat);
1083  NWNXPushObject(creature);
1084  NWNXCall(NWNX_Creature, "RemoveFeatByLevel");
1085 }
1086 
1087 int NWNX_Creature_GetKnowsFeat(object creature, int feat)
1088 {
1089  NWNXPushInt(feat);
1090  NWNXPushObject(creature);
1091  NWNXCall(NWNX_Creature, "GetKnowsFeat");
1092  return NWNXPopInt();
1093 }
1094 
1095 int NWNX_Creature_GetFeatCountByLevel(object creature, int level)
1096 {
1097  NWNXPushInt(level);
1098  NWNXPushObject(creature);
1099  NWNXCall(NWNX_Creature, "GetFeatCountByLevel");
1100  return NWNXPopInt();
1101 }
1102 
1103 int NWNX_Creature_GetFeatByLevel(object creature, int level, int index)
1104 {
1105  NWNXPushInt(index);
1106  NWNXPushInt(level);
1107  NWNXPushObject(creature);
1108  NWNXCall(NWNX_Creature, "GetFeatByLevel");
1109  return NWNXPopInt();
1110 }
1111 
1112 int NWNX_Creature_GetFeatCount(object creature)
1113 {
1114  NWNXPushObject(creature);
1115  NWNXCall(NWNX_Creature, "GetFeatCount");
1116  return NWNXPopInt();
1117 }
1118 
1119 int NWNX_Creature_GetFeatGrantLevel(object creature, int feat)
1120 {
1121  NWNXPushInt(feat);
1122  NWNXPushObject(creature);
1123  NWNXCall(NWNX_Creature, "GetFeatGrantLevel");
1124  return NWNXPopInt();
1125 }
1126 
1127 int NWNX_Creature_GetFeatByIndex(object creature, int index)
1128 {
1129  NWNXPushInt(index);
1130  NWNXPushObject(creature);
1131  NWNXCall(NWNX_Creature, "GetFeatByIndex");
1132  return NWNXPopInt();
1133 }
1134 
1135 int NWNX_Creature_GetMeetsFeatRequirements(object creature, int feat)
1136 {
1137  NWNXPushInt(feat);
1138  NWNXPushObject(creature);
1139  NWNXCall(NWNX_Creature, "GetMeetsFeatRequirements");
1140  return NWNXPopInt();
1141 }
1142 
1143 struct NWNX_Creature_SpecialAbility NWNX_Creature_GetSpecialAbility(object creature, int index)
1144 {
1145  struct NWNX_Creature_SpecialAbility ability;
1146  NWNXPushInt(index);
1147  NWNXPushObject(creature);
1148  NWNXCall(NWNX_Creature, "GetSpecialAbility");
1149  ability.level = NWNXPopInt();
1150  ability.ready = NWNXPopInt();
1151  ability.id = NWNXPopInt();
1152  return ability;
1153 }
1154 
1156 {
1157  NWNXPushObject(creature);
1158  NWNXCall(NWNX_Creature, "GetSpecialAbilityCount");
1159  return NWNXPopInt();
1160 }
1161 
1163 {
1164  NWNXPushInt(ability.id);
1165  NWNXPushInt(ability.ready);
1166  NWNXPushInt(ability.level);
1167  NWNXPushObject(creature);
1168  NWNXCall(NWNX_Creature, "AddSpecialAbility");
1169 }
1170 
1171 void NWNX_Creature_RemoveSpecialAbility(object creature, int index)
1172 {
1173  NWNXPushInt(index);
1174  NWNXPushObject(creature);
1175  NWNXCall(NWNX_Creature, "RemoveSpecialAbility");
1176 }
1177 
1178 void NWNX_Creature_SetSpecialAbility(object creature, int index, struct NWNX_Creature_SpecialAbility ability)
1179 {
1180  NWNXPushInt(ability.id);
1181  NWNXPushInt(ability.ready);
1182  NWNXPushInt(ability.level);
1183  NWNXPushInt(index);
1184  NWNXPushObject(creature);
1185  NWNXCall(NWNX_Creature, "SetSpecialAbility");
1186 }
1187 
1188 int NWNX_Creature_GetClassByLevel(object creature, int level)
1189 {
1190  NWNXPushInt(level);
1191  NWNXPushObject(creature);
1192  NWNXCall(NWNX_Creature, "GetClassByLevel");
1193  return NWNXPopInt();
1194 }
1195 
1196 void NWNX_Creature_SetBaseAC(object creature, int ac)
1197 {
1198  NWNXPushInt(ac);
1199  NWNXPushObject(creature);
1200  NWNXCall(NWNX_Creature, "SetBaseAC");
1201 }
1202 
1203 int NWNX_Creature_GetBaseAC(object creature)
1204 {
1205  NWNXPushObject(creature);
1206  NWNXCall(NWNX_Creature, "GetBaseAC");
1207  return NWNXPopInt();
1208 }
1209 
1210 void NWNX_Creature_SetBaseACPolymorph(object creature, int ac)
1211 {
1212  NWNXPushInt(ac);
1213  NWNXPushObject(creature);
1214  NWNXCall(NWNX_Creature, "SetBaseACPolymorph");
1215 }
1216 
1218 {
1219  NWNXPushObject(creature);
1220  NWNXCall(NWNX_Creature, "GetBaseACPolymorph");
1221  return NWNXPopInt();
1222 }
1223 
1224 void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value)
1225 {
1226  NWNXPushInt(value);
1227  NWNXPushInt(ability);
1228  NWNXPushObject(creature);
1229  NWNXCall(NWNX_Creature, "SetRawAbilityScore");
1230 }
1231 
1232 int NWNX_Creature_GetRawAbilityScore(object creature, int ability)
1233 {
1234  NWNXPushInt(ability);
1235  NWNXPushObject(creature);
1236  NWNXCall(NWNX_Creature, "GetRawAbilityScore");
1237  return NWNXPopInt();
1238 }
1239 
1240 void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier)
1241 {
1242  NWNXPushInt(modifier);
1243  NWNXPushInt(ability);
1244  NWNXPushObject(creature);
1245  NWNXCall(NWNX_Creature, "ModifyRawAbilityScore");
1246 }
1247 
1248 int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability)
1249 {
1250  NWNXPushInt(ability);
1251  NWNXPushObject(creature);
1252  NWNXCall(NWNX_Creature, "GetPrePolymorphAbilityScore");
1253  return NWNXPopInt();
1254 }
1255 
1256 int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level)
1257 {
1258  NWNXPushInt(level);
1259  NWNXPushInt(class);
1260  NWNXPushObject(creature);
1261  NWNXCall(NWNX_Creature, "GetRemainingSpellSlots");
1262  return NWNXPopInt();
1263 }
1264 
1265 void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots)
1266 {
1267  NWNXPushInt(slots);
1268  NWNXPushInt(level);
1269  NWNXPushInt(class);
1270  NWNXPushObject(creature);
1271  NWNXCall(NWNX_Creature, "SetRemainingSpellSlots");
1272 }
1273 
1274 void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId)
1275 {
1276  NWNXPushInt(spellId);
1277  NWNXPushInt(level);
1278  NWNXPushInt(class);
1279  NWNXPushObject(creature);
1280 
1281  NWNXCall(NWNX_Creature, "RemoveKnownSpell");
1282 }
1283 
1284 void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId)
1285 {
1286  NWNXPushInt(spellId);
1287  NWNXPushInt(level);
1288  NWNXPushInt(class);
1289  NWNXPushObject(creature);
1290  NWNXCall(NWNX_Creature, "AddKnownSpell");
1291 }
1292 
1293 int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level)
1294 {
1295  NWNXPushInt(level);
1296  NWNXPushInt(class);
1297  NWNXPushObject(creature);
1298  NWNXCall(NWNX_Creature, "GetMaxSpellSlots");
1299  return NWNXPopInt();
1300 }
1301 
1302 
1304 {
1305  NWNXPushInt(level);
1306  NWNXPushObject(creature);
1307  NWNXCall(NWNX_Creature, "GetMaxHitPointsByLevel");
1308  return NWNXPopInt();
1309 }
1310 
1311 void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value)
1312 {
1313  NWNXPushInt(value);
1314  NWNXPushInt(level);
1315  NWNXPushObject(creature);
1316  NWNXCall(NWNX_Creature, "SetMaxHitPointsByLevel");
1317 }
1318 
1319 void NWNX_Creature_SetMovementRate(object creature, int rate)
1320 {
1321  NWNXPushInt(rate);
1322  NWNXPushObject(creature);
1323  NWNXCall(NWNX_Creature, "SetMovementRate");
1324 }
1325 
1327 {
1328  NWNXPushObject(creature);
1329  NWNXCall(NWNX_Creature, "GetMovementRateFactor");
1330  return NWNXPopFloat();
1331 }
1332 
1333 void NWNX_Creature_SetMovementRateFactor(object creature, float factor)
1334 {
1335  NWNXPushFloat(factor);
1336  NWNXPushObject(creature);
1337  NWNXCall(NWNX_Creature, "SetMovementRateFactor");
1338 }
1339 
1341 {
1342  NWNXPushObject(creature);
1343  NWNXCall(NWNX_Creature, "GetMovementRateFactorCap");
1344  return NWNXPopFloat();
1345 }
1346 
1347 void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap)
1348 {
1349  NWNXPushFloat(cap);
1350  NWNXPushObject(creature);
1351  NWNXCall(NWNX_Creature, "SetMovementRateFactorCap");
1352 }
1353 
1354 void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value)
1355 {
1356  NWNXPushInt(value);
1357  NWNXPushObject(creature);
1358  NWNXCall(NWNX_Creature, "SetAlignmentGoodEvil");
1359 }
1360 
1361 void NWNX_Creature_SetAlignmentLawChaos(object creature, int value)
1362 {
1363  NWNXPushInt(value);
1364  NWNXPushObject(creature);
1365  NWNXCall(NWNX_Creature, "SetAlignmentLawChaos");
1366 }
1367 
1368 void NWNX_Creature_SetSkillRank(object creature, int skill, int rank)
1369 {
1370  NWNXPushInt(rank);
1371  NWNXPushInt(skill);
1372  NWNXPushObject(creature);
1373  NWNXCall(NWNX_Creature, "SetSkillRank");
1374 }
1375 
1376 int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level)
1377 {
1378  NWNXPushInt(level);
1379  NWNXPushInt(skill);
1380  NWNXPushObject(creature);
1381  NWNXCall(NWNX_Creature, "GetSkillRankByLevel");
1382  return NWNXPopInt();
1383 }
1384 
1385 void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level)
1386 {
1387  NWNXPushInt(level);
1388  NWNXPushInt(rank);
1389  NWNXPushInt(skill);
1390  NWNXPushObject(creature);
1391  NWNXCall(NWNX_Creature, "SetSkillRankByLevel");
1392 }
1393 
1394 void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE)
1395 {
1396  NWNXPushInt(bUpdateLevels);
1397  NWNXPushInt(classID);
1398  NWNXPushInt(position);
1399  NWNXPushObject(creature);
1400  NWNXCall(NWNX_Creature, "SetClassByPosition");
1401 }
1402 
1403 void NWNX_Creature_SetLevelByPosition(object creature, int position, int level)
1404 {
1405  NWNXPushInt(level);
1406  NWNXPushInt(position);
1407  NWNXPushObject(creature);
1408  NWNXCall(NWNX_Creature, "SetLevelByPosition");
1409 }
1410 
1411 void NWNX_Creature_SetBaseAttackBonus(object creature, int bab)
1412 {
1413  NWNXPushInt(bab);
1414  NWNXPushObject(creature);
1415  NWNXCall(NWNX_Creature, "SetBaseAttackBonus");
1416 }
1417 
1418 int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE)
1419 {
1420  NWNXPushInt(bBaseAPR);
1421  NWNXPushObject(creature);
1422  NWNXCall(NWNX_Creature, "GetAttacksPerRound");
1423  return NWNXPopInt();
1424 }
1425 
1426 void NWNX_Creature_RestoreFeats(object creature)
1427 {
1428  NWNXPushObject(creature);
1429  NWNXCall(NWNX_Creature, "RestoreFeats");
1430 }
1431 
1433 {
1434  NWNXPushObject(creature);
1435  NWNXCall(NWNX_Creature, "RestoreSpecialAbilities");
1436 }
1437 
1438 void NWNX_Creature_RestoreItems(object creature)
1439 {
1440  NWNXPushObject(creature);
1441  NWNXCall(NWNX_Creature, "RestoreItems");
1442 }
1443 
1444 void NWNX_Creature_SetSize(object creature, int size)
1445 {
1446  NWNXPushInt(size);
1447  NWNXPushObject(creature);
1448  NWNXCall(NWNX_Creature, "SetSize");
1449 }
1450 
1452 {
1453  NWNXPushObject(creature);
1454  NWNXCall(NWNX_Creature, "GetSkillPointsRemaining");
1455  return NWNXPopInt();
1456 }
1457 
1458 void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints)
1459 {
1460  NWNXPushInt(skillpoints);
1461  NWNXPushObject(creature);
1462  NWNXCall(NWNX_Creature, "SetSkillPointsRemaining");
1463 }
1464 
1466 {
1467  NWNXPushInt(level);
1468  NWNXPushObject(creature);
1469  NWNXCall(NWNX_Creature, "GetSkillPointsRemainingByLevel");
1470  return NWNXPopInt();
1471 }
1472 
1473 void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value)
1474 {
1475  NWNXPushInt(value);
1476  NWNXPushInt(level);
1477  NWNXPushObject(creature);
1478  NWNXCall(NWNX_Creature, "SetSkillPointsRemainingByLevel");
1479 }
1480 
1481 void NWNX_Creature_SetRacialType(object creature, int racialtype)
1482 {
1483  NWNXPushInt(racialtype);
1484  NWNXPushObject(creature);
1485  NWNXCall(NWNX_Creature, "SetRacialType");
1486 }
1487 
1488 int NWNX_Creature_GetMovementType(object creature)
1489 {
1490  NWNXPushObject(creature);
1491  NWNXCall(NWNX_Creature, "GetMovementType");
1492  return NWNXPopInt();
1493 }
1494 
1495 void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate = 2000.0f)
1496 {
1497  NWNXPushFloat(fWalkRate);
1498  NWNXPushObject(creature);
1499  NWNXCall(NWNX_Creature, "SetWalkRateCap");
1500 }
1501 
1502 void NWNX_Creature_SetGold(object creature, int gold)
1503 {
1504  NWNXPushInt(gold);
1505  NWNXPushObject(creature);
1506  NWNXCall(NWNX_Creature, "SetGold");
1507 }
1508 
1509 void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime)
1510 {
1511  NWNXPushInt(nDecayTime);
1512  NWNXPushObject(creature);
1513  NWNXCall(NWNX_Creature, "SetCorpseDecayTime");
1514 }
1515 
1516 int NWNX_Creature_GetBaseSavingThrow(object creature, int which)
1517 {
1518  NWNXPushInt(which);
1519  NWNXPushObject(creature);
1520  NWNXCall(NWNX_Creature, "GetBaseSavingThrow");
1521  return NWNXPopInt();
1522 }
1523 
1524 void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value)
1525 {
1526  NWNXPushInt(value);
1527  NWNXPushInt(which);
1528  NWNXPushObject(creature);
1529  NWNXCall(NWNX_Creature, "SetBaseSavingThrow");
1530 }
1531 
1532 void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID)
1533 {
1534  NWNXPushInt(package);
1535  NWNXPushInt(count);
1536  NWNXPushInt(class);
1537  NWNXPushObject(creature);
1538  NWNXCall(NWNX_Creature, "LevelUp");
1539 }
1540 
1541 void NWNX_Creature_LevelDown(object creature, int count=1)
1542 {
1543  NWNXPushInt(count);
1544  NWNXPushObject(creature);
1545  NWNXCall(NWNX_Creature, "LevelDown");
1546 }
1547 
1548 void NWNX_Creature_SetChallengeRating(object creature, float fCR)
1549 {
1550  NWNXPushFloat(fCR);
1551  NWNXPushObject(creature);
1552  NWNXCall(NWNX_Creature, "SetChallengeRating");
1553 }
1554 
1555 int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchAttack = FALSE, int isOffhand = FALSE, int includeBaseAttackBonus = TRUE)
1556 {
1557  if (isMelee == -1)
1558  {
1559  object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, creature);
1560 
1561  if (GetIsObjectValid(oWeapon))
1562  {
1563  isMelee = !GetWeaponRanged(oWeapon);
1564  }
1565  else
1566  {// Default to melee for unarmed
1567  isMelee = TRUE;
1568  }
1569  }
1570  NWNXPushInt(includeBaseAttackBonus);
1571  NWNXPushInt(isOffhand);
1572  NWNXPushInt(isTouchAttack);
1573  NWNXPushInt(isMelee);
1574  NWNXPushObject(creature);
1575  NWNXCall(NWNX_Creature, "GetAttackBonus");
1576  return NWNXPopInt();
1577 }
1578 
1579 int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat)
1580 {
1581  NWNXPushInt(feat);
1582  NWNXPushObject(creature);
1583  NWNXCall(NWNX_Creature, "GetHighestLevelOfFeat");
1584  return NWNXPopInt();
1585 }
1586 
1587 int NWNX_Creature_GetFeatRemainingUses(object creature, int feat)
1588 {
1589  NWNXPushInt(feat);
1590  NWNXPushObject(creature);
1591  NWNXCall(NWNX_Creature, "GetFeatRemainingUses");
1592  return NWNXPopInt();
1593 }
1594 
1595 int NWNX_Creature_GetFeatTotalUses(object creature, int feat)
1596 {
1597  NWNXPushInt(feat);
1598  NWNXPushObject(creature);
1599  NWNXCall(NWNX_Creature, "GetFeatTotalUses");
1600  return NWNXPopInt();
1601 }
1602 
1603 void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses)
1604 {
1605  NWNXPushInt(uses);
1606  NWNXPushInt(feat);
1607  NWNXPushObject(creature);
1608  NWNXCall(NWNX_Creature, "SetFeatRemainingUses");
1609 }
1610 
1611 int NWNX_Creature_GetTotalEffectBonus(object creature, int bonusType=NWNX_CREATURE_BONUS_TYPE_ATTACK, object target=OBJECT_INVALID, int isElemental=0, int isForceMax=0, int savetype=-1, int saveSpecificType=-1, int skill=-1, int abilityScore=-1, int isOffhand=FALSE)
1612 {
1613  NWNXPushInt(isOffhand);
1614  NWNXPushInt(abilityScore);
1615  NWNXPushInt(skill);
1616  NWNXPushInt(saveSpecificType);
1617  NWNXPushInt(savetype);
1618  NWNXPushInt(isForceMax);
1619  NWNXPushInt(isElemental);
1620  NWNXPushObject(target);
1621  NWNXPushInt(bonusType);
1622  NWNXPushObject(creature);
1623  NWNXCall(NWNX_Creature, "GetTotalEffectBonus");
1624  return NWNXPopInt();
1625 }
1626 
1627 void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName)
1628 {
1629  NWNXPushInt(isLastName);
1630  NWNXPushString(name);
1631  NWNXPushObject(creature);
1632  NWNXCall(NWNX_Creature, "SetOriginalName");
1633 }
1634 
1635 string NWNX_Creature_GetOriginalName(object creature, int isLastName)
1636 {
1637  NWNXPushInt(isLastName);
1638  NWNXPushObject(creature);
1639  NWNXCall(NWNX_Creature, "GetOriginalName");
1640  return NWNXPopString();
1641 }
1642 
1643 void NWNX_Creature_SetSpellResistance(object creature, int sr)
1644 {
1645  NWNXPushInt(sr);
1646  NWNXPushObject(creature);
1647  NWNXCall(NWNX_Creature, "SetSpellResistance");
1648 }
1649 
1650 void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type)
1651 {
1652  NWNXPushInt(type);
1653  NWNXPushObject(creature);
1654  NWNXCall(NWNX_Creature, "SetAnimalCompanionCreatureType");
1655 }
1656 
1657 void NWNX_Creature_SetFamiliarCreatureType(object creature, int type)
1658 {
1659  NWNXPushInt(type);
1660  NWNXPushObject(creature);
1661  NWNXCall(NWNX_Creature, "SetFamiliarCreatureType");
1662 }
1663 
1664 void NWNX_Creature_SetAnimalCompanionName(object creature, string name)
1665 {
1666  NWNXPushString(name);
1667  NWNXPushObject(creature);
1668  NWNXCall(NWNX_Creature, "SetAnimalCompanionName");
1669 }
1670 
1671 void NWNX_Creature_SetFamiliarName(object creature, string name)
1672 {
1673  NWNXPushString(name);
1674  NWNXPushObject(creature);
1675  NWNXCall(NWNX_Creature, "SetFamiliarName");
1676 }
1677 
1678 int NWNX_Creature_GetDisarmable(object creature)
1679 {
1680  NWNXPushObject(creature);
1681  NWNXCall(NWNX_Creature, "GetDisarmable");
1682  return NWNXPopInt();
1683 }
1684 
1685 void NWNX_Creature_SetDisarmable(object creature, int disarmable)
1686 {
1687  NWNXPushInt(disarmable);
1688  NWNXPushObject(creature);
1689  NWNXCall(NWNX_Creature, "SetDisarmable");
1690 }
1691 
1692 void NWNX_Creature_SetDomain(object creature, int class, int index, int domain)
1693 {
1694  NWNXPushInt(domain);
1695  NWNXPushInt(index);
1696  NWNXPushInt(class);
1697  NWNXPushObject(creature);
1698  NWNXCall(NWNX_Creature, "SetDomain");
1699 }
1700 
1701 void NWNX_Creature_SetSpecialization(object creature, int class, int school)
1702 {
1703  NWNXPushInt(school);
1704  NWNXPushInt(class);
1705  NWNXPushObject(creature);
1706  NWNXCall(NWNX_Creature, "SetSpecialization");
1707 }
1708 
1709 void NWNX_Creature_SetFaction(object oCreature, int nFactionId)
1710 {
1711  NWNXPushInt(nFactionId);
1712  NWNXPushObject(oCreature);
1713  NWNXCall(NWNX_Creature, "SetFaction");
1714 }
1715 
1716 int NWNX_Creature_GetFaction(object oCreature)
1717 {
1718  NWNXPushObject(oCreature);
1719  NWNXCall(NWNX_Creature, "GetFaction");
1720  return NWNXPopInt();
1721 }
1722 
1723 int NWNX_Creature_GetFlatFooted(object oCreature)
1724 {
1725  NWNXPushObject(oCreature);
1726  NWNXCall(NWNX_Creature, "GetFlatFooted");
1727  return NWNXPopInt();
1728 }
1729 
1730 string NWNX_Creature_SerializeQuickbar(object oCreature)
1731 {
1732  NWNXPushObject(oCreature);
1733  NWNXCall(NWNX_Creature, "SerializeQuickbar");
1734  return NWNXPopString();
1735 }
1736 
1737 int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar)
1738 {
1739  NWNXPushString(sSerializedQuickbar);
1740  NWNXPushObject(oCreature);
1741  NWNXCall(NWNX_Creature, "DeserializeQuickbar");
1742  return NWNXPopInt();
1743 }
1744 
1745 void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist = FALSE)
1746 {
1747  NWNXPushInt(bPersist);
1748  NWNXPushInt(nModifier);
1749  NWNXPushInt(nClass);
1750  NWNXPushObject(oCreature);
1751  NWNXCall(NWNX_Creature, "SetCasterLevelModifier");
1752 }
1753 
1754 int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass)
1755 {
1756  NWNXPushInt(nClass);
1757  NWNXPushObject(oCreature);
1758  NWNXCall(NWNX_Creature, "GetCasterLevelModifier");
1759  return NWNXPopInt();
1760 }
1761 
1762 void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist = FALSE)
1763 {
1764  NWNXPushInt(bPersist);
1765  NWNXPushInt(nCasterLevel);
1766  NWNXPushInt(nClass);
1767  NWNXPushObject(oCreature);
1768  NWNXCall(NWNX_Creature, "SetCasterLevelOverride");
1769 }
1770 
1771 int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass)
1772 {
1773  NWNXPushInt(nClass);
1774  NWNXPushObject(oCreature);
1775  NWNXCall(NWNX_Creature, "GetCasterLevelOverride");
1776  return NWNXPopInt();
1777 }
1778 
1779 void NWNX_Creature_JumpToLimbo(object oCreature)
1780 {
1781  NWNXPushObject(oCreature);
1782  NWNXCall(NWNX_Creature, "JumpToLimbo");
1783 }
1784 
1785 void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1786 {
1787  NWNXPushInt(nBaseItem);
1788  NWNXPushInt(bPersist);
1789  NWNXPushInt(nHand);
1790  NWNXPushInt(nModifier);
1791  NWNXPushObject(oCreature);
1792  NWNXCall(NWNX_Creature, "SetCriticalMultiplierModifier");
1793 }
1794 
1795 int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1)
1796 {
1797  NWNXPushInt(nBaseItem);
1798  NWNXPushInt(nHand);
1799  NWNXPushObject(oCreature);
1800  NWNXCall(NWNX_Creature, "GetCriticalMultiplierModifier");
1801  return NWNXPopInt();
1802 }
1803 
1804 void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1805 {
1806  NWNXPushInt(nBaseItem);
1807  NWNXPushInt(bPersist);
1808  NWNXPushInt(nHand);
1809  NWNXPushInt(nOverride);
1810  NWNXPushObject(oCreature);
1811  NWNXCall(NWNX_Creature, "SetCriticalMultiplierOverride");
1812 }
1813 
1814 int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand = 0, int nBaseItem = -1)
1815 {
1816  NWNXPushInt(nBaseItem);
1817  NWNXPushInt(nHand);
1818  NWNXPushObject(oCreature);
1819  NWNXCall(NWNX_Creature, "GetCriticalMultiplierOverride");
1820  return NWNXPopInt();
1821 }
1822 
1823 void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1824 {
1825  NWNXPushInt(nBaseItem);
1826  NWNXPushInt(bPersist);
1827  NWNXPushInt(nHand);
1828  NWNXPushInt(nModifier);
1829  NWNXPushObject(oCreature);
1830  NWNXCall(NWNX_Creature, "SetCriticalRangeModifier");
1831 }
1832 
1833 int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1)
1834 {
1835  NWNXPushInt(nBaseItem);
1836  NWNXPushInt(nHand);
1837  NWNXPushObject(oCreature);
1838 
1839  NWNXCall(NWNX_Creature, "GetCriticalRangeModifier");
1840  return NWNXPopInt();
1841 }
1842 
1843 void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1844 {
1845  NWNXPushInt(nBaseItem);
1846  NWNXPushInt(bPersist);
1847  NWNXPushInt(nHand);
1848  NWNXPushInt(nOverride);
1849  NWNXPushObject(oCreature);
1850  NWNXCall(NWNX_Creature, "SetCriticalRangeOverride");
1851 }
1852 
1853 int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int nBaseItem = -1)
1854 {
1855  NWNXPushInt(nBaseItem);
1856  NWNXPushInt(nHand);
1857  NWNXPushObject(oCreature);
1858 
1859  NWNXCall(NWNX_Creature, "GetCriticalRangeOverride");
1860  return NWNXPopInt();
1861 }
1862 
1863 void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType)
1864 {
1865  NWNXPushInt(nAssociateType);
1866  NWNXPushObject(oAssociate);
1867  NWNXPushObject(oCreature);
1868 
1869  NWNXCall(NWNX_Creature, "AddAssociate");
1870 }
1871 
1872 void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel)
1873 {
1874  NWNXPushInt(nDamageLevel);
1875  NWNXPushObject(oCreature);
1876  NWNXCall(NWNX_Creature, "OverrideDamageLevel");
1877 }
1878 
1879 void NWNX_Creature_SetEncounter(object oCreature, object oEncounter)
1880 {
1881  NWNXPushObject(oEncounter);
1882  NWNXPushObject(oCreature);
1883  NWNXCall(NWNX_Creature, "SetEncounter");
1884 }
1885 
1886 object NWNX_Creature_GetEncounter(object oCreature)
1887 {
1888  NWNXPushObject(oCreature);
1889  NWNXCall(NWNX_Creature, "GetEncounter");
1890  return NWNXPopObject();
1891 }
1892 
1893 int NWNX_Creature_GetIsBartering(object oCreature)
1894 {
1895  NWNXPushObject(oCreature);
1896  NWNXCall(NWNX_Creature, "GetIsBartering");
1897  return NWNXPopInt();
1898 }
1899 
1900 void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl)
1901 {
1902  NWNXPushInt(nCasterLvl);
1903  NWNXPushObject(oCreature);
1904  NWNXCall(NWNX_Creature, "SetLastItemCasterLevel");
1905 }
1906 
1907 
1909 {
1910  NWNXPushObject(oCreature);
1911  NWNXCall(NWNX_Creature, "GetLastItemCasterLevel");
1912  return NWNXPopInt();
1913 }
1914 
1915 int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE)
1916 {
1917  NWNXPushInt(nTouch);
1918  NWNXPushObject(oVersus);
1919  NWNXPushObject(oAttacked);
1920  NWNXCall(NWNX_Creature, "GetArmorClassVersus");
1921  return NWNXPopInt();
1922 }
1923 
1924 int NWNX_Creature_GetWalkAnimation(object oCreature)
1925 {
1926  NWNXPushObject(oCreature);
1927  NWNXCall(NWNX_Creature, "GetWalkAnimation");
1928  return NWNXPopInt();
1929 }
1930 
1931 void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation)
1932 {
1933  NWNXPushInt(nAnimation);
1934  NWNXPushObject(oCreature);
1935  NWNXCall(NWNX_Creature, "SetWalkAnimation");
1936 }
1937 
1938 void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier)
1939 {
1940  NWNXPushInt(nModifier);
1941  NWNXPushInt(nRoll);
1942  NWNXPushObject(oCreature);
1943  NWNXCall(NWNX_Creature, "SetAttackRollOverride");
1944 }
1945 
1946 void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry)
1947 {
1948  NWNXPushInt(bParry);
1949  NWNXPushObject(oCreature);
1950  NWNXCall(NWNX_Creature, "SetParryAllAttacks");
1951 }
1952 
1954 {
1955  NWNXPushObject(oCreature);
1956  NWNXCall(NWNX_Creature, "GetNoPermanentDeath");
1957  return NWNXPopInt();
1958 }
1959 
1960 void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath)
1961 {
1962  NWNXPushInt(bNoPermanentDeath);
1963  NWNXPushObject(oCreature);
1964  NWNXCall(NWNX_Creature, "SetNoPermanentDeath");
1965 }
1966 
1967 vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius = 20.0f, int bWalkStraightLineRequired = TRUE)
1968 {
1969  NWNXPushInt(bWalkStraightLineRequired);
1970  NWNXPushFloat(fRadius);
1971  NWNXPushVector(vPosition);
1972  NWNXPushObject(oCreature);
1973  NWNXCall(NWNX_Creature, "ComputeSafeLocation");
1974  return NWNXPopVector();
1975 }
1976 
1977 void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature)
1978 {
1979  NWNXPushObject(oTargetCreature);
1980  NWNXPushObject(oCreature);
1981  NWNXCall(NWNX_Creature, "DoPerceptionUpdateOnCreature");
1982 }
1983 
1984 float NWNX_Creature_GetPersonalSpace(object oCreature)
1985 {
1986  NWNXPushObject(oCreature);
1987  NWNXCall(NWNX_Creature, "GetPersonalSpace");
1988  return NWNXPopFloat();
1989 }
1990 
1991 void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace)
1992 {
1993  NWNXPushFloat(fPerspace);
1994  NWNXPushObject(oCreature);
1995  NWNXCall(NWNX_Creature, "SetPersonalSpace");
1996 }
1997 
1999 {
2000  NWNXPushObject(oCreature);
2001  NWNXCall(NWNX_Creature, "GetCreaturePersonalSpace");
2002  return NWNXPopFloat();
2003 }
2004 
2005 void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace)
2006 {
2007  NWNXPushFloat(fCrePerspace);
2008  NWNXPushObject(oCreature);
2009  NWNXCall(NWNX_Creature, "SetCreaturePersonalSpace");
2010 }
2011 
2012 float NWNX_Creature_GetHeight(object oCreature)
2013 {
2014  NWNXPushObject(oCreature);
2015  NWNXCall(NWNX_Creature, "GetHeight");
2016  return NWNXPopFloat();
2017 }
2018 
2019 void NWNX_Creature_SetHeight(object oCreature, float fHeight)
2020 {
2021  NWNXPushFloat(fHeight);
2022  NWNXPushObject(oCreature);
2023  NWNXCall(NWNX_Creature, "SetHeight");
2024 }
2025 
2026 float NWNX_Creature_GetHitDistance(object oCreature)
2027 {
2028  NWNXPushObject(oCreature);
2029  NWNXCall(NWNX_Creature, "GetHitDistance");
2030  return NWNXPopFloat();
2031 }
2032 
2033 void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist)
2034 {
2035  NWNXPushFloat(fHitDist);
2036  NWNXPushObject(oCreature);
2037  NWNXCall(NWNX_Creature, "SetHitDistance");
2038 }
2039 
2041 {
2042  NWNXPushObject(oCreature);
2043  NWNXCall(NWNX_Creature, "GetPreferredAttackDistance");
2044  return NWNXPopFloat();
2045 }
2046 
2047 void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist)
2048 {
2049  NWNXPushFloat(fPrefAtckDist);
2050  NWNXPushObject(oCreature);
2051  NWNXCall(NWNX_Creature, "SetPreferredAttackDistance");
2052 }
2053 
2055 {
2056  NWNXPushObject(oCreature);
2057  NWNXCall(NWNX_Creature, "GetArmorCheckPenalty");
2058  return NWNXPopInt();
2059 }
2060 
2062 {
2063  NWNXPushObject(oCreature);
2064  NWNXCall(NWNX_Creature, "GetShieldCheckPenalty");
2065  return NWNXPopInt();
2066 }
2067 
2068 void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE)
2069 {
2070  NWNXPushInt(bPersist);
2071  NWNXPushInt(nChance);
2072  NWNXPushInt(nImmunityType);
2073  NWNXPushObject(oCreature);
2074  NWNXCall(NWNX_Creature, "SetBypassEffectImmunity");
2075 }
2076 
2077 int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType)
2078 {
2079  NWNXPushInt(nImmunityType);
2080  NWNXPushObject(oCreature);
2081  NWNXCall(NWNX_Creature, "GetBypassEffectImmunity");
2082  return NWNXPopInt();
2083 }
2084 
2085 void NWNX_Creature_SetLastKiller(object oCreature, object oKiller)
2086 {
2087  NWNXPushObject(oKiller);
2088  NWNXPushObject(oCreature);
2089  NWNXCall(NWNX_Creature, "SetLastKiller");
2090 }
2091 
2092 void NWNX_Creature_DoItemCastSpell(object oCreature, object oTarget, location locTarget, int nSpellID, int nCasterLevel, float fProjectileTime, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int nProjectileSpellID = -1, object oItem = OBJECT_INVALID, string sImpactScript = "")
2093 {
2094  NWNXPushString(sImpactScript);
2095  NWNXPushObject(oItem);
2096  NWNXPushInt(nProjectileSpellID);
2097  NWNXPushInt(nProjectilePathType);
2098  NWNXPushFloat(fProjectileTime);
2099  NWNXPushInt(nCasterLevel);
2100  NWNXPushInt(nSpellID);
2101  NWNXPushLocation(locTarget);
2102  NWNXPushObject(oTarget);
2103  NWNXPushObject(oCreature);
2104  NWNXCall(NWNX_Creature, "DoItemCastSpell");
2105 }
2106 
2107 int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot)
2108 {
2109  NWNXPushInt(nInventorySlot);
2110  NWNXPushObject(oItem);
2111  NWNXPushObject(oCreature);
2112  NWNXCall(NWNX_Creature, "RunEquip");
2113  return NWNXPopInt();
2114 }
2115 
2116 int NWNX_Creature_RunUnequip(object oCreature, object oItem)
2117 {
2118  NWNXPushObject(oItem);
2119  NWNXPushObject(oCreature);
2120  NWNXCall(NWNX_Creature, "RunUnequip");
2121  return NWNXPopInt();
2122 }
2123 
2124 void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE)
2125 {
2126  NWNXPushInt(bPersist);
2127  NWNXPushInt(nProjectileVFX);
2128  NWNXPushObject(oCreature);
2129  NWNXCall(NWNX_Creature, "OverrideRangedProjectileVFX");
2130 }
2131 
2132 void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE)
2133 {
2134  NWNXPushInt(bPersist);
2135  NWNXPushInt(nMod);
2136  NWNXPushObject(oCreature);
2137  NWNXCall(NWNX_Creature, "SetInitiativeModifier");
2138 }
2139 
2141 {
2142  NWNXPushObject(oCreature);
2143  NWNXCall(NWNX_Creature, "GetInitiativeModifier");
2144  return NWNXPopInt();
2145 }
2146 
2147 object NWNX_Creature_GetBodyBag(object oCreature)
2148 {
2149  NWNXPushObject(oCreature);
2150  NWNXCall(NWNX_Creature, "GetBodyBag");
2151  return NWNXPopObject();
2152 }
2153 
2154 int NWNX_Creature_AddCastSpellActions(object oCreature, object oTarget, vector vTargetLocation, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE, int nDomainLevel = 0, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int bInstant = FALSE, int bClearActions = FALSE, int bAddToFront = FALSE)
2155 {
2156  NWNXPushInt(bAddToFront);
2157  NWNXPushInt(bClearActions);
2158  NWNXPushInt(bInstant);
2159  NWNXPushInt(nProjectilePathType);
2160  NWNXPushInt(nDomainLevel);
2161  NWNXPushInt(nMetaMagic);
2162  NWNXPushInt(nMultiClass);
2163  NWNXPushInt(nSpellID);
2164  NWNXPushVector(vTargetLocation);
2165  NWNXPushObject(oTarget);
2166  NWNXPushObject(oCreature);
2167  NWNXCall(NWNX_Creature, "AddCastSpellActions");
2168  return NWNXPopInt();
2169 }
2170 
2171 int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature)
2172 {
2173  NWNXPushObject(oTargetCreature);
2174  NWNXPushObject(oCreature);
2175  NWNXCall(NWNX_Creature, "GetIsFlanking");
2176  return NWNXPopInt();
2177 }
2178 
2179 void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel)
2180 {
2181  NWNXPushInt(nSpellLevel);
2182  NWNXPushInt(nClass);
2183  NWNXPushObject(oCreature);
2184  NWNXCall(NWNX_Creature, "DecrementRemainingSpellSlots");
2185 }
2186 
2187 void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel)
2188 {
2189  NWNXPushInt(nSpellLevel);
2190  NWNXPushInt(nClass);
2191  NWNXPushObject(oCreature);
2192  NWNXCall(NWNX_Creature, "IncrementRemainingSpellSlots");
2193 }
2194 
2196 {
2197  NWNXPushObject(oCreature);
2198  NWNXCall(NWNX_Creature, "GetMaximumBonusAttacks");
2199  return NWNXPopInt();
2200 }
2201 
2202 void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE)
2203 {
2204  NWNXPushInt(bPersist);
2205  NWNXPushInt(nMaxBonusAttacks);
2206  NWNXPushObject(oCreature);
2207  NWNXCall(NWNX_Creature, "SetMaximumBonusAttacks");
2208 }
2209 
2210 void NWNX_Creature_DoCleaveAttack(object oCreature)
2211 {
2212  NWNXPushObject(oCreature);
2213  NWNXCall(NWNX_Creature, "DoCleaveAttack");
2214 }
2215 
2217 {
2218  NWNXPushObject(oCreature);
2219  NWNXCall(NWNX_Creature, "GetLockOrientationToObject");
2220  return NWNXPopObject();
2221 }
2222 
2223 void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget)
2224 {
2225  NWNXPushObject(oTarget);
2226  NWNXPushObject(oCreature);
2227  NWNXCall(NWNX_Creature, "SetLockOrientationToObject");
2228 }
2229 
2230 void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE)
2231 {
2232  NWNXPushInt(bMovement);
2233  NWNXPushObject(oSingleCreature);
2234  NWNXPushObject(oCreature);
2235  NWNXCall(NWNX_Creature, "BroadcastAttackOfOpportunity");
2236 }
2237 
2238 int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore)
2239 {
2240  NWNXPushObject(oStore);
2241  NWNXPushObject(oCreature);
2242  NWNXCall(NWNX_Creature, "GetMaxSellToStorePriceOverride");
2243 
2244  return NWNXPopInt();
2245 }
2246 
2247 void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice)
2248 {
2249  NWNXPushInt(nMaxSellToPrice);
2250  NWNXPushObject(oStore);
2251  NWNXPushObject(oCreature);
2252  NWNXCall(NWNX_Creature, "SetMaxSellToStorePriceOverride");
2253 }
2254 
2255 int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel)
2256 {
2257  NWNXPushInt(nLevel);
2258  NWNXPushObject(oCreature);
2259  NWNXCall(NWNX_Creature, "GetAbilityIncreaseByLevel");
2260  return NWNXPopInt();
2261 }
2262 
2263 void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility)
2264 {
2265  NWNXPushInt(nAbility);
2266  NWNXPushInt(nLevel);
2267  NWNXPushObject(oCreature);
2268  NWNXCall(NWNX_Creature, "SetAbilityIncreaseByLevel");
2269 }
2270 
2271 float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget)
2272 {
2273  NWNXPushObject(oTarget);
2274  NWNXPushObject(oCreature);
2275  NWNXCall(NWNX_Creature, "GetMaxAttackRange");
2276  return NWNXPopFloat();
2277 }
2278 
2280 {
2281  NWNXPushObject(oCreature);
2282  NWNXCall(NWNX_Creature, "GetMulticlassLimit");
2283  return NWNXPopInt();
2284 }
2285 
2286 
2287 void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE)
2288 {
2289  NWNXPushInt(bPersist);
2290  NWNXPushInt(nLimit);
2291  NWNXPushObject(oCreature);
2292  NWNXCall(NWNX_Creature, "SetMulticlassLimit");
2293 }
2294 
2295 int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel)
2296 {
2297  NWNXPushInt(nSpellLevel);
2298  NWNXPushInt(nMultiClass);
2299  NWNXPushObject(oCreature);
2300  NWNXCall(NWNX_Creature, "GetNumberOfBonusSpells");
2301  return NWNXPopInt();
2302 }
2303 
2304 void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta)
2305 {
2306  NWNXPushInt(nDelta);
2307  NWNXPushInt(nSpellLevel);
2308  NWNXPushInt(nMultiClass);
2309  NWNXPushObject(oCreature);
2310  NWNXCall(NWNX_Creature, "ModifyNumberBonusSpells");
2311 }
void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist=FALSE)
Sets a caster level modifier for oCreature.
void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility)
Sets the creature's ability increase for nLevel.
const int NWNX_CREATURE_PROJECTILE_VFX_SONIC
const int NWNX_CREATURE_BONUS_TYPE_DAMAGE
int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level)
Gets the maximum spell slots (innate casting) at a class level.
void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature)
Update oCreature's perception of oTargetCreature.
void NWNX_Creature_SetBaseACPolymorph(object creature, int ac)
Sets the AC of a polymorphed creature.
void NWNX_Creature_SetBaseAC(object creature, int ac)
Sets the base AC of a creature.
void NWNX_Creature_SetEncounter(object oCreature, object oEncounter)
Set the encounter source of oCreature.
void NWNX_Creature_JumpToLimbo(object oCreature)
Move a creature to limbo.
float NWNX_Creature_GetCreaturePersonalSpace(object oCreature)
Get a creatures creature personal space (meters from center to other creatures).
int NWNX_Creature_GetArmorCheckPenalty(object oCreature)
Get the skill penalty from wearing armor.
int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel)
Returns the creature's ability increase for nLevel.
const int NWNX_CREATURE_BONUS_TYPE_SAVING_THROW
const int NWNX_CREATURE_MOVEMENT_RATE_IMMOBILE
const int NWNX_CREATURE_MOVEMENT_RATE_VERY_SLOW
void NWNX_Creature_SetChallengeRating(object creature, float fCR)
Sets the creature's challenge rating.
void NWNX_Creature_SetFamiliarCreatureType(object creature, int type)
Set creature's familiar creature type.
void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName)
Set the original first or last name of creature.
const int NWNX_CREATURE_PROJECTILE_VFX_RANDOM
Random Elemental VFX.
void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level)
Removes the creature a feat assigned at a level.
int NWNX_Creature_GetLastItemCasterLevel(object oCreature)
Gets the caster level of the last item used.
const int NWNX_CREATURE_MOVEMENT_TYPE_RUN
void NWNX_Creature_RemoveSpecialAbility(object creature, int index)
Removes a special ability from a creature.
void NWNX_Creature_LevelDown(object creature, int count=1)
Remove last levels from a creature.
void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry)
Works like the tweak but can be turned on and off for all creatures or single ones.
void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand=0, int bPersist=FALSE, int nBaseItem=-1)
Sets the critical hit range modifier for the creature.
void NWNX_Creature_SetSpecialAbility(object creature, int index, struct NWNX_Creature_SpecialAbility ability)
Sets a special ability at the index for the creature.
void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType)
Add oAssociate as nAssociateType to oCreature.
void NWNX_Creature_SetRacialType(object creature, int racialtype)
Sets the creature's racial type.
struct NWNX_Creature_SpecialAbility NWNX_Creature_GetSpecialAbility(object creature, int index)
Returns the creature's special ability at a given index.
float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget)
Returns the creature's maximum attack range to a target.
int NWNX_Creature_GetSpecialAbilityCount(object creature)
Gets the count of special abilities of the creature.
void NWNX_Creature_DoCleaveAttack(object oCreature)
Inserts a cleave or great cleave attack into oCreature's current attack round against the nearest ene...
vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius=20.0f, int bWalkStraightLineRequired=TRUE)
Compute a safe location for oCreature.
const int NWNX_CREATURE_PROJECTILE_VFX_COLD
void NWNX_Creature_SetSpellResistance(object creature, int sr)
Set creature's spell resistance.
int NWNX_Creature_GetFeatRemainingUses(object creature, int feat)
Get feat remaining uses.
int NWNX_Creature_GetIsBartering(object oCreature)
Get if oCreature is currently bartering.
int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType)
Gets a chance for normal Effect Immunities to be bypassed.
void NWNX_Creature_SetSize(object creature, int size)
Sets the creature size.
int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR=FALSE)
Gets the creatures current attacks per round (using equipped weapon).
int NWNX_Creature_GetFlatFooted(object oCreature)
Get whether a creature is flat-footed.
void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level)
Gives the creature a feat assigned at a level.
void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel)
Override the damage level of oCreature.
int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature)
Get whether oCreature is flanking oTargetCreature.
int NWNX_Creature_GetFeatByLevel(object creature, int level, int index)
Returns the feat learned at the level and index.
void NWNX_Creature_SetGold(object creature, int gold)
Sets the creature's gold without sending a feedback message.
void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta)
Modifies the creature's number of bonus spells.
void NWNX_Creature_SetSkillRank(object creature, int skill, int rank)
Set the base ranks in a skill for creature.
int NWNX_Creature_GetBaseAC(object creature)
Gets the base AC of a creature.
float NWNX_Creature_GetHitDistance(object oCreature)
Get a creatures hit distance.
const int NWNX_CREATURE_MOVEMENT_TYPE_STATIONARY
int NWNX_Creature_GetRawAbilityScore(object creature, int ability)
Gets the ability score of the creature.
void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath)
Sets the NoPermanentDeath flag of oCreature.
void NWNX_Creature_SetHeight(object oCreature, float fHeight)
Set a creatures height.
void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace)
Set a creatures creature personal space (meters from center to other creatures).
void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses)
Set feat remaining uses.
void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels=TRUE)
Set the class ID in a particular position for a creature.
int NWNX_Creature_AddCastSpellActions(object oCreature, object oTarget, vector vTargetLocation, int nSpellID, int nMultiClass, int nMetaMagic=METAMAGIC_NONE, int nDomainLevel=0, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstant=FALSE, int bClearActions=FALSE, int bAddToFront=FALSE)
Add a cast spell action to oCreature's action queue.
int NWNX_Creature_GetNoPermanentDeath(object oCreature)
Gets the NoPermanentDeath flag of oCreature.
const int NWNX_CREATURE_BONUS_TYPE_ATTACK
float NWNX_Creature_GetPersonalSpace(object oCreature)
Get a creatures personal space (meters from center to non-creature objects).
int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand=0, int nBaseItem=-1)
Gets the critical hit range modifier for the creature.
int NWNX_Creature_GetSkillPointsRemainingByLevel(object creature, int level)
Gets the creature's remaining unspent skill points for level.
int NWNX_Creature_GetFeatCountByLevel(object creature, int level)
Returns the count of feats learned at the provided level.
int NWNX_Creature_GetMovementType(object creature)
Returns the creature's current movement type.
float NWNX_Creature_GetPreferredAttackDistance(object oCreature)
Get a creatures preferred attack distance.
void NWNX_Creature_RestoreFeats(object creature)
Restore all creature feat uses.
void NWNX_Creature_RestoreSpecialAbilities(object creature)
Restore all creature special ability uses.
void NWNX_Creature_SetAnimalCompanionName(object creature, string name)
Set creature's animal companion's name.
void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist=FALSE)
Override the elemental projectile visual effect of ranged/throwing weapons.
const int NWNX_CREATURE_BONUS_TYPE_SKILL
int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot)
Have oCreature instantly equip oItem to nInventorySlot.
string NWNX_Creature_SerializeQuickbar(object oCreature)
Serialize oCreature's quickbar to a base64 string.
void NWNX_Creature_SetLevelByPosition(object creature, int position, int level)
Set the level at the given position for a creature.
int NWNX_Creature_GetFaction(object oCreature)
Gets the faction id from oCreature.
void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value)
Sets the creature's base save.
const int NWNX_CREATURE_MOVEMENT_TYPE_SIDESTEP
void NWNX_Creature_SetMovementRate(object creature, int rate)
Set creature's movement rate.
void NWNX_Creature_RemoveFeat(object creature, int feat)
Removes a feat from a creature.
const int NWNX_CREATURE_MOVEMENT_RATE_FAST
const int NWNX_CREATURE_MOVEMENT_RATE_NORMAL
int NWNX_Creature_GetShieldCheckPenalty(object oCreature)
Get the skill penalty from wearing a shield.
const int NWNX_CREATURE_ABILITY_NONE
void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints)
Sets the creature's remaining unspent skill points.
int NWNX_Creature_GetInitiativeModifier(object oCreature)
Gets the custom Initiative modifier.
const int NWNX_CREATURE_MOVEMENT_RATE_SLOW
void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel)
Decrements the remaining spell slots (innate casting) at a class level.
const int NWNX_CREATURE_MOVEMENT_RATE_VERY_FAST
void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist=FALSE)
Sets the creature's multiclass limit.
void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value)
Sets the ability score of the creature to the provided value.
int NWNX_Creature_GetAttackBonus(object creature, int isMelee=-1, int isTouchAttack=FALSE, int isOffhand=FALSE, int includeBaseAttackBonus=TRUE)
Returns the creature's highest attack bonus based on its own stats.
int NWNX_Creature_GetWalkAnimation(object oCreature)
Gets the current walk animation of oCreature.
const int NWNX_CREATURE_MOVEMENT_RATE_DM_FAST
void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level)
Set the ranks in a skill for creature assigned at a level.
int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand=0, int nBaseItem=-1)
Gets the critical hit multiplier modifier for the Creature.
void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap)
Sets the creature's maximum movement rate cap.
int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore)
Returns the maximum price oStore will buy items from oCreature for.
void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand=0, int bPersist=FALSE, int nBaseItem=-1)
Sets the critical hit multiplier override for the Creature.
float NWNX_Creature_GetMovementRateFactor(object creature)
Returns the creature's current movement rate factor.
void NWNX_Creature_AddSpecialAbility(object creature, struct NWNX_Creature_SpecialAbility ability)
Adds a special ability to a creature.
object NWNX_Creature_GetBodyBag(object oCreature)
Gets the Body Bag of a creature.
int NWNX_Creature_GetSkillPointsRemaining(object creature)
Gets the creature's remaining unspent skill points.
int NWNX_Creature_GetFeatCount(object creature)
Get the total number of feats known by creature.
void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime)
Sets corpse decay time in milliseconds.
void NWNX_Creature_SetDomain(object creature, int class, int index, int domain)
Sets one of creature's domains.
void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand=0, int bPersist=FALSE, int nBaseItem=-1)
Sets the critical hit range Override for the creature.
int NWNX_Creature_GetMeetsFeatRequirements(object creature, int feat)
Gets if creature meets feat requirements.
void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace)
Set a creatures personal space (meters from center to non-creature objects).
const int NWNX_CREATURE_PROJECTILE_VFX_ELECTRICAL
object NWNX_Creature_GetEncounter(object oCreature)
Get the encounter source of oCreature.
int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass)
Gets the current caster level override for oCreature.
void NWNX_Creature_RestoreItems(object creature)
Restore uses for all items carried by the creature.
void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation)
Sets the current walk animation of oCreature.
void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier)
Changes the attack modifier depending on the dice roll. Used to skip autofail on 1 and autosucceed on...
void NWNX_Creature_SetAlignmentLawChaos(object creature, int value)
Set creature's raw law/chaos alignment value.
int NWNX_Creature_GetClassByLevel(object creature, int level)
Get the class taken by the creature at the provided level.
void NWNX_Creature_SetLastKiller(object oCreature, object oKiller)
Sets the killer of oCreature to oKiller.
const int NWNX_CREATURE_BONUS_TYPE_TOUCH_ATTACK
int NWNX_Creature_RunUnequip(object oCreature, object oItem)
Have oCreature instantly unequip oItem.
string NWNX_Creature_GetOriginalName(object creature, int isLastName)
Get the original first or last name of creature.
void NWNX_Creature_SetFaction(object oCreature, int nFactionId)
Sets oCreatures faction to be the faction with id nFactionId.
void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl)
Sets caster level for the last item used. Use in a spellhook or spell event before to set caster leve...
int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level)
Get the ranks in a skill for creature assigned at a level.
int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand=0, int nBaseItem=-1)
Gets the critical hit multiplier override for the Creature.
int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass)
Gets the current caster level modifier for oCreature.
void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId)
Remove a spell from creature's spellbook for class.
void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist=FALSE)
Sets a caster level override for oCreature.
void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand=0, int bPersist=FALSE, int nBaseItem=-1)
Sets the critical hit multiplier modifier for the Creature.
int NWNX_Creature_GetMulticlassLimit(object oCreature)
Returns the creature's multiclass limit.
int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar)
Deserialize sSerializedQuickbar for oCreature.
void NWNX_Creature_SetSpecialization(object creature, int class, int school)
Sets creature's specialist school.
const int NWNX_CREATURE_MOVEMENT_RATE_DEFAULT
void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist)
Set a creatures preferred attack distance.
int NWNX_Creature_GetFeatTotalUses(object creature, int feat)
Get feat total uses.
const int NWNX_CREATURE_PROJECTILE_VFX_ACID
void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel)
Increments the remaining spell slots (innate casting) at a class level.
int NWNX_Creature_GetMaximumBonusAttacks(object oCreature)
Gets the maximum number of bonus attacks a creature can have from EffectModifyAttacks().
void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate=2000.0f)
Sets the maximum movement rate a creature can have while walking (not running)
float NWNX_Creature_GetMovementRateFactorCap(object creature)
Returns the creature's maximum movement rate cap.
float NWNX_Creature_GetHeight(object oCreature)
Get a creatures height.
const int NWNX_CREATURE_BONUS_TYPE_ABILITY
const int NWNX_CREATURE_MOVEMENT_TYPE_WALK
void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier)
Adjusts the ability score of a creature.
int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level)
Gets the remaining spell slots (innate casting) at a class level's index.
int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE)
Gets the Armor classed of attacked against versus.
int NWNX_Creature_GetDisarmable(object creature)
Get whether the creature can be disarmed.
int NWNX_Creature_GetKnowsFeat(object creature, int feat)
Determines if the creature knows a feat.
int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel)
Gets the creature's number of bonus spells.
int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat)
Get highest level version of feat possessed by creature.
const int NWNX_CREATURE_PROJECTILE_VFX_NONE
No VFX.
void NWNX_Creature_LevelUp(object creature, int class, int count=1, int package=PACKAGE_INVALID)
Add levels of class to the creature, bypassing all validation.
object NWNX_Creature_GetLockOrientationToObject(object oCreature)
Gets the current object oCreature's orientation is locked to.
void NWNX_Creature_AddFeat(object creature, int feat)
Gives the creature a feat.
void NWNX_Creature_SetBaseAttackBonus(object creature, int bab)
Set creature's base attack bonus (BAB).
void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots)
Sets the remaining spell slots (innate casting) at a class level.
const int NWNX_CREATURE_MOVEMENT_TYPE_WALK_BACKWARDS
void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature=OBJECT_INVALID, int bMovement=FALSE)
Causes oCreature to broadcast an Attack of Opportunity against themself.
int NWNX_Creature_GetFeatByIndex(object creature, int index)
Returns the creature's feat at a given index.
void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget)
Locks oCreature's orientation to always face oTarget.
void NWNX_Creature_SetDisarmable(object creature, int disarmable)
Set whether a creature can be disarmed.
void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId)
Add a spell to a creature's spellbook for class.
int NWNX_Creature_GetBaseSavingThrow(object creature, int which)
Gets the creature's base save.
void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice)
Overrides the maximum price oStore will buy items from oCreature for.
void NWNX_Creature_DoItemCastSpell(object oCreature, object oTarget, location locTarget, int nSpellID, int nCasterLevel, float fProjectileTime, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int nProjectileSpellID=-1, object oItem=OBJECT_INVALID, string sImpactScript="")
Instantly cast a spell at a target or location.
const int NWNX_CREATURE_PROJECTILE_VFX_FIRE
int NWNX_Creature_GetFeatGrantLevel(object creature, int feat)
Returns the creature level where the specified feat was learned.
void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value)
Sets the maximum hit points for creature.
int NWNX_Creature_GetTotalEffectBonus(object creature, int bonusType=NWNX_CREATURE_BONUS_TYPE_ATTACK, object target=OBJECT_INVALID, int isElemental=0, int isForceMax=0, int savetype=-1, int saveSpecificType=-1, int skill=-1, int abilityScore=-1, int isOffhand=FALSE)
Get total effect bonus.
void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type)
Set creature's animal companion creature type.
void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance=100, int bPersist=FALSE)
Sets a chance for normal Effect Immunities to be bypassed.
void NWNX_Creature_SetMovementRateFactor(object creature, float rate)
Sets the creature's current movement rate factor.
void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist=FALSE)
Sets the maximum number of bonus attacks a creature can have from EffectModifyAttacks().
int NWNX_Creature_GetBaseACPolymorph(object creature)
Gets the AC of a polymorphed creature.
void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist)
Set a creatures hit distance.
void NWNX_Creature_SetFamiliarName(object creature, string name)
Set creature's familiar's name.
void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist=FALSE)
Sets a custom Initiative modifier.
void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value)
Sets the creature's remaining unspent skill points for level.
const int NWNX_CREATURE_MOVEMENT_RATE_PC
int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand=0, int nBaseItem=-1)
Sets the critical hit range Override for the creature.
int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability)
Gets the raw ability score a polymorphed creature had prior to polymorphing.
void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value)
Set creature's raw good/evil alignment value.
int NWNX_Creature_GetMaxHitPointsByLevel(object creature, int level)
Gets the maximum hit points for creature for level.
A creature special ability.
int level
The level of the ability.
int ready
Whether it can be used.