|
@@ -567,8 +567,7 @@ namespace CommonAI.Zone.Instance
|
|
|
|
|
|
internal uint genObjectID()
|
|
|
{
|
|
|
- mObjectIDIndexer++;
|
|
|
- return mObjectIDIndexer;
|
|
|
+ return ++mObjectIDIndexer;
|
|
|
}
|
|
|
|
|
|
// 获取一个单位
|
|
@@ -808,12 +807,12 @@ namespace CommonAI.Zone.Instance
|
|
|
|
|
|
//-------------------------------------------------------------------------------------------
|
|
|
|
|
|
- public InstanceUnit AddUnit(int unitTemplateID, string name, int force, int level, float x, float y, float direction, bool pointLv = false)
|
|
|
+ public InstanceUnit AddUnit(int unitTemplateID, string name, int force, int level, float x, float y, float direction, bool pointLv = false, uint CustomId = 0)
|
|
|
{
|
|
|
UnitInfo info = Templates.getUnit(unitTemplateID);
|
|
|
if (info != null)
|
|
|
{
|
|
|
- return AddUnit(info, name, force, level, x, y, direction, null, "", 0, pointLv);
|
|
|
+ return AddUnit(info, name, force, level, x, y, direction, null, "", 0, pointLv, CustomId);
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -831,10 +830,10 @@ namespace CommonAI.Zone.Instance
|
|
|
/// <param name="summoner">召唤者</param>
|
|
|
/// <returns></returns>
|
|
|
public InstanceUnit AddUnit(UnitInfo info, string name, int force, int level, float x, float y, float direction,
|
|
|
- InstanceUnit summoner = null, String clientShowName = "", int gsFlag = 0, bool pointLv = false)
|
|
|
+ InstanceUnit summoner = null, String clientShowName = "", int gsFlag = 0, bool pointLv = false, uint CustomId = 0)
|
|
|
{
|
|
|
AddUnitEvent add;
|
|
|
- return AddUnit(info, name, force, level, x, y, direction, out add, summoner, clientShowName, gsFlag, 0, pointLv);
|
|
|
+ return AddUnit(info, name, force, level, x, y, direction, out add, summoner, clientShowName, gsFlag, 0, pointLv, CustomId);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 添加一个单位
|
|
@@ -854,7 +853,7 @@ namespace CommonAI.Zone.Instance
|
|
|
private long mAddUnitPrintTime = 0;
|
|
|
|
|
|
public InstanceUnit AddUnit(UnitInfo info, string name, int force, int level, float x, float y, float direction,
|
|
|
- out AddUnitEvent add, InstanceUnit summoner = null, String clientShowName = "", int gsFlag = 0, int alliesForce = 0, bool pointLv = false)
|
|
|
+ out AddUnitEvent add, InstanceUnit summoner = null, String clientShowName = "", int gsFlag = 0, int alliesForce = 0, bool pointLv = false, uint CustomId = 0)
|
|
|
{
|
|
|
add = null;
|
|
|
if (mObjects.UnitsCount >= mMaxUnitCount)
|
|
@@ -882,8 +881,13 @@ namespace CommonAI.Zone.Instance
|
|
|
InstanceUnit unit = ret as InstanceUnit;
|
|
|
//unit.Name = name;
|
|
|
unit.gameServerFlag = gsFlag;
|
|
|
+ if(CustomId > 0 && mObjects.ContainsObjectByKey(CustomId))
|
|
|
+ {
|
|
|
+ log.Warn(string.Format("--Zone AddUnit failed, ID Exist: id:{0} template:{1}", CustomId, info.TemplateID));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
// 存入单位列表
|
|
|
- if (unit.tryAdd(x, y, direction))
|
|
|
+ if (unit.tryAdd(x, y, direction, CustomId))
|
|
|
{
|
|
|
mObjects.AddObject(unit);
|
|
|
this.LastAddedUnit = unit;
|