Skip to content

Commit 6591aa9

Browse files
committed
断线重连后属性设置不正确
kbengine/kbengine#462
1 parent 4785a33 commit 6591aa9

1 file changed

Lines changed: 48 additions & 39 deletions

File tree

KBEngine.cs

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,53 +1418,62 @@ public void Client_onCreatedProxies(UInt64 rndUUID, Int32 eid, string entityType
14181418
{
14191419
Dbg.DEBUG_MSG("KBEngine::Client_onCreatedProxies: eid(" + eid + "), entityType(" + entityType + ")!");
14201420

1421-
if(this.entities.ContainsKey(eid))
1422-
{
1423-
// Dbg.WARNING_MSG("KBEngine::Client_onCreatedProxies: eid(" + eid + ") has exist!");
1424-
Client_onEntityDestroyed(eid);
1425-
}
1426-
14271421
entity_uuid = rndUUID;
14281422
entity_id = eid;
14291423
entity_type = entityType;
14301424

1431-
ScriptModule module = null;
1432-
if(!EntityDef.moduledefs.TryGetValue(entityType, out module))
1425+
if(!this.entities.ContainsKey(eid))
14331426
{
1434-
Dbg.ERROR_MSG("KBEngine::Client_onCreatedProxies: not found module(" + entityType + ")!");
1435-
return;
1436-
}
1437-
1438-
Type runclass = module.script;
1439-
if(runclass == null)
1440-
return;
1441-
1442-
Entity entity = (Entity)Activator.CreateInstance(runclass);
1443-
entity.id = eid;
1444-
entity.className = entityType;
1445-
1446-
entity.baseMailbox = new Mailbox();
1447-
entity.baseMailbox.id = eid;
1448-
entity.baseMailbox.className = entityType;
1449-
entity.baseMailbox.type = Mailbox.MAILBOX_TYPE.MAILBOX_TYPE_BASE;
1427+
ScriptModule module = null;
1428+
if(!EntityDef.moduledefs.TryGetValue(entityType, out module))
1429+
{
1430+
Dbg.ERROR_MSG("KBEngine::Client_onCreatedProxies: not found module(" + entityType + ")!");
1431+
return;
1432+
}
1433+
1434+
Type runclass = module.script;
1435+
if(runclass == null)
1436+
return;
1437+
1438+
Entity entity = (Entity)Activator.CreateInstance(runclass);
1439+
entity.id = eid;
1440+
entity.className = entityType;
1441+
1442+
entity.baseMailbox = new Mailbox();
1443+
entity.baseMailbox.id = eid;
1444+
entity.baseMailbox.className = entityType;
1445+
entity.baseMailbox.type = Mailbox.MAILBOX_TYPE.MAILBOX_TYPE_BASE;
14501446

1451-
entities[eid] = entity;
1452-
1453-
MemoryStream entityMessage = null;
1454-
_bufferedCreateEntityMessage.TryGetValue(eid, out entityMessage);
1455-
1456-
if(entityMessage != null)
1447+
entities[eid] = entity;
1448+
1449+
MemoryStream entityMessage = null;
1450+
_bufferedCreateEntityMessage.TryGetValue(eid, out entityMessage);
1451+
1452+
if(entityMessage != null)
1453+
{
1454+
Client_onUpdatePropertys(entityMessage);
1455+
_bufferedCreateEntityMessage.Remove(eid);
1456+
entityMessage.reclaimObject();
1457+
}
1458+
1459+
entity.__init__();
1460+
entity.inited = true;
1461+
1462+
if(_args.isOnInitCallPropertysSetMethods)
1463+
entity.callPropertysSetMethods();
1464+
}
1465+
else
14571466
{
1458-
Client_onUpdatePropertys(entityMessage);
1459-
_bufferedCreateEntityMessage.Remove(eid);
1460-
entityMessage.reclaimObject();
1467+
MemoryStream entityMessage = null;
1468+
_bufferedCreateEntityMessage.TryGetValue(eid, out entityMessage);
1469+
1470+
if(entityMessage != null)
1471+
{
1472+
Client_onUpdatePropertys(entityMessage);
1473+
_bufferedCreateEntityMessage.Remove(eid);
1474+
entityMessage.reclaimObject();
1475+
}
14611476
}
1462-
1463-
entity.__init__();
1464-
entity.inited = true;
1465-
1466-
if(_args.isOnInitCallPropertysSetMethods)
1467-
entity.callPropertysSetMethods();
14681477
}
14691478

14701479
public Entity findEntity(Int32 entityID)

0 commit comments

Comments
 (0)