NWNX:EE  8193.37.15
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 
179 void NWNX_Creature_SetBaseAC(object creature, int ac);
180 
184 int NWNX_Creature_GetBaseAC(object creature);
185 
191 void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value);
192 
198 int NWNX_Creature_GetRawAbilityScore(object creature, int ability);
199 
205 void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier);
206 
212 int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability);
213 
219 int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level);
220 
226 void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots);
227 
233 int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level);
234 
240 void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId);
241 
247 void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId);
248 
253 int NWNX_Creature_GetMaxHitPointsByLevel(object creature, int level);
254 
259 void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value);
260 
264 void NWNX_Creature_SetMovementRate(object creature, int rate);
265 
270 float NWNX_Creature_GetMovementRateFactor(object creature);
271 
276 void NWNX_Creature_SetMovementRateFactor(object creature, float rate);
277 
282 float NWNX_Creature_GetMovementRateFactorCap(object creature);
283 
288 void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap);
289 
293 int NWNX_Creature_GetMovementType(object creature);
294 
300 void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate = 2000.0f);
301 
305 void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value);
306 
310 void NWNX_Creature_SetAlignmentLawChaos(object creature, int value);
311 
316 void NWNX_Creature_SetSkillRank(object creature, int skill, int rank);
317 
323 int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level);
324 
331 void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level);
332 
340 void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE);
341 
348 void NWNX_Creature_SetLevelByPosition(object creature, int position, int level);
349 
359 void NWNX_Creature_SetBaseAttackBonus(object creature, int bab);
360 
366 int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE);
367 
370 void NWNX_Creature_RestoreFeats(object creature);
371 
374 void NWNX_Creature_RestoreSpecialAbilities(object creature);
375 
378 void NWNX_Creature_RestoreItems(object creature);
379 
383 void NWNX_Creature_SetSize(object creature, int size);
384 
388 int NWNX_Creature_GetSkillPointsRemaining(object creature);
389 
393 void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints);
394 
399 int NWNX_Creature_GetSkillPointsRemainingByLevel(object creature, int level);
400 
405 void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value);
406 
410 void NWNX_Creature_SetRacialType(object creature, int racialtype);
411 
415 void NWNX_Creature_SetGold(object creature, int gold);
416 
420 void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime);
421 
427 int NWNX_Creature_GetBaseSavingThrow(object creature, int which);
428 
433 void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value);
434 
441 void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID);
442 
447 void NWNX_Creature_LevelDown(object creature, int count=1);
448 
452 void NWNX_Creature_SetChallengeRating(object creature, float fCR);
453 
466 int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchAttack = FALSE, int isOffhand = FALSE, int includeBaseAttackBonus = TRUE);
467 
473 int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat);
474 
479 int NWNX_Creature_GetFeatRemainingUses(object creature, int feat);
480 
485 int NWNX_Creature_GetFeatTotalUses(object creature, int feat);
486 
491 void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses);
492 
507 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);
508 
514 void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName);
515 
520 string NWNX_Creature_GetOriginalName(object creature, int isLastName);
521 
526 void NWNX_Creature_SetSpellResistance(object creature, int sr);
527 
531 void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type);
532 
536 void NWNX_Creature_SetFamiliarCreatureType(object creature, int type);
537 
541 void NWNX_Creature_SetAnimalCompanionName(object creature, string name);
542 
546 void NWNX_Creature_SetFamiliarName(object creature, string name);
547 
551 int NWNX_Creature_GetDisarmable(object creature);
552 
556 void NWNX_Creature_SetDisarmable(object creature, int disarmable);
557 
563 void NWNX_Creature_SetDomain(object creature, int class, int index, int domain);
564 
569 void NWNX_Creature_SetSpecialization(object creature, int class, int school);
570 
574 void NWNX_Creature_SetFaction(object oCreature, int nFactionId);
575 
579 int NWNX_Creature_GetFaction(object oCreature);
580 
584 int NWNX_Creature_GetFlatFooted(object oCreature);
585 
589 string NWNX_Creature_SerializeQuickbar(object oCreature);
590 
595 int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar);
596 
602 void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist = FALSE);
603 
608 int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass);
609 
615 void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist = FALSE);
616 
621 int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass);
622 
625 void NWNX_Creature_JumpToLimbo(object oCreature);
626 
634 void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
635 
641 int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1);
642 
650 void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
651 
657 int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand = 0, int nBaseItem = -1);
658 
666 void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
667 
673 int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1);
674 
682 void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1);
683 
689 int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int nBaseItem = -1);
690 
696 void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType);
697 
702 void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel);
703 
707 void NWNX_Creature_SetEncounter(object oCreature, object oEncounter);
708 
712 object NWNX_Creature_GetEncounter(object oCreature);
713 
717 int NWNX_Creature_GetIsBartering(object oCreature);
718 
722 void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl);
723 
727 int NWNX_Creature_GetLastItemCasterLevel(object oCreature);
728 
734 int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE);
735 
739 int NWNX_Creature_GetWalkAnimation(object oCreature);
740 
744 void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation);
745 
750 void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier);
751 
756 void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry);
757 
761 int NWNX_Creature_GetNoPermanentDeath(object oCreature);
762 
766 void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath);
767 
774 vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius = 20.0f, int bWalkStraightLineRequired = TRUE);
775 
779 void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature);
780 
784 float NWNX_Creature_GetPersonalSpace(object oCreature);
785 
789 void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace);
790 
794 float NWNX_Creature_GetCreaturePersonalSpace(object oCreature);
795 
799 void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace);
800 
804 float NWNX_Creature_GetHeight(object oCreature);
805 
809 void NWNX_Creature_SetHeight(object oCreature, float fHeight);
810 
814 float NWNX_Creature_GetHitDistance(object oCreature);
815 
819 void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist);
820 
824 float NWNX_Creature_GetPreferredAttackDistance(object oCreature);
825 
829 void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist);
830 
833 int NWNX_Creature_GetArmorCheckPenalty(object oCreature);
834 
837 int NWNX_Creature_GetShieldCheckPenalty(object oCreature);
838 
846 void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE);
847 
852 int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType);
853 
857 void NWNX_Creature_SetLastKiller(object oCreature, object oKiller);
858 
872 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 = "");
873 
879 int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot);
880 
885 int NWNX_Creature_RunUnequip(object oCreature, object oItem);
886 
892 void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE);
893 
900 void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE);
901 
905 int NWNX_Creature_GetInitiativeModifier(object oCreature);
906 
910 object NWNX_Creature_GetBodyBag(object oCreature);
911 
925 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);
926 
931 int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature);
932 
937 void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel);
938 
943 void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel);
944 
948 int NWNX_Creature_GetMaximumBonusAttacks(object oCreature);
949 
956 void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE);
957 
961 void NWNX_Creature_DoCleaveAttack(object oCreature);
962 
966 object NWNX_Creature_GetLockOrientationToObject(object oCreature);
967 
971 void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget);
972 
977 void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE);
978 
983 int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore);
984 
989 void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice);
990 
995 int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel);
996 
1001 void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility);
1002 
1007 float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget);
1008 
1013 int NWNX_Creature_GetMulticlassLimit(object oCreature);
1014 
1024 void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE);
1025 
1030 int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel);
1031 
1037 void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta);
1038 
1040 
1041 void NWNX_Creature_AddFeat(object creature, int feat)
1042 {
1043  NWNXPushInt(feat);
1044  NWNXPushObject(creature);
1045  NWNXCall(NWNX_Creature, "AddFeat");
1046 }
1047 
1048 void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level)
1049 {
1050  NWNXPushInt(level);
1051  NWNXPushInt(feat);
1052  NWNXPushObject(creature);
1053  NWNXCall(NWNX_Creature, "AddFeatByLevel");
1054 }
1055 
1056 void NWNX_Creature_RemoveFeat(object creature, int feat)
1057 {
1058  NWNXPushInt(feat);
1059  NWNXPushObject(creature);
1060  NWNXCall(NWNX_Creature, "RemoveFeat");
1061 }
1062 
1063 void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level)
1064 {
1065  NWNXPushInt(level);
1066  NWNXPushInt(feat);
1067  NWNXPushObject(creature);
1068  NWNXCall(NWNX_Creature, "RemoveFeatByLevel");
1069 }
1070 
1071 int NWNX_Creature_GetKnowsFeat(object creature, int feat)
1072 {
1073  NWNXPushInt(feat);
1074  NWNXPushObject(creature);
1075  NWNXCall(NWNX_Creature, "GetKnowsFeat");
1076  return NWNXPopInt();
1077 }
1078 
1079 int NWNX_Creature_GetFeatCountByLevel(object creature, int level)
1080 {
1081  NWNXPushInt(level);
1082  NWNXPushObject(creature);
1083  NWNXCall(NWNX_Creature, "GetFeatCountByLevel");
1084  return NWNXPopInt();
1085 }
1086 
1087 int NWNX_Creature_GetFeatByLevel(object creature, int level, int index)
1088 {
1089  NWNXPushInt(index);
1090  NWNXPushInt(level);
1091  NWNXPushObject(creature);
1092  NWNXCall(NWNX_Creature, "GetFeatByLevel");
1093  return NWNXPopInt();
1094 }
1095 
1096 int NWNX_Creature_GetFeatCount(object creature)
1097 {
1098  NWNXPushObject(creature);
1099  NWNXCall(NWNX_Creature, "GetFeatCount");
1100  return NWNXPopInt();
1101 }
1102 
1103 int NWNX_Creature_GetFeatGrantLevel(object creature, int feat)
1104 {
1105  NWNXPushInt(feat);
1106  NWNXPushObject(creature);
1107  NWNXCall(NWNX_Creature, "GetFeatGrantLevel");
1108  return NWNXPopInt();
1109 }
1110 
1111 int NWNX_Creature_GetFeatByIndex(object creature, int index)
1112 {
1113  NWNXPushInt(index);
1114  NWNXPushObject(creature);
1115  NWNXCall(NWNX_Creature, "GetFeatByIndex");
1116  return NWNXPopInt();
1117 }
1118 
1119 int NWNX_Creature_GetMeetsFeatRequirements(object creature, int feat)
1120 {
1121  NWNXPushInt(feat);
1122  NWNXPushObject(creature);
1123  NWNXCall(NWNX_Creature, "GetMeetsFeatRequirements");
1124  return NWNXPopInt();
1125 }
1126 
1127 struct NWNX_Creature_SpecialAbility NWNX_Creature_GetSpecialAbility(object creature, int index)
1128 {
1129  struct NWNX_Creature_SpecialAbility ability;
1130  NWNXPushInt(index);
1131  NWNXPushObject(creature);
1132  NWNXCall(NWNX_Creature, "GetSpecialAbility");
1133  ability.level = NWNXPopInt();
1134  ability.ready = NWNXPopInt();
1135  ability.id = NWNXPopInt();
1136  return ability;
1137 }
1138 
1140 {
1141  NWNXPushObject(creature);
1142  NWNXCall(NWNX_Creature, "GetSpecialAbilityCount");
1143  return NWNXPopInt();
1144 }
1145 
1147 {
1148  NWNXPushInt(ability.id);
1149  NWNXPushInt(ability.ready);
1150  NWNXPushInt(ability.level);
1151  NWNXPushObject(creature);
1152  NWNXCall(NWNX_Creature, "AddSpecialAbility");
1153 }
1154 
1155 void NWNX_Creature_RemoveSpecialAbility(object creature, int index)
1156 {
1157  NWNXPushInt(index);
1158  NWNXPushObject(creature);
1159  NWNXCall(NWNX_Creature, "RemoveSpecialAbility");
1160 }
1161 
1162 void NWNX_Creature_SetSpecialAbility(object creature, int index, struct NWNX_Creature_SpecialAbility ability)
1163 {
1164  NWNXPushInt(ability.id);
1165  NWNXPushInt(ability.ready);
1166  NWNXPushInt(ability.level);
1167  NWNXPushInt(index);
1168  NWNXPushObject(creature);
1169  NWNXCall(NWNX_Creature, "SetSpecialAbility");
1170 }
1171 
1172 int NWNX_Creature_GetClassByLevel(object creature, int level)
1173 {
1174  NWNXPushInt(level);
1175  NWNXPushObject(creature);
1176  NWNXCall(NWNX_Creature, "GetClassByLevel");
1177  return NWNXPopInt();
1178 }
1179 
1180 void NWNX_Creature_SetBaseAC(object creature, int ac)
1181 {
1182  NWNXPushInt(ac);
1183  NWNXPushObject(creature);
1184  NWNXCall(NWNX_Creature, "SetBaseAC");
1185 }
1186 
1187 int NWNX_Creature_GetBaseAC(object creature)
1188 {
1189  NWNXPushObject(creature);
1190  NWNXCall(NWNX_Creature, "GetBaseAC");
1191  return NWNXPopInt();
1192 }
1193 
1194 void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value)
1195 {
1196  NWNXPushInt(value);
1197  NWNXPushInt(ability);
1198  NWNXPushObject(creature);
1199  NWNXCall(NWNX_Creature, "SetRawAbilityScore");
1200 }
1201 
1202 int NWNX_Creature_GetRawAbilityScore(object creature, int ability)
1203 {
1204  NWNXPushInt(ability);
1205  NWNXPushObject(creature);
1206  NWNXCall(NWNX_Creature, "GetRawAbilityScore");
1207  return NWNXPopInt();
1208 }
1209 
1210 void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier)
1211 {
1212  NWNXPushInt(modifier);
1213  NWNXPushInt(ability);
1214  NWNXPushObject(creature);
1215  NWNXCall(NWNX_Creature, "ModifyRawAbilityScore");
1216 }
1217 
1218 int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability)
1219 {
1220  NWNXPushInt(ability);
1221  NWNXPushObject(creature);
1222  NWNXCall(NWNX_Creature, "GetPrePolymorphAbilityScore");
1223  return NWNXPopInt();
1224 }
1225 
1226 int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level)
1227 {
1228  NWNXPushInt(level);
1229  NWNXPushInt(class);
1230  NWNXPushObject(creature);
1231  NWNXCall(NWNX_Creature, "GetRemainingSpellSlots");
1232  return NWNXPopInt();
1233 }
1234 
1235 void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots)
1236 {
1237  NWNXPushInt(slots);
1238  NWNXPushInt(level);
1239  NWNXPushInt(class);
1240  NWNXPushObject(creature);
1241  NWNXCall(NWNX_Creature, "SetRemainingSpellSlots");
1242 }
1243 
1244 void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId)
1245 {
1246  NWNXPushInt(spellId);
1247  NWNXPushInt(level);
1248  NWNXPushInt(class);
1249  NWNXPushObject(creature);
1250 
1251  NWNXCall(NWNX_Creature, "RemoveKnownSpell");
1252 }
1253 
1254 void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId)
1255 {
1256  NWNXPushInt(spellId);
1257  NWNXPushInt(level);
1258  NWNXPushInt(class);
1259  NWNXPushObject(creature);
1260  NWNXCall(NWNX_Creature, "AddKnownSpell");
1261 }
1262 
1263 int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level)
1264 {
1265  NWNXPushInt(level);
1266  NWNXPushInt(class);
1267  NWNXPushObject(creature);
1268  NWNXCall(NWNX_Creature, "GetMaxSpellSlots");
1269  return NWNXPopInt();
1270 }
1271 
1272 
1274 {
1275  NWNXPushInt(level);
1276  NWNXPushObject(creature);
1277  NWNXCall(NWNX_Creature, "GetMaxHitPointsByLevel");
1278  return NWNXPopInt();
1279 }
1280 
1281 void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value)
1282 {
1283  NWNXPushInt(value);
1284  NWNXPushInt(level);
1285  NWNXPushObject(creature);
1286  NWNXCall(NWNX_Creature, "SetMaxHitPointsByLevel");
1287 }
1288 
1289 void NWNX_Creature_SetMovementRate(object creature, int rate)
1290 {
1291  NWNXPushInt(rate);
1292  NWNXPushObject(creature);
1293  NWNXCall(NWNX_Creature, "SetMovementRate");
1294 }
1295 
1297 {
1298  NWNXPushObject(creature);
1299  NWNXCall(NWNX_Creature, "GetMovementRateFactor");
1300  return NWNXPopFloat();
1301 }
1302 
1303 void NWNX_Creature_SetMovementRateFactor(object creature, float factor)
1304 {
1305  NWNXPushFloat(factor);
1306  NWNXPushObject(creature);
1307  NWNXCall(NWNX_Creature, "SetMovementRateFactor");
1308 }
1309 
1311 {
1312  NWNXPushObject(creature);
1313  NWNXCall(NWNX_Creature, "GetMovementRateFactorCap");
1314  return NWNXPopFloat();
1315 }
1316 
1317 void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap)
1318 {
1319  NWNXPushFloat(cap);
1320  NWNXPushObject(creature);
1321  NWNXCall(NWNX_Creature, "SetMovementRateFactorCap");
1322 }
1323 
1324 void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value)
1325 {
1326  NWNXPushInt(value);
1327  NWNXPushObject(creature);
1328  NWNXCall(NWNX_Creature, "SetAlignmentGoodEvil");
1329 }
1330 
1331 void NWNX_Creature_SetAlignmentLawChaos(object creature, int value)
1332 {
1333  NWNXPushInt(value);
1334  NWNXPushObject(creature);
1335  NWNXCall(NWNX_Creature, "SetAlignmentLawChaos");
1336 }
1337 
1338 void NWNX_Creature_SetSkillRank(object creature, int skill, int rank)
1339 {
1340  NWNXPushInt(rank);
1341  NWNXPushInt(skill);
1342  NWNXPushObject(creature);
1343  NWNXCall(NWNX_Creature, "SetSkillRank");
1344 }
1345 
1346 int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level)
1347 {
1348  NWNXPushInt(level);
1349  NWNXPushInt(skill);
1350  NWNXPushObject(creature);
1351  NWNXCall(NWNX_Creature, "GetSkillRankByLevel");
1352  return NWNXPopInt();
1353 }
1354 
1355 void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level)
1356 {
1357  NWNXPushInt(level);
1358  NWNXPushInt(rank);
1359  NWNXPushInt(skill);
1360  NWNXPushObject(creature);
1361  NWNXCall(NWNX_Creature, "SetSkillRankByLevel");
1362 }
1363 
1364 void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE)
1365 {
1366  NWNXPushInt(bUpdateLevels);
1367  NWNXPushInt(classID);
1368  NWNXPushInt(position);
1369  NWNXPushObject(creature);
1370  NWNXCall(NWNX_Creature, "SetClassByPosition");
1371 }
1372 
1373 void NWNX_Creature_SetLevelByPosition(object creature, int position, int level)
1374 {
1375  NWNXPushInt(level);
1376  NWNXPushInt(position);
1377  NWNXPushObject(creature);
1378  NWNXCall(NWNX_Creature, "SetLevelByPosition");
1379 }
1380 
1381 void NWNX_Creature_SetBaseAttackBonus(object creature, int bab)
1382 {
1383  NWNXPushInt(bab);
1384  NWNXPushObject(creature);
1385  NWNXCall(NWNX_Creature, "SetBaseAttackBonus");
1386 }
1387 
1388 int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE)
1389 {
1390  NWNXPushInt(bBaseAPR);
1391  NWNXPushObject(creature);
1392  NWNXCall(NWNX_Creature, "GetAttacksPerRound");
1393  return NWNXPopInt();
1394 }
1395 
1396 void NWNX_Creature_RestoreFeats(object creature)
1397 {
1398  NWNXPushObject(creature);
1399  NWNXCall(NWNX_Creature, "RestoreFeats");
1400 }
1401 
1403 {
1404  NWNXPushObject(creature);
1405  NWNXCall(NWNX_Creature, "RestoreSpecialAbilities");
1406 }
1407 
1408 void NWNX_Creature_RestoreItems(object creature)
1409 {
1410  NWNXPushObject(creature);
1411  NWNXCall(NWNX_Creature, "RestoreItems");
1412 }
1413 
1414 void NWNX_Creature_SetSize(object creature, int size)
1415 {
1416  NWNXPushInt(size);
1417  NWNXPushObject(creature);
1418  NWNXCall(NWNX_Creature, "SetSize");
1419 }
1420 
1422 {
1423  NWNXPushObject(creature);
1424  NWNXCall(NWNX_Creature, "GetSkillPointsRemaining");
1425  return NWNXPopInt();
1426 }
1427 
1428 void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints)
1429 {
1430  NWNXPushInt(skillpoints);
1431  NWNXPushObject(creature);
1432  NWNXCall(NWNX_Creature, "SetSkillPointsRemaining");
1433 }
1434 
1436 {
1437  NWNXPushInt(level);
1438  NWNXPushObject(creature);
1439  NWNXCall(NWNX_Creature, "GetSkillPointsRemainingByLevel");
1440  return NWNXPopInt();
1441 }
1442 
1443 void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value)
1444 {
1445  NWNXPushInt(value);
1446  NWNXPushInt(level);
1447  NWNXPushObject(creature);
1448  NWNXCall(NWNX_Creature, "SetSkillPointsRemainingByLevel");
1449 }
1450 
1451 void NWNX_Creature_SetRacialType(object creature, int racialtype)
1452 {
1453  NWNXPushInt(racialtype);
1454  NWNXPushObject(creature);
1455  NWNXCall(NWNX_Creature, "SetRacialType");
1456 }
1457 
1458 int NWNX_Creature_GetMovementType(object creature)
1459 {
1460  NWNXPushObject(creature);
1461  NWNXCall(NWNX_Creature, "GetMovementType");
1462  return NWNXPopInt();
1463 }
1464 
1465 void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate = 2000.0f)
1466 {
1467  NWNXPushFloat(fWalkRate);
1468  NWNXPushObject(creature);
1469  NWNXCall(NWNX_Creature, "SetWalkRateCap");
1470 }
1471 
1472 void NWNX_Creature_SetGold(object creature, int gold)
1473 {
1474  NWNXPushInt(gold);
1475  NWNXPushObject(creature);
1476  NWNXCall(NWNX_Creature, "SetGold");
1477 }
1478 
1479 void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime)
1480 {
1481  NWNXPushInt(nDecayTime);
1482  NWNXPushObject(creature);
1483  NWNXCall(NWNX_Creature, "SetCorpseDecayTime");
1484 }
1485 
1486 int NWNX_Creature_GetBaseSavingThrow(object creature, int which)
1487 {
1488  NWNXPushInt(which);
1489  NWNXPushObject(creature);
1490  NWNXCall(NWNX_Creature, "GetBaseSavingThrow");
1491  return NWNXPopInt();
1492 }
1493 
1494 void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value)
1495 {
1496  NWNXPushInt(value);
1497  NWNXPushInt(which);
1498  NWNXPushObject(creature);
1499  NWNXCall(NWNX_Creature, "SetBaseSavingThrow");
1500 }
1501 
1502 void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID)
1503 {
1504  NWNXPushInt(package);
1505  NWNXPushInt(count);
1506  NWNXPushInt(class);
1507  NWNXPushObject(creature);
1508  NWNXCall(NWNX_Creature, "LevelUp");
1509 }
1510 
1511 void NWNX_Creature_LevelDown(object creature, int count=1)
1512 {
1513  NWNXPushInt(count);
1514  NWNXPushObject(creature);
1515  NWNXCall(NWNX_Creature, "LevelDown");
1516 }
1517 
1518 void NWNX_Creature_SetChallengeRating(object creature, float fCR)
1519 {
1520  NWNXPushFloat(fCR);
1521  NWNXPushObject(creature);
1522  NWNXCall(NWNX_Creature, "SetChallengeRating");
1523 }
1524 
1525 int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchAttack = FALSE, int isOffhand = FALSE, int includeBaseAttackBonus = TRUE)
1526 {
1527  if (isMelee == -1)
1528  {
1529  object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, creature);
1530 
1531  if (GetIsObjectValid(oWeapon))
1532  {
1533  isMelee = !GetWeaponRanged(oWeapon);
1534  }
1535  else
1536  {// Default to melee for unarmed
1537  isMelee = TRUE;
1538  }
1539  }
1540  NWNXPushInt(includeBaseAttackBonus);
1541  NWNXPushInt(isOffhand);
1542  NWNXPushInt(isTouchAttack);
1543  NWNXPushInt(isMelee);
1544  NWNXPushObject(creature);
1545  NWNXCall(NWNX_Creature, "GetAttackBonus");
1546  return NWNXPopInt();
1547 }
1548 
1549 int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat)
1550 {
1551  NWNXPushInt(feat);
1552  NWNXPushObject(creature);
1553  NWNXCall(NWNX_Creature, "GetHighestLevelOfFeat");
1554  return NWNXPopInt();
1555 }
1556 
1557 int NWNX_Creature_GetFeatRemainingUses(object creature, int feat)
1558 {
1559  NWNXPushInt(feat);
1560  NWNXPushObject(creature);
1561  NWNXCall(NWNX_Creature, "GetFeatRemainingUses");
1562  return NWNXPopInt();
1563 }
1564 
1565 int NWNX_Creature_GetFeatTotalUses(object creature, int feat)
1566 {
1567  NWNXPushInt(feat);
1568  NWNXPushObject(creature);
1569  NWNXCall(NWNX_Creature, "GetFeatTotalUses");
1570  return NWNXPopInt();
1571 }
1572 
1573 void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses)
1574 {
1575  NWNXPushInt(uses);
1576  NWNXPushInt(feat);
1577  NWNXPushObject(creature);
1578  NWNXCall(NWNX_Creature, "SetFeatRemainingUses");
1579 }
1580 
1581 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)
1582 {
1583  NWNXPushInt(isOffhand);
1584  NWNXPushInt(abilityScore);
1585  NWNXPushInt(skill);
1586  NWNXPushInt(saveSpecificType);
1587  NWNXPushInt(savetype);
1588  NWNXPushInt(isForceMax);
1589  NWNXPushInt(isElemental);
1590  NWNXPushObject(target);
1591  NWNXPushInt(bonusType);
1592  NWNXPushObject(creature);
1593  NWNXCall(NWNX_Creature, "GetTotalEffectBonus");
1594  return NWNXPopInt();
1595 }
1596 
1597 void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName)
1598 {
1599  NWNXPushInt(isLastName);
1600  NWNXPushString(name);
1601  NWNXPushObject(creature);
1602  NWNXCall(NWNX_Creature, "SetOriginalName");
1603 }
1604 
1605 string NWNX_Creature_GetOriginalName(object creature, int isLastName)
1606 {
1607  NWNXPushInt(isLastName);
1608  NWNXPushObject(creature);
1609  NWNXCall(NWNX_Creature, "GetOriginalName");
1610  return NWNXPopString();
1611 }
1612 
1613 void NWNX_Creature_SetSpellResistance(object creature, int sr)
1614 {
1615  NWNXPushInt(sr);
1616  NWNXPushObject(creature);
1617  NWNXCall(NWNX_Creature, "SetSpellResistance");
1618 }
1619 
1620 void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type)
1621 {
1622  NWNXPushInt(type);
1623  NWNXPushObject(creature);
1624  NWNXCall(NWNX_Creature, "SetAnimalCompanionCreatureType");
1625 }
1626 
1627 void NWNX_Creature_SetFamiliarCreatureType(object creature, int type)
1628 {
1629  NWNXPushInt(type);
1630  NWNXPushObject(creature);
1631  NWNXCall(NWNX_Creature, "SetFamiliarCreatureType");
1632 }
1633 
1634 void NWNX_Creature_SetAnimalCompanionName(object creature, string name)
1635 {
1636  NWNXPushString(name);
1637  NWNXPushObject(creature);
1638  NWNXCall(NWNX_Creature, "SetAnimalCompanionName");
1639 }
1640 
1641 void NWNX_Creature_SetFamiliarName(object creature, string name)
1642 {
1643  NWNXPushString(name);
1644  NWNXPushObject(creature);
1645  NWNXCall(NWNX_Creature, "SetFamiliarName");
1646 }
1647 
1648 int NWNX_Creature_GetDisarmable(object creature)
1649 {
1650  NWNXPushObject(creature);
1651  NWNXCall(NWNX_Creature, "GetDisarmable");
1652  return NWNXPopInt();
1653 }
1654 
1655 void NWNX_Creature_SetDisarmable(object creature, int disarmable)
1656 {
1657  NWNXPushInt(disarmable);
1658  NWNXPushObject(creature);
1659  NWNXCall(NWNX_Creature, "SetDisarmable");
1660 }
1661 
1662 void NWNX_Creature_SetDomain(object creature, int class, int index, int domain)
1663 {
1664  NWNXPushInt(domain);
1665  NWNXPushInt(index);
1666  NWNXPushInt(class);
1667  NWNXPushObject(creature);
1668  NWNXCall(NWNX_Creature, "SetDomain");
1669 }
1670 
1671 void NWNX_Creature_SetSpecialization(object creature, int class, int school)
1672 {
1673  NWNXPushInt(school);
1674  NWNXPushInt(class);
1675  NWNXPushObject(creature);
1676  NWNXCall(NWNX_Creature, "SetSpecialization");
1677 }
1678 
1679 void NWNX_Creature_SetFaction(object oCreature, int nFactionId)
1680 {
1681  NWNXPushInt(nFactionId);
1682  NWNXPushObject(oCreature);
1683  NWNXCall(NWNX_Creature, "SetFaction");
1684 }
1685 
1686 int NWNX_Creature_GetFaction(object oCreature)
1687 {
1688  NWNXPushObject(oCreature);
1689  NWNXCall(NWNX_Creature, "GetFaction");
1690  return NWNXPopInt();
1691 }
1692 
1693 int NWNX_Creature_GetFlatFooted(object oCreature)
1694 {
1695  NWNXPushObject(oCreature);
1696  NWNXCall(NWNX_Creature, "GetFlatFooted");
1697  return NWNXPopInt();
1698 }
1699 
1700 string NWNX_Creature_SerializeQuickbar(object oCreature)
1701 {
1702  NWNXPushObject(oCreature);
1703  NWNXCall(NWNX_Creature, "SerializeQuickbar");
1704  return NWNXPopString();
1705 }
1706 
1707 int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar)
1708 {
1709  NWNXPushString(sSerializedQuickbar);
1710  NWNXPushObject(oCreature);
1711  NWNXCall(NWNX_Creature, "DeserializeQuickbar");
1712  return NWNXPopInt();
1713 }
1714 
1715 void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist = FALSE)
1716 {
1717  NWNXPushInt(bPersist);
1718  NWNXPushInt(nModifier);
1719  NWNXPushInt(nClass);
1720  NWNXPushObject(oCreature);
1721  NWNXCall(NWNX_Creature, "SetCasterLevelModifier");
1722 }
1723 
1724 int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass)
1725 {
1726  NWNXPushInt(nClass);
1727  NWNXPushObject(oCreature);
1728  NWNXCall(NWNX_Creature, "GetCasterLevelModifier");
1729  return NWNXPopInt();
1730 }
1731 
1732 void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist = FALSE)
1733 {
1734  NWNXPushInt(bPersist);
1735  NWNXPushInt(nCasterLevel);
1736  NWNXPushInt(nClass);
1737  NWNXPushObject(oCreature);
1738  NWNXCall(NWNX_Creature, "SetCasterLevelOverride");
1739 }
1740 
1741 int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass)
1742 {
1743  NWNXPushInt(nClass);
1744  NWNXPushObject(oCreature);
1745  NWNXCall(NWNX_Creature, "GetCasterLevelOverride");
1746  return NWNXPopInt();
1747 }
1748 
1749 void NWNX_Creature_JumpToLimbo(object oCreature)
1750 {
1751  NWNXPushObject(oCreature);
1752  NWNXCall(NWNX_Creature, "JumpToLimbo");
1753 }
1754 
1755 void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1756 {
1757  NWNXPushInt(nBaseItem);
1758  NWNXPushInt(bPersist);
1759  NWNXPushInt(nHand);
1760  NWNXPushInt(nModifier);
1761  NWNXPushObject(oCreature);
1762  NWNXCall(NWNX_Creature, "SetCriticalMultiplierModifier");
1763 }
1764 
1765 int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1)
1766 {
1767  NWNXPushInt(nBaseItem);
1768  NWNXPushInt(nHand);
1769  NWNXPushObject(oCreature);
1770  NWNXCall(NWNX_Creature, "GetCriticalMultiplierModifier");
1771  return NWNXPopInt();
1772 }
1773 
1774 void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1775 {
1776  NWNXPushInt(nBaseItem);
1777  NWNXPushInt(bPersist);
1778  NWNXPushInt(nHand);
1779  NWNXPushInt(nOverride);
1780  NWNXPushObject(oCreature);
1781  NWNXCall(NWNX_Creature, "SetCriticalMultiplierOverride");
1782 }
1783 
1784 int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand = 0, int nBaseItem = -1)
1785 {
1786  NWNXPushInt(nBaseItem);
1787  NWNXPushInt(nHand);
1788  NWNXPushObject(oCreature);
1789  NWNXCall(NWNX_Creature, "GetCriticalMultiplierOverride");
1790  return NWNXPopInt();
1791 }
1792 
1793 void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1794 {
1795  NWNXPushInt(nBaseItem);
1796  NWNXPushInt(bPersist);
1797  NWNXPushInt(nHand);
1798  NWNXPushInt(nModifier);
1799  NWNXPushObject(oCreature);
1800  NWNXCall(NWNX_Creature, "SetCriticalRangeModifier");
1801 }
1802 
1803 int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1)
1804 {
1805  NWNXPushInt(nBaseItem);
1806  NWNXPushInt(nHand);
1807  NWNXPushObject(oCreature);
1808 
1809  NWNXCall(NWNX_Creature, "GetCriticalRangeModifier");
1810  return NWNXPopInt();
1811 }
1812 
1813 void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1)
1814 {
1815  NWNXPushInt(nBaseItem);
1816  NWNXPushInt(bPersist);
1817  NWNXPushInt(nHand);
1818  NWNXPushInt(nOverride);
1819  NWNXPushObject(oCreature);
1820  NWNXCall(NWNX_Creature, "SetCriticalRangeOverride");
1821 }
1822 
1823 int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int nBaseItem = -1)
1824 {
1825  NWNXPushInt(nBaseItem);
1826  NWNXPushInt(nHand);
1827  NWNXPushObject(oCreature);
1828 
1829  NWNXCall(NWNX_Creature, "GetCriticalRangeOverride");
1830  return NWNXPopInt();
1831 }
1832 
1833 void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType)
1834 {
1835  NWNXPushInt(nAssociateType);
1836  NWNXPushObject(oAssociate);
1837  NWNXPushObject(oCreature);
1838 
1839  NWNXCall(NWNX_Creature, "AddAssociate");
1840 }
1841 
1842 void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel)
1843 {
1844  NWNXPushInt(nDamageLevel);
1845  NWNXPushObject(oCreature);
1846  NWNXCall(NWNX_Creature, "OverrideDamageLevel");
1847 }
1848 
1849 void NWNX_Creature_SetEncounter(object oCreature, object oEncounter)
1850 {
1851  NWNXPushObject(oEncounter);
1852  NWNXPushObject(oCreature);
1853  NWNXCall(NWNX_Creature, "SetEncounter");
1854 }
1855 
1856 object NWNX_Creature_GetEncounter(object oCreature)
1857 {
1858  NWNXPushObject(oCreature);
1859  NWNXCall(NWNX_Creature, "GetEncounter");
1860  return NWNXPopObject();
1861 }
1862 
1863 int NWNX_Creature_GetIsBartering(object oCreature)
1864 {
1865  NWNXPushObject(oCreature);
1866  NWNXCall(NWNX_Creature, "GetIsBartering");
1867  return NWNXPopInt();
1868 }
1869 
1870 void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl)
1871 {
1872  NWNXPushInt(nCasterLvl);
1873  NWNXPushObject(oCreature);
1874  NWNXCall(NWNX_Creature, "SetLastItemCasterLevel");
1875 }
1876 
1877 
1879 {
1880  NWNXPushObject(oCreature);
1881  NWNXCall(NWNX_Creature, "GetLastItemCasterLevel");
1882  return NWNXPopInt();
1883 }
1884 
1885 int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE)
1886 {
1887  NWNXPushInt(nTouch);
1888  NWNXPushObject(oVersus);
1889  NWNXPushObject(oAttacked);
1890  NWNXCall(NWNX_Creature, "GetArmorClassVersus");
1891  return NWNXPopInt();
1892 }
1893 
1894 int NWNX_Creature_GetWalkAnimation(object oCreature)
1895 {
1896  NWNXPushObject(oCreature);
1897  NWNXCall(NWNX_Creature, "GetWalkAnimation");
1898  return NWNXPopInt();
1899 }
1900 
1901 void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation)
1902 {
1903  NWNXPushInt(nAnimation);
1904  NWNXPushObject(oCreature);
1905  NWNXCall(NWNX_Creature, "SetWalkAnimation");
1906 }
1907 
1908 void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier)
1909 {
1910  NWNXPushInt(nModifier);
1911  NWNXPushInt(nRoll);
1912  NWNXPushObject(oCreature);
1913  NWNXCall(NWNX_Creature, "SetAttackRollOverride");
1914 }
1915 
1916 void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry)
1917 {
1918  NWNXPushInt(bParry);
1919  NWNXPushObject(oCreature);
1920  NWNXCall(NWNX_Creature, "SetParryAllAttacks");
1921 }
1922 
1924 {
1925  NWNXPushObject(oCreature);
1926  NWNXCall(NWNX_Creature, "GetNoPermanentDeath");
1927  return NWNXPopInt();
1928 }
1929 
1930 void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath)
1931 {
1932  NWNXPushInt(bNoPermanentDeath);
1933  NWNXPushObject(oCreature);
1934  NWNXCall(NWNX_Creature, "SetNoPermanentDeath");
1935 }
1936 
1937 vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius = 20.0f, int bWalkStraightLineRequired = TRUE)
1938 {
1939  NWNXPushInt(bWalkStraightLineRequired);
1940  NWNXPushFloat(fRadius);
1941  NWNXPushVector(vPosition);
1942  NWNXPushObject(oCreature);
1943  NWNXCall(NWNX_Creature, "ComputeSafeLocation");
1944  return NWNXPopVector();
1945 }
1946 
1947 void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature)
1948 {
1949  NWNXPushObject(oTargetCreature);
1950  NWNXPushObject(oCreature);
1951  NWNXCall(NWNX_Creature, "DoPerceptionUpdateOnCreature");
1952 }
1953 
1954 float NWNX_Creature_GetPersonalSpace(object oCreature)
1955 {
1956  NWNXPushObject(oCreature);
1957  NWNXCall(NWNX_Creature, "GetPersonalSpace");
1958  return NWNXPopFloat();
1959 }
1960 
1961 void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace)
1962 {
1963  NWNXPushFloat(fPerspace);
1964  NWNXPushObject(oCreature);
1965  NWNXCall(NWNX_Creature, "SetPersonalSpace");
1966 }
1967 
1969 {
1970  NWNXPushObject(oCreature);
1971  NWNXCall(NWNX_Creature, "GetCreaturePersonalSpace");
1972  return NWNXPopFloat();
1973 }
1974 
1975 void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace)
1976 {
1977  NWNXPushFloat(fCrePerspace);
1978  NWNXPushObject(oCreature);
1979  NWNXCall(NWNX_Creature, "SetCreaturePersonalSpace");
1980 }
1981 
1982 float NWNX_Creature_GetHeight(object oCreature)
1983 {
1984  NWNXPushObject(oCreature);
1985  NWNXCall(NWNX_Creature, "GetHeight");
1986  return NWNXPopFloat();
1987 }
1988 
1989 void NWNX_Creature_SetHeight(object oCreature, float fHeight)
1990 {
1991  NWNXPushFloat(fHeight);
1992  NWNXPushObject(oCreature);
1993  NWNXCall(NWNX_Creature, "SetHeight");
1994 }
1995 
1996 float NWNX_Creature_GetHitDistance(object oCreature)
1997 {
1998  NWNXPushObject(oCreature);
1999  NWNXCall(NWNX_Creature, "GetHitDistance");
2000  return NWNXPopFloat();
2001 }
2002 
2003 void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist)
2004 {
2005  NWNXPushFloat(fHitDist);
2006  NWNXPushObject(oCreature);
2007  NWNXCall(NWNX_Creature, "SetHitDistance");
2008 }
2009 
2011 {
2012  NWNXPushObject(oCreature);
2013  NWNXCall(NWNX_Creature, "GetPreferredAttackDistance");
2014  return NWNXPopFloat();
2015 }
2016 
2017 void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist)
2018 {
2019  NWNXPushFloat(fPrefAtckDist);
2020  NWNXPushObject(oCreature);
2021  NWNXCall(NWNX_Creature, "SetPreferredAttackDistance");
2022 }
2023 
2025 {
2026  NWNXPushObject(oCreature);
2027  NWNXCall(NWNX_Creature, "GetArmorCheckPenalty");
2028  return NWNXPopInt();
2029 }
2030 
2032 {
2033  NWNXPushObject(oCreature);
2034  NWNXCall(NWNX_Creature, "GetShieldCheckPenalty");
2035  return NWNXPopInt();
2036 }
2037 
2038 void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE)
2039 {
2040  NWNXPushInt(bPersist);
2041  NWNXPushInt(nChance);
2042  NWNXPushInt(nImmunityType);
2043  NWNXPushObject(oCreature);
2044  NWNXCall(NWNX_Creature, "SetBypassEffectImmunity");
2045 }
2046 
2047 int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType)
2048 {
2049  NWNXPushInt(nImmunityType);
2050  NWNXPushObject(oCreature);
2051  NWNXCall(NWNX_Creature, "GetBypassEffectImmunity");
2052  return NWNXPopInt();
2053 }
2054 
2055 void NWNX_Creature_SetLastKiller(object oCreature, object oKiller)
2056 {
2057  NWNXPushObject(oKiller);
2058  NWNXPushObject(oCreature);
2059  NWNXCall(NWNX_Creature, "SetLastKiller");
2060 }
2061 
2062 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 = "")
2063 {
2064  NWNXPushString(sImpactScript);
2065  NWNXPushObject(oItem);
2066  NWNXPushInt(nProjectileSpellID);
2067  NWNXPushInt(nProjectilePathType);
2068  NWNXPushFloat(fProjectileTime);
2069  NWNXPushInt(nCasterLevel);
2070  NWNXPushInt(nSpellID);
2071  NWNXPushLocation(locTarget);
2072  NWNXPushObject(oTarget);
2073  NWNXPushObject(oCreature);
2074  NWNXCall(NWNX_Creature, "DoItemCastSpell");
2075 }
2076 
2077 int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot)
2078 {
2079  NWNXPushInt(nInventorySlot);
2080  NWNXPushObject(oItem);
2081  NWNXPushObject(oCreature);
2082  NWNXCall(NWNX_Creature, "RunEquip");
2083  return NWNXPopInt();
2084 }
2085 
2086 int NWNX_Creature_RunUnequip(object oCreature, object oItem)
2087 {
2088  NWNXPushObject(oItem);
2089  NWNXPushObject(oCreature);
2090  NWNXCall(NWNX_Creature, "RunUnequip");
2091  return NWNXPopInt();
2092 }
2093 
2094 void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE)
2095 {
2096  NWNXPushInt(bPersist);
2097  NWNXPushInt(nProjectileVFX);
2098  NWNXPushObject(oCreature);
2099  NWNXCall(NWNX_Creature, "OverrideRangedProjectileVFX");
2100 }
2101 
2102 void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE)
2103 {
2104  NWNXPushInt(bPersist);
2105  NWNXPushInt(nMod);
2106  NWNXPushObject(oCreature);
2107  NWNXCall(NWNX_Creature, "SetInitiativeModifier");
2108 }
2109 
2111 {
2112  NWNXPushObject(oCreature);
2113  NWNXCall(NWNX_Creature, "GetInitiativeModifier");
2114  return NWNXPopInt();
2115 }
2116 
2117 object NWNX_Creature_GetBodyBag(object oCreature)
2118 {
2119  NWNXPushObject(oCreature);
2120  NWNXCall(NWNX_Creature, "GetBodyBag");
2121  return NWNXPopObject();
2122 }
2123 
2124 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)
2125 {
2126  NWNXPushInt(bAddToFront);
2127  NWNXPushInt(bClearActions);
2128  NWNXPushInt(bInstant);
2129  NWNXPushInt(nProjectilePathType);
2130  NWNXPushInt(nDomainLevel);
2131  NWNXPushInt(nMetaMagic);
2132  NWNXPushInt(nMultiClass);
2133  NWNXPushInt(nSpellID);
2134  NWNXPushVector(vTargetLocation);
2135  NWNXPushObject(oTarget);
2136  NWNXPushObject(oCreature);
2137  NWNXCall(NWNX_Creature, "AddCastSpellActions");
2138  return NWNXPopInt();
2139 }
2140 
2141 int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature)
2142 {
2143  NWNXPushObject(oTargetCreature);
2144  NWNXPushObject(oCreature);
2145  NWNXCall(NWNX_Creature, "GetIsFlanking");
2146  return NWNXPopInt();
2147 }
2148 
2149 void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel)
2150 {
2151  NWNXPushInt(nSpellLevel);
2152  NWNXPushInt(nClass);
2153  NWNXPushObject(oCreature);
2154  NWNXCall(NWNX_Creature, "DecrementRemainingSpellSlots");
2155 }
2156 
2157 void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel)
2158 {
2159  NWNXPushInt(nSpellLevel);
2160  NWNXPushInt(nClass);
2161  NWNXPushObject(oCreature);
2162  NWNXCall(NWNX_Creature, "IncrementRemainingSpellSlots");
2163 }
2164 
2166 {
2167  NWNXPushObject(oCreature);
2168  NWNXCall(NWNX_Creature, "GetMaximumBonusAttacks");
2169  return NWNXPopInt();
2170 }
2171 
2172 void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE)
2173 {
2174  NWNXPushInt(bPersist);
2175  NWNXPushInt(nMaxBonusAttacks);
2176  NWNXPushObject(oCreature);
2177  NWNXCall(NWNX_Creature, "SetMaximumBonusAttacks");
2178 }
2179 
2180 void NWNX_Creature_DoCleaveAttack(object oCreature)
2181 {
2182  NWNXPushObject(oCreature);
2183  NWNXCall(NWNX_Creature, "DoCleaveAttack");
2184 }
2185 
2187 {
2188  NWNXPushObject(oCreature);
2189  NWNXCall(NWNX_Creature, "GetLockOrientationToObject");
2190  return NWNXPopObject();
2191 }
2192 
2193 void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget)
2194 {
2195  NWNXPushObject(oTarget);
2196  NWNXPushObject(oCreature);
2197  NWNXCall(NWNX_Creature, "SetLockOrientationToObject");
2198 }
2199 
2200 void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE)
2201 {
2202  NWNXPushInt(bMovement);
2203  NWNXPushObject(oSingleCreature);
2204  NWNXPushObject(oCreature);
2205  NWNXCall(NWNX_Creature, "BroadcastAttackOfOpportunity");
2206 }
2207 
2208 int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore)
2209 {
2210  NWNXPushObject(oStore);
2211  NWNXPushObject(oCreature);
2212  NWNXCall(NWNX_Creature, "GetMaxSellToStorePriceOverride");
2213 
2214  return NWNXPopInt();
2215 }
2216 
2217 void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice)
2218 {
2219  NWNXPushInt(nMaxSellToPrice);
2220  NWNXPushObject(oStore);
2221  NWNXPushObject(oCreature);
2222  NWNXCall(NWNX_Creature, "SetMaxSellToStorePriceOverride");
2223 }
2224 
2225 int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel)
2226 {
2227  NWNXPushInt(nLevel);
2228  NWNXPushObject(oCreature);
2229  NWNXCall(NWNX_Creature, "GetAbilityIncreaseByLevel");
2230  return NWNXPopInt();
2231 }
2232 
2233 void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility)
2234 {
2235  NWNXPushInt(nAbility);
2236  NWNXPushInt(nLevel);
2237  NWNXPushObject(oCreature);
2238  NWNXCall(NWNX_Creature, "SetAbilityIncreaseByLevel");
2239 }
2240 
2241 float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget)
2242 {
2243  NWNXPushObject(oTarget);
2244  NWNXPushObject(oCreature);
2245  NWNXCall(NWNX_Creature, "GetMaxAttackRange");
2246  return NWNXPopFloat();
2247 }
2248 
2250 {
2251  NWNXPushObject(oCreature);
2252  NWNXCall(NWNX_Creature, "GetMulticlassLimit");
2253  return NWNXPopInt();
2254 }
2255 
2256 
2257 void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE)
2258 {
2259  NWNXPushInt(bPersist);
2260  NWNXPushInt(nLimit);
2261  NWNXPushObject(oCreature);
2262  NWNXCall(NWNX_Creature, "SetMulticlassLimit");
2263 }
2264 
2265 int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel)
2266 {
2267  NWNXPushInt(nSpellLevel);
2268  NWNXPushInt(nMultiClass);
2269  NWNXPushObject(oCreature);
2270  NWNXCall(NWNX_Creature, "GetNumberOfBonusSpells");
2271  return NWNXPopInt();
2272 }
2273 
2274 void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta)
2275 {
2276  NWNXPushInt(nDelta);
2277  NWNXPushInt(nSpellLevel);
2278  NWNXPushInt(nMultiClass);
2279  NWNXPushObject(oCreature);
2280  NWNXCall(NWNX_Creature, "ModifyNumberBonusSpells");
2281 }
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_SetBaseAC(object creature, int ac)
Sets the base AC for the 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)
Get the base AC for the 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().
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.