public IEnumerator GetAutoPlayerInScene(Coroutine coroutine, ulong guid) { var msg = SceneServer.Instance.LogicAgent.GetLogicSimpleData(guid, 0); yield return(msg.SendAndWaitUntilDone(coroutine)); if (msg.State != MessageState.Reply) { Logger.Warn("GetAutoPlayerInScene GetLogicSimpleData False! guid={0}", guid); yield break; } var msg2 = SceneServer.Instance.SceneAgent.GetSceneSimpleData(guid, 0); yield return(msg2.SendAndWaitUntilDone(coroutine)); if (msg2.State != MessageState.Reply) { Logger.Warn("GetAutoPlayerInScene GetSceneSimpleData False! guid={0}", guid); yield break; } var tbScene = Table.GetScene(TypeId); if (string.IsNullOrEmpty(msg2.Response.Name)) { Logger.Error("GetAutoPlayerInScene GetSceneSimpleData Name is null! guid={0}", guid); } mAutoPlayer = CreateAutoPlayer(msg.Response, msg2.Response, new Vector2((float)tbScene.PVPPosX, (float)tbScene.PVPPosZ), new Vector2(1, 0)); mAutoPlayer.AddBuff(3001, 1, mAutoPlayer); }
public override void AfterPlayerEnterOver(ObjPlayer player) { if (player.IsDead()) { player.Relive(); } else { player.Attr.SetDataValue(eAttributeType.HpNow, player.Attr.GetDataValue(eAttributeType.HpMax)); player.Attr.SetDataValue(eAttributeType.MpNow, player.Attr.GetDataValue(eAttributeType.MpMax)); } ChangeDifficulty(PlayerCount); mPlayer = player; pvpId = player.mDbData.P1vP1CharacterId; if (mAutoPlayer == null) { if (mHasHold) { if (Trggers[(int)eDungeonTimerType.WaitStart] == null) { StartTimer(eDungeonTimerType.WaitStart, DateTime.Now.AddSeconds(5), TimeOverStart); } NotifyDungeonTime(player, eDungeonTimerType.WaitStart); Exdata = 1; } else { StartDungeon(); Exdata = 0; } player.AddBuff(3001, 1, player); if (StaticData.IsRobot(pvpId)) { var tbScene = Table.GetScene(TypeId); mAutoPlayer = CreateAutoPlayer((int)pvpId, new Vector2((float)tbScene.PVPPosX, (float)tbScene.PVPPosZ), new Vector2(1, 0)); mAutoPlayer.AddBuff(3001, 1, mAutoPlayer); } else { CoroutineFactory.NewCoroutine(GetAutoPlayerInScene, pvpId).MoveNext(); } } }