protected override void ExecuteImp(BaseGame game, long tick) { if (!m_isSent) { m_isSent = true; game.SendLivingMoveTo(m_living, m_living.X, m_living.Y, m_path[m_path.Count - 1].X, m_path[m_path.Count - 1].Y, m_action, m_speed); } m_index++; if (m_index >= m_path.Count) { if (m_path[m_index - 1].X > m_living.X) { m_living.Direction = 1; } else { m_living.Direction = -1; } m_living.SetXY(m_path[m_index - 1].X, m_path[m_index - 1].Y); if (m_callback != null) { m_living.CallFuction(m_callback, 0); } Finish(tick); } }
protected override void ExecuteImp(BaseGame game, long tick) { if (!m_isSent) { m_isSent = true; game.SendLivingFall(m_living, m_toX, m_toY, m_fallSpeed, m_action, m_type); } if (m_toY > m_living.Y + m_fallSpeed) { m_living.SetXY(m_toX, m_living.Y + m_fallSpeed); } else { m_living.SetXY(m_toX, m_toY); if (game.Map.IsOutMap(m_toX, m_toY)) { m_living.SyncAtTime = false; m_living.Die(); Console.WriteLine("掉落Fall" + m_living.IsLiving.ToString()); } if (m_callback != null) { //m_living.RunLuaFunction(m_callback); m_living.CallFuction(m_callback, 0); } Finish(tick); } }
protected override void ExecuteImp(BaseGame game, long tick) { if (!m_isSent) { m_isSent = true; game.SendLivingJump(m_living, m_toX, m_toY, m_speed, m_action, m_type); } if (m_toY < m_living.Y - m_speed) { m_living.SetXY(m_toX, m_living.Y - m_speed); } else { m_living.SetXY(m_toX, m_toY); if (m_callback != null) { m_living.CallFuction(m_callback, 0); } Finish(tick); } }