本文整理汇总了C#中WCell.RealmServer.NPCs.NPCEntry类的典型用法代码示例。如果您正苦于以下问题:C# NPCEntry类的具体用法?C# NPCEntry怎么用?C# NPCEntry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
NPCEntry类属于WCell.RealmServer.NPCs命名空间,在下文中一共展示了NPCEntry类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Summon
public virtual NPC Summon(SpellCast cast, ref Vector3 targetLoc, NPCEntry entry)
{
var caster = cast.CasterUnit;
var duration = cast.Spell.GetDuration(cast.CasterReference);
NPC minion;
if (caster != null)
{
minion = caster.SpawnMinion(entry, ref targetLoc, duration);
}
else
{
minion = entry.Create(cast.TargetMap.DifficultyIndex);
minion.Position = targetLoc;
minion.Brain.IsRunning = true;
minion.Phase = cast.Phase;
cast.Map.AddObject(minion);
}
if (caster is Character)
{
minion.Level = caster.Level;
}
minion.Summoner = caster;
minion.Creator = cast.CasterReference.EntityId;
return minion;
}
开发者ID:Jeroz,项目名称:WCell,代码行数:29,代码来源:SpellSummons.cs
示例2: Summon
public virtual NPC Summon(SpellCast cast, ref Vector3 targetLoc, NPCEntry entry)
{
var caster = cast.CasterUnit;
var pet = caster.SpawnMinion(entry, ref targetLoc, cast.Spell.GetDuration(caster.CasterInfo));
pet.Summoner = caster;
pet.Creator = caster.EntityId;
return pet;
}
开发者ID:ray2006,项目名称:WCell,代码行数:8,代码来源:SpellSummonHandlers.cs
示例3: Summon
public override NPC Summon(SpellCast cast, ref Vector3 targetLoc, NPCEntry entry)
{
var caster = cast.CasterUnit;
if (caster is Character)
{
return ((Character)caster).SpawnPet(entry, ref targetLoc, cast.Spell.GetDuration(caster.SharedReference));
}
else
{
return base.Summon(cast, ref targetLoc, entry);
}
}
开发者ID:MeaNone,项目名称:WCell,代码行数:12,代码来源:SpellSummons.cs
示例4: SetupGrizzly
static void SetupGrizzly()
{
// default settings
GrizzlyBear = new NPCEntry
{
Id = BearId,
DefaultName = "Sample Grizzly",
EntryFlags = NPCEntryFlags.Tamable,
Type = CreatureType.Humanoid,
DisplayIds = new[] { 21635u },
Scale = 1,
MinLevel = 73,
MaxLevel = 74,
HordeFactionId = FactionTemplateId.Monster_2,
MinHealth = 100000,
MaxHealth = 500000,
AttackPower = 314,
AttackTime = 1500,
MinDamage = 250,
MaxDamage = 360,
WalkSpeed = 2.5f,
RunSpeed = 8f,
FlySpeed = 14f,
MinMana = 2000
};
GrizzlyBear.SetResistance(DamageSchool.Physical, 7600);
// AOE damage spell
GrizzlyBear.AddSpell(SpellId.ConeOfFire);
// A spell with a freeze debuff
GrizzlyBear.AddSpell(SpellId.Chilled);
// Sample gossip menu
GossipMgr.AddText(sampleGossipTextId, new GossipText
{
Probability = 1,
TextMale = "Sample Gossip Menu",
TextFemale = "Take a good look"
});
GrizzlyBear.DefaultGossip = CreateSampleGossipMenu();
GrizzlyBear.FinalizeDataHolder();
//NPCMgr.AddEntry(BearId, GrizzlyBear);
}
开发者ID:MeaNone,项目名称:WCell,代码行数:48,代码来源:MixedSamples.cs
示例5: CanSummon
public virtual bool CanSummon(SpellCast cast, NPCEntry entry)
{
return true;
}
开发者ID:MeaNone,项目名称:WCell,代码行数:4,代码来源:SpellSummons.cs
示例6: SetupNPC
protected internal virtual void SetupNPC(NPCEntry entry, NPCSpawnPoint spawnPoint)
{
NPCSpawnEntry spawnEntry;
if (spawnPoint != null)
{
// Spawn-specific information
spawnEntry = spawnPoint.SpawnEntry;
m_spawnPoint = spawnPoint;
Phase = spawnEntry.Phase;
m_orientation = spawnEntry.Orientation;
if (spawnEntry.DisplayIdOverride != 0)
{
DisplayId = spawnEntry.DisplayIdOverride;
}
}
else
{
Phase = 1;
spawnEntry = entry.FirstSpawnEntry;
}
GenerateId(entry.Id);
SetEntry(entry);
}
开发者ID:ebakkedahl,项目名称:WCell,代码行数:26,代码来源:NPC.cs
示例7: SpawnMinion
public override NPC SpawnMinion(NPCEntry entry, ref Vector3 position, int durationMillis)
{
var minion = base.SpawnMinion(entry, ref position, durationMillis);
if (Group == null)
{
Group = new AIGroup(this);
}
Group.Add(minion);
return minion;
}
开发者ID:ebakkedahl,项目名称:WCell,代码行数:10,代码来源:NPC.cs
示例8: SetEntry
public void SetEntry(NPCEntry entry)
{
Entry = entry;
if (m_spawnPoint == null || m_spawnPoint.SpawnEntry.DisplayIdOverride == 0)
{
if (entry.ModelInfos.Length > 0)
{
Model = entry.ModelInfos.GetRandom();
}
}
NativeDisplayId = DisplayId;
if (m_brain == null)
{
// new brain
m_brain = m_entry.BrainCreator(this);
m_brain.IsRunning = true;
}
if (m_Movement == null)
{
m_Movement = new Movement(this);
}
// misc stuff
Name = m_entry.DefaultName;
NPCFlags = entry.NPCFlags;
UnitFlags = entry.UnitFlags;
DynamicFlags = entry.DynamicFlags;
Class = entry.ClassId;
Race = entry.RaceId;
YieldsXpOrHonor = entry.GeneratesXp;
SheathType = SheathType.Melee;
// decide which faction
if (m_spawnPoint != null)
{
var map = m_spawnPoint.Map;
if (map != null)
{
Faction = DefaultFaction;
}
}
if (Faction == null)
{
Faction = entry.RandomFaction;
}
// speeds
m_runSpeed = entry.RunSpeed;
m_swimSpeed = entry.RunSpeed;
m_swimBackSpeed = entry.RunSpeed;
m_walkSpeed = entry.WalkSpeed;
m_walkBackSpeed = entry.WalkSpeed;
m_flightSpeed = entry.FlySpeed;
m_flightBackSpeed = entry.FlySpeed;
Array.Copy(entry.Resistances, m_baseResistances, m_baseResistances.Length);
MainWeapon = m_entry.CreateMainHandWeapon();
RangedWeapon = m_entry.CreateRangedWeapon();
OffHandWeapon = entry.CreateOffhandWeapon();
// Set model after Scale
Model = m_entry.GetRandomModel();
GossipMenu = entry.DefaultGossip; // set gossip menu
// TODO: Init stats
//for (int i = 0; i < 5; i++)
//{
// m_baseStats[i] = statVal;
//}
PowerType = PowerType.Mana;
SetBaseStat(StatType.Strength, 1, false);
SetBaseStat(StatType.Agility, 1, false);
SetBaseStat(StatType.Intellect, 1, false);
SetBaseStat(StatType.Stamina, 1, false);
SetBaseStat(StatType.Spirit, 1, false);
// health + power
var health = entry.GetRandomHealth();
SetInt32(UnitFields.MAXHEALTH, health);
SetInt32(UnitFields.BASE_HEALTH, health);
if (m_entry.IsDead || m_spawnPoint == null || !m_spawnPoint.SpawnEntry.IsDead)
{
SetInt32(UnitFields.HEALTH, health);
}
else if (m_entry.Regenerates)
{
Regenerates = true;
HealthRegenPerTickNoCombat = Math.Max(m_entry.MaxHealth / 10, 1);
}
var mana = entry.GetRandomMana();
if (mana == 0)
{
SetInt32(UnitFields.MAXPOWER1, 1);
//.........这里部分代码省略.........
开发者ID:ebakkedahl,项目名称:WCell,代码行数:101,代码来源:NPC.cs
示例9: CreateMinion
/// <summary>
/// Creates and makes visible the Unit's controlled Minion
/// </summary>
/// <param name="entry">The template for the Minion</param>
/// <param name="position">The place to spawn the minion.</param>
/// <param name="duration">Time till the minion goes away.</param>
/// <returns>A reference to the minion.</returns>
public NPC CreateMinion(NPCEntry entry, int durationMillis)
{
var minion = entry.Create();
minion.Phase = Phase;
minion.Zone = Zone;
minion.RemainingDecayDelay = durationMillis;
minion.Brain.IsRunning = true;
if (Health > 0)
{
Enslave(minion, durationMillis);
}
return minion;
}
开发者ID:ray2006,项目名称:WCell,代码行数:21,代码来源:Unit.cs
示例10: SpawnMinion
public override NPC SpawnMinion(NPCEntry entry, ref Vector3 position, int durationMillis)
{
var minion = base.SpawnMinion(entry, ref position, durationMillis);
minion.Group = Group;
return minion;
}
开发者ID:zhangyang,项目名称:WCell,代码行数:6,代码来源:NPC.cs
示例11: MaySpawnPet
public virtual bool MaySpawnPet(NPCEntry entry)
{
return true;
}
开发者ID:ray2006,项目名称:WCell,代码行数:4,代码来源:Unit.cs
示例12: SpawnMinion
/// <summary>
/// Creates and makes visible the Unit's controlled Minion
/// </summary>
/// <param name="entry">The template for the Minion</param>
/// <param name="position">The place to spawn the minion.</param>
/// <param name="duration">Time till the minion goes away.</param>
/// <returns>A reference to the minion.</returns>
public virtual NPC SpawnMinion(NPCEntry entry, ref Vector3 position, int durationMillis)
{
//return SpawnMinion(entry, summonSpell, ref position, durationMillis != 0 ? DateTime.Now.AddMilliseconds(durationMillis) : (DateTime?)null);
var minion = CreateMinion(entry, durationMillis);
minion.Position = position;
m_region.AddObjectLater(minion);
return minion;
}
开发者ID:ray2006,项目名称:WCell,代码行数:15,代码来源:Unit.cs
示例13: InitNPCs
public static void InitNPCs()
{
LadySarevessEntry = NPCMgr.GetEntry(NPCId.LadySarevess);
LadySarevessEntry.Activated += LadySarevess =>
{
((BaseBrain)LadySarevess.Brain).DefaultCombatAction.Strategy = new SarevessAttackAction(LadySarevess);
};
GelihastEntry = NPCMgr.GetEntry(NPCId.Gelihast);
GelihastEntry.Activated += Gelihast =>
{
((BaseBrain)Gelihast.Brain).DefaultCombatAction.Strategy = new GelihastAttackAction(Gelihast);
};
LorgusJettEntry = NPCMgr.GetEntry(NPCId.LorgusJett);
LorgusJettEntry.Activated += LorgusJett =>
{
((BaseBrain)LorgusJett.Brain).DefaultCombatAction.Strategy = new LorgusJettAttackAction(LorgusJett);
};
LordKelrisEntry = NPCMgr.GetEntry(NPCId.TwilightLordKelris);
LordKelrisEntry.Activated += LordKelris =>
{
((BaseBrain)LordKelris.Brain).DefaultCombatAction.Strategy = new LordKelrisAttackAction(LordKelris);
};
AkuMaiEntry = NPCMgr.GetEntry(NPCId.AkuMai);
AkuMaiEntry.Activated += AkuMai =>
{
((BaseBrain)AkuMai.Brain).DefaultCombatAction.Strategy = new AkuMaiAttackAction(AkuMai);
};
}
开发者ID:KroneckerX,项目名称:WCell,代码行数:32,代码来源:BlackfathomDeeps.cs
示例14: InitNPCs
public static void InitNPCs()
{
// KamDeepfury
kamdeepfuryEntry = NPCMgr.GetEntry(NPCId.KamDeepfury);
kamdeepfuryEntry.Activated += kamdeepfury =>
{
((BaseBrain)kamdeepfury.Brain).DefaultCombatAction.Strategy = new KamdeepfuryAttackAction(kamdeepfury);
};
// Hamhock
hamhockEntry = NPCMgr.GetEntry(NPCId.Hamhock);
hamhockEntry.Activated += hamhock =>
{
((BaseBrain)hamhock.Brain).DefaultCombatAction.Strategy = new HamhockAttackAction(hamhock);
};
// Bazil
bazilThreddEntry = NPCMgr.GetEntry(NPCId.BazilThredd);
bazilThreddEntry.Activated += bazilthredd =>
{
((BaseBrain)bazilthredd.Brain).DefaultCombatAction.Strategy = new BazilThreddAttackAction(bazilthredd);
};
// Dextren
dextrenEntry = NPCMgr.GetEntry(NPCId.DextrenWard);
dextrenEntry.Activated += dextren =>
{
((BaseBrain)dextren.Brain).DefaultCombatAction.Strategy = new DextrenAttackAction(dextren);
};
// Defias Inmate
inmateEntry = NPCMgr.GetEntry(NPCId.DefiasInmate);
inmateEntry.Activated += inmate =>
{
((BaseBrain)inmate.Brain).DefaultCombatAction.Strategy = new InmateAttackAction(inmate);
};
// Defias Insurgent
insurgentEntry = NPCMgr.GetEntry(NPCId.DefiasInsurgent);
insurgentEntry.Activated += insurgent =>
{
((BaseBrain)insurgent.Brain).DefaultCombatAction.Strategy = new InsurgentAttackAction(insurgent);
};
// Defias Prisoner
prisonerEntry = NPCMgr.GetEntry(NPCId.DefiasPrisoner);
prisonerEntry.Activated += prisoner =>
{
((BaseBrain)prisoner.Brain).DefaultCombatAction.Strategy = new PrisonerAttackAction(prisoner);
};
// Defias Convict
convictEntry = NPCMgr.GetEntry(NPCId.DefiasConvict);
convictEntry.Activated += convict =>
{
((BaseBrain)convict.Brain).DefaultCombatAction.Strategy = new ConvictAttackAction(convict);
};
}
开发者ID:zhangyang,项目名称:WCell,代码行数:58,代码来源:TheStockades.cs
示例15: InitNPCs
public static void InitNPCs()
{
MarrowgarEntry = NPCMgr.GetEntry(NPCId.LordMarrowgar);
MarrowgarEntry.BrainCreator = marrowgar => new MarrowgarBrain(marrowgar);
MarrowgarEntry.Activated += marrowgar =>
{
((BaseBrain)marrowgar.Brain).DefaultCombatAction.Strategy = new MarrowgarAIAttackAction(marrowgar);
};
}
开发者ID:NVN,项目名称:WCell,代码行数:9,代码来源:IcecrownCitadel.cs
示例16: InitNPCs
public static void InitNPCs()
{
//Pandemonius
pandemoniusEntry = NPCMgr.GetEntry(NPCId.Pandemonius);
pandemoniusEntry.BrainCreator = pandemonius => new PandemoniusBrain(pandemonius);
pandemoniusEntry.AddSpells(pandemoniusSpells);
SpellHandler.Apply(spell => spell.AISettings.SetCooldown(15000, 25000), SpellId.VoidBlast);
SpellHandler.Apply(spell => spell.CooldownTime = 20000, SpellId.DarkShell);
}
开发者ID:KroneckerX,项目名称:WCell,代码行数:10,代码来源:AuchindounManaTombs.cs
示例17: Initialize
public override void Initialize(ref SpellFailedReason failReason)
{
var id = (NPCId)Effect.MiscValue;
entry = NPCMgr.GetEntry(id);
if (entry == null)
{
LogManager.GetCurrentClassLogger().Warn("The NPC for Summon-Spell {0} does not exist: {1} (Are NPCs loaded?)", Effect.Spell, id);
failReason = SpellFailedReason.Error;
return;
}
}
开发者ID:NVN,项目名称:WCell,代码行数:11,代码来源:Summon.cs
示例18: InitNPCs
public static void InitNPCs()
{
// Oggleflint
oggleflintEntry = NPCMgr.GetEntry(NPCId.Oggleflint);
oggleflintEntry.AddSpell(SpellId.Cleave);
oggleflintEntry.Activated += oggleflint =>
{
var brain = (BaseBrain)oggleflint.Brain;
var combatAction = (AICombatAction)brain.Actions[BrainState.Combat];
combatAction.Strategy = new OggleflintAttackAction(oggleflint);
oggleflint.AddProcHandler(cleave);
};
// Taragaman the Hungerer
taragamanEntry = NPCMgr.GetEntry(NPCId.TaragamanTheHungerer);
// taragamanEntry.AddSpell(SpellId.Uppercut); //Not working properly
taragamanEntry.AddSpell(SpellId.FireNova);
taragamanEntry.Activated += taragaman =>
{
var brain = (BaseBrain)taragaman.Brain;
var combatAction = (AICombatAction)brain.Actions[BrainState.Combat];
combatAction.Strategy = new TaragamanAttackAction(taragaman);
// taragaman.AddProcHandler(uppercut); //Currently not working
taragaman.AddProcHandler(firenova);
};
// Jergosh the Invoker
jergoshEntry = NPCMgr.GetEntry(NPCId.JergoshTheInvoker);
jergoshEntry.AddSpell(SpellId.CurseOfWeakness);
jergoshEntry.AddSpell(SpellId.Immolate);
jergoshEntry.Activated += jergosh =>
{
var brain = (BaseBrain)jergosh.Brain;
var combatAction = (AICombatAction)brain.Actions[BrainState.Combat];
combatAction.Strategy = new JergoshAttackAction(jergosh);
jergosh.AddProcHandler(weakness);
jergosh.AddProcHandler(immolate);
};
// Bazzalan
bazzalanEntry = NPCMgr.GetEntry(NPCId.Bazzalan);
bazzalanEntry.AddSpell(SpellId.Poison);
bazzalanEntry.AddSpell(SpellId.SinisterStrike);
bazzalanEntry.Activated += bazzalan =>
{
var brain = (BaseBrain)bazzalan.Brain;
var combatAction = (AICombatAction)brain.Actions[BrainState.Combat];
combatAction.Strategy = new BazzalanAttackAction(bazzalan);
bazzalan.AddProcHandler(poison);
bazzalan.AddProcHandler(sstrike);
};
}
开发者ID:Zerant,项目名称:WCell,代码行数:52,代码来源:RagefireChasm.cs
示例19: InitNPCs
public static void InitNPCs()
{
// (!)Rethilgore
rethilgoreEntry = NPCMgr.GetEntry(3914);
rethilgoreEntry.AddSpell((SpellId)7295); // add Rethilgore Spell
rethilgoreEntry.BrainCreator = rethilgore => new RethilgoreBrain(rethilgore);
// Rethilgore spell has a cooldown of about 30s
SpellHandler.Apply(spell => { spell.CooldownTime = 30000; }, (SpellId)7295);
// (!)Baron Silverlaine
baronsilverlaineEntry = NPCMgr.GetEntry(3887);
baronsilverlaineEntry.AddSpell((SpellId)7068);
SpellHandler.Apply(spell => { spell.CooldownTime = 15000; }, (SpellId)7068);
// (!)Commander Springvale
commanderspringvaleEntry = NPCMgr.GetEntry(4278);
commanderspringvaleEntry.AddSpell((SpellId)5588);
commanderspringvaleEntry.AddSpell((SpellId)31713);
SpellHandler.Apply(spell => { spell.CooldownTime = 60000; }, (SpellId)5588);
SpellHandler.Apply(spell => { spell.CooldownTime = 45000; }, (SpellId)31713);
// (!)Odo the Blindwatcher
blindwatcherEntry = NPCMgr.GetEntry(4279);
blindwatcherEntry.AddSpell((SpellId)7484);
SpellHandler.Apply(spell => { spell.CooldownTime = 60000; }, (SpellId)7484);
// (!)Fenrus the Devourer
fenrusEntry = NPCMgr.GetEntry(4274);
fenrusEntry.AddSpell((SpellId)7125);
fenrusEntry.BrainCreator = fenrus => new FenrusBrain(fenrus);
SpellHandler.Apply(spell => { spell.CooldownTime = 60000; }, (SpellId)7125);
// (!)Archmage Arugal
arugalEntry = NPCMgr.GetEntry(4275);
arugalEntry.AddSpell((SpellId)7803);
arugalEntry.AddSpell((SpellId)7588);
SpellHandler.Apply(spell => { spell.CooldownTime = 25000; }, (SpellId)7803);
SpellHandler.Apply(spell => { spell.CooldownTime = 40000; }, (SpellId)7588);
}
开发者ID:pallmall,项目名称:WCell,代码行数:50,代码来源:ShadowfangKeep.cs
示例20: InitNPCs
public static void InitNPCs()
{
// (!)Rethilgore
rethilgoreEntry = NPCMgr.GetEntry(NPCId.Rethilgore);
rethilgoreEntry.AddSpell(SpellId.SoulDrain); // add Rethilgore Spell
rethilgoreEntry.BrainCreator = rethilgore => new RethilgoreBrain(rethilgore);
// Rethilgore spell has a cooldown of about 30s
SpellHandler.Apply(spell => { spell.CooldownTime = 30000; }, SpellId.SoulDrain);
// (!)Baron Silverlaine
baronsilverlaineEntry = NPCMgr.GetEntry(NPCId.BaronSilverlaine);
baronsilverlaineEntry.AddSpell(SpellId.VeilOfShadow);
SpellHandler.Apply(spell => { spell.CooldownTime = 15000; }, SpellId.VeilOfShadow);
// (!)Commander Springvale
commanderspringvaleEntry = NPCMgr.GetEntry(NPCId.CommanderSpringvale);
commanderspringvaleEntry.AddSpell(SpellId.ClassSkillHammerOfJusticeRank2);
commanderspringvaleEntry.AddSpell(SpellId.HolyLight_7);
SpellHandler.Apply(spell => { spell.CooldownTime = 60000; }, SpellId.ClassSkillHammerOfJusticeRank2);
SpellHandler.Apply(spell => { spell.CooldownTime = 45000; }, SpellId.HolyLight_7);
// (!)Odo the Blindwatcher
blindwatcherEntry = NPCMgr.GetEntry(NPCId.OdoTheBlindwatcher);
blindwatcherEntry.AddSpell(SpellId.SkullforgeBrand);
SpellHandler.Apply(spell => { spell.CooldownTime = 60000; }, SpellId.HowlingRage_3);
// (!)Fenrus the Devourer
fenrusEntry = NPCMgr.GetEntry(NPCId.FenrusTheDevourer);
fenrusEntry.AddSpell(SpellId.ToxicSaliva);
fenrusEntry.BrainCreator = fenrus => new FenrusBrain(fenrus);
SpellHandler.Apply(spell => { spell.CooldownTime = 60000; }, SpellId.ToxicSaliva);
// (!)Archmage Arugal
arugalEntry = NPCMgr.GetEntry(NPCId.Arugal);
arugalEntry.AddSpell(SpellId.Thundershock);
arugalEntry.AddSpell(SpellId.VoidBolt);
SpellHandler.Apply(spell => { spell.CooldownTime = 25000; }, SpellId.Thundershock);
SpellHandler.Apply(spell => { spell.CooldownTime = 40000; }, SpellId.VoidBolt);
}
开发者ID:WCellFR,项目名称:WCellFR,代码行数:49,代码来源:ShadowfangKeep.cs
注:本文中的WCell.RealmServer.NPCs.NPCEntry类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论