|
@@ -353,28 +353,37 @@ namespace XmdsServerEdgeJS.Zone
|
|
|
int aLevel = 0;
|
|
|
string aName = "";
|
|
|
string sceneType = "";
|
|
|
- if (attacker is XmdsInstanceMonster)
|
|
|
- {
|
|
|
- MonsterVisibleDataB2C mvd = attacker.GenSyncUnitInfo().VisibleInfo as MonsterVisibleDataB2C;
|
|
|
- sceneType = (attacker.Virtual as XmdsVirtual).GetCurSceneType();
|
|
|
-
|
|
|
- aID = attacker.Info.TemplateID;
|
|
|
- aQColor = (int)mvd.Qcolor;
|
|
|
- aName = mvd.DisplayName;
|
|
|
- aLevel = attacker.GenSyncUnitInfo().Level;
|
|
|
- }
|
|
|
- else if(attacker.IsPlayerUnit && obj.IsMonster)
|
|
|
+ int attackID = attacker.Info.ID;
|
|
|
+ try
|
|
|
{
|
|
|
- InstanceUnit attackerUnit = attacker.IsPet ? attacker.Virtual.GetMasterUnit() : attacker;
|
|
|
- if(attackerUnit != null)
|
|
|
+ if (attacker is XmdsInstanceMonster)
|
|
|
{
|
|
|
- attackerUnit.Virtual.DispatchKillOtherEvent(attackerUnit.Virtual, obj.Virtual);
|
|
|
+ MonsterVisibleDataB2C mvd = attacker.GenSyncUnitInfo().VisibleInfo as MonsterVisibleDataB2C;
|
|
|
+ sceneType = (attacker.Virtual as XmdsVirtual).GetCurSceneType();
|
|
|
+
|
|
|
+ aID = attacker.Info.TemplateID;
|
|
|
+ aQColor = (int)mvd.Qcolor;
|
|
|
+ aName = mvd.DisplayName;
|
|
|
+ aLevel = attacker.GenSyncUnitInfo().Level;
|
|
|
}
|
|
|
- else
|
|
|
+ else if (attacker.IsPlayerUnit && obj.IsMonster)
|
|
|
{
|
|
|
- log.Warn("zone_onUnitDead: 找不到人形攻击者:" + attacker.Info.ID + ", " + zone.GetSceneID());
|
|
|
+ InstanceUnit attackerUnit = attacker.IsPet ? attacker.Virtual.GetMasterUnit() : attacker;
|
|
|
+ if (attackerUnit != null)
|
|
|
+ {
|
|
|
+ attackerUnit.Virtual.DispatchKillOtherEvent(attackerUnit.Virtual, obj.Virtual);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ log.Warn("zone_onUnitDead: 找不到人形攻击者:" + attacker.Info.ID + ", " + zone.GetSceneID());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ catch(Exception e)
|
|
|
+ {
|
|
|
+ log.Error("zone_onUnitDead catch: " + e);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
if(zone is EditorScene)
|