private static void OnHitCastSpell() { NWPlayer oPC = Object.OBJECT_SELF; if (!oPC.IsValid || !oPC.IsPlayer) { return; } NWItem oSpellOrigin = (_.GetSpellCastItem()); NWCreature oTarget = (_.GetSpellTargetObject()); SkillType skillType = ItemService.GetSkillTypeForItem(oSpellOrigin); if (skillType == SkillType.Unknown || skillType == SkillType.LightArmor || skillType == SkillType.HeavyArmor || skillType == SkillType.ForceArmor || skillType == SkillType.Shields) { return; } if (oTarget.IsPlayer || oTarget.IsDM) { return; } if (oTarget.ObjectType != OBJECT_TYPE_CREATURE) { return; } int skillID = (int)skillType; CreatureSkillRegistration reg = GetCreatureSkillRegistration(oTarget.GlobalID); int rank = GetPCSkillRank(oPC, skillID); reg.AddSkillRegistrationPoint(oPC, skillID, oSpellOrigin.RecommendedLevel, rank); // Add a registration point if a shield is equipped. This is to prevent players from swapping out a weapon for a shield // just before they kill an enemy. NWItem oShield = oPC.LeftHand; if (oShield.BaseItemType == BASE_ITEM_SMALLSHIELD || oShield.BaseItemType == BASE_ITEM_LARGESHIELD || oShield.BaseItemType == BASE_ITEM_TOWERSHIELD) { rank = GetPCSkillRank(oPC, SkillType.Shields); reg.AddSkillRegistrationPoint(oPC, (int)SkillType.Shields, oShield.RecommendedLevel, rank); } }
public void RegisterPCToNPCForSkill(NWPlayer pc, NWCreature npc, int skillID) { if (!pc.IsPlayer || !pc.IsValid) { return; } if (npc.IsPlayer || npc.IsDM || !npc.IsValid) { return; } if (skillID <= 0) { return; } PCSkill pcSkill = GetPCSkill(pc, skillID); if (pcSkill == null) { return; } CreatureSkillRegistration reg = GetCreatureSkillRegistration(npc.GlobalID); reg.AddSkillRegistrationPoint(pc, skillID, pcSkill.Rank); }
public void OnHitCastSpell(NWPlayer oPC) { if (!oPC.IsPlayer) { return; } NWItem oSpellOrigin = NWItem.Wrap(_.GetSpellCastItem()); NWCreature oTarget = NWCreature.Wrap(_.GetSpellTargetObject()); int skillID = GetWeaponSkillID(oSpellOrigin); if (skillID <= -1) { return; } if (oTarget.IsPlayer || oTarget.IsDM) { return; } if (oTarget.ObjectType != OBJECT_TYPE_CREATURE) { return; } CreatureSkillRegistration reg = GetCreatureSkillRegistration(oTarget.GlobalID); reg.AddSkillRegistrationPoint(oPC, skillID, oSpellOrigin.RecommendedLevel); // Add a registration point if a shield is equipped. This is to prevent players from swapping out a weapon for a shield // just before they kill an enemy. NWItem oShield = oPC.LeftHand; if (oShield.BaseItemType == BASE_ITEM_SMALLSHIELD || oShield.BaseItemType == BASE_ITEM_LARGESHIELD || oShield.BaseItemType == BASE_ITEM_TOWERSHIELD) { reg.AddSkillRegistrationPoint(oPC, (int)SkillType.Shields, oShield.RecommendedLevel); } if (_random.Random(100) + 1 <= 3) { _food.DecreaseHungerLevel(oPC, 1); } }
private void RegisterPCToNPCForSkill(NWPlayer pc, NWObject npc, int skillID) { if (!pc.IsPlayer || !pc.IsValid) { return; } if (npc.IsPlayer || npc.IsDM || !npc.IsValid) { return; } if (skillID <= 0) { return; } int rank = GetPCSkillRank(pc, skillID); CreatureSkillRegistration reg = GetCreatureSkillRegistration(npc.GlobalID); reg.AddSkillRegistrationPoint(pc, skillID, rank, rank); }