本文整理匯總了C#中WCell.RealmServer.NPCs.NPCEntry.CreateMainHandWeapon方法的典型用法代碼示例。如果您正苦於以下問題:C# NPCEntry.CreateMainHandWeapon方法的具體用法?C# NPCEntry.CreateMainHandWeapon怎麽用?C# NPCEntry.CreateMainHandWeapon使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類WCell.RealmServer.NPCs.NPCEntry
的用法示例。
在下文中一共展示了NPCEntry.CreateMainHandWeapon方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: SetupNPC
protected internal virtual void SetupNPC(NPCEntry entry, SpawnPoint spawnPoint)
{
// auras
m_auras = new NPCAuraCollection(this);
var mainWeapon = entry.CreateMainHandWeapon();
SpawnEntry spawnEntry;
if (spawnPoint != null)
{
// Spawn-specific information
spawnEntry = spawnPoint.SpawnEntry;
m_spawnPoint = spawnPoint;
Phase = spawnEntry.PhaseMask;
m_orientation = spawnEntry.Orientation;
if (spawnEntry.MountId != 0)
{
Mount(spawnEntry.MountId);
}
if (spawnEntry.DisplayIdOverride != 0)
{
DisplayId = spawnEntry.DisplayIdOverride;
}
SetUInt32(UnitFields.BYTES_0, spawnEntry.Bytes);
SetUInt32(UnitFields.BYTES_2, spawnEntry.Bytes2);
}
else
{
Phase = 1;
spawnEntry = entry.FirstSpawnEntry;
}
EmoteState = (spawnEntry != null && spawnEntry.EmoteState != 0) ? spawnEntry.EmoteState : entry.EmoteState;
Entry = entry;
NativeDisplayId = DisplayId;
// misc stuff
Faction = entry.Faction;
NPCFlags = entry.NPCFlags;
UnitFlags = entry.UnitFlags;
DynamicFlags = entry.DynamicFlags;
Class = entry.ClassId;
Race = entry.RaceId;
YieldsXpOrHonor = entry.GeneratesXp;
SheathType = SheathType.Melee;
// 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 = mainWeapon;
// Set Level/Scale *after* MainWeapon is set:
var level = entry.GetRandomLevel();
Level = level;
// Set model after Scale
Model = m_entry.GetRandomModel();
m_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();
SetUInt32(UnitFields.MAXHEALTH, health);
SetUInt32(UnitFields.BASE_HEALTH, health);
if (spawnEntry == null || !spawnEntry.IsDead)
{
SetUInt32(UnitFields.HEALTH, health);
}
var mana = entry.GetRandomMana();
SetInt32(UnitFields.MAXPOWER1, mana);
SetInt32(UnitFields.BASE_MANA, mana);
SetInt32(UnitFields.POWER1, mana);
OffHandWeapon = entry.CreateOffhandWeapon();
RangedWeapon = entry.CreateRangedWeapon();
//.........這裏部分代碼省略.........