コード例 #1
0
 public Int32 GetIsTalentValid(NWTalent tTalent)
 {
     return ScriptHost.ExecuteActionService_359_1_GetIsTalentValid(tTalent);
 }
コード例 #2
0
 public Int32 GetIdFromTalent(NWTalent tTalent)
 {
     return ScriptHost.ExecuteActionService_363_1_GetIdFromTalent(tTalent);
 }
コード例 #3
0
 public void ActionUseTalentAtLocation(NWTalent tChosenTalent, NWLocation lTargetLocation)
 {
     ScriptHost.ExecuteActionService_310_2_ActionUseTalentAtLocation(tChosenTalent, lTargetLocation);
 }
コード例 #4
0
 public void ActionUseTalentOnObject(NWTalent tChosenTalent, UInt32 oTarget)
 {
     ScriptHost.ExecuteActionService_309_2_ActionUseTalentOnObject(tChosenTalent, oTarget);
 }
コード例 #5
0
 public Int32 GetCreatureHasTalent(NWTalent tTalent, UInt32 oCreature)
 {
     return ScriptHost.ExecuteActionService_306_2_GetCreatureHasTalent(tTalent, oCreature);
 }
コード例 #6
0
 /// <summary>
 /// This seeks a target for for large terrain-altering or wide effect spells meant to sway battles. It prioritizes distant and high-danger targets.
 /// </summary>
 /// <param name="Debuff">Provides the NWTalent for the buff to check against.</param>
 /// <returns>the object ID of the target, or OBJECT_INVALID on error.</returns>
 private uint _FindTargetForDebuff(NWTalent Debuff)
 {
     int SpellId = Script.GetIdFromTalent(Debuff);
     CreatureObject Target = Party.GetFarthest(this, Party.Enemies);
     if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
     {
         foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
         {
             if (Script.GetReputation(ObjectId, Collateral) != CLRScriptBase.REPUTATION_TYPE_ENEMY)
                 Target = null;
         }
         if(Target != null)
             return Target.ObjectId;
     }
     Target = Party.GetFarthest(this, Party.EnemySpellcasters);
     if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
     {
         foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
         {
             if (Script.GetReputation(ObjectId, Collateral) != CLRScriptBase.REPUTATION_TYPE_ENEMY)
                 Target = null;
         }
         if (Target != null)
             return Target.ObjectId;
     }
     Target = Party.GetFarthest(this, Party.EnemyHealers);
     if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
     {
         foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
         {
             if (Script.GetReputation(ObjectId, Collateral) != CLRScriptBase.REPUTATION_TYPE_ENEMY)
                 Target = null;
         }
         if (Target != null)
             return Target.ObjectId;
     }
     Target = Party.GetFarthest(this, Party.EnemySoftTargets);
     if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
     {
         foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
         {
             if (Script.GetReputation(ObjectId, Collateral) != CLRScriptBase.REPUTATION_TYPE_ENEMY)
                 Target = null;
         }
         if (Target != null)
             return Target.ObjectId;
     }
     foreach(CreatureObject SpellTarget in Party.EnemyHardTargets)
     {
         if (Script.GetHasSpellEffect(SpellId, SpellTarget.ObjectId) == CLRScriptBase.FALSE)
         {
             foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
             {
                 if (Script.GetReputation(ObjectId, Collateral) != CLRScriptBase.REPUTATION_TYPE_ENEMY)
                     Target = null;
             }
             if (Target != null)
                 return Target.ObjectId;
         }
     }
     return OBJECT_INVALID;
 }
コード例 #7
0
 /// <summary>
 /// This seeks a target for a buff talent, prioritizing on high-risk allies, but only selecting one who doesn't already have the effect.
 /// </summary>
 /// <param name="Buff">The talent to check</param>
 /// <returns>the object ID of a valid target, or OBJECT_INVALID on error</returns>
 private uint _FindTargetForBuff(NWTalent Buff)
 {
     int SpellId = Script.GetIdFromTalent(Buff);
     foreach (CreatureObject PartyMember in Party.PartyTanks)
     {
         if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
             return PartyMember.ObjectId;
     }
     foreach (CreatureObject PartyMember in Party.PartyShocks)
     {
         if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
             return PartyMember.ObjectId;
     }
     foreach (CreatureObject PartyMember in Party.PartySkrimishers)
     {
         if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
             return PartyMember.ObjectId;
     }
     foreach (CreatureObject PartyMember in Party.PartyFlanks)
     {
         if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
             return PartyMember.ObjectId;
     }
     foreach (CreatureObject PartyMember in Party.PartyAnimals)
     {
         if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
             return PartyMember.ObjectId;
     }
     foreach (CreatureObject PartyMember in Party.PartyMindless)
     {
         if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
             return PartyMember.ObjectId;
     }
     if (Script.GetHasSpellEffect(SpellId, ObjectId) == CLRScriptBase.FALSE)
         return ObjectId;            
     return OBJECT_INVALID;
 }