本文整理汇总了C#中Decal.Value方法的典型用法代码示例。如果您正苦于以下问题:C# Decal.Value方法的具体用法?C# Decal.Value怎么用?C# Decal.Value使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Decal
的用法示例。
在下文中一共展示了Decal.Value方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnVisualSound
private void OnVisualSound(Decal.Adapter.Message pMsg)
{
try
{
if(MyCastList.Count == 0 && OtherCastList.Count == 0) {return;}
int AnimationTarget = 0;
try{AnimationTarget = pMsg.Value<int>(0);}catch{AnimationTarget = 0;}
if(AnimationTarget == 0) { return;}
if(Core.WorldFilter[AnimationTarget].ObjectClass != ObjectClass.Monster) {return;}
if(!CombatHudMobTrackingList.Any(x => x.Id == AnimationTarget))
{
CombatHudMobTrackingList.Add(new MonsterObject(Core.WorldFilter[AnimationTarget]));
}
MonsterObject MobTarget = CombatHudMobTrackingList.Find(x => x.Id == AnimationTarget);
int SpellAnimation = pMsg.Value<int>(1);
double AnimationDuration = pMsg.Value<double>(2);
if(MyCastList.Count > 0 && MyCastList.Any(x => x.SpellAnimation == SpellAnimation && x.SpellTargetId == AnimationTarget))
{
SpellCastInfo MyCastSpell = MyCastList.Find(x => x.SpellAnimation == SpellAnimation && x.SpellTargetId == AnimationTarget);
int index = MobTarget.DebuffSpellList.FindIndex(x => x.SpellId == MyCastSpell.SpellCastId);
if(index >= 0)
{
MobTarget.DebuffSpellList[index].SpellCastTime = DateTime.Now;
MobTarget.DebuffSpellList[index].SecondsRemaining = SpellIndex[MyCastSpell.SpellCastId].duration;
}
else
{
MonsterObject.DebuffSpell dbspellnew = new MonsterObject.DebuffSpell();
dbspellnew.SpellId = MyCastSpell.SpellCastId;
dbspellnew.SpellCastTime = DateTime.Now;
dbspellnew.SecondsRemaining = SpellIndex[MyCastSpell.SpellCastId].duration;
MobTarget.DebuffSpellList.Add(dbspellnew);
}
MyCastList.Remove(MyCastSpell);
UpdateTactician();
}
if(OtherCastList.Count > 0 && OtherCastList.Any(x => x.Animation == SpellAnimation))
{
int index_o = OtherCastList.FindIndex(x => x.Animation == SpellAnimation);
if(index_o >= 0)
{
OtherDebuffCastInfo OtherCastSpell = OtherCastList[index_o];
int index = MobTarget.DebuffSpellList.FindIndex(x => x.SpellId == OtherCastSpell.SpellId);
if(index >= 0)
{
MobTarget.DebuffSpellList[index].SpellCastTime = DateTime.Now;
MobTarget.DebuffSpellList[index].SecondsRemaining = SpellIndex[OtherCastSpell.SpellId].duration;
}
else
{
MonsterObject.DebuffSpell dbspellnew = new MonsterObject.DebuffSpell();
dbspellnew.SpellId = OtherCastSpell.SpellId;
dbspellnew.SpellCastTime = DateTime.Now;
dbspellnew.SecondsRemaining = SpellIndex[OtherCastSpell.SpellId].duration;
MobTarget.DebuffSpellList.Add(dbspellnew);
}
OtherCastList.Remove(OtherCastSpell);
UpdateTactician();
}
}
MyCastList.RemoveAll(x => (DateTime.Now - x.CastTime).TotalSeconds > 8);
OtherCastList.RemoveAll(x => (DateTime.Now - x.HeardTime).TotalSeconds > 8);
}catch(Exception ex){LogError(ex);}
}
示例2: OnIdentCombat
private void OnIdentCombat(Decal.Adapter.Message pMsg)
{
try
{
int PossibleMobID = Convert.ToInt32(pMsg["object"]);
if(Core.WorldFilter[PossibleMobID].ObjectClass == ObjectClass.Monster)
{
if(CombatHudMobTrackingList.Count == 0)
{
CombatHudMobTrackingList.Add(new MonsterObject(Core.WorldFilter[PossibleMobID]));
}
else if(!CombatHudMobTrackingList.Any(x => x.Id == PossibleMobID))
{
CombatHudMobTrackingList.Add(new MonsterObject(Core.WorldFilter[PossibleMobID]));
}
MonsterObject UpdateMonster = CombatHudMobTrackingList.First(x => x.Id == PossibleMobID);
if((pMsg.Value<int>("flags") & 0x200) == 0x200)
{
//Empty try/catch to deal with cast not valid error. (infrequent)
try
{
if(pMsg.Value<int>(22) > 0) {UpdateMonster.HealthMax = pMsg.Value<int>(22);}
if(pMsg.Value<int>(20) > 0) {UpdateMonster.HealthCurrent = pMsg.Value<int>(20);}
}catch{}
// if(pMsg.Value<int>(20) > 0){CombatHudMobTrackingList.First(x => x.Id == PossibleMobID).StaminaMax = pMsg.Value<int>(20);}
// if(pMsg.Value<int>(28) > 0) {CombatHudMobTrackingList.First(x => x.Id == PossibleMobID).StaminaCurrent = pMsg.Value<int>(28);}
// if(pMsg.Value<int>(22) > 0) {CombatHudMobTrackingList.First(x => x.Id == PossibleMobID).ManaMax = pMsg.Value<int>(22);}
// if(pMsg.Value<int>(29) > 0) {CombatHudMobTrackingList.First(x => x.Id == PossibleMobID).ManaCurrent = pMsg.Value<int>(29);}
if(UpdateMonster.HealthMax > 0)
{
UpdateMonster.HealthRemaining = Convert.ToInt32((double)UpdateMonster.HealthCurrent/(double)UpdateMonster.HealthMax*100);
}
}
}
UpdateTactician();
UpdateFocusHud();
}
catch (Exception ex) {LogError(ex);}
}