public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, FEAT_POINT_BLANK_SHOT); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, _.FEAT_CIRCLE_KICK); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.PowerAttack); NWNXCreature.RemoveFeat(creature, Feat.ImprovedPowerAttack); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, FEAT_CALLED_SHOT); }
public static void InitializePlayer(NWPlayer player) { if (player == null) { throw new ArgumentNullException(nameof(player)); } if (!player.IsPlayer) { return; } // Player is initialized but not in the DB. Wipe the tag and rerun them through initialization - something went wrong before. if (player.IsInitializedAsPlayer) { if (!DataService.Player.ExistsByID(player.GlobalID)) { SetTag(player, string.Empty); } } if (!player.IsInitializedAsPlayer) { player.DestroyAllInventoryItems(); player.InitializePlayer(); AssignCommand(player, () => _.TakeGoldFromCreature(GetGold(player), player, true)); DelayCommand(0.5f, () => { GiveGoldToCreature(player, 100); }); // Capture original stats before we level up the player. int str = NWNXCreature.GetRawAbilityScore(player, AbilityType.Strength); int con = NWNXCreature.GetRawAbilityScore(player, AbilityType.Constitution); int dex = NWNXCreature.GetRawAbilityScore(player, AbilityType.Dexterity); int @int = NWNXCreature.GetRawAbilityScore(player, AbilityType.Intelligence); int wis = NWNXCreature.GetRawAbilityScore(player, AbilityType.Wisdom); int cha = NWNXCreature.GetRawAbilityScore(player, AbilityType.Charisma); // Take player to level 5 in NWN levels so that we have access to more HP slots GiveXPToCreature(player, 10000); for (int level = 1; level <= 5; level++) { LevelUpHenchman(player, player.Class1); } // Set stats back to how they were on entry. NWNXCreature.SetRawAbilityScore(player, AbilityType.Strength, str); NWNXCreature.SetRawAbilityScore(player, AbilityType.Constitution, con); NWNXCreature.SetRawAbilityScore(player, AbilityType.Dexterity, dex); NWNXCreature.SetRawAbilityScore(player, AbilityType.Intelligence, @int); NWNXCreature.SetRawAbilityScore(player, AbilityType.Wisdom, wis); NWNXCreature.SetRawAbilityScore(player, AbilityType.Charisma, cha); NWItem knife = (CreateItemOnObject("survival_knife", player)); knife.Name = player.Name + "'s Survival Knife"; knife.IsCursed = true; DurabilityService.SetMaxDurability(knife, 5); DurabilityService.SetDurability(knife, 5); NWItem book = (CreateItemOnObject("player_guide", player)); book.Name = player.Name + "'s Player Guide"; book.IsCursed = true; NWItem dyeKit = (CreateItemOnObject("tk_omnidye", player)); dyeKit.IsCursed = true; int numberOfFeats = NWNXCreature.GetFeatCount(player); for (int currentFeat = numberOfFeats; currentFeat >= 0; currentFeat--) { NWNXCreature.RemoveFeat(player, NWNXCreature.GetFeatByIndex(player, currentFeat - 1)); } NWNXCreature.AddFeatByLevel(player, Feat.ArmorProficiencyLight, 1); NWNXCreature.AddFeatByLevel(player, Feat.ArmorProficiencyMedium, 1); NWNXCreature.AddFeatByLevel(player, Feat.ArmorProficiencyHeavy, 1); NWNXCreature.AddFeatByLevel(player, Feat.ShieldProficiency, 1); NWNXCreature.AddFeatByLevel(player, Feat.WeaponProficiencyExotic, 1); NWNXCreature.AddFeatByLevel(player, Feat.WeaponProficiencyMartial, 1); NWNXCreature.AddFeatByLevel(player, Feat.WeaponProficiencySimple, 1); NWNXCreature.AddFeatByLevel(player, Feat.UncannyDodge1, 1); NWNXCreature.AddFeatByLevel(player, Feat.StructureManagementTool, 1); NWNXCreature.AddFeatByLevel(player, Feat.OpenRestMenu, 1); NWNXCreature.AddFeatByLevel(player, Feat.RenameCraftedItem, 1); NWNXCreature.AddFeatByLevel(player, Feat.ChatCommandTargeter, 1); foreach (var skillType in Enum.GetValues(typeof(Skill))) { var skill = (Skill)skillType; if (skill == Skill.Invalid || skill == Skill.AllSkills) { continue; } NWNXCreature.SetSkillRank(player, skill, 0); } SetFortitudeSavingThrow(player, 0); SetReflexSavingThrow(player, 0); SetWillSavingThrow(player, 0); var classType = GetClassByPosition(1, player); for (int index = 0; index <= 255; index++) { NWNXCreature.RemoveKnownSpell(player, classType, 0, index); } Player entity = CreateDBPCEntity(player); DataService.SubmitDataChange(entity, DatabaseActionType.Insert); var skills = DataService.Skill.GetAll(); foreach (var skill in skills) { var pcSkill = new PCSkill { IsLocked = false, SkillID = skill.ID, PlayerID = entity.ID, Rank = 0, XP = 0 }; DataService.SubmitDataChange(pcSkill, DatabaseActionType.Insert); } RaceService.ApplyDefaultAppearance(player); NWNXCreature.SetAlignmentLawChaos(player, 50); NWNXCreature.SetAlignmentGoodEvil(player, 50); BackgroundService.ApplyBackgroundBonuses(player); PlayerStatService.ApplyStatChanges(player, null, true); LanguageService.InitializePlayerLanguages(player); DelayCommand(1.0f, () => ApplyEffectToObject(DurationType.Instant, EffectHeal(999), player)); InitializeHotBar(player); } }
private void RemoveFeats(NWCreature creature) { NWNXCreature.RemoveFeat(creature, FEAT_TWO_WEAPON_FIGHTING); NWNXCreature.RemoveFeat(creature, FEAT_AMBIDEXTERITY); NWNXCreature.RemoveFeat(creature, FEAT_IMPROVED_TWO_WEAPON_FIGHTING); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.RapidReload); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.Dodge); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, _.FEAT_MOBILITY); }
private void RemoveAllFeats(NWCreature creature) { NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_BASTARD_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_BATTLE_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_CLUB); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_DAGGER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_DART); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_DIRE_MACE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_DOUBLE_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_DWAXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_GREAT_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_GREAT_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_HALBERD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_HAND_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_HEAVY_CROSSBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_HEAVY_FLAIL); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_KAMA); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_KATANA); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_KUKRI); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_LIGHT_CROSSBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_LIGHT_FLAIL); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_LIGHT_HAMMER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_LIGHT_MACE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_LONGBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_LONG_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_MORNING_STAR); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_RAPIER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SCIMITAR); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SCYTHE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SHORTBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SHORT_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SHURIKEN); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SICKLE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SLING); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_SPEAR); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_STAFF); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_THROWING_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_TRIDENT); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_TWO_BLADED_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_WAR_HAMMER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_FOCUS_WHIP); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_BASTARD_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_BATTLE_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_CLUB); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_DAGGER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_DART); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_DIRE_MACE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_DOUBLE_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_DWAXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_GREAT_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_GREAT_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_HALBERD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_HAND_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_HEAVY_CROSSBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_HEAVY_FLAIL); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_KAMA); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_KATANA); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_KUKRI); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_LIGHT_CROSSBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_LIGHT_FLAIL); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_LIGHT_HAMMER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_LIGHT_MACE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_LONGBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_LONG_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_MORNING_STAR); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_RAPIER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SCIMITAR); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SCYTHE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SHORTBOW); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SHORT_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SHURIKEN); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SICKLE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SLING); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_SPEAR); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_STAFF); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_THROWING_AXE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_TRIDENT); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_TWO_BLADED_SWORD); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_UNARMED_STRIKE); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_WAR_HAMMER); NWNXCreature.RemoveFeat(creature, FEAT_WEAPON_SPECIALIZATION_WHIP); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, _.FEAT_WEAPON_FINESSE); }
public void OnRemoved(NWPlayer oPC) { NWNXCreature.RemoveFeat(oPC, (int)CustomFeatType.Provoke); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.Expertise); }
public void OnRemoved(NWPlayer oPC) { NWNXCreature.RemoveFeat(oPC, _.FEAT_RAPID_SHOT); }
private void RemoveFeats(NWPlayer oPC) { NWNXCreature.RemoveFeat(oPC, FEAT_TWO_WEAPON_FIGHTING); NWNXCreature.RemoveFeat(oPC, FEAT_AMBIDEXTERITY); NWNXCreature.RemoveFeat(oPC, FEAT_IMPROVED_TWO_WEAPON_FIGHTING); }
public void OnRemoved(NWPlayer oPC) { NWNXCreature.RemoveFeat(oPC, _.FEAT_OPPORTUNIST); }
public void OnRemoved(NWPlayer oPC) { NWNXCreature.RemoveFeat(oPC, _.FEAT_ZEN_ARCHERY); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.Opportunist); }
public static void InitializePlayer(NWPlayer player) { if (player == null) { throw new ArgumentNullException(nameof(player)); } if (player.Object == null) { throw new ArgumentNullException(nameof(player.Object)); } if (!player.IsPlayer) { return; } // Player is initialized but not in the DB. Wipe the tag and rerun them through initialization - something went wrong before. if (player.IsInitializedAsPlayer) { if (DataService.GetAll <Player>().SingleOrDefault(x => x.ID == player.GlobalID) == null) { _.SetTag(player, string.Empty); } } if (!player.IsInitializedAsPlayer) { player.DestroyAllInventoryItems(); player.InitializePlayer(); _.AssignCommand(player, () => _.TakeGoldFromCreature(_.GetGold(player), player, 1)); _.DelayCommand(0.5f, () => { _.GiveGoldToCreature(player, 100); }); // Capture original stats before we level up the player. int str = NWNXCreature.GetRawAbilityScore(player, ABILITY_STRENGTH); int con = NWNXCreature.GetRawAbilityScore(player, ABILITY_CONSTITUTION); int dex = NWNXCreature.GetRawAbilityScore(player, ABILITY_DEXTERITY); int @int = NWNXCreature.GetRawAbilityScore(player, ABILITY_INTELLIGENCE); int wis = NWNXCreature.GetRawAbilityScore(player, ABILITY_WISDOM); int cha = NWNXCreature.GetRawAbilityScore(player, ABILITY_CHARISMA); // Take player to level 5 in NWN levels so that we have access to more HP slots _.GiveXPToCreature(player, 10000); for (int level = 1; level <= 5; level++) { _.LevelUpHenchman(player, player.Class1); } // Set stats back to how they were on entry. NWNXCreature.SetRawAbilityScore(player, ABILITY_STRENGTH, str); NWNXCreature.SetRawAbilityScore(player, ABILITY_CONSTITUTION, con); NWNXCreature.SetRawAbilityScore(player, ABILITY_DEXTERITY, dex); NWNXCreature.SetRawAbilityScore(player, ABILITY_INTELLIGENCE, @int); NWNXCreature.SetRawAbilityScore(player, ABILITY_WISDOM, wis); NWNXCreature.SetRawAbilityScore(player, ABILITY_CHARISMA, cha); NWItem knife = (_.CreateItemOnObject("survival_knife", player)); knife.Name = player.Name + "'s Survival Knife"; knife.IsCursed = true; DurabilityService.SetMaxDurability(knife, 5); DurabilityService.SetDurability(knife, 5); NWItem book = (_.CreateItemOnObject("player_guide", player)); book.Name = player.Name + "'s Player Guide"; book.IsCursed = true; NWItem dyeKit = (_.CreateItemOnObject("tk_omnidye", player)); dyeKit.IsCursed = true; int numberOfFeats = NWNXCreature.GetFeatCount(player); for (int currentFeat = numberOfFeats; currentFeat >= 0; currentFeat--) { NWNXCreature.RemoveFeat(player, NWNXCreature.GetFeatByIndex(player, currentFeat - 1)); } NWNXCreature.AddFeatByLevel(player, FEAT_ARMOR_PROFICIENCY_LIGHT, 1); NWNXCreature.AddFeatByLevel(player, FEAT_ARMOR_PROFICIENCY_MEDIUM, 1); NWNXCreature.AddFeatByLevel(player, FEAT_ARMOR_PROFICIENCY_HEAVY, 1); NWNXCreature.AddFeatByLevel(player, FEAT_SHIELD_PROFICIENCY, 1); NWNXCreature.AddFeatByLevel(player, FEAT_WEAPON_PROFICIENCY_EXOTIC, 1); NWNXCreature.AddFeatByLevel(player, FEAT_WEAPON_PROFICIENCY_MARTIAL, 1); NWNXCreature.AddFeatByLevel(player, FEAT_WEAPON_PROFICIENCY_SIMPLE, 1); NWNXCreature.AddFeatByLevel(player, FEAT_UNCANNY_DODGE_1, 1); NWNXCreature.AddFeatByLevel(player, (int)CustomFeatType.StructureManagementTool, 1); NWNXCreature.AddFeatByLevel(player, (int)CustomFeatType.OpenRestMenu, 1); NWNXCreature.AddFeatByLevel(player, (int)CustomFeatType.RenameCraftedItem, 1); NWNXCreature.AddFeatByLevel(player, (int)CustomFeatType.ChatCommandTargeter, 1); for (int iCurSkill = 1; iCurSkill <= 27; iCurSkill++) { NWNXCreature.SetSkillRank(player, iCurSkill - 1, 0); } _.SetFortitudeSavingThrow(player, 0); _.SetReflexSavingThrow(player, 0); _.SetWillSavingThrow(player, 0); int classID = _.GetClassByPosition(1, player); for (int index = 0; index <= 255; index++) { NWNXCreature.RemoveKnownSpell(player, classID, 0, index); } Player entity = CreateDBPCEntity(player); DataService.SubmitDataChange(entity, DatabaseActionType.Insert); var skills = DataService.GetAll <Skill>(); foreach (var skill in skills) { var pcSkill = new PCSkill { IsLocked = false, SkillID = skill.ID, PlayerID = entity.ID, Rank = 0, XP = 0 }; DataService.SubmitDataChange(pcSkill, DatabaseActionType.Insert); } RaceService.ApplyDefaultAppearance(player); NWNXCreature.SetAlignmentLawChaos(player, 50); NWNXCreature.SetAlignmentGoodEvil(player, 50); BackgroundService.ApplyBackgroundBonuses(player); PlayerStatService.ApplyStatChanges(player, null, true); LanguageService.InitializePlayerLanguages(player); _.DelayCommand(1.0f, () => _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectHeal(999), player)); InitializeHotBar(player); } }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, _.FEAT_EXPERTISE); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, FEAT_POWER_ATTACK); NWNXCreature.RemoveFeat(creature, FEAT_IMPROVED_POWER_ATTACK); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.WeaponFinesse); }
private void RemoveFeats(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.TwoWeaponFighting); NWNXCreature.RemoveFeat(creature, Feat.Ambidexterity); NWNXCreature.RemoveFeat(creature, Feat.ImprovedTwoWeaponFighting); }
private static void OnModuleEnter() { NWPlayer player = _.GetEnteringObject(); if (!player.IsPlayer) { return; } var dbPlayer = DataService.Get <Player>(player.GlobalID); // VERSION 2: Background items are no longer plot because item level no longer dictates your skill XP gain. if (dbPlayer.VersionNumber < 2) { string[] resrefs = { "blaster_s", "rifle_s", "powerglove_t", "baton_s", "doubleaxe_z", "kukri_d", "greatsword_s", "scanner_r_h", "harvest_r_h", "man_armor" }; foreach (var resref in resrefs) { NWItem item = _.GetItemPossessedBy(player, resref); if (item.IsValid) { item.IsPlot = false; } } dbPlayer.VersionNumber = 2; } // VERSION 3: Force feats need to be removed since force powers were reworked. if (dbPlayer.VersionNumber < 3) { // These IDs come from the Feat.2da file. NWNXCreature.RemoveFeat(player, 1135); // Force Breach NWNXCreature.RemoveFeat(player, 1136); // Force Lightning NWNXCreature.RemoveFeat(player, 1137); // Force Heal NWNXCreature.RemoveFeat(player, 1138); // Dark Heal NWNXCreature.RemoveFeat(player, 1143); // Force Spread NWNXCreature.RemoveFeat(player, 1144); // Dark Spread NWNXCreature.RemoveFeat(player, 1145); // Force Push NWNXCreature.RemoveFeat(player, 1125); // Force Aura NWNXCreature.RemoveFeat(player, 1152); // Drain Life NWNXCreature.RemoveFeat(player, 1134); // Chainspell dbPlayer.VersionNumber = 3; } // VERSION 4: Give the Uncanny Dodge 1 feat to all characters. if (dbPlayer.VersionNumber < 4) { NWNXCreature.AddFeatByLevel(player, FEAT_UNCANNY_DODGE_1, 1); dbPlayer.VersionNumber = 4; } DataService.SubmitDataChange(dbPlayer, DatabaseActionType.Update); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, _.FEAT_RAPID_SHOT); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.PointBlankShot); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, _.FEAT_DODGE); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.ZenArchery); }
private static void OnModuleEnter() { NWPlayer player = _.GetEnteringObject(); if (!player.IsPlayer) { return; } var dbPlayer = DataService.Get <Player>(player.GlobalID); // VERSION 2: Background items are no longer plot because item level no longer dictates your skill XP gain. if (dbPlayer.VersionNumber < 2) { string[] resrefs = { "blaster_s", "rifle_s", "powerglove_t", "baton_s", "doubleaxe_z", "kukri_d", "greatsword_s", "scanner_r_h", "harvest_r_h", "man_armor" }; foreach (var resref in resrefs) { NWItem item = _.GetItemPossessedBy(player, resref); if (item.IsValid) { item.IsPlot = false; } } dbPlayer.VersionNumber = 2; } // VERSION 3: Force feats need to be removed since force powers were reworked. if (dbPlayer.VersionNumber < 3) { // These IDs come from the Feat.2da file. NWNXCreature.RemoveFeat(player, 1135); // Force Breach NWNXCreature.RemoveFeat(player, 1136); // Force Lightning NWNXCreature.RemoveFeat(player, 1137); // Force Heal NWNXCreature.RemoveFeat(player, 1138); // Dark Heal NWNXCreature.RemoveFeat(player, 1143); // Force Spread NWNXCreature.RemoveFeat(player, 1144); // Dark Spread NWNXCreature.RemoveFeat(player, 1145); // Force Push NWNXCreature.RemoveFeat(player, 1125); // Force Aura NWNXCreature.RemoveFeat(player, 1152); // Drain Life NWNXCreature.RemoveFeat(player, 1134); // Chainspell dbPlayer.VersionNumber = 3; } // VERSION 4: Give the Uncanny Dodge 1 feat to all characters. if (dbPlayer.VersionNumber < 4) { NWNXCreature.AddFeatByLevel(player, FEAT_UNCANNY_DODGE_1, 1); dbPlayer.VersionNumber = 4; } // VERSION 5: We're doing another Force rework, so remove any force feats the player may have acquired. if (dbPlayer.VersionNumber < 5) { NWNXCreature.RemoveFeat(player, 1135); // Force Breach NWNXCreature.RemoveFeat(player, 1136); // Force Lightning NWNXCreature.RemoveFeat(player, 1137); // Force Heal I NWNXCreature.RemoveFeat(player, 1140); // Absorption Field NWNXCreature.RemoveFeat(player, 1143); // Force Spread NWNXCreature.RemoveFeat(player, 1145); // Force Push NWNXCreature.RemoveFeat(player, 1125); // Force Aura NWNXCreature.RemoveFeat(player, 1152); // Drain Life NWNXCreature.RemoveFeat(player, 1134); // Chainspell NWNXCreature.RemoveFeat(player, 1162); // Force Heal II NWNXCreature.RemoveFeat(player, 1163); // Force Heal III NWNXCreature.RemoveFeat(player, 1164); // Force Heal IV dbPlayer.VersionNumber = 5; } // VERSION 6: Remove AC from all items the player is carrying. If possible, // grant +1 durability and +1 max durability for every 2 AC the item has. if (dbPlayer.VersionNumber < 6) { ProcessVersion6ItemChanges(player); dbPlayer.VersionNumber = 6; } // VERSION 7: Give 40 language ranks to players, for their distribution. if (dbPlayer.VersionNumber < 7) { var ranks = new PCSkillPool { PlayerID = dbPlayer.ID, SkillCategoryID = 8, // 8 = Languages Levels = 40 }; DataService.SubmitDataChange(ranks, DatabaseActionType.Insert); dbPlayer.VersionNumber = 7; } DataService.SubmitDataChange(dbPlayer, DatabaseActionType.Update); }
public void OnRemoved(NWCreature creature) { NWNXCreature.RemoveFeat(creature, Feat.Provoke); }